USRE45631E1 - Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture - Google Patents
Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture Download PDFInfo
- Publication number
- USRE45631E1 USRE45631E1 US13/775,020 US201313775020A USRE45631E US RE45631 E1 USRE45631 E1 US RE45631E1 US 201313775020 A US201313775020 A US 201313775020A US RE45631 E USRE45631 E US RE45631E
- Authority
- US
- United States
- Prior art keywords
- object model
- objects
- snapshots
- changes
- frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
-
- G06F9/4428—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Definitions
- the present invention is in the field of object-oriented data storage, access and reporting, especially regarding real-time reporting applications, and pertains particularly to methods for providing consistent temporal properties as well as snapshot recency for more accurate reporting and monitoring in association with instant time parameters.
- FIG. 1 is an exemplary line graph displaying exchange rate value over time for two specific currencies against the U.S. dollar, the Swiss Franc and the more-recently introduced Euro.
- the graph shows that the two separate currencies independently change in value over time thus affecting the rate of exchange with the U.S. dollar at any given point.
- clients wish to receive the best rate on exchange to maximize their spending power with the exchanged currency.
- the rate values do not actually produce a smooth curve rather they occur at specific time intervals or transactions over time.
- (TX) represents a point in time when a client accesses an online system to initiate an exchange of one currency for another.
- the Frank is trading at a higher rate against the U.S. dollar than the Euro.
- a dotted circle given the element number 101 represents a duration bubble for the time (TX).
- FIG. 2 shows an expanded view of bubble 101 of FIG. 1 .
- the client access to the system materializes at time 2 (T 2 ), the transaction represented by point X.
- the client may whish to select the currency (Frank or Euro) that is the highest trading currency against the dollar.
- the client wishes to exchange Euros for Franks or Franks for Euros.
- TA 1 and TA 3 show the Franc sliding against the dollar while TA 2 and TA 4 show the Euro rising slightly against the dollar.
- an object-oriented software application for receiving updates that change state of an object model and reporting those updates to requesting users is provided, comprising a database application for storing data, an object model driver for writing updates into the database, a notification system for notifying about the updates, and a plurality of external monitors for reading updates.
- the application is characterized in that the object model produces multiple temporal snapshots of itself in co-currency with received events, each snapshot containing associated update information from an associated event and whereupon at the time of occurrence of each snapshot coinciding with an event the notification system notifies the appropriate external monitor or monitors, which in turn access the appropriate snapshot, performs calculations thereupon and renders the information accessible to the users.
- the database is a relational database, while in some others the database is an object database.
- updates are changes to properties of the object model and the object model represents a real-time event-driven system.
- the notification system includes a plurality of listener modules programmed to listen for specific updates.
- the listener modules are Java language modules embedded into the main kernel of the application. In other cases the listener modules may be held externally from the kernel but are interfaced thereto through application program interface.
- all transactions are logged in a transaction log and all snapshot versions are maintained in object history until no longer needed at which time all information concerning the transaction is deleted from the database.
- multiple reads occur as a result of a single write, the reads bound by the information written.
- a method for providing temporal consistency and snapshot recency in a temporal data reporting and monitoring system comprising the steps of (a) generating an object model representing a event-driven environment and mapping the model to a database; (b) receiving events into the system, the events comprising updates to the object model; (c) writing the received events into the database in serial fashion updating the model; (d) creating a snapshot view of the model for each write at the time of occurrence and maintaining serial versions of the snapshots for multiple reads; (e) notifying appropriate ones of a plurality of external monitors at the occurrence of each snapshot; and (d) deleting all information stored about each snapshot from the database according to pre-defined expiration criteria.
- the database is a relational database. Also in some embodiments, in step (a), the database is an object database.
- the updates may be changes to properties of the object model and the object model represents a real-time event-driven system.
- notification may be performed by a plurality of listener modules programmed to listen for specific updates. Also in step (e) the listener modules may be Java language modules.
- the event-driven environment is a telephony environment and object model properties include one or more of end agents, end systems, routing rules, terminal locations, switch locations, call disposal rules and actions.
- an external plug-in monitor for receiving updated information about an object model, the updates occurring serially over time comprising a listener mechanism for detecting updates, an interface for enabling the listener mechanism to communicate externally, a viewer for viewing snapshots of the updated object model, the snapshots serialized according to update occurrence, and a rendering module for performing any required calculation on snapshots and communicating the results to a requesting user.
- the plug-in monitor is characterized in that the plug-ins can be programmed to handle property specific updates of the module to allow optimum customization for users requiring varied types of information.
- the monitor grouped with like monitors to form part of a user interface.
- the listener mechanism is programmed to listen for specific updates, and the listener mechanism may be a Java language module.
- the updates are changes to properties of the object model and the object model represents a real-time event-driven system.
- the viewer may be automatically triggered to generate a view according to listener notification and associated event handling.
- the event-driven system may be a telephony system, and the telephony system may be a communication center.
- object model properties include one or more of end agents, end systems, routing rules, terminal locations, switch locations, call disposal rules and actions.
- FIG. 1 is a graph exemplifying a typical currency exchange activity over time.
- FIG. 2 is an exploded view of a section of the graph of FIG. 1 showing additional detail.
- FIG. 3 is a block diagram illustrating logical components of an extendible software application architecture for real-time reporting according to an embodiment of the invention.
- FIG. 4 is a block diagram illustrating a transaction log and history log for recording object versioning and data state in an object database (ODB) of FIG. 3 .
- ODB object database
- FIG. 5 is an example of procedure hierarchy for working with the ODB of FIG. 3 .
- FIG. 3 is a block diagram illustrating logical components of an extendible software application architecture 300 for real-time reporting according to a preferred embodiment of the present invention.
- Application architecture 300 is an object-oriented application that may utilize a relational or other object-oriented database 302 including middleware for translation and an object layer for current object representation (façade).
- the software is stored on a non-transitory machine-readable medium.
- Database 302 is a temporal database capable of providing temporal consistency.
- Temporal consistency means that any external access to a particular object model constructed from data within ODB 302 within one read transaction will return co-occurred data, or current data updates as reflected by all of the most recent versions of the model. Otherwise any resultant action by a user based on the returned information may not have the absolute intended effect.
- temporal consistency implies the strictest level of transaction isolation, meaning transactions are serializable.
- a complete and whole object model contains a plurality of, in this case, monitored entities.
- each entity or object belonging to the model has its own unique identifier or object identification (OID).
- OID object identification
- each object or entity of the model may have its own set of attributes, which are properties. Such properties may be represented as scalar, meaning as atomic types including integer, string, or OID; or as vector, meaning groups of the atomic types or OIDs.
- Entity relationships may exist in an object model and can be understood as one-to-one, one-to-many, or many-to-many, as is well known in object representation.
- One-to-one relationships between entities are represented by two active links, one per entity.
- OIDs are used for identification.
- An object model driver 303 is provided within kernel 301 and is adapted to modify the object model according to external events that change state of the data represented by the object model.
- incoming events into the system are illustrated as events received at times T 1 , T 4 , T 6 , and T 8 .
- an event represents a transaction affecting the state (value) of a particular currency.
- an event may represent an interest rate change related to a particular type of real estate loan provided by a specific bank.
- Driver 303 is adapted as a write-only module (indicated by arrow) and is dedicated to writing the events into ODB 302 , thus updating the object model in real time as the external events occur.
- the object layer acts as an adapter to the middle layer, which can be a known conventional layer such as COBRA.
- the middle layer maps the updates into the appropriate format and location in the database using one of several known object-to-relational mapping schemas.
- Application kernel 301 contains a dedicated object monitor 304 that is adapted to perform memory accesses and read-only operations.
- Object monitor 304 is charged with maintaining the latest update of the complete object model. Therefore, in order to ensure that the object model presented by object monitor 304 is absolutely current, the frequency of memory access and read is set to be higher than the expected frequency of incoming events.
- a plurality of extension plug-ins are provided to application 300 in a preferred embodiment of the present invention to interface with kernel 301 for the purpose of performing multiple and parameter-specific observations with respect to the latest object model rendering through monitor 304 .
- the plug-ins function as external monitors that are capable of performing computations on the model.
- the plug-ins in this example comprise listener modules 305 (L 1 -Ln), Interface adaptors 306 (I 1 -In) and actual monitors designated herein as monitors M 1 -Mn.
- Listeners 305 are, in a preferred embodiment, provided as software interface modules and notification mechanisms operating within kernel 301 .
- listeners 305 are Java-language modules, but in alternate embodiments, other programming languages can be used to create listeners 305 .
- listeners 305 may be external from kernel 301 , but interfaced for communication therewith.
- Listeners 305 are pre-programmable, and are preferably programmed to listen for updates to a specific portion (entity or entities) of an object model. Listeners 305 can also preferably each be activated or deactivated in function from an external interface. Listeners 305 may also be added to in terms of adding new listeners or deleted from in terms of deleting one or more listeners from the group.
- Interface adaptor 306 For each listener 305 there is provided a separate interface adaptor 306 (I 1 -In). Interface adaptors 306 are grouped into a portion of a user interface 307 . User interface 307 may be a browser-enhanced interface, a plug-in to an actual browser application, or a standalone software interface supported by hardware. Interface adaptors 306 each connect to a monitoring module, those modules illustrated in this example as M 1 -Mn.
- Monitor modules M 1 -Mn are part of the interface and are user-activated, or activated through system notification in some cases.
- a notification mechanism divided in responsibility for each mechanism is provided with kernel 301 and adapted to notify listeners of incoming events that are useful to them.
- a user-initiated transaction on system 300 is represented immediately below user interface 307 as a time period or duration of time. This time-of-transaction period quantifies the maximum amount of time dedicated to support user initiation, system execution, and return of data results.
- object model driver 303 accesses ODB 302 using the middleware and object facade. As each event is parsed, the object model performs a memory access and write transaction entering the pertinent information into the database. It is important to remember that each event is typically an update to a specific portion of the object model and not necessarily the entire object model. As events are written into ODB 301 , the object changes in terms of properties/actions/attributes (versioning).
- An example of a single event for our example of currencies is that of a single rate change affecting value of one of a plurality of currencies, which are separate entities of the object model.
- Object monitor 304 continually accesses and reads the object model and preserves each most-recent snapshot view until it is no longer prudent to retain it.
- the object model must return upon request the latest picture or view. This requirement is measured in time and described by a term known in the art as state recency. State recency is measured in views or pictures over time, the longer the time period from time of access to the latest view, the less valuable or accurate the view is likely to be.
- Transaction duration is an issue where transactions must be completed by their deadlines. For example, if a user accesses the system for update and the transaction times out before a view can be acquired then the user must perform a re-access of the system to try again.
- the deadline for transaction periods to expire is lengthened to reduce the frequency of aborted transactions and re-starts. In one embodiment transaction periods are devoid of deadlines altogether.
- Each external monitor M 1 -n has an interface I 1 -n as previously described above. Therefore, each external monitor (plug-in) can add or remove listeners to any specific property of any object in the object model.
- an event such as event T 1 causes a change to one or more properties in the object model the appropriate listener or listeners L 1 -Ln are notified and appropriate event handlers are called.
- event handling each listener L 1 -Ln can access the entire object model for read-only at the time the event or events occurred.
- listeners L 1 -Ln may read only assigned portions of the object model with resolution down to a single property.
- the event handlers (not shown) perform calculations governed by various algorithms to process the events that have occurred.
- event-handling calculations are applied to monitored views of the object model and not to the model itself. There is no write capability to the object model through the external plug-in modules.
- third party code is used to access the object model for read, the set of accessed objects will be unknown in advance. Therefore, the entire object model must be rendered temporally consistent. This is accomplished by maintaining multiple snapshots in co-currency.
- an accessing user may use standard conventions such as “create view” to pre-select a set of objects from the model for view only. Temporal consistency is guaranteed for the resulting view only.
- snapshots resulting from events are not mirrored from actual data, but are constructed from the data without significant loss of time.
- Co-occurred objects in the object model contain, in a preferred embodiment, OID-type links to each other. Therefore, only one vertex of the connected component described in graph is required to attain access to the entire component.
- each plug-in extension is executed in separate process threads. This prevents interruptions to kernel 301 and cross extension interference. Read access to the object model is performed by the extensions on a concurrent basis with multiple processes enabled to occur simultaneously.
- high-level concurrency is based on known multi-version concurrency control (MVCC) techniques. Maintenance algorithms supporting and enabling functions of the system according to embodiments of the invention rely on MVCC techniques.
- MVCC multi-version concurrency control
- Extensions can add or remove listeners dynamically so no version (snapshot) of an object model can be discarded as long as a read transaction is occurring on a previous version, accept in special circumstances described further below.
- the reasoning is that the extensions working on the previous version may still add or remove listeners, which would be activated for the next version.
- An analogy describing this case would be that each extension is being shown a movie of versions or snapshots pre-selected by some criteria. The extensions watch each movie snapshot by snapshot.
- the method and apparatus of the invention provides the essential properties for successful function. These are real-time response, read-only access to object model by extensions, temporal consistency, absolute snapshot recency, listener-based change notification, and transparent versioning of object model state with an unlimited number of active versions.
- FIG. 4 is a block diagram illustrating a transaction log 400 and history log 401 for recording object versioning and data state in the ODB of FIG. 3 . It is noted herein that the permanent and major block of the entire system is application kernel 301 ( FIG. 3 ). Its main responsibilities include, but are not limited to:
- the extensions are variable components of the system whose duties include, but are not limited to:
- Transaction log 400 has 4 vertical columns labeled, reading from left to right, Versions, Time Stamp, Actions, and Reference Counter.
- Object History Record 401 has 2 vertical columns labeled, reading from left to right, OID and Reference to Skip List.
- the column labeled Version lists the serial versions that have been or are being worked on. Versions are numbered and a visible version of an object model is given the number 127 in this example.
- the column labeled Time Stamp tells when a particular version was created as a result of an incoming event that modified a property or properties of the object model lending to the instant version.
- the column labeled Actions lists notifications of change.
- ⁇ 25, X, PROPERTY_CHANGED ⁇ wherein PROPRETY_CHANGED is the action, X is the property, and 25 is the object Id number (OID).
- the next column labeled Reference Counter lists the reference number of versions to support version discarding when a particular (oldest) version is no longer needed. When the number (3) in this example resolves to 0 then all information regarding that view should be deleted from the object database.
- Transaction Log 400 reflects activity of the application kernel and the versions maintained by the object model. Log 400 does not reflect activity of the extensions in computing and reporting changes to users.
- Object History Log 401 the first column lists the object identification (OID) and the second column lists reference version numbers of views associated with the object.
- OID object identification
- the second column lists reference version numbers of views associated with the object.
- the exact system parameters will depend in part of what the object model represents. Parameters for a simple currency exchange service may be entirely different than that of the operation of air traffic control.
- the system of the invention is, in a preferred embodiment, implemented in the real-time environment of a telecommunications system wherein the object model is an event flow routing and handling model. Properties of the model may include end agents, end systems, routing rules, terminal locations, switch locations, call disposal rules and actions, and the like.
- clients using plug-ins may be administration personnel monitoring event activity, a routing system monitoring real-time presence and availability information, or even clients of the center monitoring availability or presence information using third-party software including a user-friendly interface.
- FIG. 5 is an example of procedure hierarchy for working with the ODB of FIG. 3 .
- activity of the application kernel writing (Kernel Write) to the OBD begins with a transaction start operation (transaction_start (tr).
- transaction_start reflects an incoming event that will change the object model in some way and the kernel notifying the database of an impending write.
- the kernel then performs the write, adding the update by invoking transaction_object_changed (tr, event).
- transaction_end At the end of the write or when the write is finished the transaction is closed by invoking the method transaction_end (tr).
- This just-described command sequence describes the function of the kernel writing an update into the ODB ( 302 ) as a result of receiving an event containing the change data.
- a custom viewer object must be provided and implemented for each particular application.
- the method viewer_create(name.odb) is called.
- a viewer can request a listener to notify of an ODB change (view) of an event using the method vewer_request_view_on_event (viewer,event,listener).
- the activated listener which is a notification mechanism is a parameter of the command.
- a viewer can also stop a listener by using the method viewer_stop_view_on_event(viewer,listener).
- a single method viewer_on_view_changed(viewer, time, event, listener, view) must be implemented to decide how to further work with a view once it is obtained.
- a custom viewer object When a new extension is plugged into an application a custom viewer object is first instantiated and is then attached to the ODB using the command odb_attach_viewer(odb, viewer). Each extension may have multiple listeners associated with a same event. When an event of interest takes place, the method viewer_on_view_changed of the viewer is called which results in a newly created view as one of its arguments. It is up to the plug-in extension what to do next with that particular view in terms of computation.
- the viewer is notified of the change event through the appropriate listener and notification handler.
- the viewer is not assumed to be a third-party code in this example.
- the ODD attaches or detaches from a viewer-odb_attach_viewer(odb,viewer)-odb_detach_viewer(odb, viewer).
- view_open(view) must be called followed by the series of calls to view_find_object(view,oid) to get access to an object model snapshot at the moment of time the view was created. This function occurs at the moment that the corresponding event occurred.
- the command to close a view is view_close_(view).
- an extension may add listeners for future views while working with an older view. Given, for example, 4 events incoming into the system over real time, an extension can be working on the first event (t 1 ) and simultaneously set a listener to t 2 . Snapshots t 3 and t 4 may arrive before the extension begins working on t 2 . Listeners may be dynamically added for t 3 and t 4 is applicable. All snapshots are retained until they are no longer relevant at which time they and any associated information is discarded.
- the method of database access supports a single type of query. Get version of object OID valid at time t (version N).
- version N version N
- the query type referred to is known as a pure time-slice query.
- the objects are interlinked through OID-type. Therefore, more general non-pure time-slice-queries need not be supported.
- the database must accept added versions and discard non-applicable (old) versions. This can be accomplished automatically within the database in a transparent fashion.
- the object database is required to be an active database in the sense that it must trigger notification whenever any of the properties of the object model change. In any given moment of time there is at most a single write transaction and multiple read transactions running concurrently.
- a write transaction causes insertion of a corresponding transaction record into the transaction log, which is identified as O(1) and insertion of the object versions generated by the transaction into the object history identified as Nat*O(1) where Nat is equal to the number of actions per transaction. Nat is typically small on the order of ⁇ 2. The parameter is limited by a large enough constant the size depending upon the particular object model.
- the corresponding transaction record is deleted from the transaction log, which is O(1).
- the object versions related to actions in the transaction record are deleted from the object history, which is Nat*O(logNvo).
- the complexity of deletion is expressed as O(logNvo).
- the inserted table illustrates the complexity of each function.
- the ODB stores only images and not internal objects themselves.
- the images are smaller in size than corresponding objects.
- Ntotal defines the total number of present object versions.
- slow running read transactions may be aborted if the amount of space used exceeds some pre-defined acceptable threshold.
- list Count list_add_item( list, item ) list_remove_item( list, item ) hash count [key] - access to value by key hash_add_key( hash, key ) hash_delete_key( hash, key ) hash_find_key( hash, key ) skip_list count skip_list_insert_key( skip_list, key, value ) skip_list_remove_key( skip_list, key ) skip_list_find_maxmin( skip_list, key_ ) -find maximum key ⁇ key_ Structures and Procedures:
- the method and apparatus of the invention is applicable to a wide variety of embodiments wherein real-time temporal database reporting is practiced. Telephony centers, Stock trading terminals, Mortgage Brokerages, Loan Offices, Gaining Operations, Air Traffic Control operations, and Currency Exchange operations make up just some of the real-time temporal services that could benefit from the system of the present invention. Therefore, in light of the unlimited applications that could benefit from the system of the invention, the methods and apparatus of the invention should be given the broadest possible scope under examination of the claimed portion thereof. The spirit and scope of the present invention should be limited only by the claims that follow.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
-
- Communication with external data sources.
- Performing write transactions on the object model at each incoming event.
- Computation of a basic set of statistical indicators on the object model.
- Communication with plug-in modules (extensions) through the appropriate interfaces. and,
- Reporting statistics to the clients.
-
- Communication with
kernel 301 through interfaces (I1-n) including the ability to add or remove listeners (notification handlers) and receiving events about object model changes. - Performing read transactions on the object model wherein the extension is bound by the changes. and,
- Computation of custom statistics.
- Communication with
Operation | Time Complexity | ||
Search | O(log Nvo) | ||
Insert | O(1) | ||
Delete | O(log Nvo) | ||
Time Complexity of Operations on Objects Database:
list |
Count |
list_add_item( list, item ) |
list_remove_item( list, item ) |
hash |
count |
[key] - access to value by key |
hash_add_key( hash, key ) |
hash_delete_key( hash, key ) |
hash_find_key( hash, key ) |
skip_list |
count |
skip_list_insert_key( skip_list, key, value ) |
skip_list_remove_key( skip_list, key ) |
skip_list_find_maxmin( skip_list, key_ ) -find maximum key <= key_ |
Structures and Procedures:
-
- oid: number
endstruct
struct prop_desc - name: string
- value: variant
endstruct
struct obj_desc - oid: number
- version: number
- props: list of prop_desc
- oid: number
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/775,020 USRE45631E1 (en) | 2002-07-31 | 2013-02-22 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/210,702 US7434229B2 (en) | 2002-07-31 | 2002-07-31 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US12/203,390 US7895606B2 (en) | 2002-07-31 | 2008-09-03 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US13/775,020 USRE45631E1 (en) | 2002-07-31 | 2013-02-22 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/203,390 Reissue US7895606B2 (en) | 2002-07-31 | 2008-09-03 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
USRE45631E1 true USRE45631E1 (en) | 2015-07-28 |
Family
ID=31187402
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/210,702 Expired - Lifetime US7434229B2 (en) | 2002-07-31 | 2002-07-31 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US12/203,390 Expired - Lifetime US7895606B2 (en) | 2002-07-31 | 2008-09-03 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US13/775,020 Expired - Lifetime USRE45631E1 (en) | 2002-07-31 | 2013-02-22 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/210,702 Expired - Lifetime US7434229B2 (en) | 2002-07-31 | 2002-07-31 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US12/203,390 Expired - Lifetime US7895606B2 (en) | 2002-07-31 | 2008-09-03 | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
Country Status (1)
Country | Link |
---|---|
US (3) | US7434229B2 (en) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434229B2 (en) | 2002-07-31 | 2008-10-07 | Genesys Telecommunications Laboratories, Inc. | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US7028229B2 (en) * | 2002-09-30 | 2006-04-11 | Sun Microsystems, Inc. | Kernel event subscription and publication system and method |
US8266326B2 (en) * | 2003-09-15 | 2012-09-11 | Oracle America, Inc. | Frameworks for integrating information systems |
US20050086662A1 (en) * | 2003-10-21 | 2005-04-21 | Monnie David J. | Object monitoring system in shared object space |
US7689986B2 (en) * | 2003-10-21 | 2010-03-30 | Gemstone Systems, Inc. | Shared listeners in shared object space |
US7543301B2 (en) * | 2003-10-21 | 2009-06-02 | Gemstone Systems, Inc. | Shared queues in shared object space |
US20050086661A1 (en) | 2003-10-21 | 2005-04-21 | Monnie David J. | Object synchronization in shared object space |
US20050234990A1 (en) * | 2004-04-18 | 2005-10-20 | Brighouse Christopher Nigel A | System and method for tracking documents |
US7316001B2 (en) * | 2004-06-05 | 2008-01-01 | Graphlogic Inc. | Object process graph system |
US7954110B1 (en) * | 2004-06-22 | 2011-05-31 | Apple Inc. | Observing properties associated with an object in an object-oriented programming platform |
US7493335B2 (en) * | 2004-07-02 | 2009-02-17 | Graphlogic Inc. | Object process graph relational database interface |
US7360209B2 (en) * | 2004-07-16 | 2008-04-15 | Graphlogic Inc. | Object process graph application controller-viewer |
JP2008512794A (en) * | 2004-09-10 | 2008-04-24 | グラフロジック インコーポレイテッド | Object processing graph application development system |
US8738891B1 (en) * | 2004-11-15 | 2014-05-27 | Nvidia Corporation | Methods and systems for command acceleration in a video processor via translation of scalar instructions into vector instructions |
US7434230B2 (en) * | 2004-12-02 | 2008-10-07 | International Business Machines Corporation | Method and system for time bounding notification delivery in an event driven system |
US7702638B2 (en) * | 2005-04-22 | 2010-04-20 | Sap Ag | Systems and methods for off-line modeling a business application |
US20060242188A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Methods of exposing a missing collection of application elements as deprecated |
US20060242174A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Systems and methods for using object-oriented tools to debug business applications |
US20060242172A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Systems and methods for transforming logic entities of a business application into an object-oriented model |
US7958486B2 (en) * | 2005-04-22 | 2011-06-07 | Sap Ag | Methods and systems for data-focused debugging and tracing capabilities |
US20060282458A1 (en) * | 2005-04-22 | 2006-12-14 | Igor Tsyganskiy | Methods and systems for merging business process configurations |
US20060241961A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Methods of optimizing legacy application layer control structure using refactoring |
US20060242197A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Methods of transforming application layer structure as objects |
US20060293935A1 (en) * | 2005-04-22 | 2006-12-28 | Igor Tsyganskiy | Methods and systems for incrementally exposing business application errors using an integrated display |
US20060242194A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Systems and methods for modeling and manipulating a table-driven business application in an object-oriented environment |
US20060293940A1 (en) * | 2005-04-22 | 2006-12-28 | Igor Tsyganskiy | Methods and systems for applying intelligent filters and identifying life cycle events for data elements during business application debugging |
US20060242171A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Methods of using code-based case tools to verify application layer configurations |
US7542980B2 (en) | 2005-04-22 | 2009-06-02 | Sap Ag | Methods of comparing and merging business process configurations |
US7720879B2 (en) * | 2005-04-22 | 2010-05-18 | Sap Ag | Methods of using an integrated development environment to configure business applications |
US8539003B2 (en) * | 2005-04-22 | 2013-09-17 | Sap Ag | Systems and methods for identifying problems of a business application in a customer support system |
US20060242177A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Methods of exposing business application runtime exceptions at design time |
US20060293934A1 (en) * | 2005-04-22 | 2006-12-28 | Igor Tsyganskiy | Methods and systems for providing an integrated business application configuration environment |
US7690001B2 (en) * | 2005-04-29 | 2010-03-30 | Sap Ag | System and method for a management model event system |
US8046626B2 (en) * | 2006-08-25 | 2011-10-25 | Cisco Technology, Inc. | System and method for maintaining resiliency of subscriptions to an event server |
US8005787B2 (en) * | 2007-11-02 | 2011-08-23 | Vmware, Inc. | Data replication method |
US8495609B2 (en) * | 2008-02-25 | 2013-07-23 | Sas Institute, Inc. | Methods, systems, and computer program products for taking a snapshot of installed software on a data processing system as part of a software update process |
DK2149088T3 (en) * | 2008-05-14 | 2012-12-03 | Real Entpr Solutions Dev Bv | System and method for tracking and communicating data processing modes |
US8195707B1 (en) * | 2008-09-30 | 2012-06-05 | Adobe Systems Incorporated | Identifying and reacting to changes in an extensible automatic runtime object management system |
US8645324B2 (en) | 2009-01-09 | 2014-02-04 | Pivotal Software, Inc. | Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication |
US8397056B1 (en) | 2009-04-21 | 2013-03-12 | Jackbe Corporation | Method and apparatus to apply an attribute based dynamic policy for mashup resources |
US8321792B1 (en) | 2009-04-21 | 2012-11-27 | Jackbe Corporation | Method and system for capturing and using mashup data for trend analysis |
US8458596B1 (en) | 2009-04-21 | 2013-06-04 | Jackbe Corporation | Method and apparatus for a mashup dashboard |
US8261193B1 (en) | 2009-04-21 | 2012-09-04 | Jackbe Corporation | Method and system for capturing mashup data for collective intelligence and user-generated knowledge |
US9996594B2 (en) * | 2009-06-26 | 2018-06-12 | Sap Se | Method, article and system for time dependent search |
US8434153B2 (en) | 2009-08-24 | 2013-04-30 | Microsoft Corporation | Application display on a locked device |
US8484465B1 (en) | 2010-12-08 | 2013-07-09 | Google Inc. | Heterogeneous virtual machines sharing a security model |
US8839272B2 (en) * | 2012-04-18 | 2014-09-16 | Oracle International Corporation | Method and system for the support of application specific policies for conventional operating systems |
US10122598B2 (en) | 2012-07-25 | 2018-11-06 | International Business Machines Corporation | Subscription watch lists for event handling |
US9710357B2 (en) * | 2012-08-04 | 2017-07-18 | Microsoft Technology Licensing, Llc | Function evaluation using lightweight process snapshots |
US9613011B2 (en) | 2012-12-20 | 2017-04-04 | Cable Television Laboratories, Inc. | Cross-reference of shared browser applications |
US9639623B2 (en) * | 2012-12-20 | 2017-05-02 | Cable Television Laboratories, Inc. | Method for remotely controlling a video playing within a first web page at a first device from a second device using a document object model |
US9483505B2 (en) | 2013-03-15 | 2016-11-01 | International Business Machines Corporation | Versioning for configurations of reusable artifacts |
US9268805B2 (en) | 2013-09-10 | 2016-02-23 | International Business Machines Corporation | Managing reusable artifacts using placeholders |
US10146752B2 (en) | 2014-12-31 | 2018-12-04 | Quantum Metric, LLC | Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document |
US9619491B2 (en) * | 2015-04-02 | 2017-04-11 | Sas Institute Inc. | Streamlined system to restore an analytic model state for training and scoring |
WO2017011829A1 (en) | 2015-07-16 | 2017-01-19 | Quantum Metric, LLC | Document capture using client-based delta encoding with server |
US9996605B2 (en) | 2015-09-12 | 2018-06-12 | International Business Machines Corporation | Managing data within a temporal relational database management system |
CN113342605B (en) * | 2021-06-07 | 2024-02-02 | 北京许继电气有限公司 | PostgreSQL database monitoring and traceability analysis method and system |
CN113342908B (en) * | 2021-06-30 | 2022-03-11 | 北京天融信网络安全技术有限公司 | Object-oriented kernel layer database construction method |
CN115470217B (en) * | 2022-11-14 | 2023-04-07 | 云筑信息科技(成都)有限公司 | Method for solving real-time response problem of change of data warehouse model |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5471629A (en) | 1988-12-19 | 1995-11-28 | Hewlett-Packard Company | Method of monitoring changes in an object-oriented database with tuned monitors |
US20020087950A1 (en) | 2000-09-27 | 2002-07-04 | International Business Machines Corporation | Capturing snapshots of a debuggee's state during a debug session |
US6425016B1 (en) | 1997-05-27 | 2002-07-23 | International Business Machines Corporation | System and method for providing collaborative replicated objects for synchronous distributed groupware applications |
US20030115375A1 (en) | 2001-12-17 | 2003-06-19 | Terry Robison | Methods and apparatus for delayed event dispatching |
US20030197726A1 (en) | 2002-03-28 | 2003-10-23 | International Business Machines Corporation | Method, system and program product in a model-view-controller (MVC) programming architecture for inter-object communication with transformation |
US20040025171A1 (en) | 2002-07-31 | 2004-02-05 | Barinov Vitaly Y. | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US6691097B1 (en) | 2000-01-28 | 2004-02-10 | International Business Machines Corporation | Technique for detecting a shared temporal relationship of valid time data in a relational database management system |
US20040073646A1 (en) | 2000-12-21 | 2004-04-15 | Cho Mi-Hwa | Apparatus and method for providing real-time information |
US6791581B2 (en) | 2001-01-31 | 2004-09-14 | Microsoft Corporation | Methods and systems for synchronizing skin properties |
US20050210050A1 (en) | 2001-01-31 | 2005-09-22 | Microsoft Corporation | Methods and systems for creating skins |
US6950850B1 (en) | 2000-10-31 | 2005-09-27 | International Business Machines Corporation | System and method for dynamic runtime partitioning of model-view-controller applications |
US6952829B1 (en) * | 1998-06-29 | 2005-10-04 | International Business Machines Corporation | Dynamically adapting between pessimistic and optimistic notifications to replicated objects |
-
2002
- 2002-07-31 US US10/210,702 patent/US7434229B2/en not_active Expired - Lifetime
-
2008
- 2008-09-03 US US12/203,390 patent/US7895606B2/en not_active Expired - Lifetime
-
2013
- 2013-02-22 US US13/775,020 patent/USRE45631E1/en not_active Expired - Lifetime
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5471629A (en) | 1988-12-19 | 1995-11-28 | Hewlett-Packard Company | Method of monitoring changes in an object-oriented database with tuned monitors |
US6425016B1 (en) | 1997-05-27 | 2002-07-23 | International Business Machines Corporation | System and method for providing collaborative replicated objects for synchronous distributed groupware applications |
US6988270B2 (en) | 1997-05-27 | 2006-01-17 | International Business Machines Corporation | System and method for providing collaborative replicated objects for synchronous distributed groupware application |
US6952829B1 (en) * | 1998-06-29 | 2005-10-04 | International Business Machines Corporation | Dynamically adapting between pessimistic and optimistic notifications to replicated objects |
US6691097B1 (en) | 2000-01-28 | 2004-02-10 | International Business Machines Corporation | Technique for detecting a shared temporal relationship of valid time data in a relational database management system |
US20020087950A1 (en) | 2000-09-27 | 2002-07-04 | International Business Machines Corporation | Capturing snapshots of a debuggee's state during a debug session |
US6950850B1 (en) | 2000-10-31 | 2005-09-27 | International Business Machines Corporation | System and method for dynamic runtime partitioning of model-view-controller applications |
US20040073646A1 (en) | 2000-12-21 | 2004-04-15 | Cho Mi-Hwa | Apparatus and method for providing real-time information |
US6791581B2 (en) | 2001-01-31 | 2004-09-14 | Microsoft Corporation | Methods and systems for synchronizing skin properties |
US20040210825A1 (en) | 2001-01-31 | 2004-10-21 | Microsoft Corporation | Methods and systems for creating and using skins |
US20050210050A1 (en) | 2001-01-31 | 2005-09-22 | Microsoft Corporation | Methods and systems for creating skins |
US20050210051A1 (en) | 2001-01-31 | 2005-09-22 | Microsoft Corporation | Methods and systems for creating skins |
US7073130B2 (en) | 2001-01-31 | 2006-07-04 | Microsoft Corporation | Methods and systems for creating skins |
US20030115375A1 (en) | 2001-12-17 | 2003-06-19 | Terry Robison | Methods and apparatus for delayed event dispatching |
US20030197726A1 (en) | 2002-03-28 | 2003-10-23 | International Business Machines Corporation | Method, system and program product in a model-view-controller (MVC) programming architecture for inter-object communication with transformation |
US20040025171A1 (en) | 2002-07-31 | 2004-02-05 | Barinov Vitaly Y. | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US7434229B2 (en) | 2002-07-31 | 2008-10-07 | Genesys Telecommunications Laboratories, Inc. | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US20080320496A1 (en) | 2002-07-31 | 2008-12-25 | Barinov Vitaly Y | Method for Improving Temporal Consistency and Snapshot Recency in a Monitored Real-Time Software-Reporting-Application Architecture |
US7895606B2 (en) | 2002-07-31 | 2011-02-22 | Genesys Telecommunications Laboratories, Inc. | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
Non-Patent Citations (1)
Title |
---|
Strom et al., "Concurrency Control and View Notification Algorithms for Collaborative Replicated Objects," Apr. 1997, IEEE, vol. 47, No. 4, pp. 458-470. |
Also Published As
Publication number | Publication date |
---|---|
US20080320496A1 (en) | 2008-12-25 |
US7895606B2 (en) | 2011-02-22 |
US20040025171A1 (en) | 2004-02-05 |
US7434229B2 (en) | 2008-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE45631E1 (en) | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture | |
US5956728A (en) | Object graph editing context and methods of use | |
US6058389A (en) | Apparatus and method for message queuing in a database system | |
US8165993B2 (en) | Business intelligence system with interface that provides for immediate user action | |
US7149736B2 (en) | Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions | |
US7143079B2 (en) | Integrated composite data base system | |
JP2023546249A (en) | Transaction processing methods, devices, computer equipment and computer programs | |
US20030028683A1 (en) | Method and system for object cache synchronization | |
US20110264704A1 (en) | Methods and Systems for Deleting Large Amounts of Data From a Multitenant Database | |
US20210256063A1 (en) | Ad-hoc graph definition | |
US6542883B1 (en) | Ordering relational database operations according to referential integrity constraints | |
US7908240B1 (en) | Facilitated use of column and field data for field record universe in a knowledge store | |
CN108363787A (en) | A kind of IFC file in parallel storage method, apparatus and system | |
US11841840B2 (en) | Technical system settings using a shared database | |
US7571197B2 (en) | Method and apparatus for synchronizing dataset object properties with underlying database structures | |
US7499932B2 (en) | Accessing data in an interlocking trees data structure using an application programming interface | |
US7792274B2 (en) | Techniques for performing multi-media call center functionality in a database management system | |
US9064217B2 (en) | Handling incidents related to business processes | |
US20060288052A1 (en) | Supporting multiple versions of a routine | |
US8200613B1 (en) | Approach for performing metadata reconciliation | |
US8751447B2 (en) | Representing attachments of objects in a collaboration system using metadata copies | |
US11106669B2 (en) | Blocking natural persons data in analytics | |
JP2002533829A (en) | Method and apparatus for user extensible event structure | |
Taina | Problem classes in intelligent network database design | |
EP1498828B1 (en) | Method and computer system for storing multiple attribute values |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, DE Free format text: SECURITY AGREEMENT;ASSIGNORS:GENESYS TELECOMMUNICATIONS LABORATORIES, INC.;ANGEL.COM INCORPORATED;UTOPY, INC.;AND OTHERS;REEL/FRAME:031644/0814 Effective date: 20131113 |
|
AS | Assignment |
Owner name: GENESYS TELECOMMUNICATIONS LABORATORIES, INC., AS Free format text: PATENT RELEASE (REEL:031644/FRAME:0814);ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:040798/0428 Effective date: 20161201 Owner name: SOUNDBITE COMMUNICATIONS, INC., CALIFORNIA Free format text: PATENT RELEASE (REEL:031644/FRAME:0814);ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:040798/0428 Effective date: 20161201 Owner name: ANGEL.COM INCORPORATED, CALIFORNIA Free format text: PATENT RELEASE (REEL:031644/FRAME:0814);ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:040798/0428 Effective date: 20161201 Owner name: UTOPY, INC., CALIFORNIA Free format text: PATENT RELEASE (REEL:031644/FRAME:0814);ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:040798/0428 Effective date: 20161201 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:GENESYS TELECOMMUNICATIONS LABORATORIES, INC., AS GRANTOR;ECHOPASS CORPORATION;INTERACTIVE INTELLIGENCE GROUP, INC.;AND OTHERS;REEL/FRAME:040815/0001 Effective date: 20161201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: SECURITY AGREEMENT;ASSIGNORS:GENESYS TELECOMMUNICATIONS LABORATORIES, INC., AS GRANTOR;ECHOPASS CORPORATION;INTERACTIVE INTELLIGENCE GROUP, INC.;AND OTHERS;REEL/FRAME:040815/0001 Effective date: 20161201 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |