Abstract:
A system and method for extracting information from business applications in real time is provided. The method comprises the steps of obtaining a message from the business applications, identifying and categorizing a business process context of the message, storing the business process context of said message, correlating the message based on said business process context with stored business process contexts to create a life cycle, and publishing the life cycle as processed data. The message can be pre-processed and data can be extracted from the message. A plug-in, a message sniffer, and a subscription for specific categories published by business applications can be used to get the message from the business applications. The message can be identifying and categorizing using configurable rules, and a correlation engine having pre-defined algorithms can be used to correlate the message with other messages.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is related to the following commonly-owned, co-pending United States Patent Applications filed on even date herewith, the entire contents and disclosure of each of which is expressly incorporated by reference herein as if fuilly set forth herein. U.S. patent application Ser. No. (21,273), for “BUSINESS OPTIMIZATION ENGINE”; U.S. patent application Ser. No. (21,562), for “BUSINESS PROCESS OPTIMIZER”; U.S. patent application Ser. No. (21,563), for “BUSINESS PROCESS ANALYZER”. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates generally to process optimization technology, and more specifically to a system and method for optimizing enterprise applications driven by business processes. 
       BACKGROUND OF THE INVENTION 
       [0003]    In today&#39;s world, continuous optimization of operational methods and procedures is a major focus of all major businesses. However, performing enterprise operations often requires implementing multiple, discrete computer applications. As a result, capturing and understanding operations or business processes that are part of an enterprise&#39;s business information technology (IT) solution is critical for any organization&#39;s optimization initiative. Among the many challenges faced when trying to understand operations are heterogeneous applications throughout the organization with no uniform way to capture and/or extract information from these applications, business processes that age before the advent of business process management (BPM) tools that are currently used for designing them, a gap between designed processes and executable process, and a need for human investigation to identify problems and suggest improvements for business processes. 
         [0004]    U.S. Pat. Nos. 5,734,837 and 6,073,109 disclose a typical workflow engine, that is, a programming tool for workflow. A process can be created based on the workflow. However, neither analysis nor optimization of the process is performed. 
         [0005]    U.S. Patent Application Publication No. 2005/0289138 discloses a near real-time system and method that analyzes large amounts of data. While the system uses XML format, it analyzes only data, not processes, and merely reports results. No optimization is performed. Similarly, U.S. Patent Application Publication No. 2005/0154700 discloses an extraction, analysis and processing system for specialized data from service industries. This approach is somewhat like typical data mining systems but focuses on a specific type of data, that of services industries. 
         [0006]    U.S. Patent Application Publication No. 2004/0187140 discloses an application framework that may contain business processes. However, no analysis or optimization of the processes is performed. 
         [0007]    Among the problems of the aforementioned systems are the lack of a standard way to capture and/or extract information from heterogeneous business applications, and the lack of automated means to identify and interpret business process problems, and to suggest improvements to maximize process results. 
       BRIEF SUMMARY OF THE INVENTION 
       [0008]    The present invention advantageously provides a system and method for optimizing enterprise applications driven by business processes. The system includes a data repository, an extractor to perform real time extraction of process life cycle information from business solutions integrating heterogeneous independent business applications, the extractor storing the extracted information in the data repository, an analyzer to identify usage patterns in the extracted information, and an optimizer to optimize the extracted information and to create exportable output usable by external tools. The analyzer can employ user-defined algorithms and/or rules to identify the usage patterns. The optimizer can use process simulation mechanisms, what-if analysis, data stored in the data repository, data stored in a rule repository, and user input data, in any combination, to optimize the extracted information. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    The invention is further described in the detailed description that follows, by reference to the noted drawings by way of non-limiting illustrative embodiments of the invention, in which like reference numerals represent similar parts throughout the drawings. As should be understood, however, the invention is not limited to the precise arrangements and instrumentalities shown. In the drawings: 
           [0010]      FIG. 1  is a schematic of business optimization engine architecture; 
           [0011]      FIG. 2  is a schematic of the extraction component of the exemplary architecture; 
           [0012]      FIG. 3  is a schematic of the analytical component of the exemplary architecture; 
           [0013]      FIG. 4  is a schematic of the optimization component of the exemplary architecture; 
           [0014]      FIG. 5  is a flow diagram of business optimization engine; 
           [0015]      FIG. 6  is a screen display of an exemplary embodiment; 
           [0016]      FIG. 7  is another screen display of an exemplary embodiment; and 
           [0017]      FIG. 8  is a flow diagram of the extractor component of the exemplary architecture. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0018]    An inventive solution is presented to the need for a system and method to capture, evaluate, interpret, and optimize business processes that are part of business IT solutions. The disclosed business optimization engine (BOE) solves this problem with a system and method that provides a framework for extracting, analyzing, and optimizing business processes that bind heterogeneous enterprise applications together to deliver business functionality. 
         [0019]    BOE provides a framework for operational business intelligence applications that would enable business analysts to understand how current business processes, as implemented in heterogeneous applications, actually perform their tasks, by clearly showing each step or task as well as the interaction among tasks in detail. BOE goes beyond a workflow examination to explore process flows. With its thorough extraction and analysis method, BOE generates a complete and accurate extracted business process from which an improved process can be designed. BOB enables users to discover problems with the current business processes, such as weak spots, bottlenecks, manual steps, and redundancies. Further, BOE offers recommendations for solving these problems by using predefined knowledge and reference models modeling end-to-end business or life cycle processes, as well as individual rules describing various steps of a business process. In addition to providing problem solving recommendations, the knowledge and reference models create a baseline for fiuture analysis using adaptive learning techniques. 
         [0020]    BOE does not require that a specific BPM tool be used in any of the applications. Instead, BOE can monitor messages generated by a variety of applications or middleware, so that integration among multiple applications can be achieved. Each component of BOE can function as a well defined set of web services to achieve seamless integration. 
         [0021]      FIG. 1  is a schematic of BOE architecture  2 . BOE  2  consists of three components: a business process extractor (BPE)  10 , a business process analyzer (BPA)  12 , and a business process optimizer (BPO)  14 . Each component is described in more detail below. BOE  2  integrates with general BPM-based applications  20 . An integration layer  22  provides the interface between middleware and/or the applications  20  and BPE  10 . BOE  2  includes a user interface screen  24  described in more detail below. BOB  2  generates and manipulates process data, that is, business data and/or process cycles  16 , and creates a rules and knowledge base  18 . Reports (not shown) can be produced and output, and information can be exported to external tools  26 . Agents can be used within BOE&#39;s application framework. In one embodiment, BOB  2  resides on top of CMLINK software. 
         [0022]      FIG. 2  illustrates the components of BPE  10 . BPE  10  extracts complete, i.e. end-to-end, process life cycle information from business solutions implemented by integrating heterogeneous independent BPM-based applications  20 . Integration layer  22  includes standard framework interfaces, as well as other interface processes known in the art, and can be used to interface between the applications  20  and BPE  10 . Real time processes are extracted from these applications  20 , enabling creation of an exact “picture”, that is a description of the steps, inputs, etc., of each existing process. This picture can illustrate, among other things, gaps within the process. 
         [0023]    BPE  10  supports multiple ways of extracting process information. Three such techniques follow, but other extracting methods can be used. One approach employs a plug-in, such as ECM Integration Bridge, which can interpret messages exchanged via an integrated platform. A second technique uses a message “publish and subscribe” mechanism, in which BPE  10  subscribes for specific messages published by the integrated business solution. A third method involves seamlessly inserting stubs into existing applications to expose relevant message data to achieve the extraction. BPE  10  can use these or other extraction techniques in any combination. 
         [0024]    The extracted data is then correlated and stored as process data in a data repository  16 . In one embodiment, the message content of the extracted data is inspected using data present in the rules and knowledge base  18  to identify and categorize the process context within the message. Identification and categorization can be performed by process discovery  30  using pattern matching and sequence matching in conjunction with the data in the rules and knowledge base  18 . 
         [0025]    Once the process context is identified, BPE  10  correlates the identified message with other related process messages to create a complete end-to-end life cycle. An event correlation engine  28  can perform real time event correlation. 
         [0026]    After being correlated, the life cycle or process cycle is published to the data repository as process data  16  in an industry standard format such as business process modeling notation (BPMN) or business process execution language (BPEL). As a result, BPE  10  provides a clear picture of the real time process. Further, extracted life cycle data can be used to determine how many similar cycles are present in the data repository  16  to help identify patterns, and to process usage patterns. The stored process data  16  is further analyzed by the BPA  12  as described below. 
         [0027]      FIG. 8  shows the flow of BPE  10  in accordance with the architecture illustrated in  FIGS. 1 and 2 . During step E 1 , the system waits for a message and/or message event from data acquisition interfaces  22 . These interfaces can obtain components for data acquisition from middleware  20  as well as from application stubs and/or agents  20 . 
         [0028]    In step E 2 , pre-processing is performed, if desired. Any preliminary processing, such as removal of unnecessary content from the message event or message data, can be done in the pre-processor. After pre-processing, in step E 3 , data is extracted from the message event. The extracted data is identified and categorized in step E 4 . Configurable or pre-defined rules are used for this identification and categorization of the application or business process context. These pre-defined rules, along with categories, application configurations, etc., are stored in a rules and knowledge base  18  accessible by BPE  10 . 
         [0029]    Step E 5  performs two activities, in accordance with configurable or pre-defined rules. First, the categorized data is stored, and second, the correlation engine  28  is notified. Processing returns to step E 1 , and the system waits for another message event. The configurable rules can be obtained from a rules and knowledge base  18 . 
         [0030]    In step E 6 , a synchronous call is issued. The event correlation engine  28  is executed in step E 7 . Process discovery  30  can be performed in conjunction with the correlation engine  28 . Pre-defined algorithms, along with plug-ins for algorithms, can be used by the correlation engine  28  to identify, relate and sequence the messages and/or extracted data received from the notification activity of step E 5 . A complete end-to-end life cycle is created from the data, and then, in step E 8 , the life cycle is published as processed data  16 . 
         [0031]      FIG. 3  illustrates the components of the BPA  12  shown in  FIG. 1 . BPA  12  analyzes extracted process data  16  with a process pattern analysis engine  34 . The analysis can be performed using reference models present in the knowledge repository  36  and/or rules from the rules repository  38  from rules and knowledge base  18 , and identifies usage patterns in the extracted process data or cycles  16 . In addition, this extracted process data  16  is correlated with data in the knowledge repository  36 , which may include analyzed processes  40  previously output from BPA  12 , as discussed below. The process data  16  can be used for identifying bottlenecks and fine-tuning a process. Also, information can be obtained from the analysis of the process data  16 , such as a root cause for a process problem, for example, why the approval process takes so long. The process data  16  can also be used for adaptive learnig, that is, adopting an efficient real time process as a standard reference model in the knowledge repository  36 . 
         [0032]    Analysis of the process data  16  by BPA  12  in relation to other extracted information from the knowledge/rules repositories  18  can provide insight into existing processes. BPA  12  can promote understanding of the interrelationships among business applications and processes, and can offer details regarding integration of different applications and process re-engineering including conversion of multiple parallel processes performed by different departments, to a single enterprise-level standard process. 
         [0033]    A user interface tool  42  enables input and display of information and diagrams, such as extracted processes and/or steps of process data  16  being analyzed. BPA  12  can combine or compare the process data  16  with data from a knowledge repository  36 , best practices, user input, and a rules repository  38  in a rules engine  32  to establish what process is where, what belongs, and how it relates. In accordance with one embodiment, SPA  12  can determine if a similar process has been encountered using data in the rules and knowledge base  18 . Upon completion of the analysis, BPA  12  publishes analyzed processes  40 . Further, based on the analysis, BPA  12  can recommend an integrated solution. 
         [0034]      FIG. 4  illustrates the components of the BPO  14 . These components include process optimization algorithms  44 , an optimizer  46 , a process simulator  48 , and a process migrator  50 . Optimization algorithms  44  can include algorithms that perform “what if” analysis, heuristic methods of optimization, and other techniques. Multiple optimization techniques can be combined. The optimizer  46  suggests required modifications to the analyzed processes  40 . The process simulator  48  simulates the processes  40  to determine how they perform. Optimized processes  52  are published for migration and can be input to the process migrator  50 . The process migrator  50  outputs processes to a standard run time engine  54  and/or to external tools  26  such as business activity monitoring (BAM) tools for obtaining reports. 
         [0035]    BPO  14  uses information stored in the knowledge/rules repositories  18  to optimize an analyzed process  40 , creating an optimized process  52 . In one embodiment, a business analyst can interact with the system to manually optimize an analyzed process  40 . 
         [0036]      FIG. 5  is a flow diagram for an exemplary embodiment of SOE  2  as illustrated in  FIG. 1 . In step S 1 , the BPE  10  extracts one or more current business processes  16  from BPM-based applications  20 . These business processes  16  are stored as extracted process data  16 , and individually analyzed by the SPA  12  in step S 2 . The analysis can include identifying usage patterns, comparing extracted processes  40  with pre-defined processes in the rules repository  38 , and other techniques. Upon completion of the analysis, analyzed processes  40  are output. In step S 3 , based on the analysis, BPO  14  provides optimization suggestions for each individual process  40  analyzed in step S 2 . In one embodiment, current business processes can be monitored. 
         [0037]      FIGS. 6 and 7  show a sample user interface screen  24  for one embodiment of BOE  2 . The top portion of the screen displays a process flow for Issue  123  and the middle portion of the screen displays a process flow for Issue  124 . This data has been extracted by BPE  10  and saved as extracted process data  16 . As shown in  FIGS. 6 and 7 , each entry or activity in the process flow includes a status, a description, a “note by” employee, and a time stamp. These items are displayed on both the screen&#39;s top portion and the screen&#39;s middle portion. The screen&#39;s middle portion also includes analysis and displays the actual hours each event took (Hrs./Event), along with a standard number of hours per event (Std Hrs./ Event) obtained, for example, from a rules repository  38 . The deviation or difference between actual and standard is calculated and displayed (Deviation (Hrs.)) along with an updated column (Updated (Hrs.)) in which “what-if” analysis can be performed. The updated column is initially populated with the data from the actual hours/event column, as shown in  FIG. 6 . A user can perform “what-if” analysis by changing one or more entries in the updated column.  FIG. 7  illustrates a “what-if” analysis, described in more detail below. 
         [0038]    The screen&#39;s bottom portion, shown in  FIGS. 6 and 7 , illustrates optimized process outcome for multiple extracted process flows, including the Issue  123  displayed in the screen&#39;s top portion and the Issue  124  displayed in the screen&#39;s middle portion. Changes in the updated column in the middle portion are reflected in the corresponding row of the bottom portion. As shown in  FIG. 7 , the user changed the ASSIGNED row for Issue  124  in the screen&#39;s middle portion from 0.75 (Hrs.) to 0.25 (Hrs.). This resulted in the “total time taken” column in the top row of the screen&#39;s bottom portion, that is, the row for Issue  124 , changing from 1.27 (Hrs.) to 0.78 (Hrs.), and the “total deviation” column changing from 4.73 (Hrs.) to 5.22 (Hrs.). The “total deviation” is computed by BPO  14  as the “total time taken” subtracted from the “original time”, that is, the amount of time originally allocated for the task. The original time can be obtained, for example, from the rules repository  38  or knowledge repository  36 . 
         [0039]    BOE  2  seamlessly translates the identified process in the form of BPMN and/or BPEL. Translated business processes can be exported to external tools  26  like MS Visio®. This feature simplifies the making of process changes, by enabling the use of any tool that supports BPEL and BPMN standards to implement changes. Accordingly, BOE  2  not only helps in identifying bottlenecks in the existing solutions but also improves performance of the solutions to the optimum level. 
         [0040]    While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the below claims.