Detailed Description
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The implementations described in the following exemplary examples do not represent all implementations consistent with the invention. Rather, they are merely examples of apparatus and methods consistent with aspects of the invention as detailed in the accompanying claims.
Furthermore, the drawings are merely schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and thus a repetitive description thereof will be omitted. Some of the block diagrams shown in the figures are functional entities and do not necessarily correspond to physically or logically separate entities.
The disclosure first provides a data transmission method of the internet of things. The internet of things (IoT, internet of things), i.e. "internet of everything connected", is an information carrier based on the internet, a traditional telecommunication network, etc., which enables all common physical objects that can be addressed independently to form an interconnection network, which is an extended and expanded network based on the internet, and which combines various information sensing devices with the internet to form a huge network, thus realizing interconnection of people, machines, and things at any time and any place. The data of the Internet of things is data generated by sensing, identifying and the like of common physical objects which can be independently addressed in the Internet of things. The common physical object is generally an internet of things device, for example, an intelligent thermometer, an intelligent washing machine, an intelligent desk lamp and other internet of things devices with a data transmission function. The internet of things data transmission is a process that the internet of things equipment transmits perceived or collected data to other terminals or equipment, and the internet of things data transmission method provided by the disclosure is a process that the internet of things equipment perceived or collected data is transmitted to an internet of things platform, and the internet of things platform can provide support for a series of internet of things services such as inter-equipment connection communication, equipment data collection cloud, data analysis and statistics, identity security authentication, equipment management and the like.
The implementation terminal of the present disclosure may be any device having an operation processing and communication function, which may be connected to an external device, for receiving or transmitting data, and specifically may be a portable mobile device, for example, a smart phone, a tablet computer, a notebook computer, PDA (Personal Digital Assistant), or the like, or a fixed device, for example, a computer device, a field terminal, a desktop computer, a server, a workstation, or the like, or may be a collection of multiple devices, such as a physical infrastructure of cloud computing or a server cluster.
Preferably, the implementation terminal of the present disclosure may be a server or a physical infrastructure of cloud computing.
Fig. 1 is a schematic diagram of a system architecture to which an internet of things data transmission method is applied, according to an exemplary embodiment. As shown in fig. 1, the system architecture includes an internet of things platform 120, a user terminal 150 and an internet of things device 140, where the internet of things platform 120 further includes a plurality of internet of things servers 130 and an internet of things control center 110, the internet of things control center 110 includes a control center 111 and a database 112, the database 112 may be a data processing center of the internet of things platform 110, and the implementation terminal of the present disclosure is one server of the plurality of internet of things servers 130. It can be seen that in this embodiment, the internet of things device 140 is an intelligent thermometer. When the data transmission method of the internet of things provided by the present disclosure is applied to the system architecture shown in fig. 1, a specific process may be as follows: the user accesses the control center 111 of the internet of things platform by using the user terminal 150 to register data, obtain a product identifier (product key), a device name (DeviceName) and a secret key (secret), create a plurality of topics (topic) corresponding to the product identifier, write the data into the database 112 for storage by the control center 111 of the internet of things platform, and write the data into the internet of things device 140 after obtaining the data by the user; one of the plurality of internet of things servers 130 of the internet of things platform can randomly initiate requests for authority authentication of the internet of things devices to each internet of things device, after the internet of things device 140 receives the requests, the internet of things device responds to the internet of things server, three data including a product identifier, a device name and a time stamp and a first signature generated by using a secret key and a specific encryption mode of the three data are sent to the internet of things server, the internet of things server analyzes all obtained data to obtain the product identifier, the device name, the time stamp and the first signature, then the internet of things server can pull the secret key which is stored before and corresponds to the product identifier to the database 112, encrypt the three data from the internet of things device 140 by using the same encryption mode to obtain a second signature, and when the first signature is consistent with the second signature, the secret key which indicates that the internet of things device 140 is an owner of the product identifier sent by the internet of things and which is in possession of the secret key, so that the internet of things device can send the password to the internet of things device 112 through the token, the password is generated by the internet of things device, and the password is sent to the internet of things device 112; then, the internet of things server synchronizes the token, the product identifier and the corresponding theme of the internet of things device 140 passing through the authority authentication to the memories of other internet of things servers in the internet of things servers 130 through the message queue, so that the other internet of things servers have the capability of performing authority verification on the internet of things device 140, after the internet of things device 140 receives a request for acquiring acquired data sent by one of the other internet of things servers, the internet of things device 140 responds, the token, the theme and the acquired data are returned to the internet of things server sending the request, the internet of things server sending the request firstly confirms whether the token is out of date, then determines the product identifier corresponding to the token, further determines the theme corresponding to the product identifier, compares the theme with the theme sent by the internet of things device 140, determines whether the theme is consistent with the theme sent by the internet of things device 140, and finishes the task of the internet of things device 140 when the token is not out of date and the theme consistent with the theme returned by the internet of things device 140 is present, and the internet of things device 140 can be allowed to process the data through the database of internet of things device 112 by checking the internet of things platform 112. Thus, the whole process of sending the data collected by the internet of things device 140 to the internet of things platform 120 is realized.
In the related art, tokens, topics, product identifiers and the like are generally all stored on an internet of things platform, for example, the tokens, the topics, the product identifiers and the like can be stored in a database of the internet of things platform, so that data (such as topic) used for checking are acquired from the internet of things platform when the permission checking is performed each time, topic (topic) objects are created and instantiated, a large amount of memory resources are occupied, the topic query efficiency is reduced, and the permission checking efficiency is further reduced due to the increased time consumption of querying the data from the internet of things platform; in the process, since the data used for verification is synchronized into the memory of the corresponding Internet of things server, on one hand, a large number of theme objects are not required to be created and instantiated, the occupation of memory resources is reduced, and on the other hand, the permission verification can be directly carried out in the memory, the inquiry to the Internet of things platform is not required, the inquiry time is reduced, and the permission verification efficiency is improved.
It should be noted that, fig. 1 is only one embodiment of the present disclosure, although in the embodiment shown in fig. 1, the plurality of internet of things service ends belong to the internet of things platform, the data finally collected by the internet of things device is sent to the database of the internet of things platform, the internet of things service end sends data to the internet of things platform through the message queue, and one internet of things service end synchronizes the token, the product identifier and the corresponding subject three data to other internet of things service ends, in other embodiments or specific applications, the plurality of internet of things service ends may be located outside the internet of things platform, the data finally collected by the internet of things device may be sent to any unit or module in the internet of things platform, the internet of things service end may not send data to the internet of things platform through the message queue, and one internet of things service end may only synchronize the product identifier and the corresponding subject three data to other internet of things service ends, so that the protection scope of the present disclosure should not be limited in any way.
Fig. 2 is a flowchart illustrating a method of data transmission of the internet of things according to an exemplary embodiment. The data transmission method of the internet of things in this embodiment is executed by a first internet of things server of a plurality of internet of things servers, where the first internet of things server may be the same type of device as other internet of things servers, or may be different types of devices, and the first internet of things server may be a server, as shown in fig. 2, and includes the following steps:
step 220, receiving the target data uploaded by the target internet of things device.
The target data comprise internet of things data and first permission verification data, and the target data are sent by the target internet of things device according to a preset internet of things protocol.
The target internet of things device is an internet of things device which is used for sending data to the internet of things platform, and can be any device capable of sensing information and transmitting information, such as an intelligent desk lamp, an intelligent thermometer and the like. The target internet of things device can upload the target data by actively sending the target data, or by making a corresponding response according to an external request.
The preset internet of things protocol may be any internet of things protocol, for example, coAP (Constrained Application Protocol, limited application protocol), MQTT (Message Queuing Telemetry Transport, message queue telemetry transport protocol), and the like.
The internet of things data is data generated when the target internet of things device runs, and for example, the data can be temperature data sensed by an intelligent thermometer. The first permission verification data is data for performing permission verification on data uploaded by the target internet of things device, and may include data such as a token (token), a theme (topic), and the like.
Step 230, determining whether the uploading of the target data is legal or not based on the at least one second permission check data stored in the first internet of things server side memory and the first permission check data.
And the second permission verification data is synchronized to the first Internet of things server in advance by a second Internet of things server in the plurality of Internet of things servers.
It can be clear that the at least one second permission check data is pre-stored in the memory of the first internet of things server.
In one embodiment, the at least one second permission check data is stored in a queue of the first internet of things server memory.
In one embodiment, the queues follow the principle of FIFO (First Input First Output, first in first out).
In an embodiment, the at least one second permission verification data is stored in a convergenthashmap in the memory of the server of the first internet of things.
ConcurrentHashMap is a concurrent container which adopts modes such as array, segment lock and the like to realize efficient data retrieval.
The benefit of this embodiment is that, by storing the second permission verification data in the convergenthashmap, since the complexity of the query time of the hash is usually O (1), the time of query matching is reduced, and the verification efficiency of the permission is improved, so that the performance of the system can be greatly improved.
Determining whether the uploading of the target data is legal is a process of determining whether to allow uploading of the target data.
In one embodiment, the second rights verification data includes a second token, a second product identifier corresponding to the second token, and at least one second topic class corresponding to the second product identifier, and the first rights verification data includes a first token, a first product identifier, and a first topic, and the specific steps of step 230 may be as shown in fig. 3.
Fig. 3 is a detailed flow chart of step 230 according to an embodiment illustrated in the corresponding embodiment of fig. 2, see fig. 3, comprising the steps of:
and 230', if one second right check data exists in the at least one second right check data and meets a first matching condition with the first right check data, determining that the uploading of the target data is legal, otherwise, determining that the uploading of the target data is illegal.
The first matching condition with the first authority verification data is as follows: the second token is consistent with the first token, the second product identifier corresponding to the second token is consistent with the first product identifier, and one second theme class exists in at least one second theme class corresponding to the second product identifier and corresponds to the first theme.
The at least one second right verification data may include one second right verification data, or may include a plurality of second right verification data, and for each of the at least one second right verification data, it may be determined whether a first matching condition with the first right verification data is satisfied.
In one embodiment, the token (token) is a randomly generated string, the product identifier (product key) is a globally unique identifier issued by the platform of the internet of things for the product, the topic (topic) class is a set of topics (topic) corresponding to the product identifier, and the topic (topic) is a UTF-8 string, which represents a message transmission intermediary.
In one embodiment, a theme class includes a product identification parameter value, a device name parameter, and a rights component, and a theme corresponding to the theme class includes a product identification parameter value, a device name parameter value, and a rights component.
For example,/0 WFDSF9324JQ/$ { YouDeviceName }/user/update may be a theme class, where 0WFDSF9324JQ is the product identification parameter value corresponding to the product identification (ProducKey), $ { YouDeviceName } is the device name parameter corresponding to a device name,/user/update is the rights part; the/0 WFDSF9324JQ/device1/user/update may be a topic corresponding to the topic class, where device1 is a device name parameter value corresponding to a device name (device name), a topic corresponds to whether the Internet of things device has permission to operate on the message of the topic, and the "ADFKK45WERJ9SOD92" may be a token.
In one embodiment, the topic class corresponds to a topic, meaning that the rights component in the topic class is the same as the rights component in the topic if the product identity is consistent.
For example,/0 WFDSF9324JQ/$ { YouDeviceName }/user/update is a topic class,/0 WFDSF9324JQ/device1/user/update is a topic, and since the device names of the two are identical to "0WFDSF9324JQ", and the rights in the topic class are both/user/update, i.e., the rights in the topic class are the same as the rights in the topic, the topic class corresponds to the topic.
In one embodiment, the second theme class includes a product identification parameter, a device name parameter, and a rights component.
For example,/$ { YourProductKey }/device1/user/update may be a second theme class.
Since the second product identifier (ProductKey) is a separate part in the second rights verification data, the part of the second theme class corresponding to the ProductKey may be replaced by $ { YourProductKey } without losing information in the second rights verification data.
In one embodiment, the second token is a string randomly generated by the second internet service.
In the embodiment shown in fig. 3, whether the uploading of the target data is legal is determined by matching the token, the product identifier and the theme class stored in the first internet of things server with the token, the product identifier and the theme in the first permission check data, and since the information required for determining whether the uploading of the target data is legal is stored in the memory of the first internet of things server in advance, the information is not required to be queried or requested to be acquired from an external terminal, the check efficiency is improved, and in addition, since the second permission check data is stored in the memory, too many objects are not required to be created by a virtual machine when the second permission check data is used for check, and the consumption of the memory is reduced.
In one embodiment, the second permission verification data includes a second product identifier and at least one second theme class corresponding to the second product identifier, the first permission verification data includes a first token, a first product identifier and a first theme, and the determining whether the uploading of the target data is legal based on the at least one second permission verification data and the first permission verification data stored in the first internet of things server side memory includes:
pulling a product identifier which is stored in advance corresponding to the first token from an internet of things platform;
if the second permission verification data which is consistent with the second product identifier and is included in the product identifier meets a second matching condition with the first permission verification data, determining that the uploading of the target data is legal, otherwise, determining that the uploading of the target data is illegal, wherein the second matching condition with the first permission verification data is as follows: one second theme class exists in at least one second theme class corresponding to the second product identifier, and the second theme class corresponds to the first theme.
In this embodiment, the second permission verification data pre-synchronized by the second internet of things server only includes the second product identifier and at least one corresponding theme class, when verification is performed, the corresponding product identifier needs to be pulled from the internet of things platform, and a trade-off is implemented between the data amount synchronized by the second internet of things server and the verification efficiency.
Step 240, if it is determined that the uploading method of the target data is performed, the internet of things data in the target data is sent to a data processing center of the internet of things platform.
The data processing center of the internet of things platform can be any one or more modules or units capable of storing data in the internet of things platform.
After the uploading method of the target data is determined, the internet of things data can be sent to the internet of things platform, and the internet of things platform performs further operations such as statistics, processing and processing.
In one embodiment, if the uploading method of the target data is determined, sending the internet of things data in the target data to a data processing center of the internet of things platform, including:
if the uploading method of the target data is determined, the internet of things data in the target data is sent to a second message queue, and the internet of things data is sent to a data processing center of an internet of things platform through the second message queue.
The method and the system have the advantages that the message queue is used for sending data, so that the processing pressure of the data processing center of the Internet of things platform is relieved, and the reliability and the stability of the Internet of things platform are guaranteed.
In one embodiment, the data processing center of the internet of things platform is a Redis server of the internet of things platform.
In one embodiment, the method further comprises:
receiving a theme class update request sent by an internet of things platform through a third message queue, wherein the theme class update request comprises a second product identifier and at least one second update theme class corresponding to the second product identifier, the theme class update request is sent to the plurality of internet of things servers through the third message queue by the internet of things platform, and the second update theme class is submitted to the internet of things platform through a user terminal by a user of target internet of things equipment identified by the second product identifier;
determining at least one second theme class corresponding to the at least one second updating theme class from at least one second theme class corresponding to the second product identifier in the theme class updating request stored locally, and taking the at least one second theme class as a second target theme class;
and replacing the second target theme class with a corresponding second updated theme class.
At present, because the structural tree of the theme is generally loaded through Resource when the service is initialized, in the service running process, the topic type which can be processed by the service cannot be changed, if the service needs to be restarted by the change, the service processing efficiency is reduced.
In summary, according to the data transmission method of the internet of things provided in the embodiment of fig. 2, the time consumption for querying the database or the server is reduced, so that the verification efficiency and the data transmission efficiency of the internet of things are improved, and the consumption of the memory is reduced.
Fig. 4 is a flow chart of steps preceding step 230 according to an embodiment shown in the corresponding embodiment of fig. 2. As shown in fig. 4, the method comprises the following steps:
step 210, receiving the second permission verification data synchronized by a second internet of things server of the plurality of internet of things servers.
And after the second permission verification data is obtained for the second internet of things server, synchronizing the second internet of things server to at least one internet of things server except the second internet of things server in the plurality of internet of things servers, and receiving the second permission verification data by the first internet of things server as one internet of things server in the at least one internet of things server.
It should be noted that, although step 210 is located before step 220 in the present embodiment, as described in the description of fig. 4, step 210 may be performed at any step or time before step 230, for example, may be performed after step 220, or even may be performed simultaneously with step 220, which is not limited in this disclosure.
In one embodiment, the receiving the second permission verification data synchronized by a second internet of things server of the plurality of internet of things servers includes:
and receiving the second permission verification data synchronized by a second internet of things server of the plurality of internet of things servers through a first message queue.
In one embodiment, the process of the second internet service end obtaining the second permission verification data may be as shown in fig. 5. FIG. 5 is a flowchart illustrating the second networked server obtaining the second rights verification data according to an exemplary embodiment, as shown in FIG. 5, including the steps of:
step 510, receiving permission authentication data sent by a target internet of things device, so as to perform permission authentication on the target internet of things device.
The permission authentication data comprise a product identifier, a device name, a timestamp and a password, the password is obtained by encrypting a hash parameter by the target internet of things device through a preset hash algorithm and a device key which is obtained in advance, the hash parameter is generated based on the product identifier, the device name and the timestamp, the product identifier, the device name and the device key which are obtained in advance are generated by the internet of things platform after a user sends a registration request to the internet of things platform through a user terminal, and the product identifier, the device name and the device key which are obtained in advance are obtained by the user, and then the password is written into the target internet of things device.
Since the steps shown in fig. 5 are a process in which the second internet service obtains the second rights verification data, the embodiment of fig. 5 is performed by the second internet service.
The sending of the permission authentication data by the target internet of things device to the second internet of things server may be actively sent by the target internet of things device, or may be sent by the target internet of things device in response to a request of the second internet of things server.
The predetermined hash algorithm may include, but is not limited to, MD5, SHA-1, SHA-2, SHA-256, and the like. The hash parameter may be generated based on the product identification, the device name, and the timestamp in a variety of ways, such as the product identification, the device name, and the timestamp may be combined in a predetermined manner as the hash parameter.
And step 520, analyzing the authority authentication data to obtain the product identification in the authority authentication data.
The product identification is organized in a certain format in the right authentication data, and can be obtained from the right authentication data by analyzing in a specific mode.
And step 530, sending a device key acquisition request to the internet of things platform by using the product identifier to acquire a device key corresponding to the product identifier.
And step 540, encrypting the hash parameters by using the acquired device key and a preset hash algorithm to obtain an encryption result.
And step 550, if the encryption result is consistent with the password, after taking the product identifier as a second product identifier, randomly generating a second token corresponding to the second product identifier.
When the encryption result is consistent with the password, the product identification sent by the target Internet of things device is indicated to correspond to the device key legally obtained when the target Internet of things device is initially registered, and then the target Internet of things device is indicated to be legal.
And step 560, pulling the theme class stored in advance corresponding to the second product identifier from the internet of things platform as at least one second theme class corresponding to the second product identifier.
The second product identifier, the theme class stored corresponding to the second product identifier and the equipment key corresponding to the second product identifier are generated and stored by the internet of things platform after the user sends a registration request to the internet of things platform through the user terminal.
Step 570, using the second product identifier, at least one second theme class corresponding to the second product identifier, and a second token corresponding to the second product identifier as second permission verification data.
In the embodiment of fig. 5, the security is ensured by allowing the second internet service terminal to acquire the second permission verification data after the permission authentication is passed.
In one embodiment, prior to step 560, the method may further comprise:
and determining whether the second internet of things server pre-stores the theme class corresponding to the second product identifier, wherein the theme class pre-stored corresponding to the second product identifier is pulled from the internet of things platform under the condition that the second internet of things server does not pre-store the theme class corresponding to the second product identifier.
In this embodiment, by first determining whether a corresponding theme class has been stored, the internet of things platform is pulled to the theme class without storing the corresponding theme class, and if the corresponding theme class has been stored, the theme class is not pulled from the internet of things platform, which reduces resource overhead to a certain extent.
The disclosure further provides an internet of things data transmission device, and the following is an embodiment of the device of the disclosure.
Fig. 6 is a block diagram illustrating an internet of things data transmission apparatus according to an exemplary embodiment. As shown in fig. 6, the apparatus 600 includes:
The receiving module 610 is configured to receive target data uploaded by a target internet of things device, where the target data includes internet of things data and first permission verification data, and the target data is sent by the target internet of things device according to a preset internet of things protocol;
a determining module 620, configured to determine whether the uploading of the target data is legal based on at least one second permission check data stored in the first internet of things server and the first permission check data, where the second permission check data is pre-synchronized to the first internet of things server by a second internet of things server of the plurality of internet of things servers;
and the sending module 630 is configured to send the internet of things data in the target data to a data processing center of the internet of things platform if the uploading method of the target data is determined.
According to a third aspect of the present disclosure, there is also provided an electronic device capable of implementing the above method.
Those skilled in the art will appreciate that the various aspects of the invention may be implemented as a system, method, or program product. Accordingly, aspects of the invention may be embodied in the following forms, namely: an entirely hardware embodiment, an entirely software embodiment (including firmware, micro-code, etc.) or an embodiment combining hardware and software aspects may be referred to herein as a "circuit," module "or" system.
An electronic device 700 according to this embodiment of the invention is described below with reference to fig. 7. The electronic device 700 shown in fig. 7 is merely an example, and should not be construed as limiting the functionality and scope of use of embodiments of the present invention.
As shown in fig. 7, the electronic device 700 is embodied in the form of a general purpose computing device. Components of electronic device 700 may include, but are not limited to: the at least one processing unit 710, the at least one memory unit 720, and a bus 730 connecting the different system components, including the memory unit 720 and the processing unit 710.
Wherein the storage unit stores program code that is executable by the processing unit 710 such that the processing unit 710 performs steps according to various exemplary embodiments of the present invention described in the above-described "example methods" section of the present specification.
The memory unit 720 may include readable media in the form of volatile memory units, such as Random Access Memory (RAM) 721 and/or cache memory 722, and may further include Read Only Memory (ROM) 723.
The storage unit 720 may also include a program/utility 724 having a set (at least one) of program modules 725, such program modules 725 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each or some combination of which may include an implementation of a network environment.
Bus 730 may be a bus representing one or more of several types of bus structures including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
The electronic device 700 may also communicate with one or more external devices 900 (e.g., keyboard, pointing device, bluetooth device, etc.), one or more devices that enable a user to interact with the electronic device 700, and/or any device (e.g., router, modem, etc.) that enables the electronic device 700 to communicate with one or more other computing devices. Such communication may occur through an input/output (I/O) interface 750. Also, electronic device 700 may communicate with one or more networks such as a Local Area Network (LAN), a Wide Area Network (WAN) and/or a public network, such as the Internet, through network adapter 760. As shown, network adapter 760 communicates with other modules of electronic device 700 over bus 730. It should be appreciated that although not shown, other hardware and/or software modules may be used in connection with electronic device 700, including, but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data backup storage systems, and the like.
From the above description of embodiments, those skilled in the art will readily appreciate that the example embodiments described herein may be implemented in software, or may be implemented in software in combination with the necessary hardware. Thus, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (may be a CD-ROM, a U-disk, a mobile hard disk, etc.) or on a network, including several instructions to cause a computing device (may be a personal computer, a server, a terminal device, or a network device, etc.) to perform the method according to the embodiments of the present disclosure.
According to a fourth aspect of the present disclosure, there is also provided a computer readable storage medium having stored thereon a program product capable of implementing the method described herein above. In some possible embodiments, the various aspects of the invention may also be implemented in the form of a program product comprising program code for causing a terminal device to carry out the steps according to the various exemplary embodiments of the invention as described in the "exemplary methods" section of this specification, when said program product is run on the terminal device.
Referring to fig. 8, a program product 800 for implementing the above-described method according to an embodiment of the present invention is described, which may employ a portable compact disc read only memory (CD-ROM) and include program code, and may be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto, and in this document, a readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a combination of any of the foregoing. More specific examples (a non-exhaustive list) of the readable storage medium would include the following: an electrical connection having one or more wires, a portable disk, a hard disk, random Access Memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
The computer readable signal medium may include a data signal propagated in baseband or as part of a carrier wave with readable program code embodied therein. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination of the foregoing. A readable signal medium may also be any readable medium that is not a readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device, partly on a remote computing device, or entirely on the remote computing device or server. In the case of remote computing devices, the remote computing device may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., connected via the Internet using an Internet service provider).
Furthermore, the above-described drawings are only schematic illustrations of processes included in the method according to the exemplary embodiment of the present invention, and are not intended to be limiting. It will be readily appreciated that the processes shown in the above figures do not indicate or limit the temporal order of these processes. In addition, it is also readily understood that these processes may be performed synchronously or asynchronously, for example, among a plurality of modules.
It is to be understood that the invention is not limited to the precise arrangements and instrumentalities shown in the drawings, which have been described above, and that various modifications and changes may be effected without departing from the scope thereof. The scope of the invention is limited only by the appended claims.