Apparatus and method for providing decoupled data communications between software processes
First Claim
1. A computer program, on a computer-readable medium, for communicating data between programs along a data communication path, comprising:
- (a) a code segment for addressing a request for information from a requesting program on a particular subject and mapping said subject to one or more service discipline programs capable of communicating with a data publishing program that supplies data on said subject;
(b) a code segment for invoking one or more of said service discipline programs to establish a communication link over said communication path used by said data publishing program to publish data; and
(c) a code segment for filtering data published by said data publishing program by subject such that only data on the requested subject reaches said requesting program.
4 Assignments
0 Petitions
Accused Products
Abstract
A communication interface for decoupling one software application from another software application such communications between applications are facilitated and applications may be developed in modularized fashion. The communication interface is comprised of two libraries of programs. One library manages self-describing forms which contain actual data to be exchanged as well as type information regarding data format and class definition that contain semantic information. Another library manages communications and includes a subject mapper to receive subscription requests regarding a particular subject and map them to particular communication disciplines and to particular services supplying this information. A number of communication disciplines also cooperate with the subject mapper or directly with client applications to manage communications with various other applications using the communication protocols used by those other applications.
312 Citations
23 Claims
-
1. A computer program, on a computer-readable medium, for communicating data between programs along a data communication path, comprising:
-
(a) a code segment for addressing a request for information from a requesting program on a particular subject and mapping said subject to one or more service discipline programs capable of communicating with a data publishing program that supplies data on said subject; (b) a code segment for invoking one or more of said service discipline programs to establish a communication link over said communication path used by said data publishing program to publish data; and (c) a code segment for filtering data published by said data publishing program by subject such that only data on the requested subject reaches said requesting program. - View Dependent Claims (2)
-
-
3. An article of manufacture embodied on a computer-readable medium for decoupling a first application'"'"'s data format from the data format of a second application with which data is to be exchanged, comprising:
-
(a) a code segment coupled to said first and second applications for creating and managing forms containing data pertinent to a corresponding application, each form containing one or more class identifiers corresponding to one or more class definitions including the instance of the class to which said form belongs and wherein each said field may contain data or another form; and (b) a code segment for converting the format of a form to a format compatible with the receiving of the first and second applications.
-
-
4. An article of manufacture embodied on a computer-readable medium for decoupling a first application'"'"'s natural form format from a foreign form format of a second application, comprising:
-
(a) a code segment coupled to said first application for creating and manipulating self-describing data objects called forms that contain data corresponding to one or more class definitions defining the names and organization of fields within said form; and (b) a code segment coupled to said first application for addressing requests by said first application to access the data in any selected field of a foreign form used by said second application, accessing the class definition defining the field names and organization of said form used by said second application, locating the named field matching the field name given in said request, returning a pointer address to said field, accessing said form, and using said pointer address to obtain and return to said first application the data stored in the field named in the original request. - View Dependent Claims (5)
-
-
6. An article of manufacture embodied on a computer-readable medium for providing a communication facility between first and second computer programs each of which use data records having different structures and data representation formats, comprising:
-
(a) a code segment for creating nested data records for each of said first and second computer programs having the structures and data representation formats native to each of said first and second programs, said data records being nested in the sense that any data record may have one or more fields containing other data records for any number of levels of nesting, each data record being assigned to a class having associated therewith a class identifier and each instance of a data record including class identifiers which comprise the data record; and (b) a code segment for facilitating transfers of data records between said first and second computer programs by translating the format of data records from the format of the sending computer program to the format of the receiving computer program. - View Dependent Claims (7, 8, 9)
-
-
10. A method of communicating data between programs over a data communication path, the method comprising the steps of:
-
(a) generating a request for information, on a particular subject, by a data subscribing program; (b) mapping the subject to a service discipline program capable of communicating with a data publishing program supplying data on the subject; (c) invoking the service discipline programs to establish communications over the data communication path used by the data publishing program to publish data; (d) receiving data published by the data publishing program; and (e) filtering the received data by subject such that only data on the requested subject reaches the requesting program. - View Dependent Claims (11)
-
-
12. A method for decoupling a first application'"'"'s natural form format from a foreign form format of a second application, comprising the steps of:
-
(a) creating and using self-describing data objects called forms containing data corresponding to one or more class definitions defining the names and organization of fields within the form; and (b) receiving a request by the first application to access the data in any selected field of a foreign form used by the second application; (c) accessing the class definition defining the field names and organization of the form used by the second application; (d) locating the named field matching a the field name given in the request; (e) returning a pointer address to the field; (f) accessing the form; and (g) using the pointer address to obtain and return to the first application the data stored in the field named in the request. - View Dependent Claims (13, 14, 15)
-
-
16. A process for communicating data between a subscriber and data publishers in execution on one or more computers coupled by a data communication path, the process comprising the steps of:
-
(a) receiving a subscription request from the subscriber, the subscription request including a subject upon which data is desired by the subscriber; (b) mapping the subject to the identity of one or more data publishers that output data on the subject; (c) establishing a communication link over the data communication path to the data publisher; (d) registering a subscription on the subject; and (e) passing only data on the subject to the subscriber. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. An apparatus comprising:
-
(a) one or more computers cumulatively having in execution thereon one or more subscriber processes and one or more publisher processes; (b) one or more data transfer paths coupling one or more subscriber processes to one or more publisher processes; and (c) intermediary software structured to control a computer to receive a subscription request, from a subscriber process, naming a subject upon which a subscriber process desires to receive data, to use the subject to locate one or more publisher processes that can supply data on the subject, to set up a communication link to the located publisher processes and register a subscription on the subject by sending a subscription registration message, wherein the intermediary software also can control the computer to receive data on said subject and automatically transmit the data to the subscriber process from which the subscription request was received. - View Dependent Claims (23)
-
Specification