Electrical computers and digital processing systems: multicomput – Distributed data processing
Reexamination Certificate
2000-09-22
2002-07-23
Lim, Krisna (Department: 2153)
Electrical computers and digital processing systems: multicomput
Distributed data processing
C709S203000, C709S208000, C370S352000
Reexamination Certificate
active
06424990
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to distributed processing systems. More particularly, the invention relates to distributed processing systems which incorporate a plurality of processing zones (referred to herein as “cells”), each cell processing information in response to a type of event, and each cell communicating with other cells according to an event-reaction protocol as well as according to other protocols such as streaming, broadcast, etc. Cells exhibit a symmetrical and reciprocal relationship, with cells sometimes being a controller of other cells and sometimes being controlled by other cells. The system is self-configuring, self-repairing, and operates in real time.
2. State of the Art
The above referenced parent application disclosed a distributed processing system having a plurality of cells where each cell processes information in response to a type of event, and cells communicate with each other according to a variety of protocols including an (asynchronous) event-reaction protocol. Processing is truly distributed in that no cell is considered the system host or system controller. The cells exhibit a symmetrical and reciprocal relationship with cells sometimes being a controller of other cells and sometimes being controlled by other cells.
According to one embodiment, each cell is responsive to a single event and includes one or more scripts which are executed upon the occurrence of the event. At least some scripts include directions to send information to one or more scripts in another cell.
According to another embodiment, information exchanged between cells is categorized into the following types which are listed in descending order of priority: streams, data events, data event acks, spawn process, spawn process begun, spawn process ended, exception, and broadcast.
The cells may communicate with each other via a shared memory or via a communications bus. A scalable bandwidth bus is an ideal communications path. However, the communications protocol utilized by the cells enables the use of virtually any networking medium. Thus, cells may reside in the same chip or may be separated from each other by thousands of miles. A collection of interacting cells is referred to as a colony, regardless of where the cells are located, and a collection of cells which are closely located, e.g. on the same board, are referred to as a node. The modularity and scalability of the processing systems is therefore based on collections of cells and collections of colonies. Each cell may be embodied in hardware, software, or a combination of hardware and software. No cell or colony need be considered a “host”.
Each cell is provided with a collection of synchronous (non-colliding) scripts which respond to a single type of event. All scripts have addresses and the addresses of all of the scripts in the processing system are kept in a database by a resource manager script in each cell. Applications are created by linking available scripts via their respective addresses. As all scripts are driven by particular events, the code written for the distributed processing system does not require any explicit scheduling. The processing system is essentially self-scheduling and real time applications can run concurrently without interfering with each other.
Scripts communicate with each other by dynamically compiling and tearing down mailing lists which are based on the occurrence of specific events. Thus, in response to one specific event, a responding script will communicate with one set of other scripts; whereas in response to a different event, the responding script will communicate with a different set of other scripts. Scripts subscribe to and unsubscribe from the mailing lists of other scripts based on the occurrence of different events.
Cells advertise their presence in the network when connected, and periodically thereafter, in order that other cells be able to take advantage of their resources. In particular, each cell periodically (e.g. every second) updates its database of script addresses which represent the functionality of the system to accommodate the addition of new cells to the system and to accommodate for cells which have become disconnected from the system or which have stopped functioning for some reason. Thus, a processing system is readily expanded to include new and additional processing resources which are substantially automatically assimilated into the system. The processing system is, in this sense, self-configuring and self-repairing.
Communication among cells is effected with the aid of mailing lists such that data may be multicast from one cell to many cells. Moreover, the mailing lists are preferably dynamically set up and torn down depending on the execution of scripts which direct the flow of data throughout the system. Further, the mailing lists are updated as new cells are added to and old cells are removed from the system as part of the self-configuring and self-repairing functionality of the system.
An exemplary embodiment of a distributed processing system was illustrated with reference to a telephone private branch exchange PBX) in which cells are distributed over “line cards” and “phone cards” which couple several telephone sets to one or more telephone subscriber lines. In this example, the cells communicate with each other via the same physical medium through which the telephones are coupled to subscriber lines. Each line card and phone card is considered a node, each having a number of cells. Cells in the phone cards include, for example, cells responding to the following events: phone off hook, DTMF tone dialed, ring detected, etc. Examples of scripts executed in response to events include, generate dial tone, send ringing signal, seize subscriber line, etc. Each of the cards advertises its presence to the other cards on a regular basis. The knowledge of the presence of cards (nodes) in the system is used to build mailing lists when, for example, a conference call is made, or when the system is programmed so that only some phones in the system ring when an outside call is detected by a line card.
SUMMARY OF THE INVENTION
Subsequent development of the exemplary PBX system has led to the invention of several new features which can be used to provide the PBX with additional functionality and which can be used in any of the distributed processing systems according to the invention. Those skilled in the art will appreciate how these new features operate by comparing the source code of the Microfiche Appendix of this application with the source code of the Appendix of the previous application.
One of the important new features of the invention is that at least one cell is provided with the ability to read, write, and delete any address on any mailing list in the system.
Another new feature of the invention is that at least one cell keeps a list of events that are deemed important by the user where it is the cell's responsibility to insure that it remains subscribed to the mailing lists associated with these events. For easy reference, this list is referred to as “the subscription list”.
Yet another new feature of the invention is that at least one cell serves more than one mailing list and preferably keeps a list of the mailing lists it serves. This cell also has the ability to move subscribers from one mailing list to another, to modify which mailing list is the currently active mailing list or to make a plurality of mailing lists simultaneously active.
Still another important new feature of the invention is that at least one cell has the ability to modify the subscription list of another cell.
As described in more detail below with reference to the figures and the source code, these additional new features can be understood with regard to how they improve the functionality of the exemplary PBX system. For example, each phone card in the system will keep a subscription list (programmed by a human during system setup) of the line card mailing lists to which it is subscribed. This improves the self-healing and s
Gallagher Thomas A
Gordon David P
Jacobson David S
Lim Krisna
LandOfFree
Distributed processing systems incorporating a plurality of... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Distributed processing systems incorporating a plurality of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Distributed processing systems incorporating a plurality of... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2860113