Apparatus and method for linking software modules
First Claim
1. A machine-implemented method for linking together a plurality of software modules using linkable objects, each module having at least one of (a) at least one data input and (b) at least one data output, comprising the steps of:
- (1) identifying the data inputs and the data outputs for each software module wherein each of the data inputs and data outputs includes data of at least one data type;
(2) categorizing each of the data inputs and data outputs according to its respective data types; and
(3) creating an Input object, Output object, or both, for each software module using the data inputs and data outputs identified in the identifying step and the data type categorization from the categorizing step wherein the Input and Output objects are linkable;
further comprising;
designating an Input object identifier for each Input object; and
wherein the step of creating an Input object, Output object, or both includes the steps of;
(1) creating each Output object by generating a table of inputs containing one or more input entries, each input entry for receiving a designated Input object identifier;
(2) creating each Input object by generating;
(a) a table of actions containing one or more action entries, each action entry for receiving data of a designated data type and corresponding action identifier, and(b) a message register for receiving data values from an Output object;
(3) adding action entries of at least one designated Input object to the table of actions;
(4) making a connection between at least two software modules by adding an Input object identifier for a first software module to the table of inputs of an Output object of a second software module; and
(5) transferring data between a designated output object and at least one connected Input object by;
(a) specifying a message comprising a data type indicator and a corresponding data value, and(b) sending a copy of the message to each connected Input object identified in the table of inputs of the designated Output object.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method for interconnecting a plurality of independent software modules by means of specially configured software objects called "Input" and "Output". The software objects are implemented through library functions which include functions for making an Output object, making an Input object, adding actions to Input objects, making connections between the Input and Output objects of various software modules, sending messages from one software module to another, and receiving messages sent by another software module. The invention also provides a system for interconnecting a plurality of hardware modules, each of which may employ different internal data formats. Additionally, a novel graphical user interface is provided, whereby a user can create, destroy, inspect and/or hide connections between software modules, as well as display data flow between modules.
-
Citations
20 Claims
-
1. A machine-implemented method for linking together a plurality of software modules using linkable objects, each module having at least one of (a) at least one data input and (b) at least one data output, comprising the steps of:
-
(1) identifying the data inputs and the data outputs for each software module wherein each of the data inputs and data outputs includes data of at least one data type; (2) categorizing each of the data inputs and data outputs according to its respective data types; and (3) creating an Input object, Output object, or both, for each software module using the data inputs and data outputs identified in the identifying step and the data type categorization from the categorizing step wherein the Input and Output objects are linkable; further comprising; designating an Input object identifier for each Input object; and wherein the step of creating an Input object, Output object, or both includes the steps of; (1) creating each Output object by generating a table of inputs containing one or more input entries, each input entry for receiving a designated Input object identifier; (2) creating each Input object by generating; (a) a table of actions containing one or more action entries, each action entry for receiving data of a designated data type and corresponding action identifier, and (b) a message register for receiving data values from an Output object; (3) adding action entries of at least one designated Input object to the table of actions; (4) making a connection between at least two software modules by adding an Input object identifier for a first software module to the table of inputs of an Output object of a second software module; and (5) transferring data between a designated output object and at least one connected Input object by; (a) specifying a message comprising a data type indicator and a corresponding data value, and (b) sending a copy of the message to each connected Input object identified in the table of inputs of the designated Output object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A machine-implemented method for communicating data between a plurality of software modules, each software module having at least one of at least one Input object and at least one Output object, wherein:
-
(a) each Input object having a table of actions containing one or more action entries, each action entry comprising a designated data type and corresponding action identifier, and a message register for receiving data values from an Output object, and (b) each Output object having a table of inputs containing one or more input entries, each input entry comprising a designated Input object identifier, wherein at least one Output object is linked to at least one Input object, comprising the steps of; (1) transferring data between a designated Output object to at least one linked Input object by specifying (a) a message comprising a data type and a corresponding data value, and (b) sending a copy of the message to each Input object specified in the entries of the table of inputs of the designated Output object; (2) storing the data value in the message register of each such Input object; (3) comparing the data type of the message to the data type of each action entry in the table of actions of each such Input object; and (4) executing the action indicated by the action identifier corresponding to the matching action entry data type if the compared data types match. - View Dependent Claims (13, 14, 15)
-
-
16. A computer apparatus for communicating data between a plurality of software modules, each software module having at least one of at least one Input object and at least one Output object, wherein:
-
(a) each Input object having a table of actions containing one or more action entries, each action entry comprising a designated data type and corresponding action identifier, and a message register for receiving data values from an Output object, and (b) each Output object having a table of inputs containing one or more input entries, each input entry comprising a designated Input object identifier, wherein at least one Output object is linked to at least one Input object, the apparatus comprising; (1) means for transferring data between a designated Output object to at least one linked Input object by specifying (a) a message comprising a data type and a corresponding data value, and (b) sending a copy of the message to each Input object specified in the entries of the table of inputs of the designated Output object; (2) means for storing the data value in the message register of each such Input object; (3) means for comparing the data type of the message to the data type of each action entry in the table of actions of each such Input object; and (4) means for executing the action indicated by the action identifier corresponding to the matching action entry data type if the compared data types match. - View Dependent Claims (17, 18, 19, 20)
-
Specification