`(12) Patent Application Publication (10) Pub. No.: US 2007/0038683 A1
`
`Dixon et a1.
`(43) Pub. Date:
`Feb. 15, 2007
`
`US 2007003 8683Al
`
`(54) BUSINESS INTELLIGENCE SYSTEM AND
`METHODS
`
`Related US, Application Data
`
`(75)
`
`Inventors: James Dixon, Winter Park, FL (US);
`Doug Moran, Merritt Island, FL (US);
`Marc Batchelor, Winter Springs, FL
`(1J3)
`
`Correspondence Address:
`GOODWIN PROCTER LLP
`PATENT ADMINISTRATOR
`EXCHANGE PLACE
`BOSTON, MA 02109-2881 (US)
`
`(73) Assignee: Pentaho Corporation, Orlando, FL
`
`(21) Appl. No.:
`
`11/493,943
`
`(22)
`
`Filed:
`
`Aug. 3, 2006
`
`(60) Provisional application No. 60/705,576, filed on Aug.
`4, 2005.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`G06F 17/30
`(52) UHS Cl.
`.............................................................. 707/202
`
`(57)
`
`ABSTRACT
`
`In general, the invention relates to a business intelligence
`.
`.
`.
`platform. In one aspect, data is logged such that information
`about execution instances can be obtained. In another aspect,
`action sequences are developed, stored, and executed, such
`that use of a variety of components can be specified.
`
`SERVER
`M
`
`WORKBENCH .
`E
`
`'NBOX
`ALERTER
`19$
`
`.129
`
`FRAMEWORK
`m
`
`COMPONENTS
`fl
`
`BI SYSTEM
`
`000001
`000001
`
`BSP SOFTWARE LLC 1002
`BSP SOFTWARE LLC 1002
`
`
`
`Patent Application Publication Feb. 15, 2007 Sheet 1 of 5
`
`US 2007/0038683 A1
`
`SERVER
`1%
`
`WORKBENCH 7
`fl);
`
`INBOX
`ALERTER
`1%
`
`199
`
`FRAMEWORK
`
`COMPONENTS
`1—07
`
`Bl SYSTEM
`
`FIG. 1
`
`000002
`000002
`
`
`
`Patent Application Publication Feb. 15, 2007 Sheet 2 of 5
`
`US 2007/0038683 A1
`
`CLIENTS
`
`SYSTEM
`MONITORING
`.2033
`
`WEB SERVICE
`CLIENT
`a9
`
`WEB
`BROWSERS
`2.19
`
`INBOX
`ALERTER
`21.1
`
`SNMP/J MX
`
`SOAP/WSD
`
`HTTP
`
`RSS
`
`SERVICES / UDDI @
`
`—
`
`SINGLE SIGN ON A2
`—
`JAVA SERVER PAGES,
`SERVL—ETSPORTLETS
`N-AVIGATION
`CO_MPONENTS
`
`RUNTIME/
`
`SOLUTION
`213 REPOSITORY
`
`SOLUTION ENGINE fl
`
`AUDITING 215
`
`COMPONENTS go_7
`
`n:
`mg”4.4
`DLI.
`0x
`mm
`IO0
`(I);
`
`EXPORTING
`
`DASHBOARDS
`
`PIVOTVIEWS
`
`
`
`ANALYTICVIEWS
`
`
`
`APPINTEGRAT‘N
`
`
`
`BUSINESSRULES
`
`DATAMINING
`
`
`
`AUDITREPORTS
`
`AUDIT
`REPOSITORY
`
`ETL 245
`
`WORKFLOW
`ENGINE
`
`I SCHEDULER
`
`B
`
`SCHEDULER
`REPOSITORY
`
`DATA
`SOURCES
`
`-DATA
`-MART
`252
`
`APPLICATION
`INTEGRATION]
`
`(1%
`
`DATA MINING
`LEGEND:
`REPOSITORY
`—> CONTROL FLOW
`--->- DATA FLOW
`
`WORKFLOW
`REPOSITORY
`
`APPLICATION
`DATA
`
`000003
`000003
`
`
`
`Patent Application Publication Feb. 15, 2007 Sheet 3 of 5
`
`US 2007/0038683 A1
`
`zo_mmm>
`
`405.200
`
`Emhm>m
`
`zOEfiOm
`
`zo_._._z_u_mo
`
`meE
`
`
`
`flag»;..............mzazm20:30.0,
`
`
`
`
`
`
`
`mow>>Ooz_>>
`
`mm>mmw52:
`
`XE:mow>>ooz_>>
`
`mm>mmm
`
`i029w5025
`
`wllzmjo
`
`>mO._._won_mE
`
`mEfiznm
`
`
`
`:mzOEfiOmzO:.<O_><zQz<mmo_>mmm
`
`mwmjom
`
`
`
`Iozmmxmo>>OI<H2m_n_
`
`>>O._u_<55A---
`
`
`
`
`
`>>O.EAomhzooAIHozmwmfi
`
`mm.=u_._._n_3<
`
`
`>motwonm—m
`
` m5.3
`
`
`
`
`
`._mn_O_>_$30.Eonmmmwmzfinmom<OmIm<DOz_z=>_<H<o>>Ofixmo>>
`
`
`
`
`
`
`mngwmommzoawomo._._n_m_mmjzm”$29memJOszoz__>_o<
`zoEoné20:38........n02:52
`
`
`
`.onx:.c:\oms=maouc_>>mzazmmszwmo
`
`.mohxwmo.Oz_z__>_<H<owmmoomm
`
`
`
`
`
`
`
`oz_z=>_<._.<o_>>O._n_v_m0>>
`>mo._._mon_mmD>motmonmE
`
`>>O._n_v_m0>>
`
`mzmuzm
`
`000004
`000004
`
`
`
`
`
`Patent Application Publication Feb. 15, 2007 Sheet 4 0f 5
`
`US 2007/0038683 A1
`
`29:on20.2020;
`
`:023m5:Ezmzohmzoo
`
`.........v®AEEEVmzazm20:38I
`
`
`I
`mzazmMEotwonmm265%;
`EotmonmmE.
`
`20:38292922oz<$235069
`$szzo:<o_§<
`zO:.<o_._n_n_<
`mmkfimoimmpzmmmamoHzmjo
`
`
`
`
`>._._m:om_mzO_._.<o:n_n_<zO_._.<o_._n_n_<
`
`<><fi
`
`
`
`mm>mwmmmmwmo
`
`26:6528AI“ozmofl20:53am:
`
`
`
`
`26:<53i---.....\zoEEoEz
`
`
`
`mymocwonmmMWm265%;m20:53am:
`‘\ll!
`
`EocmonmmEocmoamm
`
`20:38
`
`000005
`000005
`
`
`
`
`Patent Application Publication Feb. 15, 2007 Sheet 5 of 5
`
`US 2007/0038683 A1
`
`ASSIGN SESSION ID
`
`@
`
`GENERATE ‘IST AUDIT DATA
`
`m
`
`ASSIGN EXEC INSTANCE ID
`
`m
`
`
`
`
`
`
`
`
`
`
`GENERATE 2ND AUDIT DATA
`
`5—20.
`
`GENERATE LOG ENTRIES
`
`5—25.
`
`
`
`FIG. 5
`
`000006
`000006
`
`
`
`US 2007/0038683 A1
`
`Feb. 15, 2007
`
`BUSINESS INTELLIGENCE SYSTEM AND
`METHODS
`
`RELATED APPLICATIONS
`
`[0001] This application claims the benefit of US. Provi-
`sional Patent Application Ser. No. 60/705,576, entitled,
`“BUSINESS INTELLIGENCE SYSTEM AND METH-
`
`ODS,” filed on Aug. 4, 2006, incorporated herein by refer-
`ence.
`
`COPYRIGHT NOTICE
`
`[0002] A portion of the disclosure of this patent document
`contains material that is subject to copyright protection. The
`copyright owner has no objection to the facsimile reproduc-
`tion by anyone of the patent document or the patent disclo-
`sure, as it appears in the Patent and Trademark Office patent
`file or records, but otherwise reserves all copyright rights
`whatsoever.
`
`APPENDIX ON COMPACT DISC
`
`[0003] This application includes an Appendix of computer
`code on compact disc, hereby incorporated by reference, in
`the file named “appendix-l-source.txt.txt,” created on Aug.
`3, 2006, and of size 314,516 bytes, and the file named
`“appendix—l—source—2.txt,” created on Aug. 3, 2006, and of
`size 39,900 bytes.
`
`BACKGROUND
`
`[0004] Business Intelligence is a sector of the information
`technology (IT) market that includes applications and tools
`for gathering, reporting, and analyzing business data. Tra—
`ditional Business Intelligence (BI) tools are costly, complex
`and fall significantly short of enabling enterprises to achieve
`the sought-after benefits in efficiency and effectiveness.
`Software vendors promise that BI will provide the aggre-
`gation, analysis, and reporting capabilities necessary to
`transform data into the high-value insight that allows man-
`agement
`to make more timely and informed decisions.
`Unfortunately this typically amounts to little more than
`reporting and reporting alone is not enough.
`
`[0005] For example, in BI systems, it is difficult to track
`the performance and execution of automated tasks in dis-
`tributed and long-running processes. Information describing
`errors, warnings, informational messages and diagnostics is
`usually written to text files (log files) sequentially without
`any context about the task being executed at the time. For
`example if an error is detected attempting to send an email
`or format a report, the error message does not include the
`email recipient or the name of the report.
`
`[0006] To compound this problem, messages about many
`tasks executing in parallel typically are written to the same
`location, making it
`impossible to determine if adjacent
`messages are related to each other. Some processes take a
`long time to complete and include dormant periods. It may
`be impossible to determine which messages relate to any
`other given messages. For example, the process of fully
`assimilating a newly hired employee into an organization
`can take weeks and involve many diverse tasks. Each of
`these tasks differs in the component that is executing each
`task, the date and time of execution of each task, and the
`person or system completing each task, but they are all
`inherently connected to the process they are a part of.
`
`In addition, with current solutions, it can be diffi-
`[0007]
`cult to manage a business process with software applications
`that have been designed solve a specific business need.
`Individual applications are not “aware” of the process in
`which they take part which makes it difficult to integrate
`them. Existing solutions to this problem fall
`into three
`categories: Monolithic applications, Workflow Engines and
`Custom programming.
`
`[0008] Monolithic Applications are large programs or
`suites of programs that try to solve every part of every
`business problem. Unfortunately,
`it is difficult to predict
`what problems will need to be solved as the business
`environment changes every day e.g. Sarbanes-Oxley or the
`invention of e-commerce, and so these systems may need
`frequent updates. Also,
`this approach does not allow a
`company to select the best solutions available as they are
`locked into one application or vendor.
`
`[0009] Workflow management systems allow the business
`process to be defined and managed. Application interfaces
`are available but require application programming to imple-
`ment, and they may need to be updated as application
`interfaces change.
`
`[0010] Custom programming can be used to solve larger
`problems using standalone applications. Custom program-
`ming of solutions is expensive and dilficult to maintain. It is
`also difficult and time consuming to modify as the business
`requirements change.
`
`SUMMARY OF THE INVENTION
`
`In a business intelligence application workflow,
`[0011]
`processes often create many sub-processes and the messages
`and events of the sub-process cannot be related to the
`messages and events of the parent process unless the rela-
`tionship between the processes is known and maintained.
`
`In one aspect, some embodiments of the present
`[0012]
`invention facilitate improved development and debugging of
`business systems, through the use of improved logging of
`message and events, in which the context of such messages
`and events within the system operation can be identified. For
`example, this allows a system administrator to identify the
`system and/or subsystem in which an event is associated,
`and take appropriate action.
`
`In general, in one aspect, the invention relates to a
`[0013]
`system for logging data, including an audit data store for
`storing information about instances of processes; and a log
`file that includes for each log file entry an identifier of the
`executing instance that generated the entry. The audit date
`store includes information about the process instances as
`they relate to the operations of the system. The information
`in the log file entry can be used to collect information from
`the audit data store, such that the operational tasks that
`resulted in the logged events can be identified.
`
`In general, in another aspect, a method for logging
`[0014]
`data in a business process workflow includes assigning a
`session identifier to a user session upon initiation by a user
`of the user session, and generating first audit data compris-
`ing the session identifier and a user identifier. The method
`includes assigning an instance identifier to an execution
`instance initiated by the user during the user session, and
`generating second audit data comprising the session identi-
`fier and the instance identifier. The method also includes
`000007
`000007
`
`
`
`US 2007/0038683 A1
`
`Feb. 15, 2007
`
`generating log entries during the execution of the execution
`instance, the log entries including the instance identifier. The
`audit data may be included in an audit data database table,
`in a file, in a log file, or any other suitable data store.
`
`[0015] A user or a software program can use the audit data
`to associate log file entries with execution instances, ses-
`sions, and users. For example, log entries may be associated
`with a session based on the second audit data. The session
`
`may be associated with a user based on the first audit data.
`
`the execution instance
`In some embodiments,
`[0016]
`includes tasks to be performed on behalf of the user. For
`example, the execution instance may include a reporting
`task, a notification task, a query, and so on. The tasks may
`generate log entries using a log function. The log function
`may be provided by an application, logging tool, and so on.
`Log entries may be generated upon an error, and/or also
`upon the start, operation, or completion of an execution
`instance, or the components called by an execution instance.
`
`In one embodiment, the initiation of a user session
`[0017]
`includes authentication of the user.
`
`In general, in one aspect, a system for logging data
`[0018]
`in a business process workflow, includes an audit data store
`for storing identifiers of execution instances, session iden-
`tifiers, and user identifiers; and a log file that includes for
`each log file entry generated by an execution instance an
`identifier of the execution instance that generated the entry.
`
`In general, in another aspect, a method for execut-
`[0019]
`ing applications that form a business process includes defin-
`ing an action sequence that includes a description of busi-
`ness intelligence processes to call and the order in which
`they should be called, storing the action sequence in a
`solution repository, and executing the action sequence such
`that the business intelligence processes defined in the stored
`action sequence are called in the order specified, thereby
`implementing a business process.
`
`In one embodiment, the action sequence includes a
`[0020]
`description of components to call and the order in which
`they should be called. The action sequence may be imple-
`mented in self-describing language, such as XML. The
`execution may be performed by a runtime engine. The
`method may also include any or all of developing the action
`sequence, testing the action sequence, and validating the
`action sequence.
`
`[0021] The solution repository may be a database or other
`suitable for storing action sequences. The solution reposi-
`tory may include version control and other auditing and
`safeguards.
`
`In various embodiments, the business intelligence
`[0022]
`processes may be business intelligence platform compo-
`nents.
`
`In some embodiments, the output of one compo-
`[0023]
`nent in the action sequence is provided as input to a next
`component in the action sequence.
`
`sequence in a solution repository, and a runtime engine for
`executing the action sequence such that the business intel-
`ligence processes defined in the stored action sequence are
`called in the order specified, thereby implementing a busi-
`ness process.
`
`In general, in another aspect, the invention relates
`[0025]
`to a method for executing applications that form a business
`process. The method includes defining an action sequence
`that includes a description of processes to call and the order
`in which they should be called. The method includes storing
`the action sequence in the solution repository, and perform-
`ing the tasks defined in the stored action sequence, thereby
`implementing a business process.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In the drawings, like reference characters generally
`[0026]
`refer to the same parts throughout the different views. Also,
`the drawings are not necessarily to scale, emphasis instead
`generally being placed upon illustrating the principles of the
`invention.
`
`[0027] FIG. 1 is a block diagram of an embodiment of the
`invention.
`
`[0028] FIG. 2 is a block diagram of an embodiment of the
`invention.
`
`[0029] FIG. 3 is a block diagram of an embodiment of the
`invention.
`
`[0030] FIG. 4 is a block diagram of an embodiment of the
`invention.
`
`[0031] FIG. 5 is a flowchart depicting an embodiment of
`the invention.
`
`
`
`DETAILED DESCRIPTION
`
`In one embodiment, a BI platform is process-
`[0032]
`centric, and uses a workflow engine as a central controller.
`The workflow engine uses process definitions to define
`business intelligence processes that execute on the platform.
`The processes may be customized and new processes can be
`added. The processes are defined in a standard process
`definition language that is externally viewable, editable, and
`customizable such that there is no hidden business logic. The
`platform may include components and reports for analyzing
`the performance of the processes. Logging, auditing and
`security are built in at the core and are utilized automatically
`to ensure that there is always an accurate audit trail available
`for both governance and performance monitoring.
`
`[0033] Such a BI platform may be considered solution-
`oriented because the operations of the platform are specified
`in process definitions and action documents that specify
`every activity. These processes and operations collectively
`may define a solution to a business intelligence problem that
`may be easily integrated into business processes that are
`external to the platform. The definition of a solution may
`contain any number of processes and operations.
`
`the platform includes a BI
`In one embodiment,
`[0034]
`In general, in another aspect, a business intelli-
`[0024]
`server, a BI workbench, and desktop inboxes. The BI server
`gence platform for executing applications that form a busi-
`includes a BI framework and BI components. The server
`ness process, includes a development environment for defin-
`also includes a runtime engine, which is driven by the
`ing an action sequence comprising a description of business
`workflow engine, and which coordinates the execution and
`intelligence processes to call and the order in which they
`should be called, a solution engine for storing the action
`communication between BI components. In one implemen—
`000008
`000008
`
`
`
`US 2007/0038683 A1
`
`Feb. 15, 2007
`
`tation of a server includes one, two, or more of the following
`features: common metadata in the form of solution definition
`documents; common user interfaces and user interface com-
`ponents; security; email and desktop notifications; installa-
`tion, integration and validation of all components; sample
`solutions; application connectors; usage and diagnostic
`tools; design tools; customization and configuration; and
`process performance analysis reports and ‘what-if’ model-
`mg.
`
`[0035] The BI Workbench is a set of design and admin-
`istration tools that may be integrated into an Integrated
`Development Environment, such as the popular Eclipse
`environment, available from the Eclipse Foundation. These
`tools allow business analysts or developers to create reports,
`dashboards, analysis models, business rules, and BI pro-
`cesses. BI solutions may be designed using the BI work-
`bench and deployed to the server.
`
`[0036] The inboxes may deliver tasks and report and/or
`exception notifications. In various embodiments, the desk-
`top inboxes may be, for example, an RSS reader, email client
`software, an instant messenger client, or a special-purpose
`inbox alerter.
`
`In one embodiment, the system is implemented as
`[0037]
`a combination of original source code and open source
`components that have been integrated to form a scalable,
`sophisticated BI platform that may include such features as
`a J2EE server, security, portal, workflow, rules engines,
`charting, collaboration, content management, data integra-
`tion, analysis, and modeling features of the system. Many of
`these components may be standards-based.
`
`in one embodiment, an
`[0038] Referring to FIG. 1,
`embodiment of a BI Platform 100 includes a server 102, a
`workbench 103, and an inbox alerter 104. The user can
`configure the server 102 using the workbench 103. The
`server 102 includes functionality for running the BI plat-
`form, as configured by the user 101 using the workbench
`103. The inbox alerter 104 is used to notify the user 101
`when there is a message for the user 101 from the server 102.
`
`implemented with an email or instant message program,
`toolbar, or other message alert.
`
`In various embodiments, the Pentaho BI Platform
`[0042]
`integrates workflow, business rules,
`information delivery
`and notification, scheduling, auditing, application integra-
`tion, content navigation, user interfaces, design and admin-
`istration tools with reporting, analysis, dashboards, and data
`mining components and engines.
`
`In general, The architecture of the Pentaho BI
`[0043]
`Platform has many advantages. For example, by building,
`integrating, and enhancing use of open source components
`into a single integrated platform, the cost of BI implemen-
`tations is drastically reduced. Lower cost of ownership
`means resources can be invested elsewhere, such as increas-
`ing the scope of the Business Intelligence project and
`deploying more advanced content and capabilities to end
`users. In other words, a significantly higher percentage of
`the project budget can be spent on requirements gathering,
`implementation, and services increasing the successfulness
`of the project. Delivering the software with no cost for
`prototyping enables prototyping to be performed for any
`duration required. Delivering the software with no cost for
`prototyping enables project requirements iterations to be
`perfom1ed for any duration required.
`
`[0044] A workflow-based platform provides a true ser-
`vice-oriented architecture that makes it easier to integrate
`Business Intelligence into any business process. A work-
`flow-based platform the system also makes it easier to
`cluster and scale. Process performance reports allows busi-
`ness intelligence projects to be continually tuned and
`improved. Information delivery and notification into the
`platform reports, analysis, tasks, and decisions points can be
`routed anyone involved in a business process. Multiple rules
`engines allows business logic to be customizable. Incorpo-
`rating reporting, analysis, and dashboards into the platform
`provides for an increase in sophistication of the business
`intelligence solution that be performed at a pace that is right
`for the organization.
`
`[0045] Data mining features allows advanced data analy-
`sis to be added in a timely basis. Integrating auditing and
`audit reports, system monitoring, and administration fea-
`tures into the platform the system makes it easy to maintain.
`By providing intuitive user interfaces that are readily cus-
`tomizable, the system is easier to use and the cost of training
`users is reduced.
`
`In one embodiment, the server 102 may include a
`[0039]
`framework 106 and components 107. The server may run
`inside a J2EE compliant web server such as Apache, JBOSS
`AS, WebSphere, WebLogic and Oracle AS. The framework
`106 and components 107 may run or be embedded within
`such a web server other servers or applications. Components
`107 are modules that may be added to or removed from the
`system for specific functionality and configuration.
`
`[0040] The platform 100 may be integrated with external
`systems that provide data to drive the reporting engine and
`that receive events from the workflow engine.
`
`[0041] The inbox alerter 104, optional in some embodi-
`ments, is software that may be installed on machines of the
`users that wish to take advantage of its functionality. In
`various embodiments, the inbox alerter 104 may provide
`many ease-of—use features such as notification of new work-
`flow tasks, notification of report delivery, and management
`of off-line content. In some embodiments, the inbox alerter
`104 uses an RSS standard feed provided by the server 102,
`and may be implemented using any RSS reader that supports
`authenticated feeds. The inbox alerter can be used to receive
`
`Implementation of the platform involved defining
`[0046]
`requirements for the architecture, determining whether to
`design and build each component or use existing third party
`ones (e.g., open source components), identifying suppliers
`for each of the many components/projects, research on each
`component/project, installing and configuring each compo-
`nent, designing and implementing an integration layer for
`each component, designing and implementing consistent
`user interface components, designing and implementing
`consistent administration tools, design and implementing
`analysis and modeling tools, designing and implementing
`the common services and infrastructure, designing and cre-
`ating repositories, designing and implementing new com-
`ponents or enhance existing components with new function-
`ality, integrating security, integrating auditing, design and
`implement process performance reports, and create a com-
`notifications from the server. The inbox alerter may be
`mon definition language.
`000009
`000009
`
`
`
`US 2007/0038683 A1
`
`Feb. 15, 2007
`
`[0047] Referring to FIG. 2, relationships of major com-
`ponents within an exemplary server architecture 200 are
`shown. The solution engine 201 serves as a central controller
`and manages access to the components. The other compo-
`nents of the server may make use of the solution engine 201
`for information about the available solution documents 221,
`for security, for information about reports and workflow
`items, for data, and for auditing.
`
`[0048] For a particular solution, the behavior, interopera-
`tion, and user interaction of each sub-system may be defined
`by a collection of solution definition documents. These
`documents are managed by the solution engine 201, and
`implemented, for example, by the workflow engine 215. In
`various embodiments, the solution definition documents are
`XML documents that contain definitions of business pro-
`cesses (e. g., XPDL) and definitions of activities that execute
`as part of processes, on demand, or called by web services.
`These activities include definitions for data sources, queries,
`report templates, delivery and notification rules, business
`rules, dashboards, and analytic views. They also may specify
`the relationships between these items. The solution defini-
`tion documents can be copied from one server to another and
`may be freely distributed. More than one solution can
`execute in the server at the same time.
`
`[0049] The services of the framework (e.g., Solution
`Engine 201, Services/UDDI 203, Auditing 205, Components
`207) provide web services to external applications (e.g.,
`System Monitoring 208, Web Service Client 209, Web
`Browsers 210, and Inbox Alerter 211), and have access to the
`same solution engine 201 as the user interface components
`(e.g., Single Sign On 212, Java Server Pages, Servlets,
`Portlets 213), and may be called by the workflow engine 215
`and scheduler 216 to execute system actions.
`
`[0050] The server 200 contains engines (e.g., OLAP
`engine 219, reporting engine 220) and components 207 for
`reporting, analysis, business rules, email and desktop noti-
`fications, and workfiow. These components may be used
`together, as specified by the solution documents, so that they
`can be used to solve a specific business intelligence problem.
`
`In various embodiments, the platform may include
`[0051]
`embedded repositories that store data used to define, execute
`and audit a solution. For example, the platform may include
`a solution repository 221 that includes metadata to define
`solutions, a runtime repository (shown in this embodiment
`as using the same repository as the solution repository 221)
`that includes items of work that the workflow engine is
`managing, and an audit repository 223 that includes tracking
`and auditing information.
`In various embodiments,
`the
`repositories may be stored inside an RDBMS that is external
`to the platform, such as FireBird (in a preferred embodi-
`ment) or MySQL. These repositories can may be imple-
`mented with other commercially available relational data-
`bases such as those available from Oracle, SQLServer or
`DB/2, for example. The solution repository and the work-
`flow repository, for example, may be different tables in the
`same database.
`
`content generated by each component may be relevant for
`each user’s roles. In one embodiment, component content
`can be retrieved as XML, HTML, or displayed by portlets
`according to the JSR-168 specification. In this manner, the
`portlets may be embedded into any portal that supports the
`JSR 168 standard such as IBM WebSphere, OracleAS
`Portal, and BEA WebLogic Portal. XSL and CSS stylesheets
`used by the components to generate reports online and report
`content may accessible to a user and can be fully customized
`using the workbench.
`
`In various embodiments, the server contains infra-
`[0053]
`structure for system administration. This may include sys-
`tem monitoring (SMNP) services, usage reports, Web Ser-
`vice support, configuration validation tools, and diagnostic
`tools.
`
`[0054] The server also may include components and
`related engines to provide advanced process performance
`reporting and analysis. This may include “slice-and-dice,
`”“what-if,” and data-mining capabilities that can be per-
`formed on the attributes of workflow items, individual tasks,
`users, and services involved in workflow tasks. The server
`also may include a tool for Enterprise Application Integra-
`tion (EAI)/Extraction, Transformation, and Load (ETL) 245.
`
`In various embodiments, the BI platform may be
`[0055]
`built with open source components, and may be run in open
`source or proprietary application server. The platform may
`be integrated with external applications that provide data
`251, 252 to drive the solutions. This data may be loaded into
`a data warehouse or data mart 252 using an ETL tool.
`
`In various embodiment, auditing is built into the
`[0056]
`platform components. The platform may provide process
`perfomiance reports by extracting historical and real-time
`data from the workflow and auditing repositories,
`for
`example, using the audit reports component to display the
`reports.
`
`In some embodiments, the platform is designed
`[0057]
`such that engines and components may be added or
`removed. Each engine typically has corresponding compo-
`nent(s) that integrate the engine into the platform. Engines
`can be switched out for other engines or added to the
`platform if the necessary components are created.
`
`In various embodiments, multiple rules engines
`[0058]
`may be included in the platform so that business logic is
`exposed and can be customized easily. Additional rules
`engines can be added to the system. The business rules
`engines are external to the components, and any component
`may utilize any rules engine 265.
`
`[0059] Not all components are shown in FIG. 2. Other
`components (not shown) include email, printing, message
`formatting, workflow instance attribute management, and
`process performance reporting and ‘what-if’ analysis.
`
`In various embodiments, the J2EE Server provided
`[0060]
`is JBoss AS, but any Java JDK 1.4 compliant application
`server can be used.
`
`[0052] The server 200 allows the various functions of the
`platform to be presented to users in a consistent, familiar
`look and behavior. For example, one component may gen-
`erate a list of reports that a user has access to, a second may
`list the task-related deadlines in a calendar, and a third may
`In various embodiments, the platform includes an
`[0062]
`show the current tasks that the user needs to complete. The
`open source On—Line Analytical Processing (OLAP) engine
`000010
`000010
`
`the Platform provides
`In various embodiments,
`[0061]
`user interfaces built with Java Server Pages (JSPs), servlets
`and portlets. Third party or customized JSPs, servlets or
`portlets also may be used.
`
`
`
`US 2007/0038683 A1
`
`Feb. 15, 2007
`
`that allows multidimensional data to be navigated, reported,
`and analyzed, referred to as Mondrian, but any MDX-
`compliant OLAP server could be used,
`for example,
`Microsoft OLAP Services and Hyperion Essbase.
`
`In various embodiments, the platform provides a
`[0063]
`javascript-based and SQL-based rules engines and may
`include support for such rules engines as ILOG JRules,
`Drools and Jess.
`
`In various embodiments, the platform may inte-
`[0064]
`grates and enhance existing popular third-party open source
`components, such as one or more of Mondrian OLAP Server
`and jPivot Analysis Front-End, Firebird RDBMS, Enhydra
`ETL, Shark and JaWE Workflow, JBoss Application server,
`Hibernate and Portal, Weka Data Mining, Eclipse Work-
`bench and BIRT reporting components, JOSSO single sign-
`on and Lightweight Directory Access Protocol (LDAP) (A
`standard protocol for accessing properties about resources,
`e.g. employees or web services) integration, and the Mozilla
`Rhino Javascript Processor.
`
`In various embodiments, the platform can utilizes
`[0065]
`such open standards and protocols as XML markup lan-
`guage; JSR-947JCP’s Rules Engine API; JSR-l687JCP’s
`Portlet Spec; SVG 7W3C’s Scalable Vector Graphics;
`XPDL iWFMC’s XML Process Definition Language;
`XForms W3C’s Web Forms; MDX iMicrosoft’s OLAP
`Query Language; WSBPEL iOasis’s Web Services Busi-
`ness Process Execution Language (A standard system used
`to orchestrate workflows across multiple services); WSDL
`7W3C’s Web Services Description Language; and SOAP
`7W3C’s Simple Object Access Protocol.
`
`In one exemplary embodiment, a preconfigured
`[0066]
`sample deployment is provided so that the platform can be
`tested quickly and easily. The deployment includes JBoss
`Application Server; JBoss Portal V2.0, a JSR-l68 certified
`portal server; Example JSPs that demonstrate platform com-
`ponent usage; Sample data; Sample reports and BI pro-
`cesses; users and roles used in the examples.
`Workbench
`
`[0067] Referring to FIG. 3, an embodiment design and
`administration workbench provides easy to use design tools
`for reports, dashboards, analytic views; a workflow process
`designer; business rules editors; a data mining console for
`data preparation; and OLAP modeling tools. The workbench
`generates workflow definitions and Solution Definition files
`311 that are used by the server to execute BI solutions. The
`workbench creates an audit trail for the creation and editing
`of solution definition documents that is stored in the audit
`
`repository 313. A version control system 323 can be used to
`maintain the Solution Definition documents and provide
`synchronization and versioning capabilities. The workbench
`allows solutions, reports, queries, business rules, dash-
`boards, and workflows to be viewed and edited graphically.
`The BI Workbench may be a Java application that is installed
`on system admi