Disclosure of Invention
The application provides a service access method, a device, equipment and a storage medium, which are used for solving the problem of high time consumption caused by the steps of performing domain name resolution, establishing connection, sending a request, receiving a response and the like when a service access request is sent each time in the related technology.
In a first aspect, a service access method is provided, including:
the client obtains a first target service request with a unified domain name based on an access instruction to an access object; transmitting the first target service request to a domain name server by adopting unified domain name connection corresponding to the unified domain name;
the domain name server obtains the first target service request sent by the client; analyzing the first target service request to obtain the unified domain name; forwarding the first target service request to gateway equipment corresponding to the unified domain name;
the gateway equipment acquires the first target service request sent by the domain name server; acquiring path data of the first target service request; acquiring effective data representing an original service request from the path data, wherein the effective data comprises target data representing a service server address and service data; generating the original service request corresponding to the effective data; and sending the original service request to a service server corresponding to the target data.
Optionally, the client obtains a first target service request with a domain name being a uniform domain name based on an access instruction to the access object, including:
the client acquires a service request corresponding to the access instruction;
the client acquires the unified domain name corresponding to the access object;
the client changes the domain name of the service request into the unified domain name to obtain the first target service request, wherein the path data of the first target service request comprises target data representing the address of the service server.
Optionally, the client obtains a first target service request including a unified domain name based on an access instruction to the access object, including:
the client acquires the unified domain name corresponding to the access object;
the client generates the first target service request based on the unified domain name, wherein path data of the first target service request includes target data characterizing a service server address.
Optionally, the client sends the first target service request to a domain name server by adopting a unified domain name connection corresponding to the unified domain name, including:
the client judges whether the unified domain name connection corresponding to the unified domain name exists in the connection pool;
If the unified domain name connection exists, the client acquires the unified domain name connection from the connection pool;
if the unified domain name connection does not exist, the client creates the unified domain name connection corresponding to the unified domain name;
and the client side sends the first target service request to the domain name server by adopting the unified domain name connection.
Optionally, the client creates the unified domain name connection corresponding to the unified domain name, including:
and the client generates the unified domain name connection according to the HTTP/2 protocol.
Optionally, after the client sends the first target service request to the domain name server by adopting the unified domain name connection, the method further includes:
the client judges whether to adopt the unified domain name connection to send a second target service request in the timing time of the timing unit;
if not, the client sends keep-alive data to the domain name server, wherein the keep-alive data comprises a heartbeat packet and/or a preset request;
if yes, the client refreshes the timing unit so as to count time again.
A second aspect provides a service access method, applied to a client, including:
Obtaining a first target service request with a unified domain name based on an access instruction to an access object;
and transmitting the first target service request to a domain name server by adopting unified domain name connection corresponding to the unified domain name.
Optionally, based on an access instruction to the access object, obtaining a first target service request with a domain name being a uniform domain name includes:
acquiring a service request corresponding to the access instruction;
acquiring the unified domain name corresponding to the access object;
and changing the domain name of the service request into the unified domain name to obtain the first target service request, wherein the path data of the first target service request comprises target data representing the address of the service server.
Optionally, based on the access instruction to the access object, obtaining the first target service request including the unified domain name includes:
acquiring the unified domain name corresponding to the access object;
and generating the first target service request based on the unified domain name, wherein the path data of the first target service request comprises target data representing a service server address.
Optionally, sending the first target service request to a domain name server by adopting a unified domain name connection corresponding to the unified domain name, including:
Judging whether the unified domain name connection corresponding to the unified domain name exists in the connection pool;
if the unified domain name connection exists, acquiring the unified domain name connection from the connection pool;
if the unified domain name connection does not exist, creating the unified domain name connection corresponding to the unified domain name;
and transmitting the first target service request to the domain name server by adopting the unified domain name connection.
Optionally, creating the unified domain name connection corresponding to the unified domain name includes:
and generating the unified domain name connection according to the HTTP/2 protocol.
Optionally, after the sending the first target service request to the domain name server by adopting the unified domain name connection, the method further includes:
judging whether to adopt the unified domain name connection to send a second target service request in the timing time of the timing unit;
if not, sending keep-alive data to the domain name server, wherein the keep-alive data comprises a heartbeat packet and/or a preset request;
if so, refreshing the timing unit so as to reckon.
In a third aspect, a service access method is provided, applied to a gateway device, and includes:
acquiring the first target service request sent by a domain name server;
Acquiring path data of the first target service request;
acquiring effective data representing an original service request from the path data, wherein the effective data comprises target data representing a service server address and service data;
generating the original service request corresponding to the effective data;
and sending the original service request to a service server corresponding to the target data.
A fourth aspect provides a service access system, comprising:
the system comprises a client, a domain name server, gateway equipment and a service server;
the client obtains a first target service request with a unified domain name based on an access instruction to an access object; transmitting the first target service request to a domain name server by adopting unified domain name connection corresponding to the unified domain name;
the domain name server obtains the first target service request sent by the client; analyzing the first target service request to obtain the unified domain name; forwarding the first target service request to the gateway equipment corresponding to the unified domain name;
the gateway equipment acquires the first target service request sent by the domain name server; acquiring path data of the first target service request; acquiring effective data representing an original service request from the path data, wherein the effective data comprises target data representing the service server address and service data; generating the original service request corresponding to the effective data; and sending the original service request to the service server corresponding to the target data.
A fifth aspect provides a service access apparatus, comprising:
the obtaining unit is used for obtaining a first target service request with a unified domain name based on an access instruction to an access object;
and the first sending unit is used for sending the first target service request to a domain name server by adopting unified domain name connection corresponding to the unified domain name.
A sixth aspect is a service access apparatus, including:
the first acquisition unit is used for acquiring the first target service request sent by the domain name server;
the second acquisition unit is used for acquiring the path data of the first target service request;
a third obtaining unit, configured to obtain, from the path data, valid data representing an original service request, where the valid data includes target data representing a service server address and service data;
a generating unit, configured to generate the original service request corresponding to the valid data;
and the second sending unit is used for sending the original service request to the service server corresponding to the target data.
A seventh aspect provides a client, including: the device comprises a processor, a memory and a communication bus, wherein the processor and the memory are communicated with each other through the communication bus; the memory is used for storing a computer program; the processor is configured to execute the program stored in the memory, and implement the service access method according to the second aspect.
An eighth aspect provides a gateway device, including: the device comprises a processor, a memory and a communication bus, wherein the processor and the memory are communicated with each other through the communication bus; the memory is used for storing a computer program; the processor is configured to execute the program stored in the memory, and implement the service access method according to the third aspect.
A ninth aspect provides a computer-readable storage medium storing a computer program which, when executed by a processor, implements the service access method of the second aspect.
In a tenth aspect, there is provided a computer readable storage medium storing a computer program which, when executed by a processor, implements the service access method of the third aspect.
Compared with the prior art, the technical scheme provided by the embodiment of the application has the following advantages:
according to the technical scheme provided by the embodiment of the application, when an access instruction for an access object exists, a first target service request is obtained, the first target service request is sent to a domain name server through unified domain name connection, the first target service request is sent to gateway equipment through the domain name server, the gateway equipment obtains path data from the first target service request, obtains effective data representing an original service request from the path data, generates the original service request corresponding to the effective data, and forwards the first target service request to a service server corresponding to the target data. Because the domain name of the obtained first target service request is a unified domain name, that is, the domain names of the service requests of different services can be converged into the unified domain name by adopting the scheme of the application, and the first target service request is sent through the unified domain name connection, when different service requests of access objects need to be sent, the stages of domain name analysis, connection establishment and the like do not need to be executed each time, and the sending request stage is directly executed, so that the speed of the network request is improved.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present application more clear, the technical solutions of the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application.
For a better understanding of aspects of embodiments of the present application, related terms and concepts that may be related to embodiments of the present application are described below.
The clients described in the embodiments of the present application may include smart phones (such as Android mobile phones, iOS mobile phones, windows Phone mobile phones, etc.), tablet computers, palm computers, notebook computers, video matrixes, monitoring platforms, mobile internet devices (MID, mobile Internet Devices), wearable devices, etc., which are merely examples, but not exhaustive, including but not limited to the above devices.
A service access method in the embodiments of the present application is described below with reference to fig. 1, and fig. 1 is a schematic system architecture diagram of a service access method provided in the embodiments of the present application, where the system architecture 100 includes aclient 110, adomain name server 120, and agateway device 130, where theclient 110 and thedomain name server 120 are in communication connection, and where thedomain name server 120 is in communication connection with thegateway device 130.
Wherein, theclient 110 obtains a first target service request with a uniform domain name based on an access instruction to an access object; a first target service request is sent to thedomain name server 120.
In this embodiment, the access object includes, but is not limited to, an application or a website.
When the access object includes an application:
in one example, the application is an installed application in the client.
At this time, the access instruction of the application program may be a login instruction, a file download instruction, or an instruction for delivering statistical information of the application program, and correspondingly, the first target service request may be a login request, a file download request, or a request for delivering statistical information of the application program.
In another example, the application is an uninstalled application in the client.
At this time, the access instruction of the application may be an installation package download instruction or the like, and accordingly, the first target service request may be an installation package download request or the like.
When the access object includes a website:
the access instruction to the application program may be a login instruction of a website, a file downloading instruction, an instruction for delivering statistical information, or the like, and correspondingly, the first target service request may be a login request of the website, a file downloading request, a request for delivering statistical information, or the like.
In this embodiment, each access object corresponds to a unique unified domain name, where the unified domain name includes, but is not limited to, the secondary domain name of the access object.
The secondary domain name is a web name when the access object is networked, for example, when the access object is a, the secondary domain name of the access object may be a.com.
Optionally, the present embodiment provides two methods for obtaining the first target service request:
first, based on the access instruction to the access object, a first target service request is directly generated.
Specifically, a unified domain name corresponding to an access object is obtained; a first target service request is generated based on the unified domain name, wherein path data of the first target service request includes target data characterizing a service server address.
In this embodiment, the first target service request includes, but is not limited to, a URL (Uniform Resource Locator ) address.
In practice, URLs typically include protocol data, domain name data, and path data. The protocol data defines a protocol used when acquiring resources, the domain name data corresponds to an IP address of a host, and the path data indicates the resources of the requested server. In this embodiment, since the domain name of the first target service request converges to the unified domain name, the target data representing the address of the service server is placed in the path data of the first target service request when the first target service request is generated.
Second, the original service request is changed to obtain a first target service request.
Specifically, a service request corresponding to an access instruction is obtained; acquiring a unified domain name corresponding to an access object; and changing the domain name of the service request into a unified domain name to obtain a first target service request, wherein the path data of the first target service request comprises target data representing the address of the service server.
In this case, the client directly generates a service request corresponding to the access instruction based on the access instruction of the access object, where the domain name of the service request is the target data representing the server address. After the domain name of the service request is changed, the domain name of the first target service request is changed into a unified domain name, and meanwhile, the domain name of the service request is changed into path data.
In practical application, the first target service request can be obtained in one of the two modes optionally; of course, the first target service request may be obtained by selecting one mode from two modes according to the service requested by the access instruction, which is not limited in this embodiment.
When one mode is selected from two modes according to the service requested by the access instruction, considering that the current existing service corresponding to the access object directly generates the service request corresponding to the access instruction, the first target service request can be obtained by adopting a second mode for the current existing service; and for accessing the service corresponding to the subsequent new addition, the first mode can be adopted to obtain the first target service request when the service request corresponding to the service is generated.
Taking an access object as an application program A as an example, assuming that the current existing service of the application program A is a login service and a file downloading service, and obtaining a first target service request corresponding to the current existing service of the application program A in a second mode for the service; assuming that a service person writing the application program a newly increases a recording service for the application program a in the future, the service person may set to obtain the first target service request according to the first mode while newly increasing the recording service, so that the first target service request is obtained according to the first mode when an access instruction for the recording service exists.
The following illustrates the procedure for obtaining the first target service request in two ways:
for example, for the access object a, the unified domain name may be api.a.com, and when the access instruction is directed to the login service of the access object a, the first manner is adopted to directly obtain the first target service request: api.a. com/logic.a. com/path = value; and if the second mode is adopted, firstly obtaining the service request corresponding to the access instruction: and secondly, changing the domain name of the service request based on the unified domain name, wherein the obtained first target service request is api.A.com/log.A.com/path=value.
In this embodiment, the unified domain name connection refers to a connection established between the unified domain name and the domain name server, and in the establishment process, the phase of resolving the unified domain name and establishing the connection is performed.
In this embodiment, once the unified domain name connection is established successfully, the unified domain name connection is stored in the connection pool, so that the service request of the access object can be multiplexed later.
Where a connection pool is a buffer pool that creates and manages connections that can be used by threads or processes that need them.
The unified domain name connection in the connection pool can be established when the first target service request is sent for the first time, or can be established in advance.
In order to realize multiplexing of the service request of the access object to the unified domain name connection, when the unified domain name connection is established for the first time, the HTTP/2 protocol is started, and after domain name resolution is performed for the first time and connection is established, the established connection can be multiplexed by the subsequent service request.
It will be appreciated that the HTTP protocol is based on the TCP protocol, so that when a unified domain name connection is created, HTTP requests are sent based on the HTTP/2 protocol, and HTTP establishes a connection channel to the corresponding server via TCP.
It will be appreciated that an HTTP2 connection may simultaneously transmit (send and/or receive) data streams for multiple service requests, and that the number of data streams simultaneously transmitted may be set by a client.
When multiple data streams are transmitted through the HTTP2 connection, the data packets of the multiple data streams can be mixed together and transmitted through the HTTP2 connection, and when the data packets reach the domain name resolution server, the domain name resolution server can extract each data stream from the multiple data streams.
Based on the two occasions of the establishment of the unified domain name connection, when the unified domain name connection corresponding to the unified domain name is adopted to send the first target service request to the domain name server, as shown in fig. 2, the method may include the following steps:
step 201, judging whether a unified domain name connection corresponding to the unified domain name exists in the connection pool, if so, executingstep 202, otherwise, executingstep 203;
step 202, obtaining unified domain name connection from a connection pool;
step 203, creating a unified domain name connection corresponding to the unified domain name;
step 204, a first target service request is sent to a domain name server by adopting unified domain name connection.
Alternatively, in this embodiment, one connection pool may store one unified domain name connection, or may store a plurality of unified domain name connections.
When a unified domain name connection is stored in the connection pool, determining the connection pool corresponding to the access object, and when the connection pool is not empty, determining that the unified domain name connection exists in the connection pool, otherwise, determining that the unified domain name connection exists in the connection pool.
When a plurality of unified domain name connections are stored in the connection pool, the unified domain name connections can be searched from the connection pool according to the unified domain name corresponding to the unified domain name connections.
For example, the unified domain name connection stored in the connection pool includes an a connection and a B connection, and when the unified domain name connection corresponding to the unified domain name api.a.com needs to be searched for from the connection pool, since the a connection corresponds to the unified domain name api.a.com, it is confirmed that the connection corresponding to the unified domain name api.a.com exists in the connection pool, and the a connection is regarded as the connection corresponding to the unified domain name api.a.com.
To ensure the multiplexing rate of the unified domain name connection, the unified domain name connection may be keep alive so that it survives as long as possible.
Optionally, referring to fig. 3, after sending the first target service request to the domain name server by using the unified domain name connection corresponding to the unified domain name, the method may further include the following steps:
Step 301, determining whether to send a second target service request by adopting a unified domain name connection within the timing time of the timing unit, if yes, executingstep 303, otherwise executingstep 302.
Alternatively, the timing unit may be a timer in the client.
Alternatively, the timing time may be set empirically by humans.
Step 302, keep-alive data is sent to the domain name server.
Wherein the keep-alive data comprises heartbeat packets and/or preset requests.
Illustratively, the heartbeat package may be a client-custom command word.
The preset request may be, for example, a short request comprising a single byte.
When the keep-alive data comprises a heartbeat packet, the heartbeat packet can be sent to a corresponding server through a connection channel established by TCP;
when the keep-alive data comprises a preset request, the keep-alive data and the unified domain name are spliced to generate a corresponding unified domain name request, and the unified domain name request is sent to a domain name server through unified domain name connection.
In addition, since the server side has different configurations for the holding time of the TCP/HTTP, the TCP and HTTP disconnection times are different. Thus, based on the difference between the holding time of TCP and the holding time of HTTP configured at the server side, this embodiment provides the following two possibilities of sending keep-alive data:
Firstly, if TCP holding time is greater than HTTP holding time, then sending preset request of HTTP to keep alive the same domain name connection;
and secondly, if the TCP holding time is less than the HTTP holding time, the TCP heartbeat packet is sent to keep alive before the TCP holding time is up, and when the HTTP holding time is up, the preset request of HTTP is sent to keep alive.
Step 303, refreshing the timing unit to re-time.
Thedomain name server 120 obtains a first target service request sent by theclient 110; analyzing the first target service request to obtain a unified domain name; the first target service request is forwarded to thegateway device 130 corresponding to the unified domain name.
The domain name server extracts a domain name in the first target service request, namely a unified domain name, determines an IP address corresponding to the unified domain name as an address of thegateway device 130 through a pre-stored address table comprising correspondence between domain names and IP addresses, and sends the first target service request to thegateway device 130.
When the first target service request is implemented in a URL, the domain name server may parse the first target service request to obtain a unified domain name according to a composition format of the URL.
Gateway device 130 obtains a first target service request sent by a domain name server; acquiring path data of a first target service request; acquiring effective data representing an original service request from path data, wherein the effective data comprises target data representing a service server address and service data; generating an original service request corresponding to the effective data; and sending the original service request to a service server corresponding to the target data.
Wherein when the first target service request is implemented in URL, the gateway device may acquire path data from the first target service request according to a composition format of URL.
In this embodiment, when the domain name of the service request needs to converge to the unified domain name, the gateway device and the client may pre-agree on the format of the valid data in the first target service request, so that the gateway device may acquire the valid data from the first target service request according to the agreed format.
Wherein the pre-agreed format includes, but is not limited to, the location of valid data in the path data.
In this embodiment, the gateway device maintains a server cluster formed by at least one service server, where the server cluster is configured to respond to a service request corresponding to an access object. After the target data is acquired, determining the IP address of the server corresponding to the target data, and forwarding the first target service request to the service server corresponding to the IP address.
It should be noted that, the service server corresponding to the IP address may be one server or a server group formed by at least two servers.
After the service server obtains the first target service request, a service response of the first target service request is obtained, and the service response is sent to the client through the gateway equipment.
According to the technical scheme provided by the embodiment of the application, when an access instruction for an access object exists, a first target service request is obtained, the first target service request is sent to a domain name server through unified domain name connection, the first target service request is sent to gateway equipment through the domain name server, the gateway equipment obtains path data from the first target service request, obtains effective data representing an original service request from the path data, generates the original service request corresponding to the effective data, and forwards the first target service request to a service server corresponding to the target data. Because the domain name of the obtained first target service request is a unified domain name, that is, the domain names of the service requests of different services can be converged into the unified domain name by adopting the scheme of the application, and the first target service request is sent through the unified domain name connection, when different service requests of access objects need to be sent, the stages of domain name analysis, connection establishment and the like do not need to be executed each time, and the sending request stage is directly executed, so that the speed of the network request is improved.
The service access method in the embodiments of the present application is described below from the client side and the gateway device side, respectively, and, in view of the detailed description of the methods of the client side and the gateway device side in the above embodiments, detailed descriptions of these two schemes are not repeated here, and detailed descriptions of the above embodiments are omitted.
The following describes a service access method in an embodiment of the present application from a client side, referring to fig. 4, the method may include the following steps:
step 401, obtaining a first target service request with a unified domain name based on an access instruction to an access object;
step 402, a first target service request is sent to a domain name server by adopting unified domain name connection corresponding to the unified domain name.
Optionally, based on an access instruction to the access object, obtaining a first target service request with a domain name being a uniform domain name includes:
acquiring a service request corresponding to the access instruction;
acquiring a unified domain name corresponding to an access object;
and changing the domain name of the service request into a unified domain name to obtain a first target service request, wherein the path data of the first target service request comprises target data representing the address of the service server.
Optionally, based on the access instruction to the access object, obtaining the first target service request including the unified domain name includes:
acquiring a unified domain name corresponding to an access object;
a first target service request is generated based on the unified domain name, wherein path data of the first target service request includes target data characterizing a service server address.
Optionally, sending the first target service request to the domain name server by using a unified domain name connection corresponding to the unified domain name includes:
judging whether unified domain name connection corresponding to the unified domain name exists in the connection pool;
if the unified domain name connection exists, acquiring the unified domain name connection from the connection pool;
if the unified domain name connection does not exist, creating the unified domain name connection corresponding to the unified domain name;
and sending the first target service request to the domain name server by adopting the unified domain name connection.
Optionally, creating a unified domain name connection corresponding to the unified domain name includes:
according to the HTTP/2 protocol, a unified domain name connection is generated.
Optionally, after the first target service request is sent to the domain name server by adopting the unified domain name connection, the method further includes:
judging whether a uniform domain name connection is adopted to send a second target service request in the timing time of the timing unit;
if not, sending keep-alive data to the domain name server, wherein the keep-alive data comprises a heartbeat packet and/or a preset request;
if so, the timing unit is refreshed to be re-clocked.
The service access method in the embodiment of the present application is described below from the gateway device side, referring to fig. 5, the method may include the following steps:
Step 501, obtaining a first target service request sent by a domain name server;
step 502, obtaining path data of a first target service request;
step 503, obtaining effective data representing original service request from path data, wherein the effective data comprises target data representing service server address and service data;
step 504, generating an original service request corresponding to the effective data;
and 505, sending the original service request to a service server corresponding to the target data.
Based on the same inventive concept, an embodiment of the present application provides a service access apparatus, as shown in fig. 6, which may include:
an obtainingunit 601, configured to obtain a first target service request with a domain name being a uniform domain name based on an access instruction to an access object;
and the first sendingunit 602 is configured to send a first target service request to the domain name server by using a unified domain name connection corresponding to the unified domain name.
Based on the same inventive concept, an embodiment of the present application provides a service access apparatus, as shown in fig. 7, which may include:
a first obtainingunit 701, configured to obtain a first target service request sent by a domain name server;
a second obtainingunit 702, configured to obtain path data of the first target service request;
A third obtainingunit 703, configured to obtain, from the path data, valid data representing an original service request, where the valid data includes target data representing a service server address and service data;
agenerating unit 704, configured to generate an original service request corresponding to the valid data;
and thesecond sending unit 705 is configured to send the original service request to a service server corresponding to the target data.
Based on the same concept, the embodiment of the application also provides an electronic device, as shown in fig. 8, where the electronic device mainly includes: aprocessor 801, amemory 802, and acommunication bus 803, wherein theprocessor 801 and thememory 802 complete communication with each other through thecommunication bus 803. Thememory 802 stores a program executable by theprocessor 801, and theprocessor 801 executes the program stored in thememory 802 to implement the following steps:
obtaining a first target service request with a unified domain name based on an access instruction to an access object; a unified domain name connection corresponding to the unified domain name is adopted to send a first target service request to a domain name server;
or alternatively, the first and second heat exchangers may be,
acquiring a first target service request sent by a domain name server; acquiring path data of a first target service request; acquiring effective data representing an original service request from path data, wherein the effective data comprises target data representing a service server address and service data; generating an original service request corresponding to the effective data; and sending the original service request to a service server corresponding to the target data.
Thecommunication bus 803 mentioned in the above-mentioned electronic device may be a peripheral component interconnect standard (Peripheral Component Interconnect, abbreviated to PCI) bus or an extended industry standard architecture (Extended Industry Standard Architecture, abbreviated to EISA) bus, or the like. Thecommunication bus 803 may be divided into an address bus, a data bus, a control bus, and the like. For ease of illustration, only one thick line is shown in fig. 8, but not only one bus or one type of bus.
Thememory 802 may include random access memory (Random Access Memory, simply RAM) or may include non-volatile memory (non-volatile memory), such as at least one disk memory. Optionally, the memory may also be at least one storage device located remotely from theaforementioned processor 801.
Theprocessor 801 may be a general-purpose processor including a central processing unit (Central Processing Unit, CPU), a network processor (Network Processor, NP), a digital signal processor (Digital Signal Processing, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a Field programmable gate array (Field-Programmable Gate Array, FPGA), or other programmable logic device, discrete gate or transistor logic device, or discrete hardware components.
In yet another embodiment of the present application, there is also provided a computer-readable storage medium having stored therein a computer program which, when run on a computer, causes the computer to perform the person identification method described in the above embodiment.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, the processes or functions described in accordance with the embodiments of the present application are produced in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, by a wired (e.g., coaxial cable, optical fiber, digital Subscriber Line (DSL)), or wireless (e.g., infrared, microwave, etc.) means from one website, computer, server, or data center to another. The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains an integration of one or more available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape, etc.), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk), etc.
It should be noted that in this document, relational terms such as "first" and "second" and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Moreover, 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 one … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The foregoing is only a specific embodiment of the invention to enable those skilled in the art to understand or practice the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.