Process integrated mechanism apparatus and program

Inventors

Ford, Kenneth M.Suri, Niranjan

Assignees

Florida Institute for Human and Machine Cognition Inc (IHMC)

Publication Number

US-10733014-B2

Publication Date

2020-08-04

Expiration Date

Interested in licensing this patent?

MTEC can help explore whether this patent might be available for licensing for your application.


Abstract

A method and apparatus for controlling and coordinating a multi-component system. Each component in the system contains a computing device. Each computing device is controlled by software running on the computing device. A first portion of the software resident on each computing device is used to control operations needed to coordinate the activities of all the components in the system. This first portion is known as a “coordinating process.” A second portion of the software resident on each computing devised is used to control local processes (local activities) specific to that component. Each component in the system is capable of hosting and running the coordinating process. The coordinating process continually cycles from component to component while it is running. The continuous cycling of the coordinating process presents the programmer with a virtual machine in which there is a single coordinating process operating with a global view although, in fact, the data and computation remain distributed across every component in the system.

Core Innovation

The present invention is a method and apparatus for controlling and coordinating a multi-component system. Each component in the system contains a computing device controlled by software, wherein a first portion of the software residing on each computing device is a "coordinating process" that controls operations needed to coordinate the activities of all the components and a second portion of the software is used to control local processes specific to that component. Each component is capable of hosting and running the coordinating process, but the coordinating process continually cycles from component to component while it is running, with only a small execution state (and optionally a cache of currently active data) transferred while the complete code remains resident on each computing device.

The invention addresses shortcomings in prior art coordination mechanisms which lack a common viewpoint and suffer from code complexity, lack of robustness, complexity of coordination, data management difficulty, and data insecurity. The present system presents the programmer with a virtual machine in which there is a single coordinating process operating with a global view although, in fact, the data and computation remain distributed across every component, and a run-time system manages the cycling of the coordinating process in a manner that is invisible to the coordinating process itself.

Claims Coverage

Independent claims: 1 and 11. The independent claims disclose nine main inventive features across their recited clauses.

Providing a first set of software code needed to run a coordinating process

providing a first set of software code needed to run a coordinating process on each of said computing devices;

Coordinating process controls operations needed to coordinate activities

wherein said coordinating process controls operations needed to coordinate the activities of said components in said multi-component system;

Cycling coordinating process by transferring execution state with residency time

cycling said coordinating process through each of said components in said multi-component system by transferring an execution state of said coordinating process through each of said components, with said coordinating process running on each of said components for a residency time;

Coordinating process communicates only when running on particular component

wherein said coordinating process only communicates with a particular component when said coordinating process is running on said particular component.

Providing a first set of software code naming a coordinating process on each device

providing a first set of software code naming a coordinating process on each of said computing devices, wherein said coordinating process controls operations needed to coordinate the activities of said components in said multi-component system;

Providing a second set of software code running local processes

providing a second set of software code running local processes on each of said computing devices;

Providing an interface between coordinating and local processes

providing an interface between said first and second sets of software code on each of said computing devices whereby information can be exchanged between said coordinating process and said local processes;

Successively moving the coordinating process while it is running

successively moving said coordinating process from one component to another within said plurality of components as said coordinating process is running;

Coordinating process communicates only when resident on a particular component

wherein said coordinating process only communicates with a particular component when said coordinating process is running on said particular components.

The independent claims emphasize (1) providing coordinating-process code resident on each computing device, (2) providing local-process code and an interface for exchange between coordinating and local processes, (3) successively moving or cycling the coordinating process among components by transferring an execution state (with residency time and optionally a mobile data cache), and (4) limiting coordinating-process communication to when the coordinating process is resident on a given component.

Stated Advantages

The continuous cycling of the coordinating process presents the programmer with a virtual machine in which there is a single coordinating process operating with a global view although, in fact, the data and computation remain distributed across every component in the system.

One of the key advantages of the PIM is the fact that it can continue operating despite the loss of one or more of its member components.

The run-time system for transferring the coordinating process from component to component is invisible to the coordinating process.

Documented Applications

Control and coordination of teams of semi-autonomous robots engaged in complex tasks requiring coordinated action.

Coordinating two lifting jacks to balance and raise a commonly supported load.

A pursuit-domain application to herd two sheep to a central location and hold them there using herding vehicles, a seer vehicle, and tracking vehicles with sensor fusion.

Simplifying the coordination requirements for large networks of smart sensors and effectively managing data.

JOIN OUR MAILING LIST

Stay Connected with MTEC

Keep up with active and upcoming solicitations, MTEC news and other valuable information.