« PreviousContinue »
SYSTEM AND METHOD FOR AUTOMATIC
TRANSMISSION OF ON-LINE ANALYTICAL
PROCESSING SYSTEM REPORT OUTPUT
This application claims priority from U.S. Provisional Application No. 60/126,055, filed on Mar. 23, 1999 entitled "System and Method for Automatic Transmission of On-Line Analytical Processing System Report Output." This application is also related by subject matter to the following U.S. Patent Applications: "System and Method For Automatic Transmission Of Personalized OLAP Report Output," Ser. No. 09/343,562; "System and Method For Subscription Interfacing in an Automatic Broadcast OLAP Report System," Ser. No. 09/345,439; "System and Method For Adaptable Automatic Output of OLAP Reports To Output Devices," Ser. No. 09/343,561; and "System and Method For Management of an Automatic OLAP Report Broadcast System," Ser. No. 09/345,440.
FIELD OF THE INVENTION
This invention relates to a system and method for automatic broadcasting of information derived from on-line analytical processing system reports to subscriber devices, including electronic mail, pagers, facsimiles, printers, mobile phones, personal digital assistants, and telephones, based on subscriber-specified criteria.
BACKGROUND OF THE INVENTION
The ability to act quickly and decisively in today's increasingly competitive marketplace is critical to the success of any organization. The volume of data that is available to organizations is rapidly increasing and frequently overwhelming. The availability of large volumes of data presents various challenges. One challenge is to avoid inundating an individual with unnecessary information. Another challenge is to ensure all relevant information is available in a timely manner.
One known approach to addressing these and other challenges is known as data warehousing. Data warehouses, relational databases, and data marts are becoming important elements of many information delivery systems because they provide a central location where a reconciled version of data extracted from a wide variety of operational systems may be stored. As used herein, a data warehouse should be understood to be an informational database that stores shareable data from one or more operational databases of record, such as one or more transaction-based database systems. A data warehouse typically allows users to tap into a business's vast store of operational data to track and respond to business trends that facilitate forecasting and planning efforts. A data mart may be considered to be a type of data warehouse that focuses on a particular business segment.
Decision support systems have been developed to efficiently retrieve selected information from data warehouses. One type of decision support system is known as an on-line analytical processing system ("OLAP"). In general, OLAP systems analyze the data from a number of different perspectives and support complex analyses against large input data sets.
There are at least three different types of OLAP architectures—ROLAP, MOLAP, and HOLAP. ROLAP ("Relational On-Line Analytical Processing") systems are systems that use a dynamic server connected to a relational
database system. Multidimensional OLAP ("MOLAP") utilizes a proprietary multidimensional database ("MDDB") to provide OLAP analyses. The main premise of this architecture is that data must be stored multidimensionally to be
5 viewed multidimensionally. A HOLAP ("Hybrid On-Line Analytical Processing") system is a hybrid of these two.
ROLAP is a three-tier, client/server architecture comprising a presentation tier, an application logic tier and a relational database tier. The relational database tier stores
1° data and connects to the application logic tier. The application logic tier comprises a ROLAP engine that executes multidimensional reports from multiple end users. The ROLAP engine integrates with a variety of presentation layers, through which users perform OLAP analyses. The
15 presentation layers enable users to provide requests to the ROLAP engine. The premise of ROLAP is that OLAP capabilities are best provided directly against a relational database, e.g., the data warehouse.
In a ROLAP system, data from transaction-processing
20 systems is loaded into a defined data model in the data warehouse. Database routines are run to aggregate the data, if required by the data model. Indices are then created to optimize query access times. End users submit multidimensional analyses to the ROLAP engine, which then dynami
25 cally transforms the requests into SQL execution plans. The SQL is submitted to the relational database for processing, the relational query results are cross-tabulated, and a multidimensional result set is returned to the end user. ROLAP is a fully dynamic architecture capable of utilizing pre
30 calculated results when they are available, or dynamically generating results from atomic information when necessary.
The ROLAP architecture directly accesses data from data warehouses, and therefore supports optimization techniques to meet batch window requirements and to provide fast response times. These optimization techniques typically include application-level table partitioning, aggregate inferencing, denormalization support, and multiple fact table joins.
4Q MOLAP is a two-tier, client/server architecture. In this architecture, the MDDB serves as both the database layer and the application logic layer. In the database layer, the MDDB system is responsible for all data storage, access, and retrieval processes. In the application logic layer, the
45 MDDB is responsible for the execution of all OLAP requests. The presentation layer integrates with the application logic layer and provides an interface through which the end users view and request OLAP analyses. The client/ server architecture allows multiple users to access the mul
5Q tidimensional database.
Information from a variety of transaction-processing systems is loaded into the MDDB System through a series of batch routines. Once this atomic data has been loaded into the MDDB, the general approach is to perform a series of
55 batch calculations to aggregate along the orthogonal dimensions and fill the MDDB array structures. For example, revenue figures for all of the stores in a state would be added together to fill the state level cells in the database. After the array structure in the database has been filled, indices are
6q created and hashing algorithms are used to improve query access times.
Once this compilation process has been completed, the MDDB is ready for use. Users request OLAP reports through the presentation layer, and the application logic 65 layer of the MDDB retrieves the stored data.
The MOLAP architecture is a compilation-intensive architecture. It principally reads the pre-compiled data, and
has limited capabilities to dynamically create aggregations or to calculate business metrics that have not been precalculated and stored.
The hybrid OLAP ("HOLAP") solution is a mix of MOLAP and relational architectures that support inquiries 5 against summary and transaction data in an integrated fashion. The HOLAP approach enables a user to perform multidimensional analysis on data in the MDDB. However, if the user reaches the bottom of the multidimensional hierarchy and requires more detailed data, the HOLAP engine 1° generates an SQL to retrieve the detailed data from the source relational database management system ("RDBMS") and returns it to the end user. HOLAP implementations rely on simple SQL statements to pull large quantities of data into the mid-tier, multidimensional engine for processing. This :5 constrains the range of inquiry and returns large, unrefined result sets that can overwhelm networks with limited bandwidth.
As described above, each of these types of OLAP systems are typically client-server systems. The OLAP engine 20 resides on the server side and a module is typically provided at a client-side to enable users to input queries and report requests to the OLAP engine. Current client-side modules are typically stand alone software modules that are loaded on client-side computer systems. One drawback of such 25 systems is that a user must learn how to operate the client-side software module in order to initiate queries and generate reports.
Although various user interfaces have been developed to 3Q enable users to access the content of data warehouses through server systems, many such systems experience significant drawbacks. All of these systems require that the user connect via a computer system to the server system to initiate reports and view the contents of the reports. 35
Moreover, current systems require that the user initiate a request for a report each time the user desires to have that report generated. A particular user may desire to run a particular report frequently to determine the status of the report. 40
Further, reports may be extensive and may contain a large amount of information for a user to sort through each time a report is run. A particular user may only be interested in knowing if a particular value or set of values in the report has changed over a predetermined period of time. Current sys- 45 terns require the user to initiate the new report and then scan through the new report to determine if the information has changed over the time period specified.
These and other drawbacks exist with current OLAP interface systems. 50
SUMMARY OF THE INVENTION
An object of the invention is to overcome these and other drawbacks in existing systems.
Another object of the present invention is to provide a system that automatically broadcasts messages to subscribers based on criteria established by the subscriber when those criteria are determined to be satisfied by an on-line analytical processing system. 60
Another object of the present invention is to provide personalized information broadcasts of information from an on-line analytical processing system through a variety of user output devices depending on the criteria established by the user. 65
Another object of the present invention is to provide a system that enables system administrators and users to track
and view the subscribers to various services on a on-line analytical processing broadcast system.
Another object of the present invention is to provide a system that enables a user to personalize the content of information broadcasts from a data warehouse through a subscription interface system that contains references to the contents of the data warehouse.
Another object of the present invention is to provide dynamic rendering of information formatted to specific output devices based on values of uniform parameters and properties.
These and other objects are realized by a system and method according to the present invention as described below. Such a system and method comprises a broadcast module that connects to an on-line analytical processing (OLAP) system comprising a server system for accessing information in one or more data warehouses to perform report analysis. The broadcast module may enable the defining of a service. A "service" as used herein should be understood to include one or more reports that are scheduled to be run against one or more data warehouses, relational databases, files in a directory, information from web or file transfer protocol sites, or information provided by a custom module, by a server system. These services may be subscribed to by users or user devices to enable the broadcast module to determine who should receive the results of a service.
The broadcast module enables the creation of a service, the scheduling of the service, subscription of users to the defined services, generation of reports for the service, formatting of outputs of the service and broadcasting of messages based on the output for the service, among other functions. A subscription interface module may be provided to enable users to select the services they want to subscribe to, the schedule on which they want to receive the contents of the service, and the personalization criteria to use for personalizing their content. A personalization module may be provided that enables subscribers to personalize the content of an individual service to which the subscriber is subscribing or to all services to which the subscriber subscribes. The broadcast module may be connected to a plurality of user devices including a personal digital assistant (PDA), facsimile, printer, pager, mobile phone, telephone, electronic mail, and web page output.
According to one embodiment of the present invention, a system for automatically generating output from an on-line analytical processing system based on scheduled services specified by subscribers of the system is provided. The system processes scheduled services in an on-line analytical processing system with each service comprising at least one query to be performed by the on-line analytical processing system. The system then automatically forwards output from the services to one or more subscriber output devices specified for that service. Users may define new services, including the schedule of the services and the type, such as alert services or scheduled services, and may also subscribe to the services provided by the system. If an alert service is processed, the system may forward output only when one or more alert criteria are satisfied. Subscribers may be specified by a dynamic recipient list that is resolved each time the service is processed to determine recipients of the service output. A dynamic recipient list may be, for example, a list that determines the recipients of a service based on dynamically resolved criteria. For example, a bank may generate a list every month that identifies customers who have an account balance greater than $100,000 and who have not
made a transaction within the last three months. The output devices the system may forward output to may comprise electronic mailbox, facsimile, printer, mobile phone, telephone, pager, PDA or web pages.
According to another embodiment of the present 5 invention, a system that enables subscribers to personalize services used for automatically generating output from an online line analytical processing system is provided. In addition to enabling subscribers to specify the content and schedule of one or more services, the system enables sub- 1° scribers to personalize various other parameters relatine to the service. For example, subscribers may specify the format of service output, filters to be applied to the service, and a variety of other personalization options described in greater detail below. 15
According to another embodiment of the invention, the system utilizes static recipient lists ("SRL") and dynamic recipient lists ("DRL") for determining subscribers to a service. SRLs may be a list of manually entered subscriber names of a particular service. DRLs, however, may be a 20 report generated by the e system listing subscriber names that meet a predetermined criteria for a service. DRLs enable lists of subscribers to change according to certain criteria applied to contents of a database. For example, a DRL may be us ed to broadcast a sales report to only those subscribers 25 who are managers of stores who have not met a predetermined sales goal.
Other objects and advantages of the present invention will be apparent to one of ordinary skill in the art upon reviewing 3Q the detailed description of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic block diagram of a system in accordance with an embodiment of the present invention. 35
FIG. 2 is a schematic block diagram of a method for automatic transmission of OLAP report information.
FIG. 3 is a schematic block diagram of a method for creating a service according to an embodiment of the present invention. 40
FIG. 4 is a schematic block diagram of an overall system in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION OF THE
PREFERRED EMBODIMENTS 45
According to one embodiment of the present invention, a system is provided for automatic transmission of OLAP report output to one or more of a plurality of user output devices. FIG. 1 depicts an embodiment of a system 100 50 according to the present invention. System 100 may comprise a data warehouse 12, a server system 14, a broadcast module 20, an object creation module 24, an agent module 28, and one or more user devices 40. User devices 40 may comprise a facsimile 40a, pager 40fc, mobile telephone 40c, 55 electronic mail 40rf, and web page output 40e.
Broadcast module 20 may comprise a module that broadcasts personalized information derived from the OLAP system (e.g., data warehouse 12 and sever system 14) to users via one or more user devices 40 such as electronic 60 mail, facsimile, printer, pager, mobile phone, telephone. PDA, and multiple other types of user information devices. Broadcast module 20 enables users to define services (e.g., queries and reports) that are to be run against an OLAP system such as server system 14 and data warehouse 12 65 based on a predetermined schedule. A "service" as used herein should be understood to include one or more reports
that are scheduled to be run against data warehouse 12 by server system 14. Broadcast module 20 also enables users on the system to subscribe to one or more services and then broadcast module 20 outputs the results of these services to subscribers according to criteria established by the subscribers.
Data warehouse 12 may comprise any data warehouse or data mart as is known in the art, including a relational database management system ("RDBMS"), a multidimensional database management system ("MDDBMS") or a hybrid system. Server system 14 may comprise an OLAP server system for accessing and managing data stored in data warehouse 12. Server system 14 may comprise a ROLAP engine, MOLAP engine or a HOLAP engine according to different embodiments. Specifically, server system 14 may comprise a multithreaded server for performing analysis directly against data warehouse 12. One embodiment of server system 14 may comprise a ROLAP engine known as DSS ServerTM offered by MicroStrategy. Accordingly, data warehouse 12 and server system 14 comprise an OLAP system that connects to broadcast module 20 for broadcast of user-specified reports from data maintained by data warehouse 12.
Broadcast module 20 may also be connected to an agent module 28 which may also be connected to server system 14. Agent module 28 may be provided to define reports and queries that may be selected as part of one or more services by broadcast module 20. Agent module 28 may be used to define queries to be performed against the data contained in data warehouse 12 using components, templates, filters, reports, agents, etc. Components may include dimensions, attributes, attribute elements, and metrics—in other words, the building blocks for templates, filters, and reports. Templates generally define a report format and specify the attributes, dimensions, metrics, and display properties comprising a report. Filters generally qualify report content and identify a subset of data warehouse 12 to be included in a report. For example, filters may be used with set math, multidimensional qualifications, and metric qualifications. Using set math, users can define and embed any set of limiting criteria (e.g., union, intersect, exclude). Multidimensional qualifications enable users to indicate general subject areas or perspectives on data (e.g., time, geography, product). Metric qualifications may be used to compute mathematical calculations of various numerical data (e.g., total sales, profit, cost, percent change, profit). Metrics may be displayed in a variety of formats (e.g., percentages, currency, fonts indicating predetermined values). Reports are generally understood to be a data analysis created by combining a template (the format) with a filter (the content). Agents may be a group of reports cached on a time- or event-based schedule for rapid retrieval and batch processing. According to one embodiment of the invention, agent module 28 may comprise a software package known as DSS AgentTM offered by MicroStrategy.
Agent module 28 may operate on any user system 26 including personal computers, network workstations, laptop computers or any other electronic device connected to server system 14 or may comprise an object connected to broadcast module 20.
Broadcast module 20 therefore, cooperates with server system 14 and agent module 28 to send personalized information to users at predefined intervals or when criteria specified in reports defined through either broadcast module 20 or agent module 28 exceed predefined thresholds. To provide this functionality, broadcast module 20 enables users of the system to create services that run against the