Claims
- 1. A realtime engine for interfacing one or more data feeds with an application, each one of said one or more data feeds having an associated group of items for each member of which that data feed delivers realtime data, the interface comprising:
- means for caching data values most recently received from a selected one of said one or more data feeds for at least some members of the associated group of items for the selected data feed, wherein said caching means caches a data value that is most recently received for any given item by replacing a previously received data value for said given item with the most recently received data value for said given item;
- means for retrieving at least some of said cached data values in response to a request for updates from the application; and
- means for sending the retrieved data values to the application in response to the request for updates,
- wherein said caching means updates its cached data values with realtime data received from said selected data feed when said realtime data is received from said selected data feed and wherein said caching means performs said updating automatically and on an ongoing basis irrespective of whether the application has requested any updates, and
- wherein said retrieving means comprises means for determining which of said cached data values for a given set of items are different in value from data values for that set of items last sent to the application by said sending means, and wherein said retrieving means retrieves and said sending means sends only those cached data values having values that are determined to be different from the last sent data values for that set of items.
- 2. The engine of claim 1 further comprising means for identifying a subset of the associated group of items for the selected data feed, said subset containing items for which the application desires data, and wherein said subset identifies the members of the associated group for which said caching means caches the most recently received data values.
- 3. The engine of claim 2 further comprising means for storing copies of the data values for said given set of items last sent to the application, and wherein the determining means compares contents of the storing means with contents of the caching means to determine which data values for said given set of items are different from those last sent to the application.
- 4. The engine of claim 2 wherein said caching means comprises means for recording for each cached item whether it has been updated by the data feed since data values for those cached items were last sent to the application, and wherein the sending means sends only those cached data values which are identified by said recording means as having been updated.
- 5. The engine of claim 2 further comprising means for enabling the application to add members to said subset.
- 6. The engine of claim 2 further comprising means for enabling the application to delete members from said subset.
- 7. A realtime engine for interfacing multiple data feeds with a plurality of applications, each one of said data feeds having an associated group of items for each member of which that data feed delivers realtime data to the realtime engine, the interface comprising:
- a data structure means for identifying a set of items from among said associated groups of items for which updates are desired by one or more of the applications;
- means for caching data values most recently received from said data feeds for the identified set of items;
- means for retrieving certain of said cached data values in response to a request for updates from any one of the applications, wherein said caching means updates its cached data values automatically and on an ongoing basis irrespective of whether any of the applications has requested any updates;
- means for sending the retrieved data values to the application in response to the request for updates; and
- an application data structure means for storing for each of said applications the data values last sent to that application by said sending means and wherein said retrieving means checks a particular data value stored by said application data structure against a corresponding data value stored by said caching means to determine whether to retrieve that particular data value for transmission to an application requesting an update.
- 8. The realtime engine of claim 7 wherein said set of items identified by said data structure means is a union of all items for which updates are desired by said applications.
- 9. The realtime engine of claim 7 wherein each item of said associated groups of items comprises a corresponding set of fields, each field of which represents different information about the item of which said corresponding set of fields are a part, and wherein said data structure means also identifies fields of the identified set of items, the identified fields being those fields for which updates are desired by one or more of the applications.
- 10. The realtime engine of claim 9 wherein said caching means caches data values most recently received from said data feeds for the identified fields.
- 11. A realtime engine for interfacing multiple data feeds with a plurality of applications, each one of said data feeds having an associated group of items for each member of which that data feed delivers realtime data to the realtime engine, the interface comprising:
- a data structure means for identifying a set of items from among said associated groups of items for which updates are desired by one or more of the applications;
- means for caching data values most recently received from said data feeds for the identified set of items;
- means for retrieving certain if said cached data values in response to a request for updates from any one of the applications, wherein said caching means updates its cached data values automatically and on an ongoing basis irrespective of whether any of the applications has requested any updates;
- means for sending the retrieved data values to the application in response to the request for updates; and
- an application data structure means for storing for a given one of said applications information relating to a last update of said given one of said applications and wherein said retrieving means in response to an update request from said given one of said applications checks the stored last update information of said application data structure means to determine whether to retrieve any cached values for said given one of said applications.
- 12. The realtime engine of claim 11 wherein said application data structure means comprises a first means for indicating whether any realtime data has been received from a given data feed for a particular item of the group of items associated with said given data feed since said sending means last sent an update for that particular item to said given one of said applications and wherein said retrieving means retrieves the data value for that particular item from said caching means for transmission to said given one of said applications only if said first means indicates that realtime data has been received for that particular item since said sending means last sent an update for that particular item to said given one of said applications.
- 13. The realtime engine of claim 12 wherein said application data structure means comprises a second means for indicating whether the particular item has been updated by one of the data feeds since said sending means last sent an update for that particular item to said given one of said applications and wherein said retrieving means retrieves the data value for that particular item from said caching means for transmission to said given one of said applications only if said second means indicates that said the particular item has been updated by one of the data feeds since said sending means last sent an update for that particular item to said given one of said applications.
- 14. The realtime engine of claim 13 wherein said application data structure means comprises storage means for storing for said given one of said applications the data values last sent to that application by said sending means and wherein said retrieving means checks a data value stored in said storage means for the particular item against a corresponding data value stored by said caching means to determine whether to retrieve that particular data value for transmission to said given one of said applications and wherein said retrieving means retrieves the data value for that particular item from said caching means for transmission to said given one of said applications only if the stored data value for that particular item in said storage means is different from the corresponding data value stored by said caching means.
Parent Case Info
This is a continuation of application Ser. No. 07/588,612, filed Sep. 26, 1990, now abandoned.
US Referenced Citations (13)
Continuations (1)
|
Number |
Date |
Country |
Parent |
588612 |
Sep 1990 |
|