This application is a continuation application of International Application PCT/JP2012/058551 filed on Mar. 30, 2012, and designated the U.S., the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a device and a method that perform distributed processing in a sensor network including distributed sensor nodes.
Sensor networks, represented by ad-hoc networks, are for example a multi-hop wireless network that distributes nodes, which are a plurality of wireless terminals having a sensor, in space so that the distributed nodes perform communications in a coordinated manner in order to collect pieces of information about the environment and physical states.
A node is a built-in device whose performance is limited in comparison with hardware such as a high-performance server system. A CPU of a center server for example operates at 64 bits/3.0 gigahertz clock, whereas the CPU of a node operates at 8 bits/8 megahertz clock. A RAM (Random Access Memory) of a center server for example has the storage capacity of several tens of gigabytes, whereas the RAM of a node has the storage capacity of several tens of kilo bytes. A center server does not have for example a ROM (Read Only Memory), whereas a node has a ROM of several tens of kilobytes. The communication specification of a center server for example is 1 gigabits/second for wired communications, whereas the communication specification of anode is several tens through several hundreds of kilo bits/second for wireless communications.
A representative traffic model is Multipoint to Point (M2P) communication, in which sensor data of several bytes obtained by many (in the order of ten thousand) nodes is transmitted to a server. Communications between respective nodes in a sensor network and a server in an external network (the Internet etc.) are relayed by a gateway arranged in the sensor network. Accordingly, communications between respective nodes and the gateway also adopt M2P communication. Point to Point (P2P) communications between nodes have lighter traffic than M2P traffic between nodes and a gateway.
As a data processing model in a sensor network having the above characteristics, a method is widely employed in which pieces of data are collected in a lump from nodes to a server via a gateway so as to return a result obtained by analyzing the data to a control device in P2P. Pieces of data are periodically collected to the gateway and the server at one time and the server analyzes the information and gives an instruction via P2P to a particular sensor node in accordance with the analysis result.
However, in a large-scale sensor network having many nodes in the order of ten thousand or more, a large amount of data causes elongated processing time and network congestion. Accordingly, it is desirable that distributed processing be performed.
When distributed processing is to be performed in a sensor network, it is preferable to take into consideration a sensor node having low processing performance and low-cost communications between nodes.
Wireless sensor networks vary in configurations dynamically in accordance with movements of nodes and radio wave conditions in wireless communications. When pieces of a large amount of data are collected in a data center in a lump, it is difficult to predict where the traffic will concentrate. Accordingly, congestion occurred around a gateway eventually.
Regarding this problem, a conventional technique has been known in which a plurality of GWs are arranged on the boundary between an ad-hoc network and the center server.
This technique aims to distribute traffic to nodes so as to avoid congestion by recording GWs with high efficiency and transmitting frames via such GWs when the center server transmits frames to nodes.
However, according to this conventional technique, the effect of the avoidance of congestion around a GW is expected, whereas the number of frames that reach a server does not change, and accordingly the technique is a processing model of the center-concentrated type.
Also, a conventional technique has been known that includes a plurality of managed computers that bring about various events asynchronously and a managing computer, which manages schedules of the plurality of managed computers and such events. The managing computer includes an integrated management unit that manages events in an integrated manner and makes the process proceed to the next process in accordance with the result of the management by the integrated management unit.
However, also this conventional technique makes the managing computer perform integrated management of events and work flows, and accordingly is a processing model of a center-concentrated type.
As described above, processing models of a center-concentrated type have usually been employed, resulting in the problem that data processing takes a long period of time and swift response is not possible. When, for example, ten million pieces of data are collected and processed, it takes 100 ms×ten million pieces=one million seconds (nearly 12 days) in a case where the processing period of time for one piece of data is assumed to be 100 ms (milliseconds). When a sensor network is applied for an application in which the abnormal process is executed at the same time a sensor detects an intruder such as in a case of an alert device of a building management system, the application has conventionally been limited to small-scale networks, having several hundreds of nodes.
As described above, in the data processing in a sensor network, the center-concentrated model collects and analyzes pieces of data from nodes to the server and returns the result to the nodes. However, in large-scale networks, there has been a problem that traffic congestion and increased data analysis time make it difficult to make swift responses.
Patent Document 1: Japanese Laid-open Patent Publication No. 2011-199625
Patent Document 2: Japanese Laid-open Patent Publication No. 2001-331468
According to an aspect of the embodiments, provided is a computer-readable recording medium having stored therein a program for causing a computer that executes distributed processing in a sensor network to execute a process including storing, as a variable set, a database of a variable that associates a key, a value and a synchronization destination corresponding to the key, executing a process of requesting that the variable in the variable set of the computer be referred to or updated in a state and evaluating a condition while referring to the variable in the variable set of the computer so as to make the state transition to a different state, and communicating the key specified by the request with the synchronization destination for the variable corresponding to the key specified by the request and synchronizing the value of the variable corresponding to the key specified by the request in the variable set in the computer and the value of the variable corresponding to the key specified by the request in the variable set of the synchronization destination when the process of requesting that the variable in the variable set of the computer be referred to or updated is executed.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
Hereinafter, detailed explanations will be given for the embodiments of the present invention by referring to the drawings.
In
A state flow engine (referred to as an “SFE” hereinafter) (state flow engine unit) 102 performs a process including a process of requesting that a variable in a variable set 101 of a node 100 of the SFE be referred to or be updated in one state. Also, an SFE 102 evaluates a condition while referring to a variable in the variable set 101 in the node 100 of the SFE 102 and transitions to a different state. The specific state transition process of the SFE 102 is performed by using a context sheet 104.
The context sheet (referred to as a “CS” hereinafter) 104 is a file that describes a state transition machine by combining context boxes (referred to as “CBs” hereinafter) 105 including a condition portion in which a condition is described or a process portion in which a process to be executed is described. The SFE 102 sequentially reads the CBs 105 described in the CS 104. Also, the SFE 102 is equipped with the function of interpreting the process portion of the read CBs 105 and performing a process of requesting that a variable in the variable set 101 of the node 100 of the SFE 102 be referred to or updated. The SFE 102 evaluates the condition portion of the read CBs 105 while referring to a variable in the variable set 101 of the node 100 of the SFE 102, further evaluates the condition portion in accordance with the result of the evaluation or transitions to the reading of other CBs 105.
Note that internal processes 106 (A through n) illustrated in
Variable synchronization (variable synchronization unit) 103 performs the following processes when the SFE 102 performed the process of requesting that a variable in the variable set 101 of the node 100 of the variable synchronization 103 be referred to or updated. The variable synchronization 103 usually searches the variable set 101 for a variable corresponding to the Key indicated by the request and refers to or updates a Value corresponding to the Key that was searched for. When a synchronization destination has been specified for the variable searched for in the variable set 101 as a variable corresponding to a Key specified by the update request, the variable synchronization 103 communicates the Key specified by the request with the synchronization destination. Then, the variable synchronization 103 synchronizes the Value of the variable corresponding to the Key specified by the request in the variable set 101 of the node 100 of the variable synchronization 103 with the Value of the variable corresponding to the Key specified by the request in the variable set 101 of the synchronization destination. More specifically, the variable synchronization 103 updates the Value of the variable corresponding to the Key in the variable set 101 of the node 100 of the variable synchronization 103 and further transmits, to the synchronization destination, a request message requesting that the variable set 101 specified by the synchronization destination be updated. Also, when the variable synchronization 103 has received an update request message from the synchronization destination, the variable synchronization 103 updates the Value of the variable for the Key in the variable set 101 of the node 100 of the variable synchronization 103. Each variable synchronization 103 of the nodes 100 as the synchronization source and the synchronization destination may communicate a request message (Key specified by the request) and a response message by for example unicast.
A CSVS (Context Sheet Variable Set) server 107 is a program that arranges the CS 104 in a path readable from the SFE 102 via a communication device 109.
An Operating System (OS) 108 provides fundamental functions for executing program functions on a CPU 110 such as the SFE 102, the variable synchronization 103, the CSVS server 107, etc. of the node 100. The CPU 110 is hardware of the central arithmetic processing unit that operates the node 100. The communication device 109 is hardware implementing the wireless communication function with other nodes 100.
For example, the SFE 102 of node 100 (#A) reads the CS 104 in the node of the SFE 102, executes the process portion (processes 1 and 2) of first CB 105 (#1), and sequentially evaluates the condition portion (conditions 1 and 2). When for example the conditional expression of condition 1 has become true as a result of this, the state transition to second CB 105 (#2) occurs. Similarly, the SFE 102 of node 100 (#B) reads the CS 104 of the node of the SFE 102, executes the process portion (processes 1 and 2) of first CB 105 (#1), and evaluates the condition portion (condition 1). When for example the conditional expression of condition 1 has become true, the state transition to second CB 105 (#2) occurs. Note that CB 105 (#1) and CB 105 (#2) of node 100 (#B) maybe different from the CB 105(#1) and the CB 105(#2) of node 100 (#A). When the state has transitioned to the CB 105 that represents termination, the SFE 102 terminates the evaluation. The SFE 102 only performs state transition and does not perform processes for the CB 105 in which only the condition portion is set. Also, the SFE 102 performs a process described in the process portion after the state transition and terminates the operation of the CS 104 for the CB 105 in which the process portion is set and the condition portion is not set (, an example of which is the CB 105 representing termination or the like).
As a result of the execution, by the SFE 102 of the node 100 (#A), of process 1 in the process portion of CB 105 (#2), an update request is issued for the variable of Key=K1 in the variable set 101 of node 100 (#A) as depicted by for example an arrow 401.
The variable synchronization 103 of node 100 (#A) updates the Value for the variable of Key=K1 in the variable set 101 of node 100 (#A) from V0 to V1 when the process of the above update request is executed by the SFE 102.
As depicted by arrow 402, the variable synchronization 103 of node 100 (#A) recognizes that synchronization destination=node B/VS1/K1 (see
The variable synchronization 103 of node 100 (#A) transmits, from the communication device 109 illustrated in
This request message is received by the communication device 109 of node 100 (#B) and given to the variable synchronization 103 of node 100 (#B) as depicted by arrow 403.
The variable synchronization 103 of node 100 (#B) reads the received request message and thereby searches for the variable corresponding to Key=K1 in the variable set 101=VS1 of the node of the variable synchronization 103 so as to update the Value of the variable to V1, as depicted by arrow 404.
The SFE 102 of node 100 (#B) reads the CS 104 of the node of the SFE 102 and thereby evaluates for example the conditional expression of condition 1 of CB 105(#1). At this timing, a reference request to the variable corresponding to for example Key=K1 in the variable set 101 of the node of the SFE 102 issued. When the above reference request is issued, the variable synchronization 103 of node 100 (#B) obtains the Value of the variable corresponding to Key=K1 in the variable set 101 of the node of the variable synchronization 103 and returns the obtained Value to the SFE 102. In this manner, the SFE 102 of node 100 (#B) evaluates for example the conditional expression of condition 1 of CB 105(#1), and thereby monitors whether or not the Value of the variable corresponding to Key=K1 in the variable set 101 of the SFE 102 has been changed from V0 to V1. When for example the evaluation result of the conditional expression of condition 1 of CB 105 (#1) is false, the SFE 102 of node 100 (#B) repeatedly executes the evaluation of the conditional expression of same condition 1. When the Value of the variable corresponding to Key=K1 in the variable set 101 of the SFE 102 of node 100 (#B) is changed to V1 and the evaluation result of the conditional expression of condition 1 of CB 105 (#1) has become true, the state transition to CB 105 (#2) is caused. As a result of this, the SFE 102 of node 100 (#B) executes processes 1 and 2 of the new CB 105(#2).
As examples of application of variable synchronization between nodes 100 (#A) and 100 (#B) as illustrated in
In the above process example, communication traffic does not occur from node 100 (#A) to node 100 (#B) under a situation where no gas leaks have occurred in node 100 (#A). Only when a gas leak has occurred, P2P communication traffic based on variable synchronization occurs.
The present embodiment implements distributed processing that can be arranged in flexible units of execution based on the CS 104 on the side of the node 100, and thereby distribution of processing (state transition) is made possible. This makes it possible to perform data processing in the nodes 100 alone, eliminating the necessity of analyzing a large amount of data on the server side and processes on the side of the server are reduced so as to permit swift responses.
Also, according to the present embodiment, it is possible to make a large indefinite number of the nodes 100, gateways or servers share the Value of the variable corresponding to each Key by using the information of the synchronization destination corresponding to the Key of the variable set 101 so as to achieve synchronization autonomously. This is different from the conventional configuration in which a particular server etc. has managed the states of the respective nodes 100 in a concentrated manner. This arrangement of the variable synchronization 103 makes it possible to report only information of variables that has to be reported from the node 100 to a different node 100, a gateway, a server or the like at a preferable timing and by unicast (P2P) communication in a autonomous and distributed manner. As a result of this, even in a large scale sensor network such as one that is assumed to have ten thousand nodes or more, it is possible to distribute traffic so as to avoid the occurrence of congestion.
Further, the autonomous distributed processing makes it possible to eliminate the effects on the entire processing on the server side even when the functions of one of the nodes 100 have stopped. It is also possible to perform changing or addition of processes in the nodes 100 easily by the updating the CBs 105 and the variable set 101.
Each home is provided with a human sensor 501, a door sensor 502 and an illumination sensor 503.
Conventionally, pieces of data from all the sensors 501, 502 and 503 have been collected to a center 505 such as a security company or the like (I collection of sensor data) and analyzed (II analysis of sensor data) as illustrated as home A in
By contrast, according to the present embodiment, distributed processing is executed basically in a home server 504 on the side of the sensor net as illustrated in home B in
This configuration makes it possible to swiftly perform distributed processing by using the SFE 102 on the side of the home server 504 not through the center 505 in an emergency process such as for example the alerting device operation or the like. At the same time, the variable synchronization 103 between the respective sensors 501, 502, and 503 and the home server 504 and the variable synchronization 103 between the home server 504 and the center 505 make it possible to efficiently make reports to the center 505 only in cases of for example abnormality, which also makes it possible to avoid network congestion, leading to enhanced scalability.
The respective Values corresponding to “HumanSensor”, “DoorSensor” and “LightSensor” in the variable set 101 are automatically updated from the nodes of the respective sensors 501, 502 and 503 illustrated in
Key “HumanSensor” has become “true”, ON in the human sensor 501 is detected. When the Value of Key “DoorSensor” has become “true”, ON in the door sensor 502 is detected. When the Value of Key “LightSensor” has become “true”, ON in the illumination sensor 503 is detected.
As illustrated in
The starting CB 105 has transitioned sequentially from “OwnerGoOut” to “OwnerGetHome” or “ThiefEntered”, which is the termination CB 105.
The state immediately after reading the CS 104 is initial state I in
When condition 1 is “true” (the Value of Key “HumanSensor” is “true”), the state transitions to the CB 105 of “ThiefEntered” (II in
When condition 1 is “false” (the Value of Key “HumanSensor” is “false”) in initial state I, condition 2 is evaluated. When condition 2 is “true” (the Value of Key
“DoorSensor” is “true”), the state transitions to the CB 105 of “DoorOpen” (III in
The state transitions to the CB 105 that indicates the termination in a similar manner, and the process portion is executed.
The SFE 102 of the node 100 of the human sensor 501 executes the CS 104 in which the CB 105 of “HumanSensorOn” is registered. Thereby, the SFE 102 checks the output (ON or OFF) of the human sensor 501, and writes the result to the Value corresponding to Key “HumanSensor” in the variable set 101 of the node of the human sensor 501. When this is performed, Key “HumanSensor” (home server B/VS1/HumanSensor” is specified in “VS1” in the variable set 101 of the home server 504=home server B as the synchronization destination. Accordingly, immediately after the human sensor 501 has written the Value to “HumanSensor”, the variable synchronization 103 in the human sensor 501 performs communication with the variable synchronization 103 in the home server 504 (home server B). Thereafter, the variable synchronization 103 in the home server 504 updates the Value of Key “HumanSensor” in “VS1” of the variable set 101 of the home server 504.
Similarly, the door sensor 502 and the illumination sensor 503 confirm outputs of the respective sensors and respectively update the Values of Key “DoorSensor” and Key “LightSensor” of the nodes of the door sensor 502 and the illumination sensor 503. Then, the Variable synchronization 103 of the respective nodes in the respective sensors 502 and 503 perform communications with the variable synchronization 103 of the home server 504 (home server B) of the synchronization destination. Thereby, the Values of the respective Keys “DoorSensor” and “LightSensor” in “VS1” of the variable set 101 of the home server 504 are updated.
The home server 504 (home server B) makes the CB 105 perform state transition by using the respective Values of the respective Keys corresponding to the human sensor 501, the door sensor 502 and the illumination sensor 503, respectively. When one of the state transitions of II, IV and V in
When the process of the SFE 102 has started, the SFE 102 first reads the CS 104 (
Next, the SFE 102 sets the starting CB 105 registered in the CS 104 to the active CB 105 (step S902). Thereby, the internal processes 106 corresponding to the starting CB 105 is generated.
In the generated internal processes 106, the SFE 102 starts the execution of the process portion (see
“ThiefEntered” so as to update the Value of Key “Alert” in the variable set 101 of the server of the SFE 102 from “false” to “true” in
The SFE 102 determines whether or not the currently active CB 105 is indicating the termination (step S904) after the execution of the process portion. Whether or not the CB 105 is indicating the termination may be determined on the basis of whether or not a condition portion (see
When the condition portion has not been set, the state does not transition to different CB 105 after the process portion of the CB 105 has been executed in step S903, and accordingly the SFE 102 terminates the process of the CS 104 (YES in step S904).
When the currently active CB 105 has not terminated and the determination result in step S904 is NO, the SFE 102 obtains the condition portion of the active CB 105 (step S905).
As explained in
The SFE 102 evaluates a conditional statement (step S907). When a variable is included in a conditional statement, the SFE 102 issues, to the variable synchronization 103 (see
After evaluating a conditional statement, the SFE 102 determines whether or not that conditional statement is true (step S908).
When the conditional statement is not true (i.e., the conditional statement is false) and the determine result is NO in step S908, the SFE 102 moves the condition pointer to the next condition (step S909).
The SFE 102 determinations whether or not the condition portion has no more conditional statement and the condition pointer is null (step S910).
When the condition pointer is not null and the determination result in step S910 is NO, the process proceeds to the process of step S907, and the evaluation of the next conditional statement newly pointed by the condition pointer is repeated. An example of this is a case where condition 2 is evaluated when condition 1 is false and condition 3 is further evaluated when condition 2 is also false in the evaluation of the condition portion of the CB 105 of “OwnerGoOut” in
When the condition portion does not have any more conditional statements and the condition pointer has become null so that the determination result in step S910 has become YES, the next process is executed. The SFE 102 waits for a prescribed period of time for the fact to be reported by the variable synchronization 103 (step S911) that one of variables in the variable set 101 of the device of the SFE 102 has been updated by a different device (a node, a server, a gateway, etc.). An example of this is a process in which the SFE 102 of the center 505 terminates the evaluation of respective conditions “home server A report?” and “home server B report?” of the CB 105 of “MonitoringSecurity” and thereafter performs waiting in
Thereafter, the SFE 102 returns to the process of step S906, again sets the condition pointer to the highest conditional statement in the condition portion of the currently active CB 105, and repeatedly executes evaluation processes of respective conditional statements in steps S907 through S910 described above.
When a conditional statement has been determined to be true in the determination in step S908, the SFE 102 terminates the process of the currently active CB 105, and jumps (state transition) to the next CB 105 indicated by the currently active CB 105 (YES in determination in step S908 →step S912). An example of this is a case where the SFE 102 of node 100 (#B) has determined that the Value of the variable corresponding to Key=K1 in the variable set 101 of the node of the SFE 102 has been changed to V1 and the evaluation result of the conditional expression of condition 1 of the CB 105 (#1) has become true in
As described above, it is possible for the SFE 102 to execute the process portion or evaluate the condition portion of each of the CBs 105 in the CS 104 while performing state transition so as to perform distributed processing in the device of the SFE 102 (a node, a gateway, a server, etc.).
The variable synchronization 103 first waits for an update request of a variable from the SFE 102 (step S1001), determines whether or not there was a request (step S1002), and repeats the waiting when there were not (determination in step S1002 is NO→repeating of step S1001).
When an update request of a variable from the SFE 102 is generated and the determination result in step S1002 has become YES, the variable synchronization 103 executes a series of the following processes. An example of this is a case where an update request for the variable of Key=K1 in the variable set 101 in node 100 (#A) is issued as depicted by arrow 401 as a result of the SFE 102 of node 100 (#A) executing process 1 in the process portion in the CB 105(#2) in
First, the variable synchronization 103 searches the variable set 101 (see
The variable synchronization 103 determines whether or not a variable corresponding to the Key has been found (step S1004).
When a variable corresponding to the Key has been found and the determination in step S1004 has become YES, the variable synchronization 103 updates the Value of the variable corresponding to the Key included in the update request by using the Value included in the update request (step S1005). An example of this is a case where the Value corresponding to the variable of Key=K1 in the variable set 101 of node 100 (#A) is updated from V0 to V1 when the SFE 102 has executed the process of the update request in
Next, the variable synchronization 103 determines whether or not variables corresponding to the Keys included in the update request include a synchronization destination (see
When a synchronization destination is not included and the determination in step S1006 is NO, the variable synchronization 103 returns to the waiting process in steps S1001 and S1002.
When a synchronization destination is included and the determination in step S1006 has become YES, the variable synchronization 103 transmits an update request message to that synchronization destination from the communication device 109 illustrated in
When a variable corresponding to the Key is not found after searching the variable set 101 by using the Key included in the update request and the determination in step S1004 is NO, the variable synchronization 103 executes the next process. The variable synchronization 103 newly registers the Key included in the update request and the Value or the synchronization destination in the variable set 101 of the device of the variable synchronization 103 in for example the data format illustrated in
The variable synchronization 103 first waits for a variable update request message from a different node (or a gateway or a server) (step S1101). The communication device 109 illustrated in
When the reception of the update request message occurred and the determination in step S1102 has become YES, the variable synchronization 103 executes a series of the following processes. An example of this is a case where a request message transmitted from node 100 (#A) is received by node 100 (#B) and is given to the variable synchronization 103 of node 100 (#B) as depicted by arrow 403 in
When an update request message has been received and the determination in step S1102 is YES, the variable synchronization 103 searches the variable set 101 (see
The variable synchronization 103 determines whether or not a variable for the Key has been found (step S1111).
When a variable corresponding to the Key has been found and the determination in step S1111 has become YES, the variable synchronization 103 updates the Value of the found variable that corresponds to Key in the variable set 101 by using the Value included in the update request message. Then, the variable synchronization 103 reports the update result to the transmission source of the update request message (step S1112). Thereafter, the variable synchronization 103 returns to the waiting process in steps S1101 and S1102. An example of this is a case where the variable synchronization 103 of node 100 (#B) searches, as depicted by arrow 404, for a variable corresponding to Key=K1 in the variable set 101=VS1 of the node of the variable synchronization 103 and updates the Value of the variable to V1 in
When a variable corresponding to the Key has not been found and the determination in step S1111 is NO, the variable synchronization 103 executes the next process. The variable synchronization 103 newly registers the Key and the Value included in the update request in the variable set 101 of the device of the variable synchronization 103 in for example the data format illustrated in
The variable synchronization 103 first waits for a reference request for a variable from the SFE 102 (step S1201), determines whether or not there was a request (step S1202), and repeats the waiting when there was not (determination in step S1202 is NO→repeating of step S1201).
When the reception of the reference request for a variable from the SFE 102 occurred and the determination in step S1202 has become YES, the variable synchronization 103 executes a series of the following processes. An example of this is a case where when for example the SFE 102 of node 100 (#B) evaluates the conditional expression of condition 1 of CB 105 (#1), a reference request to the variable corresponding to Key=K1 in the variable set 101 of the node of the SFE 102 is issued in
First, the variable synchronization 103 searches the variable set 101 in the device of the variable synchronization 103 by using the Key specified by the reference request (see
The variable synchronization 103 determines whether or not a variable corresponding to the Key exists (step S1204).
When a variable corresponding to the Key exits and the determination in step S1204 has become YES, the variable synchronization 103 checks, in the variable set, the synchronization destination (see
The variable synchronization 103 further determines whether or not the Value of the variable corresponding to the Key included in the reference request in the variable set 101 of the node of the variable synchronization 103 (or a gateway or a server) exists (step S1206).
When the Value exists and the determination in step S1206 is YES, the variable synchronization 103 reports that Value in the node or the like of the variable synchronization 103 as a reference result to the SFE 102 (step S1207). Thereafter, the variable synchronization 103 returns to the waiting process in steps S1201 and S1202.
When the Value does not exist and the determination in step S1206 is NO, the variable synchronization 103 transmits a reference request message to the reference destination specified by the synchronization destination of the variable corresponding to the Key included in the reference request via the communication device 109 (
The variable synchronization 103 waits for a response message corresponding to the above reference request message from the reference destination (step S1209). The communication device 109 illustrated in
When the response message has been received normally and the determination in step S1210 has become YES, the variable synchronization 103 extracts a reference result from the response message and reports the result to the SFE 102 (step S1211). Thereafter, the variable synchronization 103 returns to the waiting process in steps S1201 and S1202.
The computer illustrated in
The CPU 1301 performs the entire control of such a computer. The memory 1302 is a memory such as a RAM or the like that temporarily stores a program or data stored in the external storage device 1305 (or a portable recording medium 1309) when a program is executed, data is updated or in other occasions. The CPU 1301 reads a program to the memory 1302 so as to execute the program, and thereby performs the entire control.
The input device 1303 detects an input manipulation made by a user through a keyboard, a mouse or the like so as to report the detection result to the CPU 1301, and the output device 1304 outputs, to a display device or a printer device, data transmitted under control of the CPU 1301.
The external storage device 1305 is for example a hard disk storage device. The external storage device 1305 is used mainly for storing various types of data or programs.
The portable recording medium driving device 1306 accommodates an optical disk, an SDRAM or the portable recording medium 1309 such as a compact flash, and has the function of assisting the external storage device 1305.
The communication interface 1307 is a device that connects communication lines of for example a LAN (Local Area Network) or a WAN (Wide Area Network).
The system according to the present embodiment is implemented by the CPU 1301 executing a program provided with the function that is realized by the flowcharts in
As described above, the present embodiment makes it possible to realize distributed processing by using a node, a gateway or a server that constitutes a sensor network.
According to the present embodiment, it is possible to change a unit of execution (CB 105) in a flexible manner in accordance with the processing performance of the node 100 so as to distribute processing.
According to the present embodiment, it is possible to perform data processes in the node 100 in order to eliminate the necessity of analyzing a large amount of data in a center so that a swift response is made.
According to the present embodiment, it is possible to reduce network loads because the synchronization of distributed processing is realized by variable synchronization based on P2P instead of a centralized method.
According to the present embodiment, it is possible to avoid the occurrence of effects on the entire processing even when one of the nodes 100 is stopped.
Also, according to the present embodiment, it is possible to easily perform the changing/addition of processes in the node 100 or the like in units of the CBs 105.
As described above, according to the present embodiment, it is possible to change a unit of execution flexibly in accordance with the processing performance of a node and distribute processing. Because data process is performed in a node, eliminating the necessity of analyzing a large amount of data in a center, it is possible to make a swift response. Because the synchronization of distributed processing is realized by variable synchronization based on P2P instead of a centralized method, network loads are reduced. Thereby, it is possible to perform swift data process even in a large scale sensor network with for example in the order of ten thousand nodes.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2012/058551 | Mar 2012 | US |
Child | 14482315 | US |