Publication of informational messages to software applications in a computing environment
First Claim
1. A method for publishing information to independent software applications operating in a computer system, the method comprising:
- detecting occurrence of an event in which a persistent store of data is has been modified;
storing, in a main table of the persistent store memory of the computer system, a new record for each event, each record comprising information relating to the event and a respective next sequential identification code;
preparing a corresponding message for each record of a plurality of records, each message comprising certain information relating to a respective event that is communicated to the independent software applications;
transmitting each message to at least one independent software application of the computer system to publish information relating to corresponding events;
storing, in a shadow table separate from the main table the memory, the respective sequential identification code of the last record published by transmission of a respective corresponding message;
reading from the shadow table the respective sequential identification code of the last record published in a respective corresponding message;
reading from the shadow table a next sequential record having an identification code that is next in a sequence relative to the respective sequential identification code read from the shadow table;
preparing a next corresponding message for the next sequential record; and
transmitting the next corresponding message to at least one independent software application of the computer system to publish information relating to a corresponding event, wherein the next corresponding messages excludes any messages corresponding to any records having a sequential identification code preceding the last sequential identification code.
1 Assignment
0 Petitions
Accused Products
Abstract
A “push” based publication model in which messages are sent automatically to communicate event related data to other system applications when an event occurs that causes a change to a persistent data store. A shadow table stores records relating to information stored in the main table. Each record is assigned a sequentially ordered identification code. A high water mark table stores the identification number of the last message published for a group of messages, and thus points to where publication last stopped. By using sequentially ordered codes, it is readily apparent from a gap in the sequence codes whether a record/message is missing. The shadow table may be configured as an Index Ordered Table to eliminate a query “hop” from the index table to the shadow table. The persistent store is queried to identify changes in persistent store structure, and the message structure is modified automatically to reflect any changes.
-
Citations
15 Claims
-
1. A method for publishing information to independent software applications operating in a computer system, the method comprising:
-
detecting occurrence of an event in which a persistent store of data is has been modified; storing, in a main table of the persistent store memory of the computer system, a new record for each event, each record comprising information relating to the event and a respective next sequential identification code; preparing a corresponding message for each record of a plurality of records, each message comprising certain information relating to a respective event that is communicated to the independent software applications; transmitting each message to at least one independent software application of the computer system to publish information relating to corresponding events; storing, in a shadow table separate from the main table the memory, the respective sequential identification code of the last record published by transmission of a respective corresponding message; reading from the shadow table the respective sequential identification code of the last record published in a respective corresponding message; reading from the shadow table a next sequential record having an identification code that is next in a sequence relative to the respective sequential identification code read from the shadow table; preparing a next corresponding message for the next sequential record; and transmitting the next corresponding message to at least one independent software application of the computer system to publish information relating to a corresponding event, wherein the next corresponding messages excludes any messages corresponding to any records having a sequential identification code preceding the last sequential identification code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for publishing information to independent software applications operating in a computer system, the method comprising:
-
storing, in a shadow table of a persistent store in a memory of the computer system, a new record for each of a plurality of events, each event involving a change to a main table of a persistent store, the persistent store of data having been modified with the occurrence of each event, each record comprising information relating to a corresponding event and a respective identification code, the respective identification codes being assigned to each of the records in a predictable sequence corresponding to an order of storing of each of the records in the Shadow table; preparing a corresponding message for each record of a first plurality of records, each message comprising information that relates to a respective event, and that is communicated to the independent software applications, each of the independent software applications being distinct from the persistent store; transmitting each message of a first plurality of messages corresponding to the first plurality of records, each message being transmitted to a plurality of independent software applications of the computer system to publish information relating to a corresponding event; storing, in a high water mark table of the persistent store in the memory of the computer system, a last sequential identification code of the records corresponding to the messages transmitted in the first plurality of messages, the last sequential identification code being stored as a pointer for subsequent reference before transmitting a next message, the high water mark table being distinct from the main table; reading from the memory a next sequential record having a next sequential identification code; preparing a next corresponding message for each record of a second plurality of records, the second plurality of records comprising the next sequential record; transmitting each message of the second plurality of messages corresponding to the second plurality of records, each message being transmitted to at least one independent software application of the computer system, the second plurality of messages including the message corresponding to the next sequential record; and storing, in the high water mark table of the persistent store a respective last sequential identification code of the records corresponding to the messages transmitted in the second plurality of messages, the respective last sequential identification code being stored as the pointer for subsequent reference, wherein the second plurality of messages excludes any messages corresponding to any records having a sequential identification code preceding the last sequential identification code.
-
-
12. A computer-readable medium comprising:
-
computer readable program code configured to store, in a shadow table of a persistent store in a memory of the computer system, a new record for each of a plurality of events, each event involving a change to a main table of a persistent store, the persistent store being modified with the occurrence of each event, each record comprising information relating to a corresponding event and a respective identification code, the respective identification codes being assigned to each of the records in a predictable sequence corresponding to an order of storing of each of the records in the shadow table; computer readable program code configured to prepare a corresponding message for each record of a first plurality of records, each message comprising information that relates to a respective event, and that is communicated to the independent software applications, each of the independent software applications being distinct from the persistent store; computer readable program code configured to transmit each message of a first plurality of messages corresponding to the first plurality of records, each message being transmitted to at least one independent software application of the computer system to publish information relating to a corresponding event; computer readable program code configured to store, in a high water mark table of the persistent store in the memory of the computer system, a last sequential identification code of the records corresponding to the messages transmitted in the first plurality of messages, the last sequential identification code being stored as a pointer for subsequent reference before transmitting a next message, the high water mark table being distinct from the main table; computer readable program code configured to read from the memory a next sequential record having a next sequential identification code; computer readable program code configured to prepare a next corresponding message for each record of a second plurality of records, the second plurality of records comprising the next sequential record; computer readable program code configured to transmit each message of the second plurality of messages corresponding to the second plurality of records, each message being transmitted to at least one independent software application of the computer system, the second plurality of messages including the message corresponding to the next sequential record; and computer readable program code configured to store, in the high water mark table of the persistent store a respective last sequential identification code of the records corresponding to the messages transmitted in the second plurality of messages, the respective last sequential identification code being stored as the pointer for subsequent reference.
-
-
13. A computer-readable medium comprising computer readable program code configured to carry out, a method for publishing information to independent software applications operating in a computer system, the method comprising:
-
detecting occurrence of an event in which a persistent store of data is has been modified; storing, in a main table of the persistent store memory of the computer system, a new record for each event, each record comprising information relating to the event and a respective next sequential identification code; preparing a corresponding message for each record of a plurality of records, each message comprising certain information relating to a respective event that is communicated to the independent software applications; transmitting each message to at least one independent software application of the computer system to publish information relating to corresponding events; storing, in a shadow table separate from the main table the memory, the respective sequential identification code of the last record published by transmission of a respective corresponding message; reading from the shadow table the respective sequential identification code of the last record published in a respective corresponding message; reading from the shadow table a next sequential record having an identification code that is next in a sequence relative to the respective sequential identification code read from the shadow table; preparing a next corresponding message for the next sequential record; and transmitting the next corresponding message to at least one independent software application of the computer system to publish information relating to a corresponding event.
-
-
14. A system for publishing information to independent software applications operating in a computer system, the system comprising:
-
means for storing, in a shadow table of a persistent store in a memory of the computer system, a new record for each of a plurality of events, each event involving a change to a main table of a persistent store, the persistent store being modified with the occurrence of each event, each record comprising information relating to a corresponding event and a respective identification code, the respective identification codes being assigned to each of the records in a predictable sequence corresponding to an order of storing of each of the records in the shadow table; means for preparing a corresponding message for each record of a first plurality of records, each message comprising information that relates to a respective event, and that is communicated to the independent software applications, each of the independent software applications being distinct from the persistent store; means for transmitting each message of a first plurality of messages corresponding to the first plurality of records, each message being transmitted to at least one independent software application of the computer system to publish information relating to a corresponding event; and
means for storing, in a high water mark table of the persistent store in the memory of the computer system, a last sequential identification code of the records corresponding to the messages transmitted in the first plurality of messages, the last sequential identification code being stored as a pointer for subsequent reference before transmitting a next message, the high water mark table being distinct from the main table;means for reading from the memory a next sequential record having a next sequential identification code; means for preparing a next corresponding message for each record of a second plurality of records, the second plurality of records comprising the next sequential record; means for transmitting each message of the second plurality of messages corresponding to the second plurality of records, each message being transmitted to at least one independent software application of the computer system, the second plurality of messages including the message corresponding to the next sequential record; and means for storing, in the high water mark table of the persistent store a respective last sequential identification code of the records corresponding to the messages transmitted in the second plurality of messages, the respective last sequential identification code being stored as the pointer for subsequent reference.
-
-
15. A system for publishing information to independent software applications operating in a computer system, the system comprising:
-
a processor; a memory operable connected to the processor; and instructions stored in the memory and executable by the processor to cause said system to; store, in a shadow table of a persistent store in the memory, a new record for each of a plurality of events, each event involving a change to a main table of a persistent store, the persistent store being modified with the occurrence of each event, each record comprising information relating to a corresponding event and a respective identification code, the respective identification codes being assigned to each of the records in a predictable sequence corresponding to an order of storing of each of the records in the shadow table; prepare a Corresponding message for each record of a first plurality of records, each message comprising information that relates to a respective event, and that is communicated to the independent software applications, each of the independent software applications being distinct from the persistent store; transmit each message of a first plurality of messages corresponding to the first plurality of records, each message being transmitted to at least one independent software application of the computer system to publish information relating to corresponding events; store, in a high water mark table of the persistent store in the memory of the computer system, a last sequential identification code of the records corresponding to the messages transmitted in the first plurality of messages, the last sequential identification code being stored as a pointer for subsequent reference before transmitting a next message, the high water mark table being distinct from the main table; reading from the memory a next sequential record having a next sequential identification code; preparing a next corresponding message for each record of a second plurality of records, the second plurality of records comprising the next sequential record; transmitting each message of the second plurality of messages corresponding to the second plurality of records, each message being transmitted to at least one independent software application of the computer system, the second plurality of messages including the message corresponding to the next sequential record; and storing, in the high water mark table of the persistent store a respective last sequential identification code of the records corresponding to the messages transmitted in the second plurality of messages, the respective last sequential identification code being stored as the pointer for subsequent reference.
-
Specification