System, method, and computer program product for accessing and manipulating remote datasets
First Claim
1. A computer-implemented method of creating a report for a user at a client computer on the basis of a plurality of remote datasets stored at one or more databases, comprising:
- receiving a report definition at each of a plurality of tree servers implemented on different respective computers coupled in a network in parallel between the client computer and the one or more databases storing the datasets;
creating one or more respective slices of the report at each respective tree server, wherein the slices are represented at each respective tree server as subtrees including leaf nodes, including;
requesting, at each respective tree server in parallel between the client computer and the one or more databases storing the datasets, one or more respective datasets from a database coupled to the respective tree server,receiving at each respective tree server the requested one or more respective datasets,constructing at each respective tree server one or more slices of the report, based on the report definition, andpopulating the leaf nodes of the one or more slices at each respective tree server using the respective datasets received at the respective tree server;
sending the one or more constructed slices with populated leaf nodes from each respective tree server to an intelligence server;
merging, at the intelligence server, using at least one processor, the one or more constructed slices with populated leaf nodes to construct a tree data structure; and
converting the constructed tree data structure into a report for sending to a client for display.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, system and computer program product for creating a report on the basis of a plurality of remote datasets. The system for achieving this includes an intelligence server, connected to one or more tree servers. The tree servers are in turn connected to one or more databases. A user specifies a report to be created by the system. A client, acting on behalf of the user, creates a report definition that is sent to the intelligence server and the tree servers. Each tree server creates one or more segments, or slices, of the report, using the information that resides on the tree server. These slices are then sent to the intelligence server, which aggregates the slices into a tree structure. The tree structure is then converted into a report for presentation to the client. Moreover, the intelligence server receives updates from the tree servers as necessary. To do so, the tree servers and the intelligence server remain in communication for the purposes of passing update messages. The update messages are received and processed at the intelligence server in a manner that facilitates synchronization with the contributing tree servers and provides live updates to the user.
-
Citations
8 Claims
-
1. A computer-implemented method of creating a report for a user at a client computer on the basis of a plurality of remote datasets stored at one or more databases, comprising:
-
receiving a report definition at each of a plurality of tree servers implemented on different respective computers coupled in a network in parallel between the client computer and the one or more databases storing the datasets; creating one or more respective slices of the report at each respective tree server, wherein the slices are represented at each respective tree server as subtrees including leaf nodes, including; requesting, at each respective tree server in parallel between the client computer and the one or more databases storing the datasets, one or more respective datasets from a database coupled to the respective tree server, receiving at each respective tree server the requested one or more respective datasets, constructing at each respective tree server one or more slices of the report, based on the report definition, and populating the leaf nodes of the one or more slices at each respective tree server using the respective datasets received at the respective tree server; sending the one or more constructed slices with populated leaf nodes from each respective tree server to an intelligence server; merging, at the intelligence server, using at least one processor, the one or more constructed slices with populated leaf nodes to construct a tree data structure; and converting the constructed tree data structure into a report for sending to a client for display. - View Dependent Claims (2, 3)
-
-
4. A method of creating a report on the basis of a plurality of remote datasets, comprising:
-
receiving, at an intelligence server implemented on a computer, a report definition; receiving, at the intelligence server, one or more slices of the report from a plurality of respective tree servers, wherein the slices are represented as subtrees whose leaf nodes are defined by data from the plurality of datasets; merging the respective slices from each of the plurality of respective tree servers to form a tree; aggregating data in the tree; converting the tree into the report; presenting the report to a client computer for display; processing updates to the datasets at different subtrees of the tree servers, wherein processing an update comprises; saving the update in a queue associated with the tree server from which the update was received, determining differences among the number of updates saved in different queues associated with different tree servers, when differences among the number of updates saved in different queues can be reduced; applying any queued updates to generate an updated report, and presenting the updated report to the client computer for display, if the queue and all other queues associated with respective tree servers are empty, stopping a timer, if running, and when differences among the number of updates saved in different queues cannot be reduced, starting a timer if the timer is not currently running; and informing the client computer of an inconsistent state when a different number of updates were processed in different subtrees for slices included in the report. - View Dependent Claims (5, 6)
-
-
7. A system for creating a report for a user at a client computer on the basis of a plurality of remote datasets comprising:
-
a plurality of tree servers implemented by one or more processors coupled in a network in parallel between the client computer and one or more databases storing the remote datasets, each configured to; receive a report definition, create respective slices of the report at each of the plurality of tree servers, wherein the slices are represented as subtrees including leaf nodes, wherein creating respective slices of the report includes; requesting one or more remote datasets from a database, receiving the remote datasets, constructing one or more slices of the report, based on the report definition, and populating the leaf nodes of the respective slice, using the received remote datasets; and an intelligence server in communication with the plurality of tree servers and configured to; receive the created slices of the report from respective tree servers, receive the report definition, merge the slices to form a tree, aggregate data in the tree, convert the tree into the report, and present the report to the client, wherein the tree servers are each further configured to process updates to respective datasets send the updates to the intelligence server, and the intelligence server is further configured to; receive the processed updates from respective tree servers, generate an updated report based on the received updates, and further process the updates such that a difference between a number of updates received from different tree servers is reduced prior to presenting the updated report to the client. - View Dependent Claims (8)
-
Specification