Disclosure of Invention
In view of this, one or more embodiments of the present specification provide a data processing method and apparatus for car pooling, and a computer device.
To achieve the above object, one or more embodiments of the present disclosure provide the following technical solutions:
according to a first aspect of one or more embodiments of the present specification, a data processing method for car sharing is provided, which is applied to a data processing system including a car sharing service terminal, a car sharing user client, and a secure computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the method comprises the following steps:
a target car sharing user client sends a target car sharing request to the car sharing service terminal, wherein the target car sharing request comprises an identity of the target car sharing user and a target car sharing address, and the target car sharing address is encrypted by a target transmission secret key corresponding to the target car sharing user;
and receiving a carpooling distribution result from the carpooling service terminal.
According to a second aspect of one or more embodiments of the present specification, there is provided a data processing method for car sharing, applied to a data processing system including a car sharing service terminal, a car sharing user client, and a secure computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the method comprises the following steps:
the carpooling service terminal receives a target carpooling request sent by a target carpooling user client, wherein the target carpooling request comprises an identity of a target carpooling user and a target carpooling address, and the target carpooling address is encrypted by a target transmission secret key corresponding to the target carpooling user client;
sending the car sharing request data to the safety calculation module;
receiving a carpooling distribution result sent by the safety calculation module;
and sending the carpooling distribution result to the target carpooling user client.
According to a third aspect of one or more embodiments of the present specification, a data processing method for car sharing is provided, which is applied to a data processing system including a car sharing service terminal, a car sharing user client, and a security computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the method comprises the following steps:
the safety calculation module acquires a target car sharing request sent by the car sharing service terminal, wherein the target car sharing request comprises an identity of a target car sharing user and a target car sharing address, and the target car sharing address is encrypted by a target transmission secret key corresponding to the target car sharing user;
obtaining a target transmission key corresponding to the target car sharing user based on the identity of the target car sharing user;
decrypting the target car sharing address based on the target transmission key;
matching the decrypted target car sharing address with the car sharing addresses of other car sharing users acquired by the safety calculation module according to preset car sharing user matching logic to obtain a car sharing distribution result;
and sending the carpooling distribution result to the carpooling service terminal.
According to a fourth aspect of one or more embodiments of the present specification, there is provided a data processing apparatus for car sharing, applied to a data processing system including a car sharing service terminal, a car sharing user client, and a secure computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the device is used for a car sharing user client, and comprises:
the system comprises a sending unit, a sharing service terminal and a sharing server, wherein the sending unit is used for sending a target sharing request to the sharing service terminal, the target sharing request comprises an identity of a target sharing user and a target sharing address, and the target sharing address is encrypted by a target transmission key corresponding to the target sharing user;
and the receiving unit is used for receiving the carpooling distribution result from the carpooling service terminal.
According to a fifth aspect of one or more embodiments of the present specification, there is provided a data processing apparatus for car sharing, applied to a data processing system including a car sharing service terminal, a car sharing user client, and a secure computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the device is used for the car sharing service terminal, and comprises:
the system comprises a receiving unit, a sending unit and a receiving unit, wherein the receiving unit is used for receiving a target car sharing request sent by a target car sharing user client, the target car sharing request comprises an identity of a target car sharing user and a target car sharing address, and the target car sharing address is encrypted by a target transmission key corresponding to the target car sharing user client;
the sending unit is used for sending the car pooling request data to the safety calculation module;
the receiving unit is further used for receiving the carpooling allocation result sent by the safety calculation module;
the sending unit is further configured to send the car sharing allocation result to the target car sharing user client.
According to a sixth aspect of one or more embodiments of the present specification, there is provided a data processing apparatus for car sharing, applied to a data processing system including a car sharing service terminal, a car sharing user client, and a secure computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the apparatus is for the secure computing module, comprising:
the system comprises an acquisition unit, a sharing service terminal and a sharing server, wherein the acquisition unit is used for acquiring a target sharing request sent by the sharing service terminal, the target sharing request comprises an identity of a target sharing user and a target sharing address, and the target sharing address is encrypted by a target transmission key corresponding to the target sharing user;
the obtaining unit is further used for obtaining a target transmission key corresponding to the target car sharing user based on the identity of the target car sharing user;
a decryption unit that decrypts the target car sharing address based on the target transmission key;
the calculation matching unit is used for matching the decrypted target car sharing address with the car sharing addresses of other car sharing users acquired by the safety calculation module according to preset car sharing user matching logic so as to obtain a car sharing distribution result;
and the sending unit is used for sending the car sharing distribution result to the car sharing service terminal.
According to a seventh aspect of one or more embodiments of the present specification, there is provided a computer device, comprising: a memory and a processor; the memory having stored thereon a computer program executable by the processor; and when the processor runs the computer program, executing the steps of the data processing method executed by the target car sharing user client.
According to a first aspect of one or more embodiments of the present specification, there is provided a computer apparatus comprising: a memory and a processor; the memory having stored thereon a computer program executable by the processor; and when the processor runs the computer program, executing the steps of the data processing method executed by the carpooling service terminal.
According to a first aspect of one or more embodiments of the present specification, there is provided a computer apparatus comprising: a memory and a processor; the memory having stored thereon a computer program executable by the processor; and when the processor runs the computer program, executing the steps of the data processing method executed by the safety computing module.
By applying the data processing method, the device and the computer equipment for car sharing provided by the specification, the safety calculation module is arranged to be connected with the car sharing service terminal, the safety calculation module is utilized to decrypt the encrypted car sharing request acquired by the car sharing service terminal from the user client and perform matching processing on the car sharing user, and the matching processing result is sent back to the user client through the car sharing service terminal. Although the car sharing request related to the car sharing user data privacy security (which may include the car sharing address of the user, which may relate to the user privacy) passes through the car sharing service terminal, the information related to the car sharing user data privacy security transmitted by the car sharing service terminal may be encrypted information, so that the security risks such as data leakage and the like which may occur at the car sharing service terminal are avoided.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with one or more embodiments of the present specification. Rather, they are merely examples of apparatus and methods consistent with certain aspects of one or more embodiments of the specification, as detailed in the claims which follow.
It should be noted that: in other embodiments, the steps of the corresponding methods are not necessarily performed in the order shown and described herein. In some other embodiments, the method may include more or fewer steps than those described herein. Moreover, a single step described in this specification may be broken down into multiple steps for description in other embodiments; multiple steps described in this specification may be combined into a single step in other embodiments.
The data processing method described in the embodiments provided in this specification can be applied to a data processing system including a car sharing service terminal, a car sharing user client, and a security calculation module. The car sharing service terminal can comprise a computer device or a computer cluster and other terminals which are set by a shared riding service provider for receiving the car sharing request of the user and carrying out the services of car sharing matching and the like. The car sharing user client is a computer equipment terminal held by the car sharing user for services such as car sharing request lifting and car sharing distribution result receiving. The safety calculation module can be realized by software, or by hardware or a combination of the software and the hardware; taking software implementation as an example, as a module in a logical sense, the module can be formed by integrating the module in the car pooling service terminal and reading a corresponding computer program instruction into a memory for running through a Central Processing Unit (CPU) of the car pooling service terminal; from the hardware aspect, the safety computing module can be a hardware device which is independent of the car sharing service terminal and comprises a CPU, an internal memory and a storage; or a soft-hard combination module sharing hardware facilities with the car pool service terminal part. For example, the processor of the secure computing module is a partial area that is set by dividing in the processor of the car pool service terminal, and the secure computing module is a software and hardware combined computing processing module that is established based on the partial area of the processor, such as an enclave trusted secure computing environment based on an Intel chip.
Fig. 1 is a schematic data processing flow diagram of a service data processing system for car pooling provided in an exemplary embodiment of the present specification. As shown in fig. 1, the car pooling service terminal is in communication connection with the secure computing module, and the car pooling service terminal is in communication connection with the car pooling user client. It should be noted that "communication connection" in the embodiments of the present specification includes, but is not limited to, direct communication connection between terminal devices or between a terminal device and a module, and may also include indirect communication connection between terminal devices or between a terminal device and a module through other terminal devices, and the like.
In this embodiment, the secure computing module and the car sharing user client negotiate a transmission key corresponding to the car sharing user, and the transmission key may be used to encrypt or decrypt service data to be transmitted by communication between the secure computing module and the car sharing user client. Because the transmission key is only obtained by negotiation between the security calculation module and the car sharing user client, the car sharing service terminal cannot decrypt the transmitted or stored service data encrypted by the transmission key because the car sharing service terminal cannot obtain the transmission key, so that the original text of the encrypted service data cannot be obtained.
As shown in fig. 1, a data processing method provided in one or more embodiments of the present specification includes:
102, a target car sharing user client sends a target car sharing request to the car sharing service terminal, wherein the target car sharing request comprises an identity of the target car sharing user and a target car sharing address, and the target car sharing address is encrypted by a target transmission secret key corresponding to the target car sharing user.
The identification of the target car sharing user can be a unique identification ID known by the data processing system and used for identifying the target car sharing user. The target car sharing address can comprise information of the journey that the target car sharing user wants to share cars with other users (which can be driver users or riding users), the destination of the car sharing, the starting place of the car sharing and the like. The target car sharing address has personal privacy as the target car sharing address comprises the position or travel information of the target car sharing user; particularly, when the target car sharing address comprises information such as a home address or a company address of the target car sharing user, some car sharing users are reluctant to disclose the target car sharing address information to other car sharing users.
And 104, the carpooling service terminal sends the target carpooling request to the safety calculation module.
And the carpooling service terminal outputs and transmits the target carpooling request to a safety calculation module after acquiring the target carpooling request. As described above, since the car sharing service terminal does not have the target transmission key, the car sharing service terminal cannot know the original text information of the target car sharing address related to the privacy of the target user, thereby preventing the leakage of the target car sharing address information at the car sharing service terminal. In this embodiment, the car sharing service terminal may be directly connected to the security calculation module, and send the target car sharing request including the identity and the target car sharing address of the target car sharing user to the security calculation module.
And 106, the safety calculation module obtains a target transmission key corresponding to the target car sharing user based on the identity of the target car sharing user.
Because the security calculation module has negotiated with the car sharing user client a transmission key corresponding to the car sharing user, the security calculation module can obtain a target transmission key corresponding to the target car sharing user based on the identity of the target car sharing user.
The process of the secure computing module negotiating the transmission key with the car sharing user client may include:
the carpooling user client sends an encrypted first secret key to the carpooling service terminal, wherein the first secret key is encrypted based on a public key of the safety computing module;
the carpooling service terminal sends the encrypted first secret key to the safety calculation module;
the secure computing module decrypts the encrypted first key based on its own private key to obtain the first key;
and the security calculation module calculates and obtains the transmission key based on the first key according to a preset transmission key calculation rule.
The security calculation module can store the transmission key obtained through negotiation in an area which cannot be accessed by the carpooling service terminal for key management, so that the physical isolation of the transmission key and the carpooling service terminal is achieved; further, for safety, the security calculation module may renegotiate the transmission key with the target car sharing user client periodically or at set target car sharing request sending times of the target user. Or, the target car sharing user client may send the encrypted first key while sending the target car sharing request each time, so that the security calculation module may decrypt the encrypted first key based on its own private key to obtain a transmission key for the current target car sharing request data, and further decrypt the first service data; therefore, the one-time pad can further improve the safety protection of the privacy data contained in the target car sharing data, such as the target car sharing address data.
Those skilled in the art will appreciate that the preset transmission key calculation rule is different, and the way of obtaining the transmission key corresponding to the car pool user based on the first key is also different.
In an illustrative embodiment, the transmission key is equal to the first key. In another illustrated embodiment, the data processing system may engage the security calculation module and the car pool user client to use the same elliptic curve cryptography algorithm and DH exchange key in the base point selection as the transmission key for encrypting the service data (e.g., the target car pool address data); when a DH exchange key is used as a transmission key, the product of the public key of the safety calculation module and the private key of the car sharing user client side is the same as the product of the private key of the safety calculation module and the public key of the car sharing user client side, and both the products can be used as the transmission key; therefore, as long as the public key of the car sharing user client is obtained, the safety calculation module can perform operations such as decryption of the service data and encryption of the service data processing result based on the product of the private key of the safety calculation module and the public key of the car sharing user client.
Further, the client of the car sharing user can periodically replace the public key-private key pair so as to improve the safety factor of service data transmission. Similarly, the process of negotiating the transmission key with the secure computing module by the car pool user client based on the replacement public key (hereinafter referred to as a random public key) may include:
the carpooling user client sends the encrypted random public key to the carpooling service terminal, wherein the random public key is encrypted based on the public key of the safety calculation module;
the carpooling service terminal sends the encrypted random public key to the safety calculation module again;
the security calculation module decrypts the encrypted random public key based on a private key of the security calculation module to obtain the random public key;
and the safety calculation module calculates the product of the random public key and the private key of the safety calculation module to obtain the transmission key.
Similarly, the random public key of the car sharing user client can be replaced periodically, or one-time pad is realized, so that the safety of service data transmission is further improved; the detailed process is not described herein.
In addition to the specific processes of negotiating the transmission key with the car-sharing user client by the security computing module according to the above embodiments, other specific negotiation processes that may occur to those skilled in the art based on the existing encryption technology should fall within the protection scope of negotiating the transmission key described in this specification.
And 108, the safety calculation decrypts the target car sharing address based on the target transmission key.
And 110, the safety calculation module matches the car sharing addresses of other car sharing users acquired by the safety calculation module based on the decrypted target car sharing address according to preset car sharing user matching logic so as to obtain a car sharing allocation result.
The safety calculation module may obtain target car sharing addresses of a plurality of users to be car shared according to the method described in steps 102 to 108 of this embodiment, and then match other car sharing users that meet the matching logic of the car sharing users for the target car sharing users according to the matching logic of the car sharing users preset by the system. The specification does not limit the specific content of the car sharing user matching logic, and the safety calculation module can match other car sharing users meeting the system threshold setting for the users based on the indexes of the starting position similarity, the end position similarity, the travel similarity and the like of each user to be car shared.
As will be readily appreciated by those skilled in the art, the above-mentioned car sharing allocation result may include notification-type messages such as car sharing success or car sharing failure, and may further include identities of other car sharing users who can participate in car sharing with the target car sharing user, or other information of the above-mentioned other car sharing users. In a further illustrated embodiment, the car pool allocation result may further include, by authorization of another car pool user, a target car pool address of another car pool user who can participate in car pool with the target car pool user, wherein, in order to keep target car pool address information of the another car pool user secret to the car pool service terminal, the target car pool address of the another car pool user is encrypted by the security calculation module based on the target transmission key.
And step 112, the safety calculation module sends the car sharing distribution result to the car sharing service terminal.
And step 114, the car sharing service terminal sends the car sharing distribution result to the car sharing user client.
When the car sharing allocation result includes the address information of other car sharing participating users encrypted by the target transmission key, the method of this embodiment further includes step 116, where the car sharing user client decrypts the target car sharing address based on the target transmission key.
In the embodiment, the safety calculation module is arranged to decrypt the car sharing request data and perform car sharing user matching calculation processing based on the car sharing request data inside the safety calculation module, and send the car sharing distribution result back to the user client. In the process, the data information (at least comprising the address information of the car sharing user) related to the privacy of the car sharing user is invisible to the car sharing service terminal, so that the data information (at least comprising the address information of the car sharing user) related to the privacy of the car sharing user is ensured not to be leaked at the car sharing service terminal.
As mentioned above, the above-mentioned safety calculation module can be implemented by software independently operated by the car sharing service terminal, so as to achieve data isolation at a software level; in order to further improve the data security of the data processing of the safety computing module, the safety computing module can be combined with the car sharing service terminal in a mode of sharing part of hardware or not sharing independent hardware.
The form of independent hardware not sharing hardware can be understood as that the safety computing module runs on independent terminal equipment completely, and the safety computing module and the car sharing service terminal can be connected through communication modules of all terminals. The form of partially shared hardware has become possible with the evolution of computer processor technology: for example, the car pool service terminal can encapsulate the legal business data calculation processing program in a trusted computing environment of the CPU to protect the CPU from being attacked by malicious software or programs, and the trusted computing environment cannot be accessed by privileged or non-privileged software or programs, that is, once the business processing program and the business data are located in the trusted computing environment, even an operating system or a vmm (hypervisor) cannot affect codes and data in the trusted computing environment.
Through the trusted computing environment division technology, the processor of the safety computing module divides a set partial area for the processor of the car-sharing service terminal, and physical isolation of the service data and the processing of the service data to the car-sharing service terminal is achieved physically. Compared with a completely independent hardware terminal mode, the implementation mode of setting the safety computing module based on the trusted computing environment technology is convenient to develop and reduces the operation cost; belonging to the preferred embodiments provided in the specification.
Corresponding to the above flow implementation, the embodiments of the present specification further provide various data processing apparatuses. The above-mentioned means can be implemented by software, and also can be implemented by hardware or by a combination of software and hardware. Taking a software implementation as an example, the logical device is formed by reading a corresponding computer program instruction into a memory for running through a Central Processing Unit (CPU) of the device. In terms of hardware, the device in which the data processing apparatus is located generally includes other hardware such as a chip for transmitting and receiving wireless signals and/or other hardware such as a board for realizing a network communication function, in addition to the CPU, the memory, and the storage shown in fig. 5.
FIG. 2 shows a data processing apparatus 20 for car sharing provided in the present specification, which is applied to a data processing system including a car sharing service terminal, a car sharing user client, and a security computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the device 20 is used for a car sharing user client, and comprises:
a sending unit 202, configured to send a target car-sharing request to the car-sharing service terminal, where the target car-sharing request includes an identity of the target car-sharing user and a target car-sharing address, and the target car-sharing address is encrypted by a target transmission key corresponding to the target car-sharing user;
a receiving unit 204, configured to receive a car pooling allocation result from the car pooling service terminal.
In yet another illustrated embodiment, the ride share allocation result includes identities of other ride share users that may participate in ride sharing with the target ride share user.
In a further illustrated embodiment, the ride share allocation result further comprises target ride share addresses of other ride share users who can participate in ride sharing with the target ride share user, wherein the target ride share addresses of the other ride share users are encrypted by the security calculation module based on the target transmission key;
the device further comprises: a decryption unit 206, configured to decrypt the target car pool address based on the target transmission key.
FIG. 3 illustrates a data processing apparatus 30 for car pooling provided in a further embodiment of the present specification, applied to a data processing system comprising a car pooling service terminal, a car pooling user client, and a security computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the device 30 is used for the car pooling service terminal, and comprises:
a receiving unit 302, configured to receive a target car sharing request sent by a target car sharing user client, where the target car sharing request includes an identity and a target car sharing address of the target car sharing user, and the target car sharing address is encrypted by a target transmission key corresponding to the target car sharing user client;
a sending unit 304, configured to send the car pooling request data to the safety computing module;
the receiving unit 302 is further configured to receive a car pooling allocation result sent by the security calculating module;
the sending unit 304 is further configured to send the car-sharing allocation result to the target car-sharing user client.
In yet another illustrated embodiment, the ride share allocation result includes identities of other ride share users that may participate in ride sharing with the target ride share user.
In a further illustrated embodiment, the ride share allocation result further comprises target ride share addresses of other ride share users who can participate in ride sharing with the target ride share user, wherein the target ride share addresses of the other ride share users are encrypted by the security calculation module based on the target transmission key;
FIG. 4 illustrates a data processing apparatus 40 for car pooling provided by a further embodiment of the present specification, applied to a data processing system comprising a car pooling service terminal, a car pooling user client, and a security computing module; the car sharing service terminal is in communication connection with the safety calculation module and is in communication connection with the car sharing user client; the safety calculation module and the car sharing user client negotiate a transmission key corresponding to the car sharing user; the apparatus 40 is for the secure computing module, and includes:
an obtaining unit 402, configured to obtain a target car sharing request sent by the car sharing service terminal, where the target car sharing request includes an identity and a target car sharing address of the target car sharing user, and the target car sharing address is encrypted by a target transmission key corresponding to the target car sharing user;
the obtaining unit 402 is further configured to obtain a target transmission key corresponding to the target car sharing user based on the identity of the target car sharing user;
a decryption unit 404 that decrypts the target car pool address based on the target transmission key;
the calculation matching unit 406 is used for matching the decrypted target car sharing address with the car sharing addresses of other car sharing users acquired by the safety calculation module according to a preset car sharing user matching logic so as to obtain a car sharing allocation result;
a sending unit 406, configured to send the car pooling allocation result to the car pooling service terminal.
In yet another illustrated embodiment, the ride share allocation result includes identities of other ride share users that may participate in ride sharing with the target ride share user.
In a further illustrated embodiment, the ride share allocation result further comprises target ride share addresses of other ride share users who can participate in ride sharing with the target ride share user, wherein the target ride share addresses of the other ride share users are encrypted by the security calculation module based on the target transmission key.
The implementation processes of the functions and actions of each unit in each device are specifically described in the implementation processes of corresponding steps in the method, and related parts are described in part of the description of the method embodiment, which is not described herein again.
The above-described embodiments of the apparatus are merely illustrative, and the units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical modules, may be located in one place, or may be distributed on a plurality of network modules. Some or all of the units or modules can be selected according to actual needs to achieve the purpose of the solution in the specification. One of ordinary skill in the art can understand and implement it without inventive effort.
The apparatuses, units and modules illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. A typical implementation device is a computer, which may take the form of a personal computer, laptop computer, cellular telephone, camera phone, smart phone, personal digital assistant, media player, navigation device, email messaging device, game console, tablet computer, wearable device, or a combination of any of these devices.
Corresponding to the method embodiment, the embodiment of the present specification further provides a computer device, which includes a memory and a processor. Wherein the memory has stored thereon a computer program executable by the processor; the processor executes the steps of the service data processing method executed by the carpooling service terminal in the embodiment of the present specification when running the stored computer program. For a detailed description of each step of the service data processing method executed by the car-sharing service terminal, please refer to the previous contents, which are not repeated.
Corresponding to the method embodiment, the embodiment of the present specification further provides a computer device, which includes a memory and a processor. Wherein the memory has stored thereon a computer program executable by the processor; the processor executes the steps of the service data processing method executed by the car pooling user client in the embodiment of the present specification when running the stored computer program. For a detailed description of each step of the service data processing method executed by the client of the car-sharing user, please refer to the previous contents, which are not repeated.
Corresponding to the method embodiment, the embodiment of the present specification further provides a computer device, which includes a memory and a processor. Wherein the memory has stored thereon a computer program executable by the processor; the processor executes the steps of the business data processing method executed by the security computation module in the embodiments of the present specification when running the stored computer program. For detailed descriptions of the steps of the service data processing method executed by the security computing module, please refer to the previous contents, and they are not repeated.
The above description is only a preferred embodiment of the present disclosure, and should not be taken as limiting the present disclosure, and any modifications, equivalents, improvements, etc. made within the spirit and principle of the present disclosure should be included in the scope of the present disclosure.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement 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, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
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 like elements in a process, method, article, or apparatus that comprises the element.
As will be appreciated by one skilled in the art, embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present description 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 so forth) having computer-usable program code embodied therein.