WO2004031940A1 - Real-time aggregation of data within an enterprise planning environment - Google Patents

Real-time aggregation of data within an enterprise planning environment Download PDF

Info

Publication number
WO2004031940A1
WO2004031940A1 PCT/US2003/029025 US0329025W WO2004031940A1 WO 2004031940 A1 WO2004031940 A1 WO 2004031940A1 US 0329025 W US0329025 W US 0329025W WO 2004031940 A1 WO2004031940 A1 WO 2004031940A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
enteφrise
contribution
slots
aggregation
Prior art date
Application number
PCT/US2003/029025
Other languages
French (fr)
Inventor
Adam Thier
Jon M. Sandles
George Duncan Pearson
Michael Gould
Original Assignee
Adaytum, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Adaytum, Inc. filed Critical Adaytum, Inc.
Priority to EP03759257A priority Critical patent/EP1546861A4/en
Priority to JP2004541553A priority patent/JP4965078B2/en
Priority to AU2003274988A priority patent/AU2003274988B2/en
Priority to CA2497742A priority patent/CA2497742C/en
Publication of WO2004031940A1 publication Critical patent/WO2004031940A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Definitions

  • the invention relates to enterprise computing environments, and more particularly, to computing environments for enterprise business planning.
  • bottom-up planning involves the aggregation of low-level forecasts from the lowest cost centers of an organization.
  • management personnel may be required to periodically forecast expenses, and allocate the expenses to a number of categories, such as advertisement, travel, and salaries.
  • the bottom-up forecasts rarely, if ever, reconcile with top-down business targets.
  • the invention is directed to ente ⁇ rise planning techniques that improve the accuracy and predictability of budget planning within large organizations by enabling organizations to reconcile co ⁇ orate financial models and organizational targets with detailed forecasts in real-time.
  • the techniques make use of an ente ⁇ rise planning database system having a transactional data area for real-time interaction with ente ⁇ rise users, and a relational data area for detailed statistical analysis and report generation.
  • an ente ⁇ rise planning system enables and automates the reconciliation of top-down targets with detailed bottom-up forecasts for an ente ⁇ rise.
  • the ente ⁇ rise planning system provides three stages of ente ⁇ rise planning: (1) a modeling stage, (2) a contribution stage, and (3) a reconciliation stage.
  • high-level ente ⁇ rise managers or executives, referred to as analysts define organizational targets, and build planning models for the ente ⁇ rise.
  • a set of defined contributors interacts with the ente ⁇ rise planning system and provides detailed forecasts in the form of contribution data.
  • the ente ⁇ rise planning system automates the reconciliation of the forecast data with the organizational targets.
  • the ente ⁇ rise planning system operates in accordance with the defined model to provide a hierarchical planning process having multiple reconciliation levels.
  • the ente ⁇ rise planning system presents the contribution data to ente ⁇ rise reviewers, as defined by the hierarchical model, and requires that the reviewer reconcile the target data with the forecast data.
  • Each reviewer may, for example, reject or accept the contribution data in view of co ⁇ orate targets provided by the analysts.
  • a system comprises a database having a relational data area and a transactional data area, and a server to store within the transactional data area contribution data received from a set of ente ⁇ rise contributors, and to publish the contribution data from the transactional data area to the relational data area.
  • the transactional data area may include a set of contribution slots and aggregations slots hierarchically related in accordance with an ente ⁇ rise model.
  • the relational area may comprise a set of related tables defined in accordance with the model.
  • a method comprises receiving contribution data from a contributor of an ente ⁇ rise in accordance with a multi-level ente ⁇ rise model, and storing the contribution data for the contributor within a transactional area of a database.
  • the method further comprises publishing the contribution data from the transactional area to a relational area of the database, and generating a report from the contribution data of the relational area of the database.
  • the invention may offer one or more advantages.
  • the techniques described herein may improve the accuracy and predictability of ente ⁇ rise planning by enabling organizations to reconcile co ⁇ orate models and organizational targets with detailed forecasts in real-time.
  • the techniques may provide a platform that delivers collaborative, real-time planning capabilities, without requiring offline consolidation and aggregation of forecasts. Because the ente ⁇ rise planning system can aggregate contribution data in real-time, all users can be presented with an accurate, up-to-date view of the numbers. The system provides rapid response regardless of the number of ente ⁇ rise users involved in the planning, thus providing precise planning information.
  • the architecture described herein can readily scale to thousands of users, and may be designed around best planning practices.
  • the system may used to centrally manage all planning information across operating units and systems within the ente ⁇ rise, thus creating a "planning hub.” Consequently, users can work from a single pool of planning data, and can be assured of the integrity of the data.
  • FIG. 1 is a block diagram illustrating an environment in which an ente ⁇ rise planning system enables and automates the reconciliation of top-down targets with detailed bottom-up forecasts.
  • FIG.2 is a block diagram illustrating one example embodiment of the ente ⁇ rise planning system.
  • FIG. 3 is a block diagram illustrating one embodiment of a remote computing device for interacting with the system.
  • FIG. 4 is a block diagram illustrating an example embodiment of database servers in which ente ⁇ rise data is organized to include a transactional data area and a relational data area.
  • FIGS. 5 and 6 are block diagrams illustrating an example organization of the transactional data area in accordance with a hierarchy defined by an ente ⁇ rise plarjjtiing model.
  • FIG. 7 is a flowchart illustrating in further detail the operation of an ente ⁇ rise planning system.
  • FIG. 8 is a flowchart illustrating in further detail the real-time aggregation process performed by the ente ⁇ rise planning system.
  • FIG. 9 is a flowchart illustrating in further detail example operation of a set of application servers in publishing data from the transactional data area to the relational data area.
  • FIG. 10 is a flowchart illustrating an example mode of operation of an administration console in controlling the deployment of multiple ente ⁇ rise planning models across a set of application servers.
  • FIGS. 11-21 illustrate a number of views presented by a web browser during an exemplary ente ⁇ rise planning session.
  • FIG. 1 is a block diagram illustrating an environment 2 in which ente ⁇ rise planning system 3 enables and automates the reconciliation of top-down targets with detailed bottom-up forecasts for ente ⁇ rise 4.
  • ente ⁇ rise planning system 3 provides three stages of ente ⁇ rise planning: (1) a modeling stage, (2) a contribution stage, and (3) a reconciliation stage.
  • analysts 8, such as the chief financial officer, senior financial analysts or product and sales analysts, define requirements and build planning models for the ente ⁇ rise 4. More specifically, analysts 8 develop a model having a number of hierarchically a ⁇ anged nodes representing various cost centers within ente ⁇ rise 4, such as business units or departments.
  • analysts 8 also establish co ⁇ orate targets for each node of the organizational hierarchy. Analysts 8 then assign one or more ente ⁇ rise users to each node, such as managers, supervisors, sales representatives, lab managers, or the like, that are responsible for ente ⁇ rise planning for the conesponding cost center.
  • Each ente ⁇ rise user may be designated as a contributor 8 that provides planning data to ente ⁇ rise system 3, a reviewer that accepts or rejects contributions from contributors 8, or both.
  • Contributors 8 and reviewers 9 may be authorized users within ente ⁇ rise 4, or within other entities coupled to network 9, such as suppliers 14 and customers 16.
  • analysts 8 define a number of templates for collecting spending forecast data from the contributors. Analysts 8 include the co ⁇ orate target data in the templates to facilitate reconciliation with the forecast data.
  • ente ⁇ rise planning system 3 enters the contribution phase during which contributors 6 interact with ente ⁇ rise planning system 3 and input detailed forecasts in the form of contribution data.
  • contributors 6 may provide detailed financial forecasts, revenue forecasts, order forecasts, inventory forecasts, estimated resource requirements, and the like, depending on the particular ente ⁇ rise planiiing activity being carried out by ente ⁇ rise 4.
  • ente ⁇ rise planning system 3 automates the reconciliation of the forecast data with the co ⁇ orate targets provided by analysts 8.
  • ente ⁇ rise planning system 3 operates in accordance with the defined model to provide a hierarchical planning process having multiple reconciliation levels.
  • ente ⁇ rise planning system 3 automatically aggregates the contribution data across ente ⁇ rise 4 in real-time, and provides access to the aggregated data to reviewers 9 associated with higher levels of ente ⁇ rise 4.
  • ente ⁇ rise planning system 3 identifies all higher levels of the organizational model affected by the newly received contribution data, and calculates new aggregate totals at each level in real-time.
  • ente ⁇ rise planning system 3 ensures that reviewers 9, as defined by the nodes of the ente ⁇ rise model, reconcile the target data with the forecast data.
  • Each reviewer 9 may, for example, reject or accept the contribution data in view of co ⁇ orate targets provided by analysts 8. This process continues until the contribution data is ultimately approved by the highest level of the organizational hierarchy, thereby ensuring that the contribution data from contributors 6 reconciles with co ⁇ orate targets provided by analysts 8.
  • ente ⁇ rise planning system 3 may provide more accurate ente ⁇ rise planning than with conventional techniques.
  • ente ⁇ rise planning system 3 may improve the accuracy and predictability of ente ⁇ rise planning by enabling organizations to reconcile co ⁇ orate models and organizational targets with detailed forecasts.
  • the techniques may provide a platform that delivers collaborative, real-time planning capabilities, without requiring offline consolidation and aggregation of forecasts. Because the ente ⁇ rise planning system can aggregate contribution data in real-time, all users can be presented with an accurate, up-to-date view of the numbers. Further, the architecture of ente ⁇ rise planning system 3 can readily scale to thousands of users, and may be designed around best planning practices.
  • Ente ⁇ rise users may use a variety of computing devices to interact with ente ⁇ rise planning system 3 via network 9.
  • an ente ⁇ rise user may interact with ente ⁇ rise planning system 3 using a laptop computer, desktop computer, or the like, running a web browser, such as Internet ExplorerTM from Microsoft Co ⁇ oration of Redmond, Washington.
  • a personal digital assistant such as a PalmTM organizer from Palm Inc. of Santa Clara, California, a web-enabled cellular phone, or similar device.
  • PDA personal digital assistant
  • Network 9 represents any communication network, such as a packet-based digital network like the Internet.
  • system 2 can readily scale to suit large ente ⁇ rises.
  • the ente ⁇ rise users may directly access ente ⁇ rise planning system 3 via a local area network, or may remotely access ente ⁇ rise planning system 3 via a virtual private network, remote dial-up, or similar remote access communication mechanism.
  • FIG. 2 is a block diagram illustrating one example embodiment of ente ⁇ rise planning system 3.
  • ente ⁇ rise planning system 3 includes web servers 20, application servers 26, and database servers 40.
  • Web servers 20 provide an interface for communicating with ente ⁇ rise user 18 via network 9.
  • Web servers 20 execute web server software, such as Internet Information ServerTM from Microsoft Co ⁇ oration, of Redmond, Washington.
  • web servers 20 provide an environment for interacting with contributors 6, analysts 8, and reviewers 9 according to software modules 21, which include analysis module 30, contribution module 32, administration (ADMIN) console 36, and extension manager 38.
  • Software modules 21 may comprise Lotus scripts, Java scripts, Java Applets, Active Server Pages, web pages written in hypertext markup language (HTML) or dynamic HTML, Active X objects, and other suitable modules.
  • Web servers 20 serve up web pages defined by software modules 21, and communicate the web pages to computing devices of ente ⁇ rise users 18.
  • the web pages may include static media, such as text and graphic imagery, as well as conventional input media such as text entry boxes, radio buttons, drop-down menus, and the like, for receiving information from ente ⁇ rise users 18.
  • Ente ⁇ rise data 42 may be stored in a number of different forms including one or more data storage file, or one or more database management systems (DBMS) executing on one or more database servers.
  • the database management systems may be a relational (RDBMS), hierarchical (HDBMS), multidimensional (MDBMS), object oriented (ODBMS or OODBMS) or object relational (ORDBMS) database management system.
  • DBMS database management systems
  • DBMS database management systems
  • the database management systems may be a relational (RDBMS), hierarchical (HDBMS), multidimensional (MDBMS), object oriented (ODBMS or OODBMS) or object relational (ORDBMS) database management system.
  • ente ⁇ rise data 42 could be combined into a single database or other data storage structure.
  • Ente ⁇ rise data 42 could, for example, be implemented as a single relational database, such as SQL Server from Microsoft Corporation.
  • Model data 42A stores information for each of users 18, including the name, email address, and other contact information for the user.
  • Model data 42B stores the ente ⁇ rise planning models defined by the analysts 8.
  • model database 42B stores information that defines the reconciliation process developed by analysts 8, including the number of reconciliation levels, the various "nodes" in the hierarchy, and the contributor 6 associated with each node.
  • model data 42B stores the respective data entry templates of the models for capturing contribution and review data from users 18.
  • Job data 42C defines administration jobs for execution application servers 26, and configuration (CONFIG) data 42D stores basic configuration data for ente ⁇ rise planning system 3.
  • Application servers 36 provide an operating environment for execution of business logic modules 46, ente ⁇ rise planning extensions 47, and application programming interface (API) 48.
  • application servers 36 carry out administration tasks as defined by job data 42C.
  • job data 42 provides a mechanism for queuing job descriptions for pending administrative jobs for execution by application servers 26.
  • analysis module 30 includes one or more software modules for creating ente ⁇ rise planning models, such as financial models for ente ⁇ rise 4, to control the entire planning process.
  • analysis module 30 allows analysts 8 to define the various cost centers, the corresponding owners and the number of reconciliation stages in the ente ⁇ rise planning process.
  • analysis module 30 read cost-center structures and ownership from an ente ⁇ rise resource planning (ERP) database (not shown).
  • ERP resource planning
  • analysis module 30 allows analysts 8 to define the "templates" for collecting contribution data.
  • a template may comprise one or more multi-dimensional structures that provide an interface for entering and calculating contribution data.
  • the template may define cost centers as a dimension within a data cube for selecting data, with a chart of accounts along the rows, and periods in the columns.
  • Analysis module 30 stores the ente ⁇ rise planning models, as well as the corresponding templates, within model data 42B.
  • Analysis module 30 also allows the organization to define a number of mechanisms for automating the budgeting process and ensuring that the contributors 6 submit their respective contribution data timely, and that templates quickly move through the defined reconciliation stages. For example, using analysis module 30, the analysts 8 can define timers for triggering electronic mail messages (emails) to remind the contributors 6 to access ente ⁇ rise planning system 3 and complete a particular template.
  • electronic mail messages electronic mail messages
  • Contribution module 32 include software modules for presenting the templates to ente ⁇ rise users 18 designated as contributors 6, and for capturing contribution data from the contributors 5. Contribution module 32 captures and aggregates the contribution data across ente ⁇ rise 4 in real-time, and provides access to the aggregated data to reviewers 9 associated with higher levels of ente ⁇ rise 4.
  • Report generator 34 includes analytical software modules that generate ente ⁇ rise planning reports based on the contribution data received from contributors 6 and stored within model data 42B. In particular, the analytical software modules allow users 18, such as analysts 8 and reviewers 9, to formulate complex queries for generating reports and performing other data analysis functions on the cu ⁇ ent data of the ente ⁇ rise model.
  • Business logic modules 46 execute within the operating environment provided by application severs 26, and provide functionality for accessing and processing the data stored within databases 42 in response to software modules 21.
  • business logic modules 46 comprise software routines for implementing the ente ⁇ rise planning functions, and are invoked by software modules 21.
  • Admimstration console 36 presents an interface for controlling the clustering of web servers 20, application servers 26, and database servers 40.
  • Administration console 36 allows the system administrator to control the number of servers used within each cluster. The system administrator may, for example, select one or more servers available within network 9, and direct administration console 36 to utilize the servers as, for example, application servers 36.
  • ente ⁇ rise planning system 3 may easily scale to support large ente ⁇ rises having thousands of users 18.
  • administration console 36 may break the task into a number of jobs, each job associated with a different slice of the model in accordance with the multi-level, organizational hierarchy defined by the particular model. For example, administration console 36 may separate a particular task into a set of N jobs, where N equals the number of nodes defined within the hierarchy. Administration console 36 may then distribute the jobs across the set of application servers 26 for which the model is deployed.
  • Admimstration console 36 provides a job interface for viewing jobs queued for processing by application servers 26, and viewing the load balancing across the clustered application servers 26.
  • Administration console 36 generates job data 42C to define task for application servers 26.
  • application servers 26 read job data 42C from the database servers 40, and process the jobs to completion.
  • one type of job involves the "cut-down" process by which the ente ⁇ rise model defined within ente ⁇ rise data 42B is "sliced" for each user.
  • application servers 26 identify areas of the defined models to which users 18 are assigned, either as contributors or reviewers.
  • Ente ⁇ rise planning system 3 presents the respective slices to each user 18 to capture contribution data, and to reconcile the contribution data with organizational targets. In this fashion, ente ⁇ rise planning system 3 need not communicate the entire model to each of users 18, thereby reducing communication time as well as resource requirements. Instead, each user 18 receives only relevant information.
  • administration console 36 allows a system administrator to control the deployment of ente ⁇ rise planning models across application servers 26.
  • analysts 8 may define a plurality of planning models for ente ⁇ rise 4.
  • analysts 8 may define separate models for revenue forecasting, inventory management, resource planning, managing accounts payable, and the like.
  • Administration console 36 allows the system administrator to create a deployment map that assigns each model to a set of application servers 26. In other words, different ente ⁇ rise models can be deployed on separate application servers 26, or may share one or more application servers.
  • the system administrator may finely control the allocation of computing resources to ente ⁇ rise planning, and may adjust the resources to meet the current needs of the ente ⁇ rise.
  • the system administrator may adjust the deployment map to shift the deployment of the models across application servers 26 based on approaching deadlines for the ente ⁇ rise planning activities. Specifically, the system administrator may allocate more computing resources to ente ⁇ rise models having the earliest deadlines in view of the likely increased activity by users 18 as the deadlines approach. As another example, the system administrator may adjust the deployment map based on cu ⁇ ent usage levels for users 18 participating in the ente ⁇ rise planning models.
  • Administration console 36 allows analysts 8 to modify an ente ⁇ rise planning model. For example, analysts 8 may wish to capture additional contribution data after initiating an ente ⁇ rise planning activity.
  • admimstration console 36 supports node level modification and maintenance of an ente ⁇ rise planning model.
  • administration console allows analysts 8 to check-in and check-out nodes of the model, i.e., to mark the node or otherwise change the state of the node from "online" to "offline.” Consequently, an analyst 8 can updated a model "slice" associated with the particular offline, rather than interrupting the ente ⁇ rise-wide planning activity.
  • Other users cannot edit the offline node, i.e., no contribution data or review input can be saved to the respective slot for the node within transactional data area 62.
  • the ente ⁇ rise contributors associated with the non-offline nodes may continue to provide and review contribution data for the enterprise planning session. This feature allows modification and maintenance on a per-node basis, and allows the model to remain operational. Accordingly, analysts 8 can modify the business logic associated with a particular node without taking the entire model offline.
  • Application servers 26 typically process model changes made by analysts 8. Specifically, in the event analysts 8 modify an ente ⁇ rise model during the planning activity, application servers 26 may be used to reconcile contribution and review data received from users 18 with the updated model. Alternatively, admimstration console 36 may direct application servers 26 to facilitate remote reconciliation on the computing devices of users 18. Upon authenticating access by users 18 subsequent to the model change, authentication servers 44 may "push" reconciliation jobs to the local computing devices. The remote computing devices reconcile the contribution data and review data of users 18 with the updated model, and save the reconciled data to ente ⁇ rise planning system 4. This may be advantageous in that ente ⁇ rise planning system 3 need not be taken offline to update ente ⁇ rise models, and that computing resources to process the updates can be distributed across the remote computing devices of users 18.
  • Extension manager 38 provides an interface by which a system administrator can install and selectively deploy extensions 47 to easily provide additional ente ⁇ rise planning functions to system 10.
  • three classes of extensions can be added: (1) administration extensions, (2) server-side extensions, and (3) client-side extensions.
  • Administration extensions comprise software modules that execute within, or invoked by, administration console 36. Consequently, administration extensions are typically used to provide additional administrative functionality, and may generate administration jobs for execution by application servers 26.
  • Server-side extensions typically execute within the operating environment provided by application servers. These extensions may be used to facilitate workflow integration, custom initialization, or custom publishing of aggregated contribution data during the planning activity.
  • client-side extensions comprise software modules that execute within the operating environment of the remote computing devices of users 18, typically within a web browser environment.
  • Contribution module 32 automatically searches extensions 47 for newly installed extensions, and downloads the extensions to users 18 upon their next access.
  • contribution module 32 may load and invoke the extension on the remote computing device immediately upon user access, or upon demand.
  • client-side extensions typically operate within the operating environment of the remote computing devices, the extensions may interact with server-side components.
  • ente ⁇ rise plar ing system 3 provides an application programming interface (API) 48 by which extensions 47 can directly access and manipulate models within model data 42B, as well as other components of ente ⁇ rise planning system 3.
  • API application programming interface
  • the system administrator can register new extensions 48 with system 10, and define inputs for launching the extensions, e.g., buttons or other graphical icons.
  • Extension manager 38 allows the system administrator to selectively deploy extensions based on the role assigned to the particular user 18. In particular, extension manager 38 allows the system administrator to assign extensions to all contributors 6, and to all reviewers 9. In addition,' extension manager 38 allows the system administrator to assign extensions to different slices of ente ⁇ rise planning models stored within model data 42B.
  • extensions may be assigned to different cost centers, different business departments, and the like. Furthermore, extensions may be assigned based on the level of a reviewer 9 within the hierarchy defined by the particular model. For example, reviewers 9 of a certain level of the hierarchy, e.g., controllers for cost centers, may be required to complete a best-practices extension that provides detailed best practices validation on all aggregated contribution data.
  • Extension manager 38 may store user-specific extension information within user data 42A indicating which extensions are assigned to each of users 18, and possibly setting user-specific properties for the extension. This flexibility advantageously allows an ente ⁇ rise planning model to be adapted and customized as the ente ⁇ rise planning session extends deeper into ente ⁇ rise 10.
  • an extension is an extension that provides a wrapper around an off-the-shelf collaborative network-based planning tool, such as NetMeeting from Microsoft Co ⁇ oration. Instead of rejecting contribution data, a reviewer 9 can invoke the extension to conference in the subordinate, and directly access model data 42B to review the contribution data together.
  • Another example is an extension that enables real-time validation of a contribution against other sources.
  • extensions include: (1) extensions for customized reporting functions required by certain users 18 within the hierarchy, (2) extensions for exporting planning data to other applications, e.g., a spreadsheet application, (3) extensions for driving newly developed printing engines, (4) extensions for importing ente ⁇ rise data, and (5) extensions for interfacing with a document management system.
  • Extension manager 38 allows the system administrator to map extensions 47 to events or messages within system 3.
  • the system aclministrator may install a new extension, and require that the extension be invoked upon receiving contribution data from one of contributors 6 via contribution module 32. This feature may be particularly useful for deploying best practices validation of contribution data or enforcement of other ente ⁇ rise requirements.
  • an extension may be used to enforce reconciliation of top-down co ⁇ orate targets with bottom-up forecasts within a predefined defined percentage, e.g., ten percent.
  • an extension may be used to reduce forecasts to a certain level or by a particular percentage. Accordingly, uniform decreases in forecasts can easily be required and enforced across ente ⁇ rise 4.
  • extensions 47 may comprise software modules that conform to the component object model (COM). Consequently, an ActiveX client may be easily used to invoke extensions 47.
  • Each extension 47 may provide one or more common interfaces for invocation and control, e.g., by contributor module 32 or administration console 36.
  • FIG. 3 is a block diagram illustrating one embodiment of a computing device 50, including various software modules executing thereon, when operated by a user 18, such as a contributor 6 or a reviewer 9.
  • computing device 50 includes web browser 52, calculation engine 54, template 56 and data cube 58.
  • calculation engine 54, and template 56 are downloaded and installed within web browser 52.
  • calculation engine 54 comprises a forward calculation engine 54 wrapped in an Active X object built in an a ⁇ ay-based language.
  • Template 56 comprises an Active X control that includes any necessary drivers for entering and manipulating budget forecast data.
  • Template 56 includes a stand-alone data cube 58 containing the top-down target data, and the bottom-up contribution data, and allows all calculations to be performed locally. Therefore, after the download is complete, each contributor 6 can modify his or her respective contribution data within template 56, and perform calculations without accessing ente ⁇ rise planning system 3.
  • calculation engine 54, template 56 and data cube 58 are maintained locally via computing device 50.
  • each of contributors 6 uses browser 52 to interact with template 56 to provide respective contribution data, e.g., by completing cells of a displayed grid, and viewing the dynamic changes that occur to calculated items within the grid. Because calculation engine 54 is resident within web browser 52, the cell entries do not have to be resubmitted to ente ⁇ rise planning system 3, recalculated, and then re-posted to the web browser 52 via network 9. If the contributor 6 wishes to end the planning session, but has not finished the process, the contributor 6 can save template 56 and data cube 58 to ente ⁇ rise planning system 3.
  • ente ⁇ rise planning system 3 When the contributor 6 wishes to continue the planning session, he or she can access ente ⁇ rise planning system 3, at which time the appropriate template 56 and data cube 58 will be loaded in web browser 52 for further editing. When the contributor 6 is satisfied with the budget data entered within template 56, the contributor 6 can submit the data to ente ⁇ rise planning system 3. As each contributor 6 provides bis or her contribution data, or accepts the contribution data, ente ⁇ rise planning system 3 automatically aggregates the contribution data across ente ⁇ rise 4 in real-time, and provides access to the aggregated data to reviewers 9 associated with higher levels of ente ⁇ rise 4.
  • each of reviewers 9 interacts with ente ⁇ rise systems 3 via web browser 52 executing upon his or her remote computing device 50.
  • Each reviewer 9 may reject or accept the contribution data in view of co ⁇ orate targets provided by the analysts 8. This process continues until the contribution data is ultimately approved by the reviewers associated with the highest level of the organizational hierarchy, thereby ensuring that the contribution data from the contributors reconciles with co ⁇ orate targets.
  • web browser 52 includes inline compression module 53 for automatically compressing communication to ente ⁇ rise planning system 4, and decompressing communications received from the system.
  • inline compression module 53 automatically intercepts outgoing buffers transmitted from web browser 52 to system 10 via the hypertext transport protocol (HTTP), and automatically compresses the buffers prior to transmission.
  • HTTP hypertext transport protocol
  • inline compression module 53 intercepts incoming HTTP buffers, and determines whether the buffers are compressed. If the buffers are compressed, inline compression module 53 automatically decompresses the buffers, and forward the decompressed buffers to web browser 53. In this manner, inline compression module 53 seamlessly compresses and decompresses communications between computing device 50 and ente ⁇ rise planning system 3, leading to possible efficiency gains within system 2.
  • ente ⁇ rise planning system 3 makes use of a single active server page (ASP) to receive the compressed HTTP buffers, and direct the compressed buffers to appropriate business logic modules 46 for decompression and processing.
  • a header with each HTTP buffer may include a byte count or other information indicating whether the buffer is compressed, and an identifier for an appropriate business logic module 46.
  • FIG. 4 is a block diagram illustrating an example embodiment of database servers 40 in which ente ⁇ rise data 42 is organized to include a transactional data area 62 and a relational data area 63.
  • transactional data area 62 supports real- time data acquisition and aggregation from users 18, while relational data area 63 is used for report generation and complex data analysis.
  • database servers 40 store contribution data received from contributors 6 in transactional data area 62, and publish the contribution data from transactional data area 62 to relational data area 63, e.g., on a periodic basis.
  • Transactional data area 62 includes a number of slots 66 that are hierarchically related in accordance with the ente ⁇ rise model.
  • Transactional data area 62 includes a set of contribution slots 66 to store contribution data received from contributors 6, and a set of aggregations slots 67 to store aggregated data calculated from the contribution data in real-time and in accordance with the hierarchy defined by the model. Consequently, transactional data area 62 includes a transaction slot 67 for each of the ente ⁇ rise contributors 6 to store the contribution data received from the respective ente ⁇ rise contributor.
  • transaction data area 62A associates each reviewer 9 with at least one of the aggregation slot 67 for each reviewer 9.
  • an ente ⁇ rise model may have N hierarchically a ⁇ anged nodes, each node defining at network user and designating the user as one of a contributor and a reviewer.
  • transactional data area comprises N slots, including an aggregation slot for each reviewer and a transaction slot for each contributor defined by the model.
  • FIGS. 5 and 6 are block diagrams further illustrating the organization of transactional data area 66 in accordance with a hierarchy defined by an ente ⁇ rise planning model.
  • FIG. 5 depicts an example hierarchy defined by an ente ⁇ rise planning model for an example fictitious pizza chain: Pizza Palace, Inc.
  • Hierarchy 70 is horizontally organized around the various geographic regions occupied by the franchise, regions 1 through 5, and vertically organized into three reconciliation levels. Ente ⁇ rise goals and targets are set by the analysts 8, and are distributed down through the various nodes of the hierarchy. The individual stores of the franchise, referred to as outlets, occupy the bottom level, i.e., Level III, and provide contribution data. [0070] Each node of Level 1 has a conesponding contributor 6 that is responsible for entering contribution data. Similarly, each node of Levels I, II is associated with a reviewer 9 for reconciling the contribution data in view of the co ⁇ orate targets defined by analysts 8. For simplicity, FIG.
  • FIG. 5 illustrates one of the contributors, Andy associated with Outlet A, and two reviews: Peter associated with Region 1, and Guy associated with the node.
  • Guy is the Chief Financial Officer for Pizza Palace, Inc. and is responsible for the overseeing all regions. Guy, therefore, is listed as an "owner" of root node 29 and as a "reviewer” for all Regions 1 - 5.
  • Peter is a middle level manager charged with overseeing Region 1. As such, Peter is listed as the owner of Region 1 and reviewer for Outlet A.
  • Andy, a manager of a local pizza store, is listed as the owner for Outlet A.
  • Each node of hierarchy 70 is associated with one or more corresponding templates within model data 42B, depending upon the node's level within the hierarchy. For example, each outlet within Level III is associated with a single template for capturing forecast information. At Level II, each region is associated with the templates of its conesponding child nodes, i.e., the outlets within the region. Root node 72 of hierarchy 70 is, therefore, associated with all of the templates for the company.
  • FIG. 6 illustrates an example organization of transactional data area 62 for supporting real-time aggregation of contribution data in accordance with hierarchy 70 defined by the ente ⁇ rise planning model for Pizza Palace.
  • transactional data area 62 includes contribution slots 66 for each node of Level III, i.e., each of Outlets A-H.
  • Each contribution slot 66 stores contribution data for the contributor 6 associated with the respective node of Level III of hierarchy 70.
  • transactional data area 62 includes aggregations slots 67 for each node of Levels I, II, i.e., root node 72 and the nodes conesponding to Regions 1-5.
  • Each aggregation slot 67 stores aggregated contribution data for its child nodes, as defined by hierarchy 70 and represented in FIG. 6 by a ⁇ ows.
  • aggregation slot 74 co ⁇ esponds to root node 72, and stores aggregated data calculated by totaling all data received from Regions 1-5.
  • aggregation slot 76 conesponding to Region 2, stores aggregated data calculated from contribution data for Outlets B-D.
  • transactional data area 62 provides an accurate, up-to-date view of data for all levels of the model, thus facilitating ente ⁇ rise- wide planning.
  • FIG. 7 is a flowchart illustrating in further detail the operation of ente ⁇ rise planning system 3.
  • analysts 8 interact with ente ⁇ rise planning system 3 to develop a planning model that include one or more data cubes having multiple dimensions (80).
  • the model may define a single data cube having thee dimensions: (1) a first dimension listing specialty pizzas, e.g., meat lovers, vegetarian, barbeque, seafood, ham and mushroom, (2) a second dimension for weekly sales forecasts, and (3) a third dimension for co ⁇ orate targets.
  • Analysts 8 also define an organizational hierarchy for controlling the ente ⁇ rise-wide planning process (82). For Pizza Palace, for example, analysts 8 may define an organization hierarchy having fourteen nodes as illustrated in FIG.
  • application servers 26 of ente ⁇ rise planning system 3 processes the model in view of the hierarchy to "slice" the model for each defined user. In other words, application servers 26 apply the hierarchy to the model as if the hierarchy were an additional dimension, and identifies a respective portion of the model for which each user can access. Application servers 26 associate each node in the hierarchy with a slice across the other dimensions of the model.
  • ente ⁇ rise planning system 3 need not communicate the entire model to the remote computing device of the user, but need only communicate the relevant portion of the one or more data cubes of the model.
  • application servers initialize ente ⁇ rise data 42, including creating the appropriate number of aggregation slots 66 and contribution slots 67 of transactional data area 62, as well as creating create the tables and relationships of relational data areas 63.
  • analysts 8 interact with the ente ⁇ rise planning system 3 to provide target data for the ente ⁇ rise (86), and contributors 6 interact with the system to provide detailed forecasts in the form of contribution data (88).
  • application servers 26 update contribution slots 67 of transaction data areas 66 to store the contribution data, and update aggregation slots 66 in realtime to store aggregate totals for each of the upper levels nodes of the ente ⁇ rise hierarchy.
  • FIG. 8 is a flowchart illustrating in further detail the real-time aggregation process of ente ⁇ rise planning system 3.
  • application servers 26 access ente ⁇ rise data 42 and identify a respective contribution slot for the contributor (100).
  • Application servers 26 retrieve from the identified slot any contribution data previously stored by the contributor, and communicates an input template 56 and contribution engine 54 to the contributor 6 (102).
  • application servers 26 Upon receiving new or updated contribution data from the contributor 6 (104), application servers 26 update the respective contribution slot to store the contribution data (106). Next, application servers 26 selectively update the aggregate totals of aggregation slots 66 for any parent aggregation slots related to the updated contribution slot. In particular, application servers 26 identifies the immediate parent aggregation slot for the updated contribution slot based on the defined hierarchical model (108), calculates new aggregate totals for the parent slot based on the updated contribution slot (110), and stores the new aggregate totals to the parent slot (112). Application servers 26 repeat this process until all related higher-level aggregation slots have been updated (114).
  • application servers 26 organize transactional data area 62 as a single table having a set of rows. Each row conesponds to a respective node in the defined organizational hierarchy. Application servers 26 store respective contribution data or aggregation data within each row, and may store the data as a row that contains a single "blob" of data. Specifically, application servers 26 may write the data for a given row as a single string or text or binary data. In one embodiment, each row is stored as packed text that conforms to the extensible markup language (XML). The packed XML describes each cell for the slice of the model that pertains to the user associated with the row, as well as the cu ⁇ ent value for the cells.
  • application servers 26 extract metadata from the one or more data cubes of the model, and create an XML representation of each "slice" of the model within the respective slot.
  • the XML may be generated by the remote computing device of the user.
  • the remote computing device may generate the XML, and communicates the XML as part of the HTTP buffer, either in compressed or uncompressed form.
  • application servers 26 may generate the XML.
  • application servers 26 parse the XML for the respective parent aggregation slots to quickly retrieve cu ⁇ ent values for the cells, and replace the packed XML with a new entry having updated aggregate totals.
  • the aggregate data may be stored in XML form as a linear anay having a set of cells to store the aggregate totals.
  • FIG. 9 is a flowchart illustrating in further detail example operation of application servers 26 in publishing data from transactional data area 62 to relational data area 63.
  • Application servers 26 may publish the data periodically, e.g., every 15 minutes, 30 minutes, and the like. Alternatively, or in addition, application servers 26 may publish the data in response to an event, e.g., submission of contribution data from a contributor 6, or review input from a reviewer 9.
  • each slot 67 may contain packed XML describing a slice of the ente ⁇ rise planning model.
  • Application servers 26 decompress the packed XML, and identify the contained cells of the data cubes of the model, as well as the cunent values for the cells.
  • application servers 26 select one or more tables from relational data area 63 that conespond to the parsed contribution data (118). For example, application servers 26 may identify a Sales table to store forecasted product sales.
  • application servers 26 write the parsed data into the identified tables of relational data area 63. Consequently, reporting module 34 may issue complex queries to database servers 40 to generate sophisticated reports or perform similar analysis on contribution data captured across ente ⁇ rise 4.
  • FIG. 10 is a flowchart illustrating an example mode of operation of administration console 36 in controlling the deployment of multiple ente ⁇ rise planning models across application servers 26.
  • admimstration console receives input identifying one or more application servers 26 (122).
  • a system administrator may select the application servers 26 from a list of servers available within a local area network.
  • the system administrator may specify a particular name, Internet Protocol (IP) address, or similar communication handle for communicating with the application server.
  • IP Internet Protocol
  • administration console 36 queries the identified applications servers for a description of the computing resources present on each server, such as the number of processors present within each application servers 26 (124).
  • Administration console 36 may present this information to the system administrator for use in deploying the various planning models of ente ⁇ rise 4.
  • adminisfration console 36 receives input from the system administrator that assigns each model to a set of application servers 26 (126). Based on the input, aclministration console 36 generates a deployment map associating each model with respective sets of the application servers, and stores the map within ente ⁇ rise data 21 (128).
  • business logic modules 46 Based on the mapping, business logic modules 46 generates jobs for administering the ente ⁇ rise planning sessions, and stores job descriptions within job data 42C.
  • Application servers 26 read and process the job descriptions, as described above, in accordance with the deployment map (130). In this manner, different ente ⁇ rise models can be deployed on separate application servers 26, or may share one or more application servers.
  • the deployment map may be adjusted, either in response to input from the system administrator or dynamically based on cunent loading levels of application servers 26 (126). Specifically, administration console direct regeneration of the deployment map, thereby rebalancing the deployment of the ente ⁇ rise planning models across clusters of application servers 26.
  • FIGS. 11-19 illustrate a number of views of web browser 52 during an exemplary ente ⁇ rise planning session for the fictitious Pizza Palace Inc. described above.
  • FIG. 11 illustrates one embodiment of a window 160 displayed by web browser 52 when Guy, the CFO, accesses ente ⁇ rise planning system 3 in order to check on the progress of the various budgets for the pizza franchise.
  • Guy has accessed ente ⁇ rise planning system 3 using Internet Explorer from Microsoft Co ⁇ oration running Shock WaveTM from MacromediaTM Inc.
  • Window 160 displays: 1) a customizable headline 162 to all contributors and reviewers of a give budget template, 2) a link 164 for displaying instructions, 3) the name of the contributor, and 4) the cunent date.
  • Ente ⁇ rise planning system 3 may use the authentication built into the operating system of the remote computing device for security such that new passwords do not have to be created and managed separately.
  • Window 160 includes a left frame 165 that displays the hierarchal model 138 defined by analysts 8 for the pizza chain.
  • the hierarchy includes five sales regions, with Region 2 having 3 pizza stores (Outlet B - Outlet D).
  • the hierarchy represents the workflow of the co ⁇ oration and, therefore, may be intuitive to the contributors.
  • each contributor has a limited view such that left frame 165 only displays the portion of the hierarchal model 138 for which the particular contributor has access. Because Guy is a high-level executive defined as a reviewer for all five regions, he can view the entire hierarchy.
  • Right frame 166 and left frame 165 cooperate in that when a user selects a node in the hierarchy within left frame 165, right frame displays the details of the selected node and its children. More specifically, right frame 166 displays tables detailing the selected node and each of its children. Each table shows: a) a node name, b) an operating state for the node, c) a time of last modification to the template, d) whether the budget template has been opened by the owner of the node, e) a name of the owner/reviewer, f) whether the budget template has been reviewed, and g) actions that the user may take on the node.
  • each node has three workflow states: a) NS - the budget has not been started, b) WIP- the budget is a "work in progress" such that the owner has input some data but has not finished, and c) LOCKED- the owner has submitted the budget for review. Once the budget is submitted, the owner cannot make changes unless the next level reviewer rejects the submission, which changes the state of the lower line node back to WIP.
  • FIG. 12 illustrates an example window 170 displayed by web browser 52 when Andy accesses ente ⁇ rise planning system 3. As illustrated by FIG. 12, Andy can only view Outlet A, i.e., the outlet for which he is responsible. Because Andy has not started the budgeting process, table 172 of the right frame displays the NS state for the node.
  • FIG. 13 illustrates a window 180 displayed when Andy clicks on Outlet A and initiates the ente ⁇ rise planning process.
  • web browser 52 downloads template 56 and data cube 58. This is one of the few times when there is traffic across network 9.
  • the calculation engine 54 resides on the client, no web traffic takes place as the user enters budgeting information.
  • Andy interacts with window 180 to input spending forecast data 182, but cannot update target data 184 that has been set by analysts 8, and cannot overwrite formulas embedded within template.
  • window 180 allows Andy to view the financial targets set by analysts 8 while entering the detailed forecasting information.
  • Calculation engine 54 allows window 180 to operate as an intelligent spreadsheet that supports, arithmetic operations, conditional logic, weighted and time averages and a number of other operations.
  • the analysts can configure window 180 to provide context sensitive help for the row, column and page items.
  • Andy Upon entering spending forecast data 182, Andy can save the information and continue the process later or can submit the forecast information to Peter for review.
  • FIG. 17 illustrates an example window 220 displayed by web browser 52 when Peter accesses ente ⁇ rise planning system 3 in order to review the budget information for which he is responsible. As illustrated by FIG.
  • FIG. 18 illustrates an example window 230 displaying the template when selected by Peter for review. Notably, all information, including the forecast data 232 set by the owner (Andy) and the target data 234 set by the financial analysts, is readonly and cannot be modified.
  • Andy has two options as a reviewer: (1) reject the forecast information and send the grid back to Peter for modification, or (2) approve the forecast information such that the template can be reviewed by Guy, the designated reviewer for Region 1.
  • the node has five possible states. The first three are similar to the Level I nodes: NS (not started), WIP (work in progress) and LOCKED.
  • higher-level nodes can also be INCOMPLETE and READY.
  • the INCOMPLETE state occurs when at least one child node is in the NS state, i.e., when a person reporting to the reviewer has not started the budgeting process.
  • FIG. 19 illustrates an example view of the information when Peter rejects the information from Outlet A.
  • Outlet A has transitioned back to the WIP state, which therefore also moves Region 1 to the WIP state.
  • Andy the owner, automatically receives an e-mail from Peter, his reviewer, telling him why the submission was rejected. This reconciliation process continues until acceptable budget information is ultimately propagated upward through all of the levels of the hierarchy.
  • FIG. 20 illustrates an example view presented by browser 52 when an analyst 8 creates and maintains an ente ⁇ rise model, including assigning owners to the various nodes of the hierarchy.
  • FIG. 21 illustrates an example view presented by browser 52 when the analyst defines an access level (e.g. read vs. write) for each node.
  • Narious embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.

Abstract

An enterprise business planning system includes a database having a relational data area and a transactional data area, and a server to store within the transactional data area contribution data received from a set of enterprise contributors. The server publishes the contribution data from the transactional data area to the relational data area. The transactional data area may include a set of contribution slots and a set of aggregations slots hierarchically related on accordance with an enterprise model. The relational area includes a set of related tables defined in accordance with the enterprise contributors, while the relational date area allows detailed statistical analysis and report generation.

Description

REAL-TIME AGGREGATION OF DATA WITHIN AN ENTERPRISE PLANNING ENVIRONMENT
TECHNICAL FIELD
[0001] The invention relates to enterprise computing environments, and more particularly, to computing environments for enterprise business planning.
BACKGROUND
[0002] More than ever before, enterprises are charged with establishing accurate forecasts for enteφrise operations. Failing to meet established expectations can have significant negative impact on the enteφrise in the areas of cash flow, stock price, liquidity, and investor faith, among other areas. Examples of enteφrise planning activities for which accuracy is critical include revenue forecasting, inventory management, resource planning, and the like. Enteφrise business planning, however, is a difficult and expensive task that often produces inaccurate results. [0003] Conventionally, businesses have taken either a "top-down" or a "bottom-up" approach to enteφrise planning. In "top-down" planning, businesses identify fundamental business targets, such as average product price, cost per employee, and the like, and push the targets down through the hierarchical structure of the coφoration. In contrast, "bottom-up" planning involves the aggregation of low-level forecasts from the lowest cost centers of an organization. For budget planning, for example, management personnel may be required to periodically forecast expenses, and allocate the expenses to a number of categories, such as advertisement, travel, and salaries. However, the bottom-up forecasts rarely, if ever, reconcile with top-down business targets.
[0004] This information has typically been collected using paper or, more recently, electromc forms, such as an electronic template created with a spreadsheet software program. This often leaves the financial department of the enteφrise with the difficult task of consolidating uncoordinated plans that have been compiled using inconsistent assumptions and varying business logic. [0005] More recently, large computer systems have been used to collect the data via an enteφrise network. The computer systems typically consolidate data collected from the various enteφrise users using time-consuming, offline batch processing during "off hours. This offline consolidation can lead to significant time delays between the collection of the data from a user, and the consolidation of the collected data with other data collected from the enteφrise. As a result, such systems often present users an inaccurate view of the actual, aggregated data for the enteφrise activity being forecasted. This may lead the users to provide incoπect data, or eπoneously modify their input. Furthermore, the users may be unsure as to which numbers are the "right" numbers for the enteφrise, and may generally doubt the integrity of the results. This slow process of data collection and offline consolidation can be particularly problematic for a heavily deadline-oriented activity like enteφrise planning.
SUMMARY
[0006] The invention is directed to enteφrise planning techniques that improve the accuracy and predictability of budget planning within large organizations by enabling organizations to reconcile coφorate financial models and organizational targets with detailed forecasts in real-time. In particular, the techniques make use of an enteφrise planning database system having a transactional data area for real-time interaction with enteφrise users, and a relational data area for detailed statistical analysis and report generation.
[0007] According to the techniques, an enteφrise planning system enables and automates the reconciliation of top-down targets with detailed bottom-up forecasts for an enteφrise. Generally, the enteφrise planning system provides three stages of enteφrise planning: (1) a modeling stage, (2) a contribution stage, and (3) a reconciliation stage. During the modeling stage, high-level enteφrise managers or executives, referred to as analysts, define organizational targets, and build planning models for the enteφrise. Next, during the contribution phase, a set of defined contributors interacts with the enteφrise planning system and provides detailed forecasts in the form of contribution data. During the reconciliation phase, the enteφrise planning system automates the reconciliation of the forecast data with the organizational targets.
[0008] During this process, the enteφrise planning system operates in accordance with the defined model to provide a hierarchical planning process having multiple reconciliation levels. At each level, the enteφrise planning system presents the contribution data to enteφrise reviewers, as defined by the hierarchical model, and requires that the reviewer reconcile the target data with the forecast data. Each reviewer may, for example, reject or accept the contribution data in view of coφorate targets provided by the analysts.
[0009] As the contributors provide the contribution data, the enteφrise planning system automatically aggregates the contribution data across the enteφrise in realtime, and presents the aggregated data to reviewers for acceptance or rejection. This process continues until the contribution data is ultimately approved by the reviewers associated with the highest level of the organizational hierarchy, thereby ensuring that the contribution data from the contributors reconciles with coφorate targets. [0010] In one embodiment, a system comprises a database having a relational data area and a transactional data area, and a server to store within the transactional data area contribution data received from a set of enteφrise contributors, and to publish the contribution data from the transactional data area to the relational data area. The transactional data area may include a set of contribution slots and aggregations slots hierarchically related in accordance with an enteφrise model. The relational area may comprise a set of related tables defined in accordance with the model. [0011] In another embodiment, a method comprises receiving contribution data from a contributor of an enteφrise in accordance with a multi-level enteφrise model, and storing the contribution data for the contributor within a transactional area of a database. The method further comprises publishing the contribution data from the transactional area to a relational area of the database, and generating a report from the contribution data of the relational area of the database. [0012] The invention may offer one or more advantages. For example, the techniques described herein may improve the accuracy and predictability of enteφrise planning by enabling organizations to reconcile coφorate models and organizational targets with detailed forecasts in real-time. The techniques may provide a platform that delivers collaborative, real-time planning capabilities, without requiring offline consolidation and aggregation of forecasts. Because the enteφrise planning system can aggregate contribution data in real-time, all users can be presented with an accurate, up-to-date view of the numbers. The system provides rapid response regardless of the number of enteφrise users involved in the planning, thus providing precise planning information.
[0013] Further, the architecture described herein can readily scale to thousands of users, and may be designed around best planning practices. In this manner, the system may used to centrally manage all planning information across operating units and systems within the enteφrise, thus creating a "planning hub." Consequently, users can work from a single pool of planning data, and can be assured of the integrity of the data.
[0014] In addition, the techniques promote high user-participation across the enteφrise, allowing plajining cycles to be reduced, e.g., from months to weeks, and best practices, like rolling forecasting, to be quickly enabled. [0015] The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
BRIEF DESCRIPTION OF DRAWINGS
[0016] FIG. 1 is a block diagram illustrating an environment in which an enteφrise planning system enables and automates the reconciliation of top-down targets with detailed bottom-up forecasts.
[0017] FIG.2 is a block diagram illustrating one example embodiment of the enteφrise planning system. [0018] FIG. 3 is a block diagram illustrating one embodiment of a remote computing device for interacting with the system.
[0019] FIG. 4 is a block diagram illustrating an example embodiment of database servers in which enteφrise data is organized to include a transactional data area and a relational data area.
[0020] FIGS. 5 and 6 are block diagrams illustrating an example organization of the transactional data area in accordance with a hierarchy defined by an enteφrise plarjjtiing model.
[0021] FIG. 7 is a flowchart illustrating in further detail the operation of an enteφrise planning system.
[0022] FIG. 8 is a flowchart illustrating in further detail the real-time aggregation process performed by the enteφrise planning system.
[0023] FIG. 9 is a flowchart illustrating in further detail example operation of a set of application servers in publishing data from the transactional data area to the relational data area.
[0024] FIG. 10 is a flowchart illustrating an example mode of operation of an administration console in controlling the deployment of multiple enteφrise planning models across a set of application servers.
[0025] FIGS. 11-21 illustrate a number of views presented by a web browser during an exemplary enteφrise planning session.
DETAILED DESCRIPTION
[0026] FIG. 1 is a block diagram illustrating an environment 2 in which enteφrise planning system 3 enables and automates the reconciliation of top-down targets with detailed bottom-up forecasts for enteφrise 4. Generally, enteφrise planning system 3 provides three stages of enteφrise planning: (1) a modeling stage, (2) a contribution stage, and (3) a reconciliation stage. In the modeling stage, analysts 8, such as the chief financial officer, senior financial analysts or product and sales analysts, define requirements and build planning models for the enteφrise 4. More specifically, analysts 8 develop a model having a number of hierarchically aπanged nodes representing various cost centers within enteφrise 4, such as business units or departments.
[0027] During the modeling stage, analysts 8 also establish coφorate targets for each node of the organizational hierarchy. Analysts 8 then assign one or more enteφrise users to each node, such as managers, supervisors, sales representatives, lab managers, or the like, that are responsible for enteφrise planning for the conesponding cost center. Each enteφrise user may be designated as a contributor 8 that provides planning data to enteφrise system 3, a reviewer that accepts or rejects contributions from contributors 8, or both. Contributors 8 and reviewers 9 may be authorized users within enteφrise 4, or within other entities coupled to network 9, such as suppliers 14 and customers 16.
[0028] Finally, analysts 8 define a number of templates for collecting spending forecast data from the contributors. Analysts 8 include the coφorate target data in the templates to facilitate reconciliation with the forecast data.
[0029] Next, enteφrise planning system 3 enters the contribution phase during which contributors 6 interact with enteφrise planning system 3 and input detailed forecasts in the form of contribution data. For example, contributors 6 may provide detailed financial forecasts, revenue forecasts, order forecasts, inventory forecasts, estimated resource requirements, and the like, depending on the particular enteφrise planiiing activity being carried out by enteφrise 4.
[0030] During the reconciliation phase, enteφrise planning system 3 automates the reconciliation of the forecast data with the coφorate targets provided by analysts 8. In particular, enteφrise planning system 3 operates in accordance with the defined model to provide a hierarchical planning process having multiple reconciliation levels. As each of contributors 6 provides bis or her contribution data, enteφrise planning system 3 automatically aggregates the contribution data across enteφrise 4 in real-time, and provides access to the aggregated data to reviewers 9 associated with higher levels of enteφrise 4. In particular, upon receiving contribution data from contributors 6, enteφrise planning system 3 identifies all higher levels of the organizational model affected by the newly received contribution data, and calculates new aggregate totals at each level in real-time.
[0031] Consequently, reviewers 9 view aggregated data across enteφrise 4 in realtime during the enteφrise planning session. At each level, enteφrise planning system 3 ensures that reviewers 9, as defined by the nodes of the enteφrise model, reconcile the target data with the forecast data. Each reviewer 9 may, for example, reject or accept the contribution data in view of coφorate targets provided by analysts 8. This process continues until the contribution data is ultimately approved by the highest level of the organizational hierarchy, thereby ensuring that the contribution data from contributors 6 reconciles with coφorate targets provided by analysts 8. [0032] In this manner, enteφrise planning system 3 may provide more accurate enteφrise planning than with conventional techniques. For example, enteφrise planning system 3 may improve the accuracy and predictability of enteφrise planning by enabling organizations to reconcile coφorate models and organizational targets with detailed forecasts. The techniques may provide a platform that delivers collaborative, real-time planning capabilities, without requiring offline consolidation and aggregation of forecasts. Because the enteφrise planning system can aggregate contribution data in real-time, all users can be presented with an accurate, up-to-date view of the numbers. Further, the architecture of enteφrise planning system 3 can readily scale to thousands of users, and may be designed around best planning practices. In addition, the techniques enabling high participation by enteφrise users, i.e., contributors 6 and reviewers 9, allowing accurate planning cycles to be reduced [0033] Enteφrise users may use a variety of computing devices to interact with enteφrise planning system 3 via network 9. For example, an enteφrise user may interact with enteφrise planning system 3 using a laptop computer, desktop computer, or the like, running a web browser, such as Internet Explorer™ from Microsoft Coφoration of Redmond, Washington. Alternatively, an enteφrise user may use a personal digital assistant (PDA), such as a Palm™ organizer from Palm Inc. of Santa Clara, California, a web-enabled cellular phone, or similar device. Network 9 represents any communication network, such as a packet-based digital network like the Internet. In this manner, system 2 can readily scale to suit large enteφrises. The enteφrise users may directly access enteφrise planning system 3 via a local area network, or may remotely access enteφrise planning system 3 via a virtual private network, remote dial-up, or similar remote access communication mechanism. [0034] FIG. 2 is a block diagram illustrating one example embodiment of enteφrise planning system 3. In the illustrated embodiment, enteφrise planning system 3 includes web servers 20, application servers 26, and database servers 40. [0035] Web servers 20 provide an interface for communicating with enteφrise user 18 via network 9. Web servers 20 execute web server software, such as Internet Information Server™ from Microsoft Coφoration, of Redmond, Washington. As such, web servers 20 provide an environment for interacting with contributors 6, analysts 8, and reviewers 9 according to software modules 21, which include analysis module 30, contribution module 32, administration (ADMIN) console 36, and extension manager 38.
[0036] Software modules 21 may comprise Lotus scripts, Java scripts, Java Applets, Active Server Pages, web pages written in hypertext markup language (HTML) or dynamic HTML, Active X objects, and other suitable modules. Web servers 20 serve up web pages defined by software modules 21, and communicate the web pages to computing devices of enteφrise users 18. The web pages may include static media, such as text and graphic imagery, as well as conventional input media such as text entry boxes, radio buttons, drop-down menus, and the like, for receiving information from enteφrise users 18.
[0037] Software modules 21 interact with database servers 40 to access enteφrise data 42 including user data 42 A, model data 42B, job data 42C, and configuration data 42D. Enteφrise data may be stored in a number of different forms including one or more data storage file, or one or more database management systems (DBMS) executing on one or more database servers. The database management systems may be a relational (RDBMS), hierarchical (HDBMS), multidimensional (MDBMS), object oriented (ODBMS or OODBMS) or object relational (ORDBMS) database management system. Furthermore, although illustrated separately, enteφrise data 42 could be combined into a single database or other data storage structure. Enteφrise data 42 could, for example, be implemented as a single relational database, such as SQL Server from Microsoft Corporation.
[0038] User data 42A stores information for each of users 18, including the name, email address, and other contact information for the user. Model data 42B stores the enteφrise planning models defined by the analysts 8. For example, model database 42B stores information that defines the reconciliation process developed by analysts 8, including the number of reconciliation levels, the various "nodes" in the hierarchy, and the contributor 6 associated with each node. In addition, model data 42B stores the respective data entry templates of the models for capturing contribution and review data from users 18. Job data 42C defines administration jobs for execution application servers 26, and configuration (CONFIG) data 42D stores basic configuration data for enteφrise planning system 3.
[0039] Application servers 36 provide an operating environment for execution of business logic modules 46, enteφrise planning extensions 47, and application programming interface (API) 48. In addition, application servers 36 carry out administration tasks as defined by job data 42C. In other words, job data 42 provides a mechanism for queuing job descriptions for pending administrative jobs for execution by application servers 26.
[0040] Referring to software applications 21, analysis module 30 includes one or more software modules for creating enteφrise planning models, such as financial models for enteφrise 4, to control the entire planning process. For example, analysis module 30 allows analysts 8 to define the various cost centers, the corresponding owners and the number of reconciliation stages in the enteφrise planning process. In one configuration, analysis module 30 read cost-center structures and ownership from an enteφrise resource planning (ERP) database (not shown). In addition, analysis module 30 allows analysts 8 to define the "templates" for collecting contribution data. A template may comprise one or more multi-dimensional structures that provide an interface for entering and calculating contribution data. For example, the template may define cost centers as a dimension within a data cube for selecting data, with a chart of accounts along the rows, and periods in the columns. Analysis module 30 stores the enteφrise planning models, as well as the corresponding templates, within model data 42B.
[0041] Analysis module 30 also allows the organization to define a number of mechanisms for automating the budgeting process and ensuring that the contributors 6 submit their respective contribution data timely, and that templates quickly move through the defined reconciliation stages. For example, using analysis module 30, the analysts 8 can define timers for triggering electronic mail messages (emails) to remind the contributors 6 to access enteφrise planning system 3 and complete a particular template.
[0042] Contribution module 32 include software modules for presenting the templates to enteφrise users 18 designated as contributors 6, and for capturing contribution data from the contributors 5. Contribution module 32 captures and aggregates the contribution data across enteφrise 4 in real-time, and provides access to the aggregated data to reviewers 9 associated with higher levels of enteφrise 4. [0043] Report generator 34 includes analytical software modules that generate enteφrise planning reports based on the contribution data received from contributors 6 and stored within model data 42B. In particular, the analytical software modules allow users 18, such as analysts 8 and reviewers 9, to formulate complex queries for generating reports and performing other data analysis functions on the cuπent data of the enteφrise model. These software modules may be web-based modules having a browser interface, or may be stand-alone executable programs. [0044] Business logic modules 46 execute within the operating environment provided by application severs 26, and provide functionality for accessing and processing the data stored within databases 42 in response to software modules 21. In particular, business logic modules 46 comprise software routines for implementing the enteφrise planning functions, and are invoked by software modules 21. [0045] Admimstration console 36 presents an interface for controlling the clustering of web servers 20, application servers 26, and database servers 40. Administration console 36 allows the system administrator to control the number of servers used within each cluster. The system administrator may, for example, select one or more servers available within network 9, and direct administration console 36 to utilize the servers as, for example, application servers 36. In this manner, enteφrise planning system 3 may easily scale to support large enteφrises having thousands of users 18. [0046] When administrating a task associated with an enteφrise planning activity, administration console 36 may break the task into a number of jobs, each job associated with a different slice of the model in accordance with the multi-level, organizational hierarchy defined by the particular model. For example, administration console 36 may separate a particular task into a set of N jobs, where N equals the number of nodes defined within the hierarchy. Administration console 36 may then distribute the jobs across the set of application servers 26 for which the model is deployed.
[0047] Admimstration console 36 provides a job interface for viewing jobs queued for processing by application servers 26, and viewing the load balancing across the clustered application servers 26. Administration console 36 generates job data 42C to define task for application servers 26. As jobs are queued within job data 42C, application servers 26 read job data 42C from the database servers 40, and process the jobs to completion. For example, one type of job involves the "cut-down" process by which the enteφrise model defined within enteφrise data 42B is "sliced" for each user. During this process, application servers 26 identify areas of the defined models to which users 18 are assigned, either as contributors or reviewers. Enteφrise planning system 3 presents the respective slices to each user 18 to capture contribution data, and to reconcile the contribution data with organizational targets. In this fashion, enteφrise planning system 3 need not communicate the entire model to each of users 18, thereby reducing communication time as well as resource requirements. Instead, each user 18 receives only relevant information.
[0048] In addition, administration console 36 allows a system administrator to control the deployment of enteφrise planning models across application servers 26. In particular, analysts 8 may define a plurality of planning models for enteφrise 4. For example, analysts 8 may define separate models for revenue forecasting, inventory management, resource planning, managing accounts payable, and the like. Administration console 36 allows the system administrator to create a deployment map that assigns each model to a set of application servers 26. In other words, different enteφrise models can be deployed on separate application servers 26, or may share one or more application servers.
[0049] Consequently, the system administrator may finely control the allocation of computing resources to enteφrise planning, and may adjust the resources to meet the current needs of the enteφrise. The system administrator may adjust the deployment map to shift the deployment of the models across application servers 26 based on approaching deadlines for the enteφrise planning activities. Specifically, the system administrator may allocate more computing resources to enteφrise models having the earliest deadlines in view of the likely increased activity by users 18 as the deadlines approach. As another example, the system administrator may adjust the deployment map based on cuπent usage levels for users 18 participating in the enteφrise planning models.
[0050] Administration console 36 allows analysts 8 to modify an enteφrise planning model. For example, analysts 8 may wish to capture additional contribution data after initiating an enteφrise planning activity. To ease the adoption of the changes to the model, admimstration console 36 supports node level modification and maintenance of an enteφrise planning model. In particular, administration console allows analysts 8 to check-in and check-out nodes of the model, i.e., to mark the node or otherwise change the state of the node from "online" to "offline." Consequently, an analyst 8 can updated a model "slice" associated with the particular offline, rather than interrupting the enteφrise-wide planning activity. Other users cannot edit the offline node, i.e., no contribution data or review input can be saved to the respective slot for the node within transactional data area 62.
[0051] However, the enteφrise contributors associated with the non-offline nodes may continue to provide and review contribution data for the enterprise planning session. This feature allows modification and maintenance on a per-node basis, and allows the model to remain operational. Accordingly, analysts 8 can modify the business logic associated with a particular node without taking the entire model offline.
[0052] Application servers 26 typically process model changes made by analysts 8. Specifically, in the event analysts 8 modify an enteφrise model during the planning activity, application servers 26 may be used to reconcile contribution and review data received from users 18 with the updated model. Alternatively, admimstration console 36 may direct application servers 26 to facilitate remote reconciliation on the computing devices of users 18. Upon authenticating access by users 18 subsequent to the model change, authentication servers 44 may "push" reconciliation jobs to the local computing devices. The remote computing devices reconcile the contribution data and review data of users 18 with the updated model, and save the reconciled data to enteφrise planning system 4. This may be advantageous in that enteφrise planning system 3 need not be taken offline to update enteφrise models, and that computing resources to process the updates can be distributed across the remote computing devices of users 18.
[0053] Extension manager 38 provides an interface by which a system administrator can install and selectively deploy extensions 47 to easily provide additional enteφrise planning functions to system 10. In general, three classes of extensions can be added: (1) administration extensions, (2) server-side extensions, and (3) client-side extensions. Administration extensions comprise software modules that execute within, or invoked by, administration console 36. Consequently, administration extensions are typically used to provide additional administrative functionality, and may generate administration jobs for execution by application servers 26. [0054] Server-side extensions typically execute within the operating environment provided by application servers. These extensions may be used to facilitate workflow integration, custom initialization, or custom publishing of aggregated contribution data during the planning activity.
[0055] In contrast, client-side extensions comprise software modules that execute within the operating environment of the remote computing devices of users 18, typically within a web browser environment. Contribution module 32 automatically searches extensions 47 for newly installed extensions, and downloads the extensions to users 18 upon their next access. In particular, contribution module 32 may load and invoke the extension on the remote computing device immediately upon user access, or upon demand. Although client-side extensions typically operate within the operating environment of the remote computing devices, the extensions may interact with server-side components.
[0056] To facilitate the incoφoration of extensions, enteφrise plar ing system 3 provides an application programming interface (API) 48 by which extensions 47 can directly access and manipulate models within model data 42B, as well as other components of enteφrise planning system 3. Via extension manager 38, the system administrator can register new extensions 48 with system 10, and define inputs for launching the extensions, e.g., buttons or other graphical icons. [0057] Extension manager 38 allows the system administrator to selectively deploy extensions based on the role assigned to the particular user 18. In particular, extension manager 38 allows the system administrator to assign extensions to all contributors 6, and to all reviewers 9. In addition,' extension manager 38 allows the system administrator to assign extensions to different slices of enteφrise planning models stored within model data 42B. In this manner, extensions may be assigned to different cost centers, different business departments, and the like. Furthermore, extensions may be assigned based on the level of a reviewer 9 within the hierarchy defined by the particular model. For example, reviewers 9 of a certain level of the hierarchy, e.g., controllers for cost centers, may be required to complete a best-practices extension that provides detailed best practices validation on all aggregated contribution data. Extension manager 38 may store user-specific extension information within user data 42A indicating which extensions are assigned to each of users 18, and possibly setting user-specific properties for the extension. This flexibility advantageously allows an enteφrise planning model to be adapted and customized as the enteφrise planning session extends deeper into enteφrise 10.
[0058] One example of an extension is an extension that provides a wrapper around an off-the-shelf collaborative network-based planning tool, such as NetMeeting from Microsoft Coφoration. Instead of rejecting contribution data, a reviewer 9 can invoke the extension to conference in the subordinate, and directly access model data 42B to review the contribution data together. Another example is an extension that enables real-time validation of a contribution against other sources. Other examples of extensions include: (1) extensions for customized reporting functions required by certain users 18 within the hierarchy, (2) extensions for exporting planning data to other applications, e.g., a spreadsheet application, (3) extensions for driving newly developed printing engines, (4) extensions for importing enteφrise data, and (5) extensions for interfacing with a document management system. [0059] Extension manager 38 allows the system administrator to map extensions 47 to events or messages within system 3. For example, the system aclministrator may install a new extension, and require that the extension be invoked upon receiving contribution data from one of contributors 6 via contribution module 32. This feature may be particularly useful for deploying best practices validation of contribution data or enforcement of other enteφrise requirements. As another example, an extension may be used to enforce reconciliation of top-down coφorate targets with bottom-up forecasts within a predefined defined percentage, e.g., ten percent. As another example, an extension may be used to reduce forecasts to a certain level or by a particular percentage. Accordingly, uniform decreases in forecasts can easily be required and enforced across enteφrise 4.
[0060] In one embodiment, extensions 47 may comprise software modules that conform to the component object model (COM). Consequently, an ActiveX client may be easily used to invoke extensions 47. Each extension 47 may provide one or more common interfaces for invocation and control, e.g., by contributor module 32 or administration console 36.
[0061] FIG. 3 is a block diagram illustrating one embodiment of a computing device 50, including various software modules executing thereon, when operated by a user 18, such as a contributor 6 or a reviewer 9. In the exemplary embodiment, computing device 50 includes web browser 52, calculation engine 54, template 56 and data cube 58. When a user 18 directs computing device 50 to access enteφrise planning system 3, calculation engine 54, and template 56 are downloaded and installed within web browser 52.
[0062] In one embodiment, calculation engine 54 comprises a forward calculation engine 54 wrapped in an Active X object built in an aπay-based language. Template 56 comprises an Active X control that includes any necessary drivers for entering and manipulating budget forecast data. Template 56 includes a stand-alone data cube 58 containing the top-down target data, and the bottom-up contribution data, and allows all calculations to be performed locally. Therefore, after the download is complete, each contributor 6 can modify his or her respective contribution data within template 56, and perform calculations without accessing enteφrise planning system 3. As ActiveX components, calculation engine 54, template 56 and data cube 58 are maintained locally via computing device 50. As such, the contributor 6 will only experience network delays when template 56 and calculation engine 54 are initially downloaded, as well as when template 56 is saved at the end of a session. [0063] To interact with enteφrise planning system 3, each of contributors 6 uses browser 52 to interact with template 56 to provide respective contribution data, e.g., by completing cells of a displayed grid, and viewing the dynamic changes that occur to calculated items within the grid. Because calculation engine 54 is resident within web browser 52, the cell entries do not have to be resubmitted to enteφrise planning system 3, recalculated, and then re-posted to the web browser 52 via network 9. If the contributor 6 wishes to end the planning session, but has not finished the process, the contributor 6 can save template 56 and data cube 58 to enteφrise planning system 3. When the contributor 6 wishes to continue the planning session, he or she can access enteφrise planning system 3, at which time the appropriate template 56 and data cube 58 will be loaded in web browser 52 for further editing. When the contributor 6 is satisfied with the budget data entered within template 56, the contributor 6 can submit the data to enteφrise planning system 3. As each contributor 6 provides bis or her contribution data, or accepts the contribution data, enteφrise planning system 3 automatically aggregates the contribution data across enteφrise 4 in real-time, and provides access to the aggregated data to reviewers 9 associated with higher levels of enteφrise 4.
[0064] In similar fashion, each of reviewers 9 interacts with enteφrise systems 3 via web browser 52 executing upon his or her remote computing device 50. Each reviewer 9 may reject or accept the contribution data in view of coφorate targets provided by the analysts 8. This process continues until the contribution data is ultimately approved by the reviewers associated with the highest level of the organizational hierarchy, thereby ensuring that the contribution data from the contributors reconciles with coφorate targets.
[0065] In one embodiment, web browser 52 includes inline compression module 53 for automatically compressing communication to enteφrise planning system 4, and decompressing communications received from the system. In particular, inline compression module 53 automatically intercepts outgoing buffers transmitted from web browser 52 to system 10 via the hypertext transport protocol (HTTP), and automatically compresses the buffers prior to transmission. Similarly, inline compression module 53 intercepts incoming HTTP buffers, and determines whether the buffers are compressed. If the buffers are compressed, inline compression module 53 automatically decompresses the buffers, and forward the decompressed buffers to web browser 53. In this manner, inline compression module 53 seamlessly compresses and decompresses communications between computing device 50 and enteφrise planning system 3, leading to possible efficiency gains within system 2. [0066] In one embodiment, enteφrise planning system 3 makes use of a single active server page (ASP) to receive the compressed HTTP buffers, and direct the compressed buffers to appropriate business logic modules 46 for decompression and processing. A header with each HTTP buffer may include a byte count or other information indicating whether the buffer is compressed, and an identifier for an appropriate business logic module 46.
[0067] FIG. 4 is a block diagram illustrating an example embodiment of database servers 40 in which enteφrise data 42 is organized to include a transactional data area 62 and a relational data area 63. In general, transactional data area 62 supports real- time data acquisition and aggregation from users 18, while relational data area 63 is used for report generation and complex data analysis.
[0068] More specifically, database servers 40 store contribution data received from contributors 6 in transactional data area 62, and publish the contribution data from transactional data area 62 to relational data area 63, e.g., on a periodic basis. Transactional data area 62 includes a number of slots 66 that are hierarchically related in accordance with the enteφrise model. Transactional data area 62 includes a set of contribution slots 66 to store contribution data received from contributors 6, and a set of aggregations slots 67 to store aggregated data calculated from the contribution data in real-time and in accordance with the hierarchy defined by the model. Consequently, transactional data area 62 includes a transaction slot 67 for each of the enteφrise contributors 6 to store the contribution data received from the respective enteφrise contributor. In addition, transaction data area 62A associates each reviewer 9 with at least one of the aggregation slot 67 for each reviewer 9. For example, an enteφrise model may have N hierarchically aπanged nodes, each node defining at network user and designating the user as one of a contributor and a reviewer. In this configuration, transactional data area comprises N slots, including an aggregation slot for each reviewer and a transaction slot for each contributor defined by the model. [0069] FIGS. 5 and 6 are block diagrams further illustrating the organization of transactional data area 66 in accordance with a hierarchy defined by an enteφrise planning model. FIG. 5 depicts an example hierarchy defined by an enteφrise planning model for an example fictitious pizza chain: Pizza Palace, Inc. Hierarchy 70 is horizontally organized around the various geographic regions occupied by the franchise, regions 1 through 5, and vertically organized into three reconciliation levels. Enteφrise goals and targets are set by the analysts 8, and are distributed down through the various nodes of the hierarchy. The individual stores of the franchise, referred to as outlets, occupy the bottom level, i.e., Level III, and provide contribution data. [0070] Each node of Level 1 has a conesponding contributor 6 that is responsible for entering contribution data. Similarly, each node of Levels I, II is associated with a reviewer 9 for reconciling the contribution data in view of the coφorate targets defined by analysts 8. For simplicity, FIG. 5 illustrates one of the contributors, Andy associated with Outlet A, and two reviews: Peter associated with Region 1, and Guy associated with the node. In this example, Guy is the Chief Financial Officer for Pizza Palace, Inc. and is responsible for the overseeing all regions. Guy, therefore, is listed as an "owner" of root node 29 and as a "reviewer" for all Regions 1 - 5. Peter is a middle level manager charged with overseeing Region 1. As such, Peter is listed as the owner of Region 1 and reviewer for Outlet A. Andy, a manager of a local pizza store, is listed as the owner for Outlet A.
[0071] Each node of hierarchy 70 is associated with one or more corresponding templates within model data 42B, depending upon the node's level within the hierarchy. For example, each outlet within Level III is associated with a single template for capturing forecast information. At Level II, each region is associated with the templates of its conesponding child nodes, i.e., the outlets within the region. Root node 72 of hierarchy 70 is, therefore, associated with all of the templates for the company.
[0072] FIG. 6 illustrates an example organization of transactional data area 62 for supporting real-time aggregation of contribution data in accordance with hierarchy 70 defined by the enteφrise planning model for Pizza Palace. In this example, transactional data area 62 includes contribution slots 66 for each node of Level III, i.e., each of Outlets A-H. Each contribution slot 66 stores contribution data for the contributor 6 associated with the respective node of Level III of hierarchy 70. [0073] Similarly, transactional data area 62 includes aggregations slots 67 for each node of Levels I, II, i.e., root node 72 and the nodes conesponding to Regions 1-5. Each aggregation slot 67 stores aggregated contribution data for its child nodes, as defined by hierarchy 70 and represented in FIG. 6 by aπows. For example, aggregation slot 74 coπesponds to root node 72, and stores aggregated data calculated by totaling all data received from Regions 1-5. As another example, aggregation slot 76, conesponding to Region 2, stores aggregated data calculated from contribution data for Outlets B-D. In this manner, transactional data area 62 provides an accurate, up-to-date view of data for all levels of the model, thus facilitating enteφrise- wide planning.
[0074] FIG. 7 is a flowchart illustrating in further detail the operation of enteφrise planning system 3. Initially, analysts 8 interact with enteφrise planning system 3 to develop a planning model that include one or more data cubes having multiple dimensions (80). For example, for Pizza Palace, Inc., the model may define a single data cube having thee dimensions: (1) a first dimension listing specialty pizzas, e.g., meat lovers, vegetarian, barbeque, seafood, ham and mushroom, (2) a second dimension for weekly sales forecasts, and (3) a third dimension for coφorate targets. [0075] Analysts 8 also define an organizational hierarchy for controlling the enteφrise-wide planning process (82). For Pizza Palace, for example, analysts 8 may define an organization hierarchy having fourteen nodes as illustrated in FIG. 5. Analysts 8 assign one or more enteφrise users to each node, and designate each user as a contributor, reviewer, or both. In addition, analysts 8 may designate one of the users associated with each node as an owner of that respective node. [0076] Upon receiving the organizational hierarchy, application servers 26 of enteφrise planning system 3 processes the model in view of the hierarchy to "slice" the model for each defined user. In other words, application servers 26 apply the hierarchy to the model as if the hierarchy were an additional dimension, and identifies a respective portion of the model for which each user can access. Application servers 26 associate each node in the hierarchy with a slice across the other dimensions of the model. By slicing the model in this manner, enteφrise planning system 3 need not communicate the entire model to the remote computing device of the user, but need only communicate the relevant portion of the one or more data cubes of the model. [0077] In addition, application servers initialize enteφrise data 42, including creating the appropriate number of aggregation slots 66 and contribution slots 67 of transactional data area 62, as well as creating create the tables and relationships of relational data areas 63.
[0078] Next, analysts 8 interact with the enteφrise planning system 3 to provide target data for the enteφrise (86), and contributors 6 interact with the system to provide detailed forecasts in the form of contribution data (88). Upon receiving the contribution data, application servers 26 update contribution slots 67 of transaction data areas 66 to store the contribution data, and update aggregation slots 66 in realtime to store aggregate totals for each of the upper levels nodes of the enteφrise hierarchy.
[0079] In this manner, the aggregate totals are readily available for reviewers 9 across enteφrise 4. Consequently, reviewers 9 can access enteφrise planning system 3, and immediately provide review input either rejecting or accepting the contribution data and the aggregate totals in view of the target data provided by analysts 8 (92). During this process, application servers 26 periodically publish contribution data and aggregate data from transactional data area 62 to relational data area 6 (94) for creation of analytical reports and other statistical analysis by report generator 34 (96). Enteφrise planning system 3 repeats the reconciliation process until the contribution data and aggregate totals are accepted by the high-level reviewer of the organizational hierarchy (98).
[0080] FIG. 8 is a flowchart illustrating in further detail the real-time aggregation process of enteφrise planning system 3. Upon receiving an access request from one of contributors 6 (99), application servers 26 access enteφrise data 42 and identify a respective contribution slot for the contributor (100). Application servers 26 retrieve from the identified slot any contribution data previously stored by the contributor, and communicates an input template 56 and contribution engine 54 to the contributor 6 (102).
[0081] Upon receiving new or updated contribution data from the contributor 6 (104), application servers 26 update the respective contribution slot to store the contribution data (106). Next, application servers 26 selectively update the aggregate totals of aggregation slots 66 for any parent aggregation slots related to the updated contribution slot. In particular, application servers 26 identifies the immediate parent aggregation slot for the updated contribution slot based on the defined hierarchical model (108), calculates new aggregate totals for the parent slot based on the updated contribution slot (110), and stores the new aggregate totals to the parent slot (112). Application servers 26 repeat this process until all related higher-level aggregation slots have been updated (114).
[0082] In one embodiment, application servers 26 organize transactional data area 62 as a single table having a set of rows. Each row conesponds to a respective node in the defined organizational hierarchy. Application servers 26 store respective contribution data or aggregation data within each row, and may store the data as a row that contains a single "blob" of data. Specifically, application servers 26 may write the data for a given row as a single string or text or binary data. In one embodiment, each row is stored as packed text that conforms to the extensible markup language (XML). The packed XML describes each cell for the slice of the model that pertains to the user associated with the row, as well as the cuπent value for the cells. When initializing transactional data area 62, application servers 26 extract metadata from the one or more data cubes of the model, and create an XML representation of each "slice" of the model within the respective slot.
[0083] When updating the contribution data, the XML may be generated by the remote computing device of the user. The remote computing device may generate the XML, and communicates the XML as part of the HTTP buffer, either in compressed or uncompressed form. Alternatively, application servers 26 may generate the XML. [0084] To update the aggregate totals in real-time, application servers 26 parse the XML for the respective parent aggregation slots to quickly retrieve cuπent values for the cells, and replace the packed XML with a new entry having updated aggregate totals. The aggregate data may be stored in XML form as a linear anay having a set of cells to store the aggregate totals. Consequently, application servers 26 may retrieve the linear anay from one aggregation slot, overlay the anay with the anay of a parent aggregation slot, and quickly recompute the aggregate totals for the parent slot. [0085] FIG. 9 is a flowchart illustrating in further detail example operation of application servers 26 in publishing data from transactional data area 62 to relational data area 63. Application servers 26 may publish the data periodically, e.g., every 15 minutes, 30 minutes, and the like. Alternatively, or in addition, application servers 26 may publish the data in response to an event, e.g., submission of contribution data from a contributor 6, or review input from a reviewer 9.
[0086] To publish the data, application servers 26 pass the contribution data of each contribution slot 67 to identify a set of date elements and respective values (116). As described above, each slot 67 may contain packed XML describing a slice of the enteφrise planning model. Application servers 26 decompress the packed XML, and identify the contained cells of the data cubes of the model, as well as the cunent values for the cells.
[0087] Next, based on the model, application servers 26 select one or more tables from relational data area 63 that conespond to the parsed contribution data (118). For example, application servers 26 may identify a Sales table to store forecasted product sales.
[0088] Finally, application servers 26 write the parsed data into the identified tables of relational data area 63. Consequently, reporting module 34 may issue complex queries to database servers 40 to generate sophisticated reports or perform similar analysis on contribution data captured across enteφrise 4.
[0089] FIG. 10 is a flowchart illustrating an example mode of operation of administration console 36 in controlling the deployment of multiple enteφrise planning models across application servers 26. Initially, admimstration console receives input identifying one or more application servers 26 (122). For example, a system administrator may select the application servers 26 from a list of servers available within a local area network. Alternatively, the system administrator may specify a particular name, Internet Protocol (IP) address, or similar communication handle for communicating with the application server.
[0090] In response, administration console 36 queries the identified applications servers for a description of the computing resources present on each server, such as the number of processors present within each application servers 26 (124).
Administration console 36 may present this information to the system administrator for use in deploying the various planning models of enteφrise 4. [0091] Next, adminisfration console 36 receives input from the system administrator that assigns each model to a set of application servers 26 (126). Based on the input, aclministration console 36 generates a deployment map associating each model with respective sets of the application servers, and stores the map within enteφrise data 21 (128).
[0092] Based on the mapping, business logic modules 46 generates jobs for administering the enteφrise planning sessions, and stores job descriptions within job data 42C. Application servers 26 read and process the job descriptions, as described above, in accordance with the deployment map (130). In this manner, different enteφrise models can be deployed on separate application servers 26, or may share one or more application servers.
[0093] The deployment map may be adjusted, either in response to input from the system administrator or dynamically based on cunent loading levels of application servers 26 (126). Specifically, administration console direct regeneration of the deployment map, thereby rebalancing the deployment of the enteφrise planning models across clusters of application servers 26.
[0094] FIGS. 11-19 illustrate a number of views of web browser 52 during an exemplary enteφrise planning session for the fictitious Pizza Palace Inc. described above. For example, FIG. 11 illustrates one embodiment of a window 160 displayed by web browser 52 when Guy, the CFO, accesses enteφrise planning system 3 in order to check on the progress of the various budgets for the pizza franchise. In this example, Guy has accessed enteφrise planning system 3 using Internet Explorer from Microsoft Coφoration running Shock Wave™ from Macromedia™ Inc. [0095] Window 160 displays: 1) a customizable headline 162 to all contributors and reviewers of a give budget template, 2) a link 164 for displaying instructions, 3) the name of the contributor, and 4) the cunent date. Enteφrise planning system 3 may use the authentication built into the operating system of the remote computing device for security such that new passwords do not have to be created and managed separately. [0096] Window 160 includes a left frame 165 that displays the hierarchal model 138 defined by analysts 8 for the pizza chain. The hierarchy, as described above, includes five sales regions, with Region 2 having 3 pizza stores (Outlet B - Outlet D). The hierarchy represents the workflow of the coφoration and, therefore, may be intuitive to the contributors. Furthermore, each contributor has a limited view such that left frame 165 only displays the portion of the hierarchal model 138 for which the particular contributor has access. Because Guy is a high-level executive defined as a reviewer for all five regions, he can view the entire hierarchy. [0097] Right frame 166 and left frame 165 cooperate in that when a user selects a node in the hierarchy within left frame 165, right frame displays the details of the selected node and its children. More specifically, right frame 166 displays tables detailing the selected node and each of its children. Each table shows: a) a node name, b) an operating state for the node, c) a time of last modification to the template, d) whether the budget template has been opened by the owner of the node, e) a name of the owner/reviewer, f) whether the budget template has been reviewed, and g) actions that the user may take on the node.
[0098] At the bottom level in the hierarchy, each node has three workflow states: a) NS - the budget has not been started, b) WIP- the budget is a "work in progress" such that the owner has input some data but has not finished, and c) LOCKED- the owner has submitted the budget for review. Once the budget is submitted, the owner cannot make changes unless the next level reviewer rejects the submission, which changes the state of the lower line node back to WIP.
[0099] The view for Andy, a manager for a local pizza store, is quite different than from Guy. FIG. 12 illustrates an example window 170 displayed by web browser 52 when Andy accesses enteφrise planning system 3. As illustrated by FIG. 12, Andy can only view Outlet A, i.e., the outlet for which he is responsible. Because Andy has not started the budgeting process, table 172 of the right frame displays the NS state for the node.
[0100] FIG. 13 illustrates a window 180 displayed when Andy clicks on Outlet A and initiates the enteφrise planning process. At this point, web browser 52 downloads template 56 and data cube 58. This is one of the few times when there is traffic across network 9. As the calculation engine 54 resides on the client, no web traffic takes place as the user enters budgeting information. Andy interacts with window 180 to input spending forecast data 182, but cannot update target data 184 that has been set by analysts 8, and cannot overwrite formulas embedded within template. In this manner, window 180 allows Andy to view the financial targets set by analysts 8 while entering the detailed forecasting information. Calculation engine 54 allows window 180 to operate as an intelligent spreadsheet that supports, arithmetic operations, conditional logic, weighted and time averages and a number of other operations. In addition, the analysts can configure window 180 to provide context sensitive help for the row, column and page items. Upon entering spending forecast data 182, Andy can save the information and continue the process later or can submit the forecast information to Peter for review.
[0101] When Andy saves the template, as illustrated in FIG. 14, web browser 52 displays window 190, which reflect the state of the node as a "work in progress" (WIP). In this state, Andy can return and continue to edit the forecast data and submit the forecast data for review by Peter, as illustrated by window 200 of FIG. 15. Once the forecast data is submitted, the state of the node is changed to LOCKED, as indicated by window 210 of FIG. 16. In this state, Andy cannot modify the forecast information unless Peter reviews the template and rejects the information. [0102] FIG. 17 illustrates an example window 220 displayed by web browser 52 when Peter accesses enteφrise planning system 3 in order to review the budget information for which he is responsible. As illustrated by FIG. 17, Peter is defined as the owner for Region 1 and the reviewer for Outlet A. Upon logging in, Peter is immediately able to tell that Andy has submitted the budget information, which is reflected by the LOCKED state displayed by table 222 of the right-hand window. In addition, because all of the child nodes to Region 1, i.e. Outlet A, have submitted forecast information, table 224 displays the state of Region 1 as READY, indicating Peter can review all of the budget information. [0103] FIG. 18 illustrates an example window 230 displaying the template when selected by Peter for review. Notably, all information, including the forecast data 232 set by the owner (Andy) and the target data 234 set by the financial analysts, is readonly and cannot be modified. As such, Andy has two options as a reviewer: (1) reject the forecast information and send the grid back to Peter for modification, or (2) approve the forecast information such that the template can be reviewed by Guy, the designated reviewer for Region 1. At this level, the node has five possible states. The first three are similar to the Level I nodes: NS (not started), WIP (work in progress) and LOCKED. In addition, higher-level nodes can also be INCOMPLETE and READY. The INCOMPLETE state occurs when at least one child node is in the NS state, i.e., when a person reporting to the reviewer has not started the budgeting process.
[0104] Thus, reviewers 9 can quickly tell if the template has not been viewed, and that the owner needs some added prompting. The READY state occurs when all child nodes have completed the budgeting process. At this point, the reviewer is the critical path of the budgeting process and must either reject or submit the data from the subordinates. One advantage of this approach over other methods of data collection is that the middle level managers have a simple and efficient method of showing upper level management that they have approved of, and are committed to, the budgeting forecasts.
[0105] FIG. 19 illustrates an example view of the information when Peter rejects the information from Outlet A. Outlet A has transitioned back to the WIP state, which therefore also moves Region 1 to the WIP state. Andy, the owner, automatically receives an e-mail from Peter, his reviewer, telling him why the submission was rejected. This reconciliation process continues until acceptable budget information is ultimately propagated upward through all of the levels of the hierarchy. [0106] FIG. 20 illustrates an example view presented by browser 52 when an analyst 8 creates and maintains an enteφrise model, including assigning owners to the various nodes of the hierarchy. FIG. 21 illustrates an example view presented by browser 52 when the analyst defines an access level (e.g. read vs. write) for each node. [0107] Narious embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.

Claims

CLAIMS:
1. A system comprising: a database having a relational data area and a transactional data area; and a server to store within the transactional data area contribution data received from a set of enteφrise contributors, and to publish the contribution data from the transactional data area to the relational data area.
2. The system of claim 1, wherein the transactional data area includes a set of contribution slots to store the contribution data and aggregations slots to store aggregated totals of the contribution data, wherein the contribution slots and aggregation slots are hierarchically related in accordance with an enteφrise model.
3. The system of claim 2, wherein the transactional data area includes a respective one of the contribution slot for each of the enteφrise contributors to store the contribution data received from the respective enteφrise contributors.
4. The system of claim 3, wherein the enteφrise model has hierarchically aπanged nodes, each node associated with at least one network user, and the transaction data area includes a slot for each of the nodes of the enteφrise model.
5. The system of claim 4, wherein the hierarchically aπanged nodes comprise N nodes associated with the enteφrise contributors, and M nodes associated with a set of enteφrise reviewers, and the transactional data area comprises N+M slots.
6. The system of claim 3, wherein for each enteφrise contributor the server: receives the contribution data from the enteφrise contributor; selects in accordance with the enteφrise model a respective slot from the set of contribution slots; and stores the contribution data received from the enteφrise contributor within the selected slot.
7. The system of claim 2, wherein the database stores the contribution data and the aggregation totals in a format compliant with a data description language.
8. The system of claim 2, wherein in response to an access request from one of the reviewers, the server selects the aggregation slot associated with the reviewer by the enteφrise model, and presents for review the aggregation totals from the selected aggregation slot and the contribution data stored by a set of the contribution slots related to the selected aggregation slots in accordance with the enteφrise model.
9. The system of claim 2, wherein the server receives review information from the reviewer that accepts or rejects the contribution data stored within contribution slots related to the selected aggregation slots by the enteφrise model, and selectively updates the selected aggregation slot in response to the review information.
10. The system of claim 2, wherein the server: receives the contribution data from the enteφrise contributors; selects contribution slots associated with the enteφrise contributors in accordance with the enteφrise model; updates the selected contribution slots to stores the received contribution data; identifies in accordance with the enteφrise model any of the aggregation slots related to the updated contribution slots; and updates the aggregation totals of the identified aggregation slots based on the received contribution data.
11. The system of claim 1 , wherein the relational area comprises a set of related tables defined in accordance with the enteφrise model, and the server parses the contribution data of the transactional data area to identify a set of data elements, selects one or more of data tables within the relational data area in accordance with the enteφrise model, and writes the set of data elements to the selected tables.
12. A system providing a computing environment for enteφrise business planning, the system comprising: a database having a transactional data area and a relational data area; a set of servers to present a network interface for real-time review and aggregation of contribution data within the transactional data area of the database, and to publish the contribution data to the relational data area; and a set of analytical software modules executing within the computing environment to generate business planning reports based on the contribution data stored within the relational data area of the database.
13. The system of claim 12, wherein the servers capture the contribution data from a set of enteφrise contributors, and wherein the transactional data area includes a transaction slot for each of the enteφrise contributors to store the contribution data received from the respective enteφrise contributors.
14. The system of claim 12, wherein the transactional data area includes a set of contribution slots and a set of aggregation slots hierarchically related in accordance with an enteφrise model.
15. A method comprising: receiving contribution data from an enteφrise contributor of an enteφrise in accordance with a multi-level enteφrise model; storing the contribution data for the enteφrise contributor within a transactional area of a database; publishing the contribution data from the transactional area to a relational area of the database; and generating a report from the contribution data of the relational area of the database.
16. The method of claim 15, wherein storing the contribution data comprises selecting a slot from a set of contribution slots within the transactional area in accordance with the enteφrise model; and storing the contribution data to the selected slot.
17. The method of claim 15, wherein the transactional data area includes a set of contribution slots and aggregations slots hierarchically related in accordance with an enteφrise model.
18. The method of claim 17, further comprising: defining the enteφrise model to include N hierarchically aπanged nodes; and associating each node with a enteφrise user; and updating each node to assign the associated enteφrise user as one of a contributor and a reviewer.
19. The method of claim 18, further comprising: calculating aggregation totals based on the received contribution data; and updating the aggregation slots to store the calculated aggregation totals.
20. The method of claim 18, further comprising storing the contribution data and the aggregation totals in a format compliant with a data description language.
21. The method of claim 15, further comprising: receiving an access request from one of a set of enteφrise reviewers; selecting, in response to an access request and in accordance with the enteφrise model, an aggregation slot associated with the reviewer; identifying contribution slots related to the selected aggregation slots in accordance with the enteφrise model; and presenting for review the aggregation totals of the selected aggregation slot and the contribution data stored by the identified contribution slots.
22. The method of claim 21 , further comprising: receiving review information from the enteφrise reviewer that accepts or rejects the contribution data stored within the identified contribution slots; and selectively updating the selected aggregation slot in response to the review information.
23. The method of claim 15, wherein storing the contribution data comprises storing the contribution data for each contributor and the aggregation totals for each reviewer in a format compliant with a data description language.
24. The method of claim 15, wherein the relational area comprises a set of related tables defined in accordance with the enteφrise model, and publishing the contribution data comprises: parsing the contribution data of the transactional data to identify a set of data elements; selecting one or more of data tables within the relational data area in accordance with the enteφrise model; and writing the set of data elements to the selected tables.
PCT/US2003/029025 2002-09-30 2003-09-19 Real-time aggregation of data within an enterprise planning environment WO2004031940A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP03759257A EP1546861A4 (en) 2002-09-30 2003-09-19 Real-time aggregation of data within an enterprise planning environment
JP2004541553A JP4965078B2 (en) 2002-09-30 2003-09-19 Real-time collection of data in an enterprise planning environment
AU2003274988A AU2003274988B2 (en) 2002-09-30 2003-09-19 Real-time aggregation of data within an enterprise planning environment
CA2497742A CA2497742C (en) 2002-09-30 2003-09-19 Real-time aggregation of data within an enterprise planning environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/262,591 2002-09-30
US10/262,591 US6768995B2 (en) 2002-09-30 2002-09-30 Real-time aggregation of data within an enterprise planning environment

Publications (1)

Publication Number Publication Date
WO2004031940A1 true WO2004031940A1 (en) 2004-04-15

Family

ID=32030255

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/029025 WO2004031940A1 (en) 2002-09-30 2003-09-19 Real-time aggregation of data within an enterprise planning environment

Country Status (7)

Country Link
US (2) US6768995B2 (en)
EP (1) EP1546861A4 (en)
JP (1) JP4965078B2 (en)
CN (1) CN100445943C (en)
AU (1) AU2003274988B2 (en)
CA (1) CA2497742C (en)
WO (1) WO2004031940A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222130B1 (en) * 2000-04-03 2007-05-22 Business Objects, S.A. Report then query capability for a multidimensional database model
US6768986B2 (en) * 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
AU6170201A (en) * 2000-05-22 2001-12-03 Adaytum Software Inc Revenue forecasting and sales force management using statistical analysis
US7130822B1 (en) * 2000-07-31 2006-10-31 Cognos Incorporated Budget planning
IL145104A (en) * 2001-08-23 2007-02-11 Gregory Bondar Method and system for balancing the load of a computer resource between computers
US6768995B2 (en) * 2002-09-30 2004-07-27 Adaytum, Inc. Real-time aggregation of data within an enterprise planning environment
WO2004032013A1 (en) * 2002-09-30 2004-04-15 Adaytum, Inc. Node-level modification during execution of an enterprise planning model
US20040064348A1 (en) * 2002-09-30 2004-04-01 Humenansky Brian S. Selective deployment of software extensions within an enterprise modeling environment
US20040073467A1 (en) * 2002-10-11 2004-04-15 Heyns Herman R. Software tools and method for business planning
US20040073442A1 (en) * 2002-10-11 2004-04-15 Heyns Herman R. Strategic planning and valuation
US7930195B2 (en) * 2002-10-11 2011-04-19 Accenture Global Services Limited Strategic management and budgeting tools
US20040073477A1 (en) * 2002-10-11 2004-04-15 Heyns Herman R. Shareholder value enhancement
IL152530A0 (en) * 2002-10-28 2003-05-29 Sphera Corp Hierarchical repository for configuration-related and performance-related information related to computerized systems
US7480708B2 (en) * 2002-12-23 2009-01-20 Sap Ag Method and computer program product for managing data consistency
TW200419413A (en) * 2003-01-13 2004-10-01 I2 Technologies Inc Master data management system for centrally managing core reference data associated with an enterprise
US7155398B2 (en) * 2003-02-19 2006-12-26 Cognos Incorporated Cascaded planning of an enterprise planning model
US6961733B2 (en) * 2003-03-10 2005-11-01 Unisys Corporation System and method for storing and accessing data in an interlocking trees datastore
US8271369B2 (en) * 2003-03-12 2012-09-18 Norman Gilmore Financial modeling and forecasting system
US20050071286A1 (en) * 2003-07-18 2005-03-31 Karolin Laicher Assessing total cost of ownership for a computing system
US8516004B2 (en) * 2003-09-19 2013-08-20 Unisys Corporation Method for processing K node count fields using an intensity variable
US20060101018A1 (en) * 2004-11-08 2006-05-11 Mazzagatti Jane C Method for processing new sequences being recorded into an interlocking trees datastore
US7606828B2 (en) * 2003-11-18 2009-10-20 Sap Ag Delta-mechanism for integration of OLAP-based planning and reporting
US20050144257A1 (en) * 2003-12-13 2005-06-30 Bayardo Roberto J. Method and system of manipulating XML data in support of data mining
US7340471B2 (en) 2004-01-16 2008-03-04 Unisys Corporation Saving and restoring an interlocking trees datastore
JP2007535764A (en) * 2004-04-26 2007-12-06 ライト90,インコーポレイテッド Real-time data prediction
US7593923B1 (en) 2004-06-29 2009-09-22 Unisys Corporation Functional operations for accessing and/or building interlocking trees datastores to enable their use with applications software
US8904273B2 (en) * 2004-07-02 2014-12-02 International Business Machines Corporation System and method of format specification
US20060005112A1 (en) * 2004-07-02 2006-01-05 David Lilly System and method of report layout
US7818282B2 (en) * 2004-07-02 2010-10-19 International Business Machines Corporation System and method for the support of multilingual applications
US7333995B2 (en) * 2004-07-02 2008-02-19 Cognos, Incorporated Very large dataset representation system and method
US7213199B2 (en) * 2004-07-16 2007-05-01 Cognos Incorporated Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US7810713B2 (en) * 2004-08-26 2010-10-12 Microsoft Corporation Cash flow projection tool
US7213041B2 (en) * 2004-10-05 2007-05-01 Unisys Corporation Saving and restoring an interlocking trees datastore
US7716241B1 (en) 2004-10-27 2010-05-11 Unisys Corporation Storing the repository origin of data inputs within a knowledge store
US7908240B1 (en) 2004-10-28 2011-03-15 Unisys Corporation Facilitated use of column and field data for field record universe in a knowledge store
US20060100845A1 (en) * 2004-11-08 2006-05-11 Mazzagatti Jane C Multiple stream real time data simulation adapted for a KStore data structure
US7348980B2 (en) * 2004-11-08 2008-03-25 Unisys Corporation Method and apparatus for interface for graphic display of data from a Kstore
US7499932B2 (en) * 2004-11-08 2009-03-03 Unisys Corporation Accessing data in an interlocking trees data structure using an application programming interface
US20060101048A1 (en) * 2004-11-08 2006-05-11 Mazzagatti Jane C KStore data analyzer
US8180749B1 (en) * 2004-11-24 2012-05-15 Braintree Solution Consulting, Inc. Systems and methods for presenting information
US7610300B2 (en) * 2004-11-30 2009-10-27 International Business Machines Corporation Automated relational schema generation within a multidimensional enterprise software system
US7505888B2 (en) * 2004-11-30 2009-03-17 International Business Machines Corporation Reporting model generation within a multidimensional enterprise software system
US7418438B2 (en) * 2004-11-30 2008-08-26 International Business Machines Corporation Automated default dimension selection within a multidimensional enterprise software system
US7593955B2 (en) * 2004-11-30 2009-09-22 International Business Machines Corporation Generation of aggregatable dimension information within a multidimensional enterprise software system
US20060167740A1 (en) * 2005-01-21 2006-07-27 Consolatti Scott M System and method for processing objectives
US7424481B2 (en) * 2005-02-01 2008-09-09 Sap Ag Data management and processing system for large enterprise model and method therefor
US7409380B1 (en) 2005-04-07 2008-08-05 Unisys Corporation Facilitated reuse of K locations in a knowledge store
WO2006116805A1 (en) * 2005-05-04 2006-11-09 Rpl Solutions Pty Ltd Method and apparatus for calculating business unit statistics using distributed data
US7389301B1 (en) * 2005-06-10 2008-06-17 Unisys Corporation Data aggregation user interface and analytic adapted for a KStore
US20070021999A1 (en) * 2005-07-19 2007-01-25 Michael James Whalen Labor and transaction management system and method
WO2007034482A2 (en) * 2005-09-20 2007-03-29 Sterna Technologies (2005) Ltd. A method and system for managing data and organizational constraints
US20070214153A1 (en) * 2006-03-10 2007-09-13 Mazzagatti Jane C Method for processing an input particle stream for creating upper levels of KStore
US7461289B2 (en) * 2006-03-16 2008-12-02 Honeywell International Inc. System and method for computer service security
US7734571B2 (en) * 2006-03-20 2010-06-08 Unisys Corporation Method for processing sensor data within a particle stream by a KStore
US20080275842A1 (en) * 2006-03-20 2008-11-06 Jane Campbell Mazzagatti Method for processing counts when an end node is encountered
US20070220069A1 (en) * 2006-03-20 2007-09-20 Mazzagatti Jane C Method for processing an input particle stream for creating lower levels of a KStore
US7689571B1 (en) 2006-03-24 2010-03-30 Unisys Corporation Optimizing the size of an interlocking tree datastore structure for KStore
US8238351B2 (en) * 2006-04-04 2012-08-07 Unisys Corporation Method for determining a most probable K location
US7676330B1 (en) 2006-05-16 2010-03-09 Unisys Corporation Method for processing a particle using a sensor structure
US7536417B2 (en) * 2006-05-24 2009-05-19 Microsoft Corporation Real-time analysis of web browsing behavior
US7747562B2 (en) * 2006-08-15 2010-06-29 International Business Machines Corporation Virtual multidimensional datasets for enterprise software systems
US20080066067A1 (en) * 2006-09-07 2008-03-13 Cognos Incorporated Enterprise performance management software system having action-based data capture
US7895150B2 (en) 2006-09-07 2011-02-22 International Business Machines Corporation Enterprise planning and performance management system providing double dispatch retrieval of multidimensional data
US7933791B2 (en) * 2006-09-07 2011-04-26 International Business Machines Corporation Enterprise performance management software system having variable-based modeling
US8918755B2 (en) * 2006-10-17 2014-12-23 International Business Machines Corporation Enterprise performance management software system having dynamic code generation
US7987105B2 (en) * 2007-01-15 2011-07-26 Shoppertrak Rct Corporation Traffic based labor allocation method and system
US8479093B2 (en) * 2007-03-01 2013-07-02 Microsoft Corporation Metamodel-based automatic report generation
US8744996B2 (en) * 2007-03-15 2014-06-03 Accenture Global Services Limited Presentation of information elements in an analyst network
US7610294B2 (en) * 2007-05-31 2009-10-27 International Business Machines Corporation Multidimensional data cube validation
US7765122B2 (en) * 2007-07-19 2010-07-27 Hewlett-Packard Development Company, L.P. Forecasting based on a collection of data including an initial collection and estimated additional data values
US7865389B2 (en) * 2007-07-19 2011-01-04 Hewlett-Packard Development Company, L.P. Analyzing time series data that exhibits seasonal effects
US7765123B2 (en) * 2007-07-19 2010-07-27 Hewlett-Packard Development Company, L.P. Indicating which of forecasting models at different aggregation levels has a better forecast quality
US20090287517A1 (en) * 2008-05-19 2009-11-19 Xerox Corporation Automated method and system for opportunity analysis using management qualification tool
US9727589B2 (en) * 2008-09-02 2017-08-08 International Business Machines Corporation Enterprise process database
EP2353113A4 (en) * 2008-10-24 2016-01-06 Optuminsight Inc Apparatus, system, and method for rapid cohort analysis
US8767019B2 (en) 2010-08-31 2014-07-01 Sovanta Ag Computer-implemented method for specifying a processing operation
US8972467B2 (en) * 2010-08-31 2015-03-03 Sovanta Ag Method for selecting a data set from a plurality of data sets by means of an input device
US8510288B2 (en) * 2010-10-22 2013-08-13 Microsoft Corporation Applying analytic patterns to data
US20140114727A1 (en) * 2011-04-26 2014-04-24 Hewlett-Packard Development Company, L.P. Method and system for hierarchical forecasting
US9015591B2 (en) 2012-06-13 2015-04-21 Microsoft Technology Licensing, Llc Dynamic visualization generation and implementation
US9910894B2 (en) * 2012-07-16 2018-03-06 Microsoft Technology Licensing, Llc Data scope origination within aggregation operations
US9087105B2 (en) 2012-10-04 2015-07-21 Adobe Systems Incorporated Rule-based extraction, transformation, and loading of data between disparate data sources
US8954454B2 (en) 2012-10-12 2015-02-10 Adobe Systems Incorporated Aggregation of data from disparate sources into an efficiently accessible format
US20150120370A1 (en) * 2013-10-31 2015-04-30 Steelwedge Software, Inc. Advanced planning in a rapidly changing high technology electronics and computer industry through massively parallel processing of data using a distributed computing environment
US9818141B2 (en) 2014-01-13 2017-11-14 International Business Machines Corporation Pricing data according to provenance-based use in a query
US20170032016A1 (en) * 2014-03-07 2017-02-02 SYSTEMA Systementwicklung Dip. -inf. Manfred Austen GmbH Real-time information systems and methodology based on continuous homomorphic processing in linear information spaces
EP3172676A4 (en) 2014-07-22 2018-08-29 Sios Technology Corporation Leveraging semi-supervised machine learning for self-adjusting policies in management of a computer infrastructure
US9384203B1 (en) * 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
CN105450672B (en) * 2016-01-05 2018-11-09 上海大之商科技发展股份有限公司 A kind of the internal network security transmission method and system of financial data
US20190156428A1 (en) * 2017-11-20 2019-05-23 Accenture Global Solutions Limited Transaction reconciliation system
CN110019561A (en) * 2018-05-14 2019-07-16 网联清算有限公司 Transaction data method of summary, device and computer equipment
US11561993B2 (en) * 2018-08-08 2023-01-24 Ab Initio Technology Llc Generating real-time aggregates at scale for inclusion in one or more modified fields in a produced subset of data
CN111427894A (en) * 2020-03-26 2020-07-17 山东浪潮通软信息科技有限公司 Method for realizing data increment summarization in comprehensive budget based on document

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385301B1 (en) * 1998-03-26 2002-05-07 Bell Atlantic Services Network, Inc. Data preparation for traffic track usage measurement
US20020129003A1 (en) * 2000-02-28 2002-09-12 Reuven Bakalash Data database and database management system having data aggregation module integrated therein

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US18510A (en) * 1857-10-27 Improvement in mowing-machines
US4989141A (en) 1987-06-01 1991-01-29 Corporate Class Software Computer system for financial analyses and reporting
US5172313A (en) * 1987-12-11 1992-12-15 Schumacher Billy G Computerized management system
DE69130587T2 (en) * 1990-05-10 1999-05-06 Hewlett Packard Co System for integrating user programs in a heterogeneous network environment
US5406477A (en) * 1991-08-30 1995-04-11 Digital Equipment Corporation Multiple reasoning and result reconciliation for enterprise analysis
US5381332A (en) * 1991-12-09 1995-01-10 Motorola, Inc. Project management system with automated schedule and cost integration
AU6133594A (en) * 1993-02-08 1994-08-29 Action Technologies, Inc. Method and apparatus for managing business processes
US5461699A (en) * 1993-10-25 1995-10-24 International Business Machines Corporation Forecasting using a neural network and a statistical forecast
US5774868A (en) * 1994-12-23 1998-06-30 International Business And Machines Corporation Automatic sales promotion selection system and method
AU5435296A (en) * 1995-03-30 1996-10-16 Hogan Systems, Inc. Method of and system for financial institution budgeting and planning
US5799286A (en) * 1995-06-07 1998-08-25 Electronic Data Systems Corporation Automated activity-based management system
US6023702A (en) * 1995-08-18 2000-02-08 International Business Machines Corporation Method and apparatus for a process and project management computer system
US6067525A (en) * 1995-10-30 2000-05-23 Clear With Computers Integrated computerized sales force automation system
US6073108A (en) * 1996-06-21 2000-06-06 Paul, Hastings, Janofsky & Walker Task-based classification and analysis system
US5974395A (en) * 1996-08-21 1999-10-26 I2 Technologies, Inc. System and method for extended enterprise planning across a supply chain
US6182060B1 (en) * 1997-04-15 2001-01-30 Robert Hedgcock Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets
WO1998053416A1 (en) * 1997-05-21 1998-11-26 Khimetrics, Inc. Method for controlled optimization of enterprise planning models
US6169534B1 (en) * 1997-06-26 2001-01-02 Upshot.Com Graphical user interface for customer information management
US6151601A (en) * 1997-11-12 2000-11-21 Ncr Corporation Computer architecture and method for collecting, analyzing and/or transforming internet and/or electronic commerce data for storage into a data storage area
US6161103A (en) * 1998-05-06 2000-12-12 Epiphany, Inc. Method and apparatus for creating aggregates for use in a datamart
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
US6397191B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Object-oriented workflow for multi-enterprise collaboration
US6418420B1 (en) * 1998-06-30 2002-07-09 Sun Microsystems, Inc. Distributed budgeting and accounting system with secure token device access
US6067548A (en) * 1998-07-16 2000-05-23 E Guanxi, Inc. Dynamic organization model and management computing system and method therefor
US20010027455A1 (en) * 1998-08-21 2001-10-04 Aly Abulleil Strategic planning system and method
AU5791899A (en) * 1998-08-27 2000-03-21 Upshot Corporation A method and apparatus for network-based sales force management
US6424979B1 (en) * 1998-12-30 2002-07-23 American Management Systems, Inc. System for presenting and managing enterprise architectures
WO2000042530A1 (en) * 1999-01-15 2000-07-20 Metaedge Corporation Method for visualizing information in a data warehousing environment
US6411936B1 (en) * 1999-02-05 2002-06-25 Nval Solutions, Inc. Enterprise value enhancement system and method
US6173310B1 (en) * 1999-03-23 2001-01-09 Microstrategy, Inc. System and method for automatic transmission of on-line analytical processing system report output
US6496831B1 (en) * 1999-03-25 2002-12-17 Lucent Technologies Inc. Real-time event processing system for telecommunications and other applications
US6430539B1 (en) * 1999-05-06 2002-08-06 Hnc Software Predictive modeling of consumer financial behavior
US6385604B1 (en) * 1999-08-04 2002-05-07 Hyperroll, Israel Limited Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements
US6408292B1 (en) * 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US7162427B1 (en) * 1999-08-20 2007-01-09 Electronic Data Systems Corporation Structure and method of modeling integrated business and information technology frameworks and architecture in support of a business
US6901406B2 (en) * 1999-12-29 2005-05-31 General Electric Capital Corporation Methods and systems for accessing multi-dimensional customer data
US6687713B2 (en) * 2000-02-29 2004-02-03 Groupthink Unlimited, Inc. Budget information, analysis, and projection system and method
AU5999201A (en) * 2000-05-17 2001-11-26 Canadian Inst Of Chartered Acc Continuously updated data processing system and method for measuring and reporting on value creation performance
CA2311884A1 (en) * 2000-06-16 2001-12-16 Cognos Incorporated Method of managing slowly changing dimensions
US7130822B1 (en) * 2000-07-31 2006-10-31 Cognos Incorporated Budget planning
US20020087523A1 (en) * 2000-08-14 2002-07-04 Karthikeyan Sivaraman Custom domain generator method and system
CA2316643C (en) * 2000-08-24 2005-02-01 Cognos Incorporated Fair assignment of processing resources to queued requests
WO2002019272A1 (en) 2000-09-01 2002-03-07 Togethersoft Corporation Methods and systems for animating a workflow and a project plan
US20020042755A1 (en) * 2000-10-05 2002-04-11 I2 Technologies, Us, Inc. Collaborative fulfillment in a distributed supply chain environment
US6961728B2 (en) * 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
AU2002252222A1 (en) * 2001-03-08 2002-09-24 Richard M. Adler System for analyzing strategic business decisions
WO2002080076A1 (en) 2001-03-30 2002-10-10 Sanches Manuel J Method, system, and software for managing enterprise action initiatives
US7856420B2 (en) * 2001-04-19 2010-12-21 Hewlett-Packard Development Company, L.P. Zero latency enterprise enriched publish/subscribe
US6965886B2 (en) * 2001-11-01 2005-11-15 Actimize Ltd. System and method for analyzing and utilizing data, by executing complex analytical models in real time
US7194543B2 (en) * 2001-11-12 2007-03-20 Mci, Llc System and method for creating and managing survivable, service hosting networks
US7143420B2 (en) * 2002-08-29 2006-11-28 Sun Microsystems, Inc. Strategic technology architecture roadmap
US6768995B2 (en) * 2002-09-30 2004-07-27 Adaytum, Inc. Real-time aggregation of data within an enterprise planning environment
TW200411480A (en) * 2002-12-27 2004-07-01 Hon Hai Prec Ind Co Ltd System and method for analyzing data on sales achievements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385301B1 (en) * 1998-03-26 2002-05-07 Bell Atlantic Services Network, Inc. Data preparation for traffic track usage measurement
US20020129003A1 (en) * 2000-02-28 2002-09-12 Reuven Bakalash Data database and database management system having data aggregation module integrated therein

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAIL MAGEE JR. ET AL.: "Microsoft Press Computer Dictionary", 1997, MICROSOFT PRESS, pages: 130, XP002974209 *
See also references of EP1546861A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions

Also Published As

Publication number Publication date
EP1546861A4 (en) 2009-08-26
US20040236738A1 (en) 2004-11-25
CN100445943C (en) 2008-12-24
US7111007B2 (en) 2006-09-19
CA2497742A1 (en) 2004-04-15
AU2003274988A1 (en) 2004-04-23
AU2003274988B2 (en) 2009-10-29
CN1685308A (en) 2005-10-19
JP4965078B2 (en) 2012-07-04
CA2497742C (en) 2012-07-31
US20040064433A1 (en) 2004-04-01
EP1546861A1 (en) 2005-06-29
US6768995B2 (en) 2004-07-27
JP2006501570A (en) 2006-01-12

Similar Documents

Publication Publication Date Title
AU2003274988B2 (en) Real-time aggregation of data within an enterprise planning environment
AU2003274987B2 (en) Deploying multiple enterprise planning models across clusters of applications servers
AU2003272568B2 (en) Selective deployment of software extensions within an enterprise modeling environment
US20040138942A1 (en) Node-level modification during execution of an enterprise planning model
US7257612B2 (en) Inline compression of a network communication within an enterprise planning environment

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2003759257

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2497742

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2003274988

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2004541553

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 20038234009

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2003759257

Country of ref document: EP