Detailed Description
In order to make the objects, technical solutions and advantages of the present application more clear, embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
It should be understood that the embodiments described are only some embodiments of the present application, and not all embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments in the present application without any creative effort belong to the protection scope of the embodiments in the present application.
When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. In the description of the present application, it is to be understood that the terms "first," "second," "third," and the like are used solely to distinguish one from another and are not necessarily used to describe a particular order or sequence, nor are they to be construed as indicating or implying relative importance. The specific meaning of the above terms in the present application can be understood by those of ordinary skill in the art as appropriate. As used in this application and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. The word "if/if" as used herein may be interpreted as "at … …" or "when … …" or "in response to a determination".
Further, in the description of the present application, "a plurality" means two or more unless otherwise specified. "and/or" describes the association relationship of the associated objects, meaning that there may be three relationships, e.g., a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship.
As will be appreciated by those skilled in the art, the terms "client," "terminal device," and "terminal device" as used herein include both wireless signal transmitter devices, which include only wireless signal transmitter devices capable of transmitting, and wireless signal receiver devices, which include only wireless signal receiver devices capable of receiving, and also include receiving and transmitting hardware devices having receiving and transmitting hardware capable of two-way communication over a two-way communication link. Such a device may include: cellular or other communication devices such as personal computers, tablets, etc. having single or multi-line displays or cellular or other communication devices without multi-line displays; PCS (personal communications Service), which may combine voice, data processing, facsimile and/or data communications capabilities; a PDA (Personal Digital Assistant), which may include a radio frequency receiver, a pager, internet/intranet access, a web browser, a notepad, a calendar and/or a GPS (Global positioning system) receiver; a conventional laptop and/or palmtop computer or other device having and/or including a radio frequency receiver. As used herein, a "client," "terminal device" can be portable, transportable, installed in a vehicle (aeronautical, maritime, and/or land-based), or situated and/or configured to operate locally and/or in a distributed fashion at any other location(s) on earth and/or in space. The "client", "terminal Device" used herein may also be a communication terminal, a web terminal, a music/video playing terminal, such as a PDA, an MID (Mobile Internet Device) and/or a Mobile phone with music/video playing function, and may also be a smart tv, a set-top box, and the like.
The hardware referred to by the names "server", "client", "service node", etc. is essentially a computer device with the performance of a personal computer, and is a hardware device having necessary components disclosed by the von neumann principle, such as a central processing unit (including an arithmetic unit and a controller), a memory, an input device, an output device, etc., wherein a computer program is stored in the memory, and the central processing unit loads a program stored in an external memory into the internal memory to run, executes instructions in the program, and interacts with the input and output devices, thereby accomplishing specific functions.
It should be noted that the concept of "server" as referred to in this application can be extended to the case of a server cluster. According to the network deployment principle understood by those skilled in the art, the servers should be logically divided, and in physical space, the servers may be independent from each other but can be called through an interface, or may be integrated into one physical computer or a set of computer clusters. Those skilled in the art will appreciate this variation and should not be so limited as to restrict the implementation of the network deployment of the present application.
Referring to fig. 1, fig. 1 is a schematic view of an application scenario of a domain name caching method according to an embodiment of the present application, where the application scenario includes a machine room 1000, a local DNS server 2000, a plurality of service servers 3000, and a public DNS server 4000.
The local DNS server 2000 and a plurality of the service servers 3000 are disposed in the machine room 1000; the DNS server IP addresses of the plurality of traffic servers 3000 point to the local DNS server 2000, and the plurality of traffic servers 3000 communicate with the public DNS server 4000 through the local DNS server 2000. Specifically, each of the plurality of service servers 3000 may access the internet through a network access manner, and establish a data communication link with the local DNS server 2000; meanwhile, the local DNS server 2000 may also access the internet by a network access method, and establish a data communication link with the public DNS server 4000. The network may be a communication medium of various connection types capable of providing communication links between the plurality of service servers 3000 and the local DNS server 2000, and between the local DNS server 2000 and the public DNS server 4000, for example, a wired communication link, a wireless communication link, or an optical fiber cable, and the like, which is not limited herein.
The machine room 1000 generally refers to a place where a telecommunication, internet, mobile, two-wire, electric, and government or enterprise etc. deposits the business server 3000 to provide IT services. In this embodiment, the machine room 1000 may be a self-built machine room 1000, such as a self-built machine room 1000 for an enterprise.
The service server 3000 is a server that is disposed in the computer room 1000 and is used to provide mobile multimedia messages, short messages, and call services, or provide services such as dedicated services for the interior of an enterprise, for example, a server of a live broadcast service, and the like, which is not limited in this application.
The local DNS server 2000 is a DNS server provided in the machine room 1000, and is a server that performs domain name conversion and IP address conversion corresponding to the domain name. Specifically, the DNS server stores a mapping table of domain names and IP addresses corresponding to the domain names, so as to resolve the accessed domain names. Wherein, the domain name is the name of a certain computer or computer group on the internet, and is used for identifying the electronic position (sometimes also referred to as geographical position) of the computer during data transmission; domain names are composed of a string of names separated by dots, usually containing the name of an organization, and always include a two to three letter suffix to indicate the type of organization or country or region in which the domain is located. The IP address is a uniform address format provided by the IP protocol, and a unique logical address is allocated to each network and each host on the Internet so as to shield the difference of physical addresses, thereby ensuring that a user can efficiently and conveniently select a required object from millions of computers when operating on the networked computers.
The public DNS server 4000 refers to a DNS server that is a default for the operating system, and has the functions of no advertisement, being able to prevent DNS hijacking to a certain extent, not needing to be changed due to a change in the internet access environment, and the like. Generally, a terminal is installed with an operating system, and the operating system is provided with a public DNS server 4000 by default, and a user can access the internet directly through the public DNS server 4000. Generally, the public DNS server 4000 can be connected through an external network, which is also called internet and refers to a network in which electronic devices can be connected to each other worldwide; correspondingly, the intranet refers to a local area network, such as a network in a home, a school, a company, or a government office, and in this embodiment, the network communication between the service server 3000 and the local DNS server 2000 in the computer room 1000 is intranet communication distributed inside the local area network.
It should be noted that the application scenario in fig. 1 is only an exemplary application scenario and is not used to limit the solution of the present invention. The scheme of the invention can also be applied to other forms of live webcast application scenes, and the description is omitted.
Please refer to fig. 2, which is a flowchart illustrating a domain name caching method according to an embodiment of the present application. The domain name caching method provided by one embodiment of the application is applied to a domain name caching system, wherein the domain name caching system comprises a plurality of service servers and a local DNS server which are arranged in a machine room; the IP addresses of the DNS servers of the service servers all point to the local DNS server, and the service servers all communicate with a public DNS server of an external network through the local DNS server, so that the method comprises the following steps:
step S101: the local DNS server receives a domain name access request sent by the service server; the domain name access request includes a domain name.
Optionally, the DNS server IP addresses in the/etc/resolve.conf file in the service server are modified, so that the DNS server IP addresses of the plurality of service servers all point to the local DNS server, and further the plurality of service servers all communicate with the public DNS server through the local DNS server, that is, when the plurality of service servers need to access the public DNS server of the external network, the public DNS server can be accessed only by the local DNS server.
Optionally, the local DNS server is a CoreDNS server. The CoreDNS server is an open source DNS server program which can provide extended capability in a plug-in mode. In the embodiment of the application, the CoreDNS server is configured with an hcache cache plug-in and a forward plug-in; caching the mapping relation between the domain name and the corresponding IP address through the cache plug-in; sending the domain name to the public DNS server through a forward plug-in.
Step S102: when the domain name is cached by the local DNS, the local DNS obtains an access result corresponding to the domain name according to the mapping relation between the cached domain name and the corresponding access result, and sends the access result corresponding to the domain name to the service server.
The local DNS server sends the cached domain name to the public DNS server according to a preset time interval within a preset time period, and an access result corresponding to the domain name sent by the public DNS server is obtained; and updating the mapping relation between the cached domain name and the corresponding access result according to the access result corresponding to the domain name.
In this embodiment of the application, the access result may be an IP address corresponding to the domain name, so that the user may quickly access a website and the like corresponding to the domain name. The access result can also be no-response information corresponding to the domain name, so that the user can quickly know that the website and the like corresponding to the domain name cannot be accessed currently, the long-term waiting for the access result is avoided, and the user experience is reduced.
In the embodiment of the present application, the preset time period may be set according to actual needs and actual operating conditions, for example, may be 24 hours, 48 hours, and the like. In this embodiment of the present application, the preset time period is a time period calculated from a time when the domain name access request is received. The preset time interval can also be set according to actual needs and actual operation conditions, generally, in order to use safety, each domain name can specify the persistence time length in the device, and in order to effectively and efficiently cache the mapping relationship between the domain name and the corresponding access result, the persistence time length corresponding to each domain name is used as the preset time interval in the embodiment of the present application, after the preset time interval is reached, that is, after the persistence time length of the domain name is reached, and the domain name just needs to be invalidated, the cached domain name is sent to the public DNS server, so that the mapping relationship between the domain name and the corresponding access result after the mapping relationship is restored, and the mapping relationship between the domain name and the corresponding access result can be cached in the preset time interval.
It should be noted that, in this embodiment of the application, each time a domain name is received, the local DNS server sends the cached domain name to the public DNS server according to a preset time interval within a preset time period counted by the time of the received domain name, so as to update the mapping relationship between the cached domain name and the corresponding access result.
For example, the preset time period is 24 hours, the preset time interval is 30 minutes, if the domain name is received at 9 points, the local DNS server starts to calculate at 9 points of time when the domain name is received, and sends the domain name to the public DNS server every 30 minutes to update the mapping relationship between the cached domain name and the corresponding access result, until 24 hours later, that is, after 9 points on the next day, the updating of the mapping relationship between the cached domain name and the corresponding access result is stopped, and at this time, after the persistence time of the cached domain name is reached, the mapping relationship between the domain name and the corresponding access result is automatically deleted. If the domain name is received at the 9 point, and the domain name is received again at the 10 point and the 10 minutes, the local DNS server starts to calculate at the 10 point and the 10 minutes of the time for receiving the domain name, and sends the domain name to the public DNS server every 30 minutes to update the mapping relation between the cached domain name and the corresponding access result, and the updating of the mapping relation between the cached domain name and the corresponding access result is stopped until 24 hours, namely 10 minutes at the 10 next day, and the mapping relation between the domain name and the corresponding access result is automatically deleted after the persistence time of the cached domain name is reached.
In the embodiment of the application, IP addresses of the DNS servers of the plurality of service servers are all pointed to the local DNS server, so that the plurality of service servers are all communicated with a public DNS server through the local DNS server; when the local DNS server receives a domain name access request sent by the service server, if the domain name is cached by the local DNS server, the local DNS server obtains an access result corresponding to the domain name according to the mapping relation between the cached domain name and the corresponding access result, and sends the access result corresponding to the domain name to the service server; the local DNS server sends the cached domain name to the public DNS server within a preset time period according to a preset time interval, and an access result corresponding to the domain name sent by the public DNS server is obtained; and updating the mapping relation between the cached domain name and the corresponding access result according to the access result corresponding to the domain name. According to the embodiment of the application, the local DNS server is added, the access result corresponding to the domain name is continuously requested to the public DNS server, so that the cache time of the domain name is indirectly increased, and further, when the domain name is accessed again in the preset time period, the service server can quickly and accurately obtain the corresponding domain name access result from the local DNS server, so that the public DNS server of an external network is avoided being accessed as much as possible, the problems of delay and failure caused by cache failure or cache data clearing of the service server due to accidental problems of the external network and direct access to the public DNS server are reduced, the accuracy of domain name access and the efficiency of domain name access are improved, and the normal work of each application in the service server is ensured.
In one embodiment, before the step of receiving, by the local DNS server, the domain name access request sent by the service server in step S101, the method further includes: step S100: the service server receives the domain name access request; if the domain name is inquired in the service server cache, obtaining an IP address corresponding to the domain name from the service server cache; and if the domain name is not inquired in the service server cache, the service server sends the domain name access request to the local DNS server.
That is, when the service server receives the IP address corresponding to the domain name provided by the local DNS server, the service server also stores the mapping relationship between the domain name and the corresponding IP address, and thus, by querying the domain name in the service server cache, the IP address corresponding to the domain name is obtained from the service server cache, and the access efficiency can be further improved. However, the time of the mapping relationship between the domain name and the corresponding IP address stored in the service server is determined according to the persistence time of the domain name, and the persistence time of the domain name is generally short, so the time of the mapping relationship between the domain name and the corresponding IP address stored in the service server is also short and is easily deleted by a user, so the domain name is not queried in the cache of the service server, the service server sends the domain name to the local DNS server, and obtains the IP address corresponding to the domain name from the local DNS server, and the problem of access failure or access delay caused by directly accessing a public DNS server can be reduced.
Referring to fig. 3, in an embodiment, the access result includes an IP address corresponding to the domain name; in step S102, the local DNS server sends the cached domain name to the public DNS server at preset time intervals within a preset time period, and obtains an access result corresponding to the domain name sent by the public DNS server; according to the access result corresponding to the domain name, the step of updating the mapping relationship between the cached domain name and the corresponding access result includes steps S10211-S10213:
step S10211: and the local DNS server sends the cached domain name to the public DNS server within a preset time period according to a preset time interval.
Step S10212: and if the IP address fed back by the public DNS server is received, the local DNS server updates the mapping relation between the domain name and the corresponding IP address.
Step S10213: and if the nonresponse information fed back by the public DNS server is received, the local DNS server keeps the mapping relation between the domain name and the corresponding IP address unchanged.
In an application scenario, when the mapping relationship between the domain name and the corresponding IP address is received, if the cached domain name is sent to the public DNS server after a preset time interval, at this time, there may be a problem that the public DNS server cannot resolve the domain name due to a network or other reasons, and further receives nonresponsive information fed back by the public DNS server, such an access result may be considered as accidental, at this time, if the nonresponsive information is stored as an access result corresponding to the domain name, when a user accesses the domain name, an access result of nonresponsive information will be fed back, which is obviously inaccurate, and therefore, the nonresponsive information fed back by the public DNS server is received again, and the local DNS server keeps the mapping relationship between the domain name and the corresponding IP address unchanged, the problem that the domain name cannot be normally accessed due to the fact that the access result of the information which cannot be responded is received due to network accidents or other accidents can be avoided, and therefore the success rate of domain name resolution and access is improved.
Referring to fig. 4, in an embodiment, the access result includes non-response information corresponding to the domain name; in step S102, the local DNS server sends the cached domain name to the public DNS server at preset time intervals within a preset time period, and obtains an access result corresponding to the domain name sent by the public DNS server; according to the access result corresponding to the domain name, the step of updating the mapping relationship between the cached domain name and the corresponding access result includes steps S10221-S10223:
step S10221: and the local DNS server sends the cached domain name to the public DNS server within a preset time period according to a preset time interval.
It should be noted that, when the access result includes the non-response information corresponding to the domain name, the local DNS server fails to obtain the persistence time of the domain name, at this time, the preset time interval does not longer include the persistence time of the domain name, but includes a fixed time, and the fixed time is used as the time interval to send the cached domain name to the public DNS server. Generally, the fixed time duration is set to be shorter than the typical domain name persistence time duration, for example, 60 seconds, 80 seconds, and the like, in order to obtain the IP address receiving the feedback from the public DNS server as soon as possible.
Step S10222: and if the IP address fed back by the public DNS server is received, the local DNS server deletes the mapping relation between the domain name and the corresponding information which cannot be responded, establishes the mapping relation between the domain name and the corresponding IP address and caches the mapping relation.
Step S10223: and if the nonresponse information fed back by the public DNS server is received, the local DNS server keeps the mapping relation between the domain name and the corresponding nonresponse information unchanged.
In an application scenario, when the cached domain name is sent to the public DNS server, due to a network or the domain name not yet registered, and the like, there may be a problem that the public DNS server cannot resolve the domain name, so that the local DNS server receives nonresponsive information fed back by the public DNS server, and the local DNS server caches a mapping relationship between the domain name and corresponding nonresponsive information; however, after the network is unobstructed or the domain name is registered, the public DNS server may resolve the domain name, so that the local DNS server receives the IP address fed back by the public DNS server, and at this time, it is indicated that the IP address corresponding to the domain name can be accessed, and therefore, it is necessary to delete the mapping relationship between the domain name and the corresponding nonresponsive information, establish the mapping relationship between the domain name and the corresponding IP address, and cache the mapping relationship, so that the user can access the corresponding IP address according to the cached mapping relationship between the domain name and the corresponding IP address, thereby improving the success rate of domain name resolution and access.
Referring to fig. 5, in an embodiment, the local DNS server caches the mapping relationship between the domain name and the corresponding IP address through a successful cache table, and caches the mapping relationship between the domain name and the corresponding nonresponse information through a failed cache table; in step S102, when the domain name is cached in the local DNS server, the step of obtaining, by the local DNS server, the IP address corresponding to the domain name according to the mapping relationship between the cached domain name and the corresponding IP address, and sending the IP address corresponding to the domain name to the service server includes steps S10231 to S10233:
step S10231: the local DNS server looks up the domain name from the successful cache list and the failed cache list.
Step S10232: if the domain name is inquired in the successful cache list, the local DNS server obtains an IP address corresponding to the domain name according to the mapping relation between the domain name and the corresponding IP address in the successful cache list, and sends the IP address corresponding to the domain name to the service server.
Step S10233: if the domain name is inquired in the failure cache list, the local DNS server obtains no-response information corresponding to the domain name according to the mapping relation between the domain name and the corresponding no-response information in the failure cache list, and sends the no-response information corresponding to the domain name to the service server.
According to the embodiment of the application, the mapping relation between the domain name and the corresponding IP address is cached through the successful cache table, the mapping relation between the domain name and the corresponding information which cannot be responded is cached through the failed cache table, and then the access result is quickly and conveniently found in the successful cache list and the failed cache list.
Referring to fig. 6, in an embodiment, the domain name caching method further includes the following steps S103 to S105:
step S103: and when the domain name is not cached in the local DNS server, the local DNS server sends the domain name to the public DNS server.
Step S104: and if the IP address fed back by the public DNS server is received, establishing a mapping relation between the domain name and the corresponding IP address by taking the IP address as an access result and caching the mapping relation.
Step S105: and if the nonresponse information fed back by the public DNS server is received, taking the nonresponse information as an access result, establishing a mapping relation between the domain name and the corresponding nonresponse information, and caching the mapping relation.
When the domain name is not cached in the local DNS, establishing and caching the mapping relation between the domain name and the corresponding IP address, and establishing and caching the mapping relation between the domain name and the corresponding information which cannot be responded, so that when the domain name is accessed next time, the corresponding access result can be quickly obtained from the cache, and the access efficiency is improved.
Please refer to fig. 7, which is a schematic structural diagram of a domain name caching apparatus according to an embodiment of the present application. The domain name caching device 200 is applied to a domain name caching system; the domain name cache system comprises a plurality of service servers and a local DNS server which are arranged in a machine room; the IP addresses of the DNS servers of the plurality of service servers all point to the local DNS server, and the plurality of service servers all communicate with a public DNS server of an external network through the local DNS server; the domain name caching apparatus 200 includes:
a domain name access request module 201, configured to receive, through the local DNS server, a domain name access request sent by the service server; the domain name access request comprises a domain name;
an access result sending module 202, configured to, when the domain name is cached by the local DNS server, obtain, by the local DNS server according to a mapping relationship between the cached domain name and a corresponding access result, an access result corresponding to the domain name, and send the access result corresponding to the domain name to the service server;
the local DNS server sends the cached domain name to the public DNS server according to a preset time interval within a preset time period, and an access result corresponding to the domain name sent by the public DNS server is obtained; and updating the mapping relation between the cached domain name and the corresponding access result according to the access result corresponding to the domain name.
It should be noted that, when the domain name caching apparatus provided in the embodiment of the present application executes the domain name caching method, only the division of the above functional modules is used for illustration, and in practical applications, the above function allocation may be completed by different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules, so as to complete all or part of the above described functions. In addition, the domain name caching device provided by the embodiment of the present application and the domain name caching method provided by the embodiment of the present application belong to the same concept, and details of implementation processes thereof are referred to in the method embodiment and are not described herein again.
The embodiment of the domain name caching apparatus in the embodiment of the present application may be applied to a computer device, for example, a server, and the embodiment of the apparatus may be implemented by software, or may be implemented by hardware, or by a combination of hardware and software. The software implementation is taken as an example, and as a logical device, the device is formed by reading corresponding computer program instructions in the nonvolatile memory into the memory for operation through the processor in which the file processing is located. From a hardware perspective, the computer devices may include a processor, a network interface, and a memory, which are connected to each other via a data bus or other well-known means.
Please refer to fig. 8, which is a schematic structural diagram of a domain name caching system according to an embodiment of the present application. The domain name caching system 300 includes: a plurality of service servers 301 and local DNS servers 302 arranged in a machine room; the IP addresses of the DNS servers of a plurality of the service servers 301 all point to the local DNS server 302, and a plurality of the service servers 301 all communicate with a public DNS server of an external network through the local DNS server 302; the local DNS server 301 is configured to execute the steps of the domain name caching method in the embodiment of the present application, and specific execution processes may refer to specific descriptions of the domain name caching method, which are not described herein again.
Referring to fig. 9, which is a hardware structure diagram of a computer device according to an embodiment of the present invention, the computer device 400 includes a processor 401, a network interface 402 and a memory 403, which are connected to each other through a data bus or other known means. In addition to the processor 401, the network interface 402 and the memory 403 shown in fig. 9, the actual functions of the computer device described in this application may also include other hardware, which is not described in detail herein.
The memory 340 is running a computer program, such as: a domain name caching method; the processor 401 implements the steps of the domain name caching method when executing the computer program. Wherein, the computer device 400 is also used as a carrier of the domain name caching apparatus.
The processor 401 may include one or more processing cores. The processor 401 is connected to various parts of the computer device 400 by various interfaces and lines, executes various functions of the computer device 400 and processes data by operating or executing instructions, programs, code sets or instruction sets stored in the memory 340 and/or the memory 330 and calling data in the memory 403, and optionally, the processor 401 may be implemented in at least one hardware form of Digital Signal Processing (DSP), Field-Programmable Gate Array (FPGA), Programmable Logic Array (PLA). The processor 401 may integrate one or more of a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a modem, and the like. Wherein, the CPU mainly processes an operating system, a user interface, an application program and the like; the GPU is used for rendering and drawing contents required to be displayed by the touch display screen; the modem is used to handle wireless communications. It is understood that the modem may not be integrated into the processor 401, but may be implemented by a single chip.
The Memory 401 may include a Random Access Memory (RAM) or a Read-Only Memory (Read-Only Memory). Alternatively, the memory 401 may be used to store instructions, programs, code sets or instruction sets. The memory 401 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function (such as touch instructions, etc.), instructions for implementing the various method embodiments described above, and the like; the storage data area may store data and the like referred to in the above respective method embodiments.
The embodiment of the present application further provides a computer storage medium, where the computer storage medium may store a plurality of instructions, where the instructions are suitable for being loaded by a processor and executing the method steps of the first embodiment, and a specific execution process may refer to a specific description of the first embodiment, which is not described herein again. The device where the storage medium is located can be an electronic device such as a personal computer, a notebook computer, a smart phone and a tablet computer.
Computer storage media, including permanent and non-permanent, removable and non-removable media, may implement the information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, computer storage media does not include transitory computer readable media (transient media) such as modulated data signals and carrier waves.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart block or blocks and/or flowchart block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in the process, method, article, or apparatus that comprises the element.
The above are merely examples of the present application and are not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.