Software messaging system
First Claim
Patent Images
1. A software system comprising:
- a Keeper for storing a plurality of message translations, wherein each message translation comprises a translation name and a plurality of message attributes, at least one of the message attributes describing a message type; and
a plurality of software modules operable under the control of a single operating system, wherein each of the plurality of software modules;
is operable to either send or receive messages with at least one other software module in the system, and comprises a common message handling control operable to send messages and to associate a message to be sent with message attributes of at least one of the plurality of message translations.
1 Assignment
0 Petitions
Accused Products
Abstract
A software architecture includes a router that receives all messages from modules in a software system. Each message is associated with one of several pre-defined message translations, including message attributes, which are maintained by a Keeper database. Individual modules may send messages to the Router requesting that they receive messages having message attributes that match specified criteria. A common messaging control is encodes each message according to a hierarchical format so that any module receiving a message can decode the message and receive data elements from it without knowledge of the precise structure or sequence of data elements in the message.
60 Citations
25 Claims
-
1. A software system comprising:
-
a Keeper for storing a plurality of message translations, wherein each message translation comprises a translation name and a plurality of message attributes, at least one of the message attributes describing a message type; and
a plurality of software modules operable under the control of a single operating system, wherein each of the plurality of software modules;
is operable to either send or receive messages with at least one other software module in the system, and comprises a common message handling control operable to send messages and to associate a message to be sent with message attributes of at least one of the plurality of message translations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
a Router operable: to be the only software module that receives messages sent by the common message handling controls of the plurality of software modules; and
for each message it receives from another software module that includes the common message handling control, to;
determine from a routing table each other software module in the system to which the received message should be sent; and
send the message to each such other software module in the system via the common message handling control of such other software module.
-
-
5. The software system of claim 4, wherein each message sent by a software module using the common message handling control has a hierarchical structure.
-
6. The software system of claim 1 wherein the message translations stored by the Keeper each comprise the following message attributes:
- (a) the name of the module the message is intended for;
(b) the type of module the message is intended for;
(c) the name of the module originating the message; and
(d) the type of module originating the message.
- (a) the name of the module the message is intended for;
-
7. The software system of claim 6 wherein a message attribute may be a universal match indicator.
-
8. The software system of claim 6 wherein a message attribute may comprise a macro.
-
9. A method of updating a software system comprising:
-
providing a software system of claim 1 and a routing table indicating which software modules should receive which message translations;
adding a software module to the software system, wherein the added module comprises the common message handling control; and
updating the routing table to indicate that the added module should receive messages matching the attributes of a previously defined message translation.
-
-
10. The method of claim 9, further comprising the step of creating at least one new message translation defining a message type to be receivable by the new module and storing the new message translation in the Keeper.
-
11. A software system comprising multiple modules operable under the control of a single operating system in which the modules send and receive messages amongst each other, comprising:
-
a software message control included in each of a plurality of modules operable to send and receive messages, and to associate each message with one of a plurality of message translations, each message translation comprising a translation name and a plurality of message attributes, a routing table indicating each of the plurality of modules that should receive messages having specified message attributes, a router module that;
receives encoded messages from the plurality of modules that include the software control;
accesses the routing table to determine the modules to which a received encoded message should be sent based on matching the message attributes of the encoded message with the message attributes specified for each of the plurality of modules, sends encoded received messages to each of the plurality of modules that should receive messages as indicated in the routing table;
wherein at least one of the messages receivable by the router includes a message specifying that the particular module from which the message is received should receive messages matching a message attributes of a message translation, and wherein the Router is operable, upon receipt of such a message, to send future messages having message attributes that match the specified message attributes to the particular module. - View Dependent Claims (12, 13, 14)
-
-
15. A method, in a software system comprising multiple modules operable under the control of a single operating system, for transmitting messages among such modules comprising:
-
providing a software message control in each of a plurality of modules;
sending and receiving messages to and from the plurality of modules according to a common message format;
providing a routing table containing filter conditions indicating which of the plurality of modules should receive messages matching a plurality of message attributes;
providing a router module;
causing the router module to receive encoded messages from the plurality of modules that include the software control, wherein each encoded message is associated with a plurality of message attributes;
accessing the routing table to determine the modules to which a received encoded message should be sent based on the message attributes of the message;
sending encoded received messages to each of the plurality of modules that should receive messages as indicated by the routing table; and
changing, during execution of the software system and in response to a message from a module received by the Router, the filter conditions indicating which of the plurality of modules should receive messages matching a plurality of message attributes.
-
-
16. A software system comprising:
-
a plurality of software modules operable under the control of a single operating system;
wherein each of the plurality of software modules includes a software messaging control operable to either send or receive messages with at least one other software module in the system, and wherein the messaging control comprises means for dynamically defining the format of a message;
comprises means for building a message to be sent according to a common message format by the software module specifying data element names and values;
comprises means for receiving from the software module in which it is included a data element name for data contained in a received message, and means for parsing the received message and providing the software module with the data corresponding to the data element name, regardless of the order of the data elements in the received message. - View Dependent Claims (17, 18, 19, 20)
a Keeper database comprising a plurality of message translations for at least one of the plurality of software modules in which the software messaging control is embedded, and wherein the at least one of the plurality of software modules in which the software messaging control is embedded is operable to associate a message translation from the Keeper database with each message sent by the module.
-
-
21. A software system comprising:
-
a plurality of software modules operable under the control of a single operating system;
each such software module comprising;
means for sending messages between the plurality of software modules, each message comprising data elements comprising a plurality of keys and a data value associated with each key;
message building means for building a message to be sent, such that the keys and their associated data values may be inserted into a message in any order; and
message parsing means for retrieving a message data value based on a key, regardless of the sequence of the data value in the message. - View Dependent Claims (22, 23, 24, 25)
the message building means builds the data elements in a message in an hierarchical order. -
23. The software system of claim 21 wherein the message building means is referenced in each of the plurality of software modules.
-
24. The software system of claim 21 wherein the message parsing means is referenced in each of the plurality of software modules.
-
25. The software system of claim 21 wherein the sequence of data elements of each message to be sent is dynamically constructed during execution of the software system.
-
Specification