Claims
- 1. In an integrated data communication and data access system comprising a first client non-server application including a first cache memory, a second client non-server application including a second cache memory, a database interconnected between the first client non-server application and the second client non-server application, and a server interconnected between the first client non-server application and the second client non-server application, a method of communicating between client applications, comprising the steps of:
- (a) generating, by said second client non-server application, an original set of data, said second client non-server application adapted to set a persistent storage state and a transient storage state and a memory storage state, said second client non-server application attempting to store said original set of data in said second cache memory and in said database after said second client non-server application sets said persistent storage state and said transient storage state and said memory storage state;
- (b) storing, by said second client non-server application, said original set of data in said second cache memory when said second client non-server application sets said persistent storage state or said transient storage state or said memory storage state,
- (c) storing, by said second client non-server application, said original set of data in said database when said second client non-server application sets said persistent storage state or said transient storage state, and not storing, by said second client non-server application, said original set of data in said database when said second client application sets said memory storage state;
- (d) retrieving by said first client non-server application said original set of data from said database and storing the retrieved original data in said first cache memory of said first client non-server application;
- (e) in response to said retrieved original data stored in said first cache memory of said first client non-server application, expressing interest by said first client non-server application in a subsequently modified version of said original set of data by transmitting an interest object associated with an event from said first client non-server application to said server;
- (f) receiving said interest object in said server and retransmitting said interest object from said server to said second client non-server application;
- (g) generating by said second client non-server application said subsequently modified version of said original set of data when the second client non-server application practices said event, said second client non-server application notifying said first client non-server application when the subsequently modified data is generated and attempting to store said subsequently modified version of said original set of data in said second cache memory and in said database;
- (h) storing, by said second client non-server application, said subsequently modified version of said original set of data in said second cache memory when said second client non-server application sets either said persistent storage state or said transient storage state or said memory storage state;
- (i) storing, by said second client non-server application, said subsequently modified version of said original set of data in said database when said second client non-server application sets said persistent storage state, and not storing the subsequently modified data in said database when said second client non-server application sets either said transient storage state or said memory storage state; and
- (j) transmitting, by said second client non-server application, said subsequently modified version of said original set of data associated with said event from said second client non-server application directly to said first client non-server application without routing the subsequently modified data through said server.
- 2. The method of claim 1, further comprising:
- (k) responding by said server to one or more revocation objects received from one or more client non-server applications; and
- (l) responding by said server to additional interest objects received from other additional client applications.
- 3. The method of claim 2, wherein the responding step (l) comprises the steps of:
- transmitting said interest object associated with said event from a third client non-server application to said server;
- retransmitting said interest object from said server to said second client non-server application; and
- transmitting said subsequently modified version of said original set of data associated with said event from said second client non-server application to said first client non-server application and to said third client non-server application without routing said subsequently modified version of said original set of data through said server when said second client non-server application practices said event.
- 4. The method of claim 2, further comprising the steps of:
- (m) transmitting a revocation object from said first client non-server application to said server,
- (n) in response thereto, transmitting said revocation object from said server to said second client non-server application; and
- (o) in response to said revocation object, un-registering, within said second client non-server application, said interest object of said first client non-server application associated with said event and refraining, by said second client non-server application, from sending said event information associated with said event directly to said first client non-server application when said second client non-server application practices said event.
- 5. The method of claim 2, wherein said first client non-server application is adapted to terminate its execution, and wherein the responding step (l) comprises the steps of:
- responding, by said server, to a revocation object received from said first client non-server application and transmitting said revocation object from said server to said second client non-server application when said first client non-server application terminates its execution; and
- in response to said revocation object, un-registering, within said second client non-server application, said interest object of said first client non-server application corresponding to said event and refraining, by said second client non-server application, from transmitting said subsequently modified version of said original set of data associated with said event directly to said first client non-server application when said second client non-server application practices said event.
- 6. An integrated data communication and data access system adapted for intercommunicating between client applications, comprising:
- a second client non-server application adapted to generate an original set of data, said second client non-server application including a second cache memory and adapted to set either a persistent storage state or a transient storage state or a memory storage state;
- a database operatively connected to said second client non-server application,
- said second client non-server application storing said original set of data in said second cache memory when said second client non-server application sets either said persistent storage state or said transient storage state or said memory storage state,
- said second client non-server application storing said original set of data in said database when said second client non-server application sets either said persistent storage state or said transient storage state, and not storing said original set of data in said database when said second client non-server application sets said memory storage state;
- a first client non-server application operatively connected to said database and to said second client non-server application, said first client non-server application retrieving said original set of data from said database and subsequently expressing interest in a subsequently modified version of said original set of data by generating and transmitting an interest object corresponding to an event;
- a server operatively interposed between and connected to said first client non-server application and said second client non-server application,
- said first client non-server application transmitting said interest object to said server,
- said server re-transmitting said interest object to said second client non-server application,
- said second client non-server application practicing said event and thereby generating a subsequently modified version of said original set of data in response to the practice of said event, said second client non-server application attempting to store said subsequently modified version of said original set of data in said second cache memory and in said database,
- said second client non-server application storing said subsequently modified version of said original set of data in said second cache memory when said second client non-server application sets either said persistent storage state or said transient storage state or said memory storage state,
- said second client non-server application storing said subsequently modified version of said original set of data in said database when said second client non-server application sets said persistent storage state, and not storing said subsequently modified version of said original set of data in said database when said second client non-server application sets either said transient storage state or said memory storage state,
- said second client non-server application, responsive to said interest object, transmitting said subsequently modified version of said original set of data directly to said first client non-server application without routing the subsequently modified data through said server when said second client non-server application practices said event.
- 7. The integrated data communication and data access system of claim 6, wherein said server responds to a revocation object from said first client non-server application and transmits said revocation object to said second client non-server application when said first client non-server application terminates its execution, said second client non-server application not transmitting said subsequently modified version of said original set of data to said first client non-server application in response to said revocation object when said second client non-server application practices said event.
- 8. A data communication and data access system, comprising:
- a first client application including,
- a first application adapted to set a persistent storage state or a transient storage state or a memory storage state,
- a first cache memory operatively connected to said first application and responsive to the storage state set by said first application,
- first interface apparatus operatively interposed between said first application and said first cache memory adapted to coordinate a transfer of data between said first application and said first cache memory, and
- first conversion apparatus operatively connected to said first cache memory and interfacing between a first operator of said first client application and said first cache memory adapted to receive data having a first format from said first operator and convert said data having said first format to data having a second format for storage in said first cache memory, said first conversion apparatus adapted to convert said data having said second format to said data having said first format for use by said first operator,
- a second client application including,
- a second application adapted to set a persistent storage state or a transient storage state or a memory storage state,
- a second cache memory operatively connected to said second application and responsive to the storage state set by said second application,
- second interface apparatus operatively interposed between said second application and said second cache memory adapted to coordinate a transfer of data between said second application and said second cache memory, and
- second conversion apparatus operatively connected to said second cache memory and interfacing between a second operator of said second client application and said second cache memory adapted to receive data having a third format from said second operator and convert said data having said third format to said data having said second format for storage in said second cache memory, said second conversion apparatus converting said data having said second format to said data having said third format for use by said second operator;
- a server operatively interconnected between the first application and the second application; and
- a database operatively interconnected between the first cache memory and the second cache memory,
- said first conversion apparatus receiving an original set of said data having said first format from said first operator and converting said original set of data having said first format into an original set of data having said second format,
- said first application storing said original set of said data having said second format received from said first conversion apparatus into said first cache memory when said first application sets either said persistent storage state or said transient storage state or said memory storage state,
- said first application storing storing said original set of said data having said second format received from said first conversion apparatus into said database when said first application sets either said persistent storage state or said transient storage state, said first application not storing said original set of said data having said second format into said database when said first application sets said memory storage state,
- said second client application retrieving said original set of said data having said second format from said database and storing said original set of data having said second format in said second cache memory,
- said second conversion apparatus converting said original set of data having said second format into an original set of data having a third format for use by said second operator,
- said second operator expressing interest in a subsequently modified version of said original set of data having said third format by generating an interest object corresponding to an event,
- said second application transmitting said interest object to said server,
- said server re-transmitting said interest object to said first application,
- said first application subsequently generating a subsequently modified version of said original set of data having a second format and attempting to store said subsequently modified version of said original set of data having said second format into said first cache memory and into said database,
- said first application storing said subsequently modified version of said original set of data having a second format into said first cache memory when said first application sets either said persistent storage state or said transient storage state or said memory storage state,
- said first application storing said subsequently modified version of said original set of data having a second format into said database when said first application sets said persistent storage state, but not storing said subsequently modified version of said original set of data having a second format into said database when said first application sets either said transient storage state or said memory storage state,
- said first application responding to said interest object received from said server by transmitting said subsequently modified version of said original set of said data having said second format directly to said second application without routing said subsequently modified version of said original set of said data having said second format through said server,
- said subsequently modified version of said original set of said data having said second format received by said second application being converted by said second conversion apparatus into a subsequently modified version of said original set of said data having a third format for viewing by said second operator.
- 9. The data communication and data access system of claim 8, wherein said subsequently modified version of said original set of data having said second format which is received by said second application is stored in said second cache memory when said first application or said second application sets either said memory storage state or said persistent storage state or said transient storage state, said second conversion apparatus converting said subsequently modified version of said original set of data having said second format into said subsequently modified version of said original set of data having said third format for viewing by said second operator.
- 10. In a data communication and data access system including a first client application which further includes a first application and a first cache memory and a first conversion unit, a second client application which further includes a second application and a second cache memory and a second conversion unit, a server operatively interconnected between the first application and the second application, and a database operatively interconnected between said first cache memory and said second cache memory, a method of data communication and data access, comprising the steps of:
- (a) supplying, by a first operator, original data having a first format to said first conversion unit and converting, in said first conversion unit, said original data having said first format to original data having a second format, said first application and said second application adapted for setting a persistent storage state or a transient storage state or a memory storage state,
- (b) storing, by said first application, said original data having said second format in said first cache memory when said first application sets either said persistent storage state or said transient storage state or said memory storage state;
- (c) storing, by said first application, said original data having said second format in said database when the first application or the second application sets either the persistent storage state or the transient storage state but not storing said original data having said second format in said database when the first application or the second application sets the memory storage state;
- (d) retrieving by said second application said original data having said second format from said database and converting, in said second conversion unit, said original data having said second format into original data having a third format for use by a second operator,
- (e) in response to said original data having said third format, expressing interest in a modified version of said original data having said third format by transmitting an interest object from said second application to said server and then re-transmitting said interest object from said server to said first application;
- (f) supplying, by said first operator, modified data having a first format to said first conversion unit and converting, in said first conversion unit, said modified data having said first format into modified data having a second format;
- (g) storing said modified data having said second format in said first cache memory when said first application or said second application sets said persistent storage state or said transient storage state or said memory storage state,
- (h) storing said modified data having said second format in said database when the first application or the second application sets the persistent storage state but not storing said modified data having said second format in said database when the first application or the second application sets either the transient storage state or the memory storage state; and
- (i) in response to said interest object retransmitted from said server to said first application during step (e), transmitting said modified data having said second format from said first application directly to said second application without routing said modified data having said second format through said server.
- 11. The method of claim 10, wherein the retrieving and converting step (d) further comprises the steps of:
- (d1) reading said original data having said third format from said second conversion unit and supplying said interest object pertaining to said original data having said third format to said second application.
- 12. The method of claim 11, further comprising the steps of:
- (j) storing, by said second application, said modified data having said second format, in said second cache memory when said first application or said second application sets either said persistent storage state or said transient storage state or said memory storage state; and
- (k) converting, in said second conversion unit, said modified data having said second format to modified data having a third format for use by said second operator.
CROSS REFERENCE TO RELATED APPLICATIONS
This specification is a Continuation-in-Part application of prior pending application Ser. No. 08/758,833 filed Dec. 4, 1996 and entitled "Distributed Framework for Intertask Communication Between Workstation Applications", and this specification is also a 35 USC 119(e) (1) application of prior pending provisional application Ser. No. 60/023,945 filed Aug. 19, 1996 and entitled "Distributed Framework for Inter--Process Communication Between Workstation Applications", and this specification is also a 35 USC 119(e) (1) application of prior pending provisional application Ser. No. 60/023,689 filed Aug. 15, 1996 and entitled "Application Data Interface (ADI)".
US Referenced Citations (17)
Non-Patent Literature Citations (1)
| Entry |
| Microsoft Corp. "The Component Object Model Specification", pp 1-13. 1995. |
Continuation in Parts (1)
|
Number |
Date |
Country |
| Parent |
758833 |
Dec 1996 |
|