Patent Yard Sign in
Lapsed, fee not paid

Distributed processing method, system, and computer product

US 9,996,132 B2 · Assignee: FUJITSU LIMITED · Inventors: Otomo; Toshiya et al.

USPTO PDF

Overview

Sheet 1 of 15 from the published document. All sheets in the USPTO PDF

Abstract From the patent

A distributed processing method of a system in which communications apparatuses communicate data by multi-hop communication is executed by a given communications apparatus among the communications apparatuses. According to the method, the given communications apparatus executes a given process based on a result of a first process executed by a first communications apparatus that among the communications apparatuses, communicates directly with the given communications apparatus and operates using power stored in a charging device charged by power generated from energy obtained corresponding to an environment where installed. The given communications apparatus executes the given process when receiving the result of the first process from the first communications apparatus. The given communications apparatus further determines whether a given period has elapsed since receiving the result of the first process, and transmits a result of the given process to the first communications apparatus when determining that the given period has elapsed.

Why it's free to use

  • The USPTO Official Gazette of August 11, 2026 lists it as expired on June 12, 2026 for an unpaid maintenance fee.
  • It isn't on any reinstatement notice published since.
  • Its 1 US relative has also lapsed, expired or never issued.
  • We check US rights only. Check foreign counterparts before selling abroad.
FiledJanuary 17, 2016
GrantedJune 12, 2018
Expired (fee)June 12, 2026
Application number14/997545
Classification (CPC)G06F1/266 +3 more
Length7 claims · 27 pages

Background From the patent

A conventional technique called energy harvesting involves generating electrical power using energy obtained corresponding to the local installation environment. Another conventional technique distributes processing among plural communications apparatuses. One related technique, for example, detects output from communications apparatuses that execute distributed processing of analysis processes, determines that a failure has occurred at a communications apparatus from which there is no output, and resumes the analysis processing by recovering the failed communications apparatus via a communications apparatus that manages the plural communications apparatuses (for example, refer to Japanese Laid-Open Patent Publication No. 2010-231295). Nonetheless, with the conventional techniques above, when distributed processing is to be performed by communications apparatuses that operate using power

Drawings 15

1 of 15 drawing sheets so far from the published document, cropped to the drawing. Every sheet is in the USPTO PDF.

Figures as described

  • FIGS. 1A and 1B are diagrams depicting an operation example of a distributed processing method of a system according to a first embodiment
  • FIG. 2 is a block diagram depicting an example of hardware configuration of a node
  • FIG. 3 is a block diagram depicting an example of hardware configuration of an inspector terminal
  • FIG. 4 is a block diagram depicting a functional example of the system according to the first embodiment
  • FIG. 5 is a diagram depicting a sequence of distributed processing of the nodes according to the first embodiment
  • FIG. 6 is a diagram depicting one example of a job structure according to the first embodiment
  • FIG. 7 is a flowchart depicting an example of a procedure of a job assignment process according to the first embodiment
  • FIG. 8 is a flowchart depicting an example of a procedure of a job execution process according to the first embodiment
  • FIG. 9 is a flowchart depicting an example of a procedure of a job aggregation and reassignment process according to the first embodiment
  • FIG. 10 is a flowchart depicting an example of a procedure of a job aggregation process
  • FIG. 11 is a diagram depicting an operation example of the distributed processing method according to a second embodiment
  • FIG. 12 is a block diagram depicting a functional example of the system according to the second embodiment (13) FIG

Claims 7 total, 6 independent

What the patent claimed, word for word. All of it is now free to use.

  1. 1
    Independent claimA distributed processing method of a system in which a plurality of communications apparatuses transmits and receives data by multi-hop communication, the distributed processing method comprising: executing, by a given communications apparatus being among the plurality of communications apparatuses, a given calculation process that is a different kind of calculation process from a first calculation process, based on a result of the first calculation process executed by a first communications apparatus that is among the plurality of communications apparatuses, communicates directly with the given communications apparatus, and operates using power stored in a charging device charged by power generated from energy obtained corresponding to an environment where the first communications apparatus is installed, the given communications apparatus executing the given calculation process when receiving the result of the first calculation process from the first communications apparatus; determining, by the given communications apparatus, whether a given period has elapsed since receiving the result of the first calculation process; transmitting, by the given communications apparatus, a result of the given calculation process to the first communications apparatus when determining that the given period has elapsed; and assigning, by the given communications apparatus, a second calculation process that is a different kind of calculation process from the first and the given calculation processes to the first communications apparatus when determining that the given period has elapsed.
  2. 2
    The distributed processing method according to claim 1, wherein when the given communications apparatus receives the result of a third calculation process that is a same kind of calculation process as the first calculation process, from a second communications apparatus before the given communications apparatus determines that the given period has elapsed, the second communications apparatus having executed the third calculation process, being among the plurality of communications apparatuses excluding the first communications apparatus, communicating directly with the given communications apparatus, and operating using power stored in a charging device charged by power generated from energy obtained corresponding to an environment where the second communications apparatus is installed, the distributed processing method comprising: executing, by the given communications apparatus, the given calculation process based on the result of the first calculation process and the result of the third calculation process, determining, by the given communications apparatus, whether the given period has elapsed since receiving the result of the third calculation process from the second communications apparatus, and transmitting, by the given communications apparatus, the result of the given calculation process to the first communications apparatus and the second communications apparatus, when determining that the given period has elapsed.
  3. 3
    Independent claimA distributed processing method of a system in which a plurality of communications apparatuses transmits and receives data by multi-hop communication, the distributed processing method comprising: executing, by a communications apparatus, a second calculation process based on a result of a first calculation process, when receiving the result of the first calculation process from a first communications apparatus that executed the first calculation process and communicates directly with the communications apparatus on a ring communication path formed by the plurality of communications apparatuses respectively operating using power of a charging device charged by power generated from energy obtained corresponding to an environment where installed, the communications apparatus being among the plurality of communications apparatuses and specified as an origin on the ring communication path, the second calculation process being different kind of calculation process from the first calculation process; determining, by the communications apparatus, whether a given period has elapsed since receiving the result of the first calculation process; transmitting, by the communications apparatus, a result of the second calculation process to a second communications apparatus that on the ring communications path, communicates directly with the communications apparatus, the communications apparatus transmitting the result of the second calculation process when determining that the given period has elapsed; and assigning, by the communications apparatus, a third calculation process that is different kind of calculation process from the first and the second calculation process to the second communications apparatus when determining that the given period has elapsed.
  4. 4
    Independent claimA system in which a plurality of communications apparatuses transmits and receives data by multi-hop communication, the system comprising a given communications apparatus that is among the plurality of communications apparatuses and configured to include: an executing circuit configured to execute a given calculation process that is a different kind of calculation process from a first calculation process, based on a result of the first calculation process executed by a communications apparatus that is among the plurality of communications apparatuses, communicates directly with the given communications apparatus, and operates using power stored in a charging device charged by power generated from energy obtained corresponding to an environment where the communications apparatus is installed, the executing circuit executing the given calculation process when the given communications apparatus receives the result of the first calculation process from the communications apparatus; a determining circuit configured to determine whether a given period has elapsed since reception of the result of the first calculation process; a transmitting circuit configured to transmit a result of the given calculation process executed by the executing circuit, to the communications apparatus when the determining circuit determines that the given period has elapsed; and an assigning circuit configured to assign a third calculation process that is a different kind of calculation process from the first and the given calculation processes to the first communications apparatus when determining that the given period has elapsed.
  5. 5
    Independent claimA system in which a plurality of communications apparatuses transmits and receives data by multi-hop communication, the system comprising a communications apparatus that is among the plurality of communications apparatuses and specified as an origin on a ring path formed by the plurality communications apparatuses respectively operating using power of a charging device charged by power generated from energy obtained corresponding to an environment where installed, the communications apparatus configured to include: an executing circuit configured to execute a second calculation process based on a result of a first calculation process, when the communications apparatus receives the result of the first calculation process from a first communications apparatus that executed the first calculation process and that communicates directly with the communications apparatus on the ring communication path, the second calculation process being different kind of calculation process from the first calculation process; a determining circuit configured to determine whether a given period has elapsed since reception of the result of the first calculation process; a transmitting circuit configured to transmit a result of the second calculation process executed by the executing circuit, to a second communications apparatus that on the ring communication path, communicates directly with the communications apparatus, the transmitting circuit transmitting the result of the second calculation process when the determining circuit determines that the given period has elapsed; and an assigning circuit configured to assign a third calculation process that is a different kind of calculation process from the first and the second calculation processes to the first communications apparatus when determining that the given period has elapsed.
  6. 6
    Independent claimA non-transitory, computer-readable recording medium storing therein a distributed processing program of a system in which a plurality of communications apparatuses transmits and receives data by multi-hop communication, the distributed processing program causing a given communications apparatus among the plurality of communications apparatuses to execute a process comprising: executing a given calculation process that is a different kind of calculation process from a first calculation process, based on a result of the first calculation process executed by a communications apparatus that is among the plurality of communications apparatuses, communicates directly with the given communications apparatus, and operates using power stored in a charging device charge by power generated from energy obtained corresponding to an environment where the communications apparatus is installed, the given calculation process being executed when the given communications apparatus receives the result of the first calculation process from the communications apparatus; determining whether a given period has elapsed since reception of the result of the first calculation process; and transmitting a result of the given calculation process to the communications apparatus, when determining that the given period has elapsed; and assigning a second calculation process that is a different kind of calculation process from the first and the given calculation processes to the first communications apparatus when determining that the given period has elapsed.
  7. 7
    Independent claimA non-transitory, computer-readable recording medium storing therein a distributed processing program of a system in which a plurality of communications apparatuses transmits and receives data by multi-hop communication, the distributed processing program causing a communications apparatus among the plurality of communications apparatuses to execute a process comprising: executing a second calculation process based on a result of a first calculation process, when the communications apparatus receives the result of the first calculation process from a first communications apparatus that executed the first calculation process and communicates directly with the communications apparatus on a ring communication path formed by the plurality communications apparatuses respectively operating using power of a charging device charged by power generated from energy obtained corresponding to an environment where installed, the communications apparatus being among the plurality of communications apparatuses and specified as an origin on the ring path, the second calculation process being different kind of calculation process from the first calculation process; determining whether a given period has elapsed since reception of the result of the first calculation process; and transmitting a result of the second calculation process to a second communications apparatus that on the ring communication path, communicates directly with the communications apparatus, the result of the second calculation process being transmitted when determining that the given period has elapsed; and assigning a third calculation process that is different kind of calculation process from the first and the second calculation process to the second communications apparatus when determining that the given period has elapsed.

Claim map

Independent claims stand on their own. The others add detail to the claim they name.

Claim 11 claim builds on it
Claim 3No claims build on it
Claim 4No claims build on it
Claim 5No claims build on it
Claim 6No claims build on it
Claim 7No claims build on it

Description

Field

The embodiments discussed herein are related to a distributed processing method, a system, and a computer product.

Background

A conventional technique called energy harvesting involves generating electrical power using energy obtained corresponding to the local installation environment. Another conventional technique distributes processing among plural communications apparatuses. One related technique, for example, detects output from communications apparatuses that execute distributed processing of analysis processes, determines that a failure has occurred at a communications apparatus from which there is no output, and resumes the analysis processing by recovering the failed communications apparatus via a communications apparatus that manages the plural communications apparatuses (for example, refer to Japanese Laid-Open Patent Publication No. 2010-231295).

Nonetheless, with the conventional techniques above, when distributed processing is to be performed by communications apparatuses that operate using power generated from energy obtained corresponding the environment, the operation of a communications apparatus that executed the processing may be suspended consequent to the power being exhausted. In such instances, successive distribution of plural processes to the communications apparatuses is difficult.

Summary

According to an aspect of an embodiment, a distributed processing method of a system in which plural communications apparatuses transmit and receive data by multi-hop communication, is executed by a given communications apparatus among the plural communications apparatuses. The distributed processing method including executing, by a given communications apparatus being among the plurality of communications apparatuses, a given process based on a result of a first process executed by a first communications apparatus that is among the plurality of communications apparatuses, communicates directly with the given communications apparatus, and operates using power stored in a charging device charged by power generated from energy obtained corresponding to an environment where the first communications apparatus is installed, the given communications apparatus executing the given process when receiving the result of the first process from the first communications apparatus; determining, by the given communications apparatus, whether a given period has elapsed since receiving the result of the first process; and transmitting, by the given communications apparatus, a result of the given process to the first communications apparatus when determining that the given period has elapsed.

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.

Brief description of drawings

FIGS. 1A and 1B are diagrams depicting an operation example of a distributed processing method of a system according to a first embodiment;

FIG. 2 is a block diagram depicting an example of hardware configuration of a node;

FIG. 3 is a block diagram depicting an example of hardware configuration of an inspector terminal;

FIG. 4 is a block diagram depicting a functional example of the system according to the first embodiment;

FIG. 5 is a diagram depicting a sequence of distributed processing of the nodes according to the first embodiment;

FIG. 6 is a diagram depicting one example of a job structure according to the first embodiment;

FIG. 7 is a flowchart depicting an example of a procedure of a job assignment process according to the first embodiment;

FIG. 8 is a flowchart depicting an example of a procedure of a job execution process according to the first embodiment;

FIG. 9 is a flowchart depicting an example of a procedure of a job aggregation and reassignment process according to the first embodiment;

FIG. 10 is a flowchart depicting an example of a procedure of a job aggregation process;

FIG. 11 is a diagram depicting an operation example of the distributed processing method according to a second embodiment;

FIG. 12 is a block diagram depicting a functional example of the system according to the second embodiment

FIG. 13 is a diagram depicting a sequence of distributed processing by the nodes according to the second embodiment;

FIG. 14 is a diagram depicting an example of the job structure according to the second embodiment;

FIG. 15 is a flowchart depicting an example of a procedure of the job assignment process according to the second embodiment;

FIG. 16 is a flowchart depicting an example of a procedure of the job execution process according to the second embodiment; and

FIG. 17 is a flowchart depicting an example of a procedure of the job aggregation and reassignment process according to the second embodiment.

Description of embodiments

Embodiments of a disclosed distributed processing method, system, and distributed processing program will be described in detail with reference to the accompanying drawings.

FIGS. 1A and 1B are diagrams depicting an operation example of the distributed processing method of the system according to a first embodiment. A system 100 includes an inspector terminal 101 and plural communications apparatuses. The communications apparatuses are referred to as “nodes” hereinafter. The nodes included in the system 100 include a master node, which is a specified node, and slave nodes, which are nodes other than the specified node. Hereinafter, a master node is simply called a “master”. Further, a slave node is simply called a “slave”. As depicted in FIG. 1A , the masters include masters # 0 , # 1 and the slaves include slaves #a_ 0 to #a_N, #b_ 0 to #b_N, #c_ 0 to #c_N, #d_ 0 to #d_N, and #e_ 0 to #e_N.

Hereinafter, slaves #a_ 0 to #a_N, #b_ 0 to #b_N, #c_ 0 to #c_N, #d_ 0 to #d_N, and slaves #e_ 0 to #e_N will be referred to as “the slaves”. Further, masters # 0 , # 1 and the slaves will be referred to as “the nodes”.

Each of the nodes is a communications apparatus that has an energy harvesting device that generates electrical power using energy obtained corresponding to the environment in which the node is installed and operates using electrical power stored by a charging unit charged with the electrical power generated by the energy harvesting device. The nodes are disposed in a given area R. The given area R, for example, is an area filled with a substance such as concrete, soil, air, etc. The nodes activate when sufficiently charged and perform intermittent operation of transmitting data and sleeping. Further, the electrical power generated by the energy harvesting device is limited and therefore, the nodes use short distance radio, which consumes minimal power, and communicate data by multi-hop communication.

The nodes communicate data by multi-hop communication along a specified communication path. The specified communication path has master # 0 as a start point and master # 1 as an end point. Further, when plural specified communication paths are present in the system 100 , the specified communication paths share master # 0 and master # 1 , but do not have slaves in common. The specified communication path, for example, may be determined by an algorithm that determines communication paths or by an instruction from the inspector terminal 101 , etc.

As an example of an algorithm that determines communication paths, for instance, master # 0 appends node identification information of master # 0 to a signal and transmits the signal to a node with which direct communication is possible. A given slave that receives the signal appended with the identification information of master # 0 appends the node identification information of the given slave to the received signal and transmits the signal to a node with which direct communication is possible, if the given slave has not transmitted a signal and the node identification information of the given slave is not in the received signal. The contents of the signal received by master # 1 are information representing the communication path. Master # 1 gives to the slaves by multi-hop communication, notification of identification information of adjacent nodes of each slave among the slaves on the communication path. The slaves store to a storage apparatus, the identification information of the adjacent nodes of each slave among the slaves on the communication path.

In the example depicted in FIG. 1A , the given area R has 5 communication paths. The first communication path is a communication path configured by master # 0 , slaves #a_ 0 to #a_N, and master # 1 . The second communication path is a communication path configured by master # 0 , slaves #b_ 0 to #b_N, and master # 1 . The third communication path is a communication path configured by master # 0 , slaves #c_ 0 to #c_N, and master # 1 . The fourth communication path is a communication path configured by master # 0 , slaves #d_ 0 to #d_N, and master # 1 . The fifth communication path is a communication path configured by master # 0 , slaves #e_ 0 to #e_N, and master # 1 .

The nodes may have sensors. The nodes use the respective sensors and detect the temperature, humidity, stress, etc. in the given area R. The inspector terminal 101 aggregates to a server, data related to the detection by the nodes and uses the data for analysis processing. Here, since the data is collected for each of the nodes, the data volume becomes great, placing a load on the inspector terminal 101 . Therefore, the system 100 according to the first embodiment uses the computing capacity of the nodes to distribute and perform the analysis processing and thereby, facilitates a reduction of the load occurring when the inspector terminal 101 collects the data.

Nonetheless, when the analysis processing is distributed and performed by the nodes, since the nodes operate intermittently, even if the master attempts to cause a slave to execute the processing, the slave operates intermittently and consequently, assignment of processing to the slave during suspension of the slave is difficult. Here, if configuration is such that the master transmits a signal inquiring whether the slave is operating, repeated signal transmission occurs increasing the power consumption of the master. Further, if the remaining power level of plural nodes is sufficient, although distributed processing can be performed one session at a time by the nodes, the operation of each node that has transmitted the processing results for 1 session is suspended and when distribution to more than the number of the nodes is desirable, assignment of the processing is difficult.

Thus, in the system 100 according to the present embodiment, after the master receives a processing result from a given slave, the master transmits to the given slave after a given period elapses, a processing result obtained by the master. As a result, the system 100 can pass processing results during operation of the slaves, whereby slaves can be caused to execute new processing that uses processing results.

More specifically, master # 0 assigns processing to the slaves. The slaves execute the processing and master # 1 aggregates the processing results. Master # 1 further assigns to the slaves, processing that uses the aggregated results. The slaves execute the processing and master # 0 aggregates the processing results.

FIG. 1B depicts a communication sequence of slave #a_N that communicates directly with master # 1 and master # 1 , after master # 0 has assigned processing to the slaves. Further, rectangle 111 of slave #a_N represents the remaining power level of the charging unit of slave #a_N according to time points. For example, at time t 0 , slave #a_N is indicated to be sufficiently charged.

From time t 0 to t 1 , slave #a_N executes a first process and transmits first process results to master # 1 . Here, the first process is processing assigned by master # 0 . A program describing the contents of the first process may be stored to a storage area of the node by the manager of the system 100 via the inspector terminal 101 , after the node is disposed or after the specified communication path is determined, or may be a program that is transmitted by master # 0 and enables execution of the processing contents. The contents of the first process is not limited and, for example, may include an addition process of adding data received by slave #a_N and data obtained from the sensor of slave #a_N, and a process of incrementing a hop count of the data received by slave #a_N.

At time t 1 , slave #a_N transmits a result of the first process to master # 1 and since no power remains, suspends operation. The result of the first process, for example, is the result of the addition and the incremented hop count.

During some instance between time t 1 and time t 2 , master # 1 executes a given process based on the result of the first process. The given process is processing related to the first process. A program describing the contents of the given process, for example, may be stored to a storage area of the node by a manager of the system 100 via the inspector terminal 101 , after the node is disposed or after the specified communication path is determined. The given process, for example, is a process of calculating an average from the data and hop counts of the first process.

Master # 1 determines whether the given period has elapsed since receiving the result of the first process. As a determination method, for example, master # 1 records the clock pulse of a given processor in master # 1 when the result of the first process is received and periodically refers to the clock pulse count to determine whether the given period has elapsed.

The given period is a power charging period from the exhaustion of the remaining power of the slaves until a power level enabling operation is reached. In actuality, the length of the given period may be determined based on measurement results obtained at the time of node manufacturing, or may be determined based on the amount of power generated by the energy harvesting device when the node is installed. For example, the given period may be as short as 1 minute and as long as 10 minutes.

At time t 2 , if the given period has been determined to have elapsed, master # 1 transmits the result of the given process to slave #a_N. As a result, slave #a_N uses the result of the given process to again execute processing. Hereinafter, the system 100 according to the first embodiment will be described with reference to FIGS. 2 to 10 .

FIG. 2 is a block diagram depicting an example of hardware configuration of the node. In the example depicted in FIG. 2 , slave #a_ 0 is taken as an example and hardware configuration of slave #a_ 0 is depicted. Other nodes including master # 0 , # 1 , slaves #a_ 1 to slave #a_N, slaves #b_ 0 to #b_N, slaves #c_ 0 to #c_N, slaves #d_ 0 to #d_N, and slaves #e_ 0 to #e_N have a hardware configuration identical to that of slave #a_ 0 . Slave #a_ 0 has a microprocessor (hereinafter, referred to as a micro control unit (MCU)) 201 , a sensor 202 , a wireless communications circuit 203 , random access memory (RAM) 204 , read-only memory (ROM) 205 , non-volatile memory 206 , an antenna 207 , a harvester 208 , a battery 209 , and a power management unit (PMU 210 ). Slave #a_ 0 further has a bus 211 that connects the MCU 201 , the sensor 202 , the wireless communications circuit 20 , the RAM 204 , the ROM 205 , and the non-volatile memory 206 .

The MCU 201 is a computation processing apparatus that governs overall control of slave #a_ 0 . For example, the MCU 201 processes the data obtained by the sensor 202 . The sensor 202 is an apparatus that detects a given change at the installation site. The sensor 202 , for example, may be a piezoelectric device that detects voltage at the installation site, a device that detects temperature, a photoelectric device that detects light, and the like. The antenna 207 transmits and receives radio waves wirelessly communicated with the inspector terminal and/or other nodes. The wireless communications circuit 203 (radio frequency (RF)) outputs received wireless radio waves as a reception signal and transmits a transmission signal as wireless radio waves, via the antenna 207 . The wireless communications circuit 203 suffices to be a communications circuit employing short range radio enabling communication with other nodes within a vicinity of several tens of centimeters.

The RAM 204 is a storage apparatus storing therein transient data of processing at the MCU 201 . The ROM 205 is a storage apparatus storing therein process programs executed by the MCU 201 . The non-volatile memory 206 is a rewritable storage apparatus and retains given data written thereto, even when power supply ceases. For example, flash memory and the like may be employed as the non-volatile memory 206 .

The harvester 208 is the energy harvesting device described with reference to FIG. 1 and is an apparatus that generates power based on the external environment at the installation site of slave #a_ 0 , such as, for example, energy changes in light, vibration, temperature, wireless radio waves (reception radio waves), etc. Further, the harvester 208 may generate power according to changes detected by the sensor 202 . The battery 209 is an apparatus that stores the power generated by the harvester 208 . In other words, slave #a_ 0 does not require a secondary battery or external power source and internally generates power for operation. The PMU 210 is an apparatus that controls the supply of the power stored by the battery 209 , as a drive source to the components of the node.

FIG. 3 is a block diagram depicting an example of hardware configuration of the inspector terminal. The inspector terminal 101 has a processor (central processing unit (CPU) 301 , large capacity ROM 302 , RAM 303 , non-volatile memory 304 , an interface (input/output (I/O)) circuit 305 , a wireless communications circuit 311 , an antenna 312 , and a network I/F 313 . The CPU 301 may be more sophisticated than the MCU 201 of the nodes. The inspector terminal 101 further has a bus 306 that connects the CPU 301 , the ROM 302 , the RAM 303 , the non-volatile memory 304 , and the I/O circuit 305 . The inspector terminal 101 may operate on an external power source unlike the nodes or may operate on an internal power source. The non-volatile memory 304 stores therein a node identification information list of the nodes in the system 100 .

The I/O circuit 305 is connected to the wireless communications circuit 311 and the antenna 312 , and to the network I/F 313 . Thus, the inspector terminal 101 can wirelessly communication with the nodes, via the wireless communications circuit 311 and the antenna 312 . The wireless communications circuit 311 may be a communications circuit that employs short range radio enabling communication with nodes within a vicinity of several tens of centimeters, or a communications circuit that employs intermediate range radio enabling communication with nodes at a farther distance. The inspector terminal 101 , via the network I/F 313 , and using an Internet Protocol (IP) process through a network 314 such as the Internet, can communicate with an external apparatus such as a server.

FIG. 4 is a block diagram depicting a functional example of the system according to the first embodiment. The system 100 includes a charging unit 401 , a receiving unit 411 , an executing unit 412 , a determining unit 413 , and a transmitting unit 414 . Functions of the receiving unit 411 to the transmitting unit 414 forming a control unit are realized by executing on the MCU 201 , programs stored in a storage apparatus. The storage apparatus, more specifically, for example, is the ROM 205 , the RAM 204 , the non-volatile memory 206 depicted in FIG. 2 , etc. The charging unit 401 is included in slave #a_N and slave #b_N. The charging unit 401 corresponds to the battery 209 described with reference to FIG. 2 . The receiving unit 411 to the transmitting unit 414 are included in master # 1 .

The receiving unit 411 receives from slave #a_N, which communicates directly with master # 1 , a result of the first process executed by slave #a_N. Further, the receiving unit 411 receives from slave #b_N, which communicates directly with master # 1 , a result of a second process executed by slave #b_N. The second process, similar to the first process, is processing assigned by master # 0 . The received results are stored to a storage area such as the RAM 204 and the non-volatile memory 206 of master # 1 , etc.

The executing unit 412 executes a given process based on the result of the first process received by the receiving unit 411 . Further, the executing unit 412 may execute the given process based on the result of the first process and the result of the second process, if the result of the second process is received from slave #b_N before determining that the given period has elapsed. The result of the given process is stored to a storage area such as the RAM 204 and the non-volatile memory 206 of master # 1 , etc.

The determining unit 413 determines whether the given period has elapsed since the receiving unit 411 received the result of the first process. Further, the determining unit 413 may determine whether the given period has elapsed since the receiving unit 411 received the result of the second process. The determination result is stored to a storage area such as the RAM 204 and the non-volatile memory 206 of master # 1 , etc.

The transmitting unit 414 transmits the result of the given process to slave #a_N, if the determining unit 413 has determined that the given period has elapsed since the result of the first process was received. Further, the transmitting unit 414 may transmit the result of the given process to slave #a_N, #b_N, if the determining unit 413 has determined that the given period has elapsed since the result of the second process was received. The result of the given process may be included in a new process execution request to slave #a_N.

FIG. 5 is a diagram depicting a sequence of distributed processing of the nodes according to the first embodiment. In the example depicted in FIG. 5 , distributed processing on a communication path configured by master # 0 , slave #a_ 0 , slave #a_ 1 , . . . , slave #a_N−1, slave #a_N, and master # 1 will be described.

Master # 0 executes a job assignment process according to the first embodiment (step S 501 ). Details of the job assignment process according to the first embodiment will be described with reference to FIG. 7 . Hereinafter, processing assigned to the nodes will be referred to as a job. The job assignment process is a process of generating jobs and assigning the jobs to plural slaves. Information included in a job will be described with reference to FIG. 6 . In the job assignment process, master # 0 transmits a job to plural slaves that include slave #a_ 0 . More specifically, the plural slaves are assumed to include slaves #a_ 0 , #b_ 0 , #c_ 0 , #d_ 0 , and #e_ 0 . After the transmission, master # 0 has consumed power and therefore, suspends operation until charging has been completed.

Having received the job, slave #a_ 0 executes a job execution process (step S 502 ). Details of the job execution process will be described with reference to FIG. 8 . In the job execution process, slave #a_ 0 transfers the job to the subsequent node. In this manner, the job is successively transferred. After the transfer, slave #a_ 0 has consumed power and therefore, suspends operation until charging has been completed.

Here, the subsequent node will be described. As described with reference to FIG. 1 , in the system 100 , communication paths for data between the slaves are predetermined, and the slaves have stored in a storage apparatus, i.e., the non-volatile memory 206 , the identification information of the two nodes with which data is communicated. The slaves receive a job from one of the two nodes identified from the identification information stored in the non-volatile memory 206 and transfer the job to the other of the two nodes as the subsequent node.

Having received the job, slave #a_N executes the job execution process (step S 503 ). In the job execution process, slave #a_N transfers the job to master # 1 . After the transfer, slave #a_N has consumed power and therefore, suspends operation until charging has been completed.

Having received the job, master # 1 executes a job aggregation and reassignment process (step S 504 ). Master # 1 receives the job from plural slaves including slave #a_N. More specifically, the plural slaves include slaves #a_N, #b_N, #c_N, #d_N, and #e_N. Details of the job aggregation and reassignment process will be described with reference to FIG. 9 . The job aggregation and reassignment process is a process of generating a new job and assigning the new job to plural slaves after standing by until charging of slave #a_N has been completed.

When the charging of slave #a_N has been completed, the charging of master # 0 , slave #a_ 0 , . . . , slave #a_N−1 has a high likelihood of also being completed. In the job aggregation and reassignment process, master # 1 transmits the new job to the slaves that include slave #a_N. After the transmission, master # 1 has consumed power and therefore, suspends operation until charging has been completed.

Having received the new job, slave #a_N executes the job execution process (step S 505 ). In the job execution process, slave #a_N transfers the new job to the subsequent slave. In this manner, the new job is successively transferred. Upon receiving the new job, slave #a_ 0 executes the job execution process (step S 506 ). In the job execution process, slave #a_ 0 transfers the new job to master # 0 . After the transfer, slave #a_ 0 has consumed power and therefore, suspends operation until charging has been completed.

Having received the new job, master # 0 executes a job aggregation process (step S 507 ). Master # 0 receives the new job from plural slaves including slave #a_ 0 . Details of the job aggregation process will be described with reference to FIG. 10 . The job aggregation process is a process of standing by until the new job has been received from the slaves and collecting the received new job from the slaves.

With reference to FIG. 6 , a job structure defining information included in a job will be described. The system 100 according to the first embodiment and a second embodiment is assumed to be able to execute a job of calculating the variance of sensor data in the system 100 . Further, to execute the job of calculating the variance, the system 100 according to the first and the second embodiment is assumed to be able to execute a job of calculating a sum of the sensor data in the system 100 .

FIG. 6 is a diagram depicting one example of the job structure according to the first embodiment. A job structure 601 is program code defining information included in the job, according to the first embodiment. The job structure 601 includes 4 int-type members. The first member is a kind member storing an identifier representing the type of job. In the present embodiment, identifiers of the job type include a “summation calculation” representing the job of calculating the sum of data in the system 100 and a “variance calculation” representing the job of calculating the sample variance of the data in the system 100 .

The second member is a data member that stores data that is the processing result of the job. The third member is an average member that stores an average. The fourth member is a hop member that stores a hop count, which is a transfer count of the job.

Hereinafter, to simplify description, data stored in the kind member of a job will be referred to as “job type” and the data stored in the data member of a job will be referred to as “job data”. Further, data stored in the average member of a job will be referred to as “job average” and data stored in the hop member of a job will be referred to as “job hop count”.

Flowcharts of the job assignment process, the job execution process, the job aggregation and reassignment process, and the job aggregation process depicted in FIG. 5 will be described with reference to FIGS. 7 to 10 .

FIG. 7 is a flowchart depicting an example of a procedure of the job assignment process according to the first embodiment. The job assignment process according to the first embodiment is a process of assigning a job to plural slaves. Execution of the job assignment process is triggered by a job execution instruction from the inspector terminal 101 . Alternatively, the job assignment process may be executed periodically.

Master # 0 generates, according to the job structure 601 , a summation calculation job for which the job type is “summation calculation” (step S 701 ). Master # 0 transmits the generated job to plural slaves (step S 702 ). After completion of the operation at step S 702 , master # 0 ends the job assignment process according to the first embodiment. By executing the job assignment process according to the first embodiment, master # 0 assigns a job to plural slaves and enables the job to be distributed and processed in the system 100 .

FIG. 8 is a flowchart depicting an example of a procedure of the job execution process according to the first embodiment. The job execution process according to the first embodiment is a process of executing an assigned job. The job execution process is executed by each of the slaves. With respect to FIG. 8 , description will be given for a case where any one of the slaves among the plural slaves executes the job execution process.

When any one of the following 3 conditions is satisfied, the slave is triggered to execute the job execution process. The first condition is represented by flowchart connector A in FIG. 8 , and is a case where the slave is the subsequent node of master # 0 and the operation at step S 702 in FIG. 7 has been executed. The second condition is represented by flowchart connector B in FIG. 8 , and is a case where the slave is the subsequent node of another slave, the job execution process has been executed by the other slave, and the operation at step S 810 in FIG. 8 has been executed. The third condition is represented by flowchart connector C in FIG. 8 , and is a case where the slave is the subsequent node to master # 1 and the operation at step S 906 in FIG. 9 has been executed.

The slave receives a job (step S 801 ). Subsequently, the slave confirms the job type (step S 802 ). If the job type is the summation calculation job (step S 802 : summation calculation job), the slave obtains data from the sensor 202 (step S 803 ), and stores the obtained data to the non-volatile memory 304 (step S 804 ). The slave stores data that is the sum of the obtained data and job data, into the job data (step S 805 ).

If the job type is the variance calculation job (step S 802 : variance calculation job), the slave obtains data of the sensor 202 from the non-volatile memory 304 (step S 806 ). Subsequently, the slave calculates the square of the difference of the obtained data and a job average (step S 807 ). The slave stores data that is the sum of the obtained data and job data, into the job data (step S 808 ).

After completing the operation at step S 805 or the operation at step S 808 , the slave increments the job hop count (step S 809 ), and transfers the job to the subsequent node (step S 810 ). After completing the operation at step S 810 , the slave ends the job execution process according to the first embodiment. By executing the job execution process according to the first embodiment, a slave can execute an assigned job.

FIG. 9 is a flowchart depicting an example of a procedure of the job aggregation and reassignment process according to the first embodiment. The job aggregation and reassignment process according to the first embodiment is a process of aggregating a job, generating a new job, and assigning the new job to the slaves. The job aggregation and reassignment process is executed by master # 1 . When the operation at step S 810 is executed by a slave whose subsequent node is master # 1 , execution of the job aggregation and reassignment process is triggered.

Master # 1 receives the job (step S 901 ). Master # 1 receives the job from slaves positioned at the terminus of each communication path. Subsequently, master # 1 determines whether a given period has elapsed since the last reception of the job (step S 902 ). If the given period has not elapsed since the last reception of the job (step S 902 : NO), master # 1 transitions to the operation at step S 901 .

Details of the operations at step S 901 and step S 902 will be described. In a case of 5 communication paths as depicted in FIG. 1 , the job is received from 5 slaves. After receiving the job from a first slave, master # 1 stands by until the given period elapses from the reception of the job from the first slave. While standing by, if master # 1 receives the job from a second slave, master # 1 stands by until the given period elapses from the reception of the job from the second slave. In this manner, master # 1 receives the job from the 5 slaves.

If the job has been received from a certain extent of the slaves and the given period elapses, master # 1 assumes step S 902 : YES and executes processing without waiting for the job to be transmitted from all the slaves. The first reason for not waiting for the job to be transmitted from all the slaves is that the nodes are low cost and installed in a large number, and consequently, nodes may have failed and the job may not be transmitted from a portion of the slaves. Further, by analyzing the job results received from a certain extent of the slaves, the user of the inspector terminal 101 can sufficiently grasp what is occurring in the given area R.

If the given period has elapsed since the last reception of the job (step S 902 : YES), master # 1 calculates an average of the data from the received job data and hop counts (step S 903 ). Master # 1 generates according to the job structure 601 , a variance calculation job for which the job type is “variance calculation” (step S 904 ). Master # 1 sets the calculated average into “job average” for the generated job (step S 905 ). Master # 1 transmits the variance calculation job to plural slaves (step S 906 ). Here, consequent to the operation at step S 902 , the given period elapses from the transmission of the job by the slave that was last to transmit the job and therefore, the slaves to which the variance calculation job is to be transmitted are sufficiently charged and the likelihood that the slaves can operate is high.

After completing the operation at step S 906 , master # 1 ends the job aggregation and reassignment process according to the first embodiment. Further, in the operation at step S 902 , although master # 1 stands by until the given period elapses after the job is received, master # 1 may execute the operations at step S 903 and at step S 904 while standing by. For example, when 2 jobs have been received, as an intermediate operation of the operation at step S 903 , master # 1 may add the first and the second job hop counts and add the first and the second job data.

By executing the job aggregation and reassignment process according to the first embodiment, master # 1 aggregates jobs, creates a new job, and can assign the new job to the slaves after the slaves have been sufficiently charged.

FIG. 10 is a flowchart depicting an example of a procedure of the job aggregation process. The job aggregation process is a process of aggregating job results. Master # 0 receives a job (step S 1001 ). Subsequently, master # 0 determines whether a maximum reception standby period has elapsed since the first reception of the job (step S 1002 ). The maximum reception standby period is a period set to given some allowance in standing by such that the job can be received from plural slaves. For example, the maximum reception standby period is a few seconds. In the operation at step S 1002 , master # 0 may determine whether the maximum reception standby period has elapsed since the last reception of the job.

If the maximum reception standby period has not elapsed since the first reception of the job (step S 1002 : NO), master # 0 transitions to the operation at step S 1001 . If the maximum reception standby period has elapsed since the first reception of the job (step S 1002 : YES), master # 0 calculates sample variance of the data from the received job data and hop counts (step S 1003 ). After completing the operation at step S 1003 , master # 0 ends the job aggregation process.

The job aggregation process does not include an operation of transmitting the job to other nodes. Consequently, consideration need not be given to other nodes being inoperable consequent to insufficient charging and therefore, determination of whether the given period has elapsed need not be performed. Execution of the job aggregation process enables the system 100 to obtain aggregated results of a job that is distributed and executed.

As described, according to the system 100 , after a processing result is received from a slave and a given period has elapsed, another processing result is transmitted to the slave whereby, the system 100 can efficiently execute distributed processing using nodes that operate intermittently. For example, master # 1 can pass a processing result to slave #a_N, without issuing a signal inquiring whether slave #a_N is operating.

Further, the system 100 gives the task of a master to each node at the terminus of a specified communication path, enabling distributed parallel processing via nodes present as slaves between the masters.

According to the system 100 , after receiving the result of a given process from a given slave, if the result of another process from another slave is received before the given period has elapsed, master # 1 may perform a process based on the result of the given process and the result of the other process. Consequently, master # 1 can calculate a result of aggregated processing results from plural slaves.

The system 100 according to the first embodiment assumes that there are specified nodes to be masters. On the other hand, the system 100 according to the second embodiment assumes that there is 1 specified node to be a master. Hereinafter, a system 1100 according to the second embodiment will be described with reference to FIGS. 11 to 17 . Portions identical to those described in the first embodiment are given the same reference numerals used in the first embodiment, and description and depiction thereof is omitted hereinafter.

FIG. 11 is a diagram depicting an operation example of the distributed processing method according to the second embodiment. As represented by reference character (a) in FIG. 11 , the given area R in which the nodes included in the system 1100 according to the second embodiment are disposed forms the surface of a cylinder. As represented by reference character (a) in FIG. 11 , there is 1 master, master # 0 . Further, the slaves include slaves #a_ 0 to #a_N, #b_ 0 to #b_N, #c_ 0 to #c_N, #d_ 0 to #d_N, and #e_ 0 to #e_N. Reference character (b) in FIG. 11 depicts the surface of the cylinder of reference character (a) in FIG. 11 , expanded such that master # 0 is the start and end of the communication paths. The specified communication paths represented by reference character (b) in FIG. 11 are assumed to be 5 in the description hereinafter.

The description continues in the full USPTO document.

In this description

About 6,901 words. The USPTO PDF has it with every drawing.

Timeline & family

Timeline From USPTO dates

2014201620182020202220242026Earliest priority dateJuly 18, 2013Application filedJan 17, 2016Application publishedMay 12, 2016Patent grantedJune 12, 20183.5-year fee paidDec 12, 20217.5-year fee not paidDec 12, 2025Patent expiredJune 12, 2026

Maintenance fees

Fees are due 3.5, 7.5 and 11.5 years after grant. This patent expired on June 12, 2026, so the fee marked "not paid" was the one that went unpaid.

3.5-year feeDue December 12, 2021Paid
7.5-year feeDue December 12, 2025Not paid
11.5-year feeDue December 12, 2029Never came due

US family 2 documents, by filing date

Published applicationUS 2016/0132088 A1

DISTRIBUTED PROCESSING METHOD, SYSTEM, AND COMPUTER PRODUCT

Filed Jan 2016 · published May 2016
Published application
This documentUS 9,996,132 B2

Distributed processing method, system, and computer product

Filed Jan 2016 · granted Jun 2018
Lapsed, fee not paid

Earlier publications, parents and continuations. None of them can still be enforced, or this patent would not be listed.

US patents it cites 2

Prior art cited by the examiner or applicant. Useful when you check your own idea for novelty.

Sources & verification

Verification

  • The USPTO Official Gazette of August 11, 2026 lists it as expired on June 12, 2026 for an unpaid maintenance fee.
  • It isn't on any reinstatement notice published since.
  • Its 1 US relative has also lapsed, expired or never issued.
  • Rechecked against USPTO records every day.
  • We check US rights only. Check foreign counterparts before selling abroad.

Confirm it yourself

  1. Open the file history on Patent Center.
  2. The status should read "Patent Expired Due to NonPayment of Maintenance Fees Under 37 CFR 1.362".
  3. Check the documents for any later petition to revive or reinstate.

Everything on this page comes from the documents linked above.

More in Hardware & Electronics

All Hardware & Electronics
Drawing from US 9,996,122 B2Lapsed, fee not paid3 drawings
Hardware & Electronics · US 9,996,122 B2

Socket and adapter

A motherboard can include a socket coupled to a cable.

Filed2013
LapsedJun 2026
OwnerHewlett Packard Enterprise Development LP
Drawing from US 9,996,123 B1Lapsed, fee not paid10 drawings
Hardware & Electronics · US 9,996,123 B1

Computer device

A computer device includes a holding structure, a motherboard module and a cover plate.

Filed2017
LapsedJun 2026
OwnerAIC INC.
Drawing from US 9,996,700 B2Lapsed, fee not paid2 drawings
Hardware & Electronics · US 9,996,700 B2

Method and system for corrupting unwanted data in a communications stream

A system, method, and computer program for monitoring and corrupting a data stream, includes a data stream transmitting device having a barcode scanner that transmits a stream of data corresponding to a scanned barcode;…

Filed2016
LapsedJun 2026
OwnerOUTSITE NETWORKS, INC.