Abstract:
A system for providing services for gathering data in an event driven environment. Upon occurrence of one or more events in an event source, the system includes means for receiving the events in a event repository and means for transmitting an event message to a data warehouse. Upon receipt of the events in the event repository, the system includes means for activating an event activator, the event activator for causing an event transmitter to transmit the event message. The system further includes means for evaluating search conditions; and means for causing, when the search conditions are true, the event transmitter to transmit the event message.

Description:
FIELD OF INVENTION  
         [0001]    The present invention relates to event driven environments in general, and particularly to data gathering in event driven environments.  
         BACKGROUND  
         [0002]    E-business and virtual enterprises have become commonplace. A typical virtual enterprise may be characterized by collaboration of multiple corporations. Each of the multiple corporations may comprise an information technology (IT) system, a software management system (SMS), and management policies. Information may be transferred between the multiple IT systems and SMSs of the virtual enterprise. However, the multiple IT systems and SMSs may not be compatible. Hence, it is sometimes a Herculean task to combine all the systems into a harmonious, virtual enterprise system.  
           [0003]    To meet this need, business management systems (BMS) evolved. Among other capabilities, BMSs are able to receive events from many different types of media, in multiple formats. Another new technological area is e-Business Management (eBM). In the evolving e-Business market, electronic Business Management Systems (eBMS) monitor business processes and corresponding technological processes. In some instances, eBMSs may monitor either a virtual enterprise or a mega-corporation. The mega-corporation may comprise multiple entities, each with its own IT system and SMS. In many instances, the eBMS has very limited, if any, corporate-wide management system.  
           [0004]    In such an environment, in order to gather event data, the eBMS must retrieve a vast number of control events through the various, vendor-specific application programming interfaces (API) used by each corporation or entity. Alternatively, the eBMS must connect to all the event tables and databases of each company. In some instances, the event tables or databases may not even exist. Either option is not optimal.  
           [0005]    Regardless of the difficulty, the job of the eBMS is retrieve event data, on-demand, in its native format, from each organization. The eBMS must then transform the event data into a predefined canonical format.  
           [0006]    One possible solution to the event gathering and processing task is to provide adapter interfaces for each company or event source. However, for this solution, customized adapting code must be developed for each new customer. Moreover, in order to sync the central data warehouse with the event sources, the databases must be periodical polled. Typically, periodic polling is difficult to maintain.  
           [0007]    It is therefore desirable to provide method and apparatus to support event data retrieval on-demand in environments such as virtual corporations and mega-corporations.  
         SUMMARY  
         [0008]    The present invention provides a simplified approach to gathering control events information from different SMSs. One aspect of the present invention provides for storing event data in a common central database.  
           [0009]    An additional aspect of the present invention provides an event triggering system. The event triggering system may comprise a database subscription mechanism. The subscription mechanism may select events of interest. When the events of interest occur, they trigger sending of an event message.  
           [0010]    The event triggering system may collect events from all aspects of a virtual enterprise into the central repository. Thus, a preferred embodiment of the present invention assists in integrating an Internet based virtual enterprise with multiple businesses and multiple IT platforms. The present invention endeavors to establish an improved infrastructure for virtual enterprises.  
           [0011]    The present invention provides a unified architectural approach to data and event gathering from heterogeneous sources of control events.  
           [0012]    According to one embodiment of the present invention, there is therefore provided a system for data gathering. The system includes a plurality of event sources, each the event source includes an event repository and an event transmitter. Upon occurrence of an event, the event repository receives the events. The event transmitter transmits an event message to a data warehouse. An event activator is activated when the event repository receives the events, and causes the event transmitter to transmit the event message.  
           [0013]    The event activator may further include a trigger that evaluates search conditions. When the search conditions are true, a user-defined function causes the event transmitter to transmit the event. A subscriber, communicates to the event activator one or more subscriber selectors; the selectors may be the basis for the search conditions.  
           [0014]    The event source include a software management system that inserts the events to the event repository. In some embodiments, the data warehouse includes an event consolidator. The event consolidator receives the events from the event transmitter, consolidates the events, identifies one or more events of interest, and allows the events of interest to be transmitted to the data warehouse.  
           [0015]    According to another embodiment of the present invention, there is therefore provided a additional system for data gathering. The system includes a common data warehouse and a plurality of event sources. The event source includes an event repository, an event transmitter and an event activator. The event activator includes a trigger and a user-defined function. The user-defined function is adapted to implement message oriented middleware (MOM) publisher interface, thereby publishing the messages.  
           [0016]    According to one embodiment of the present invention, there is therefore provided a method for gathering data in a event driven environment. The method includes the steps of, upon occurrence of an event in an event source, receiving the events in a event repository and transmitting an event message to a data warehouse. The method also includes, upon the receiving of the events in the event repository, activating an event activator for causing an event transmitter to transmit the event message. The method may additionally includes the steps of evaluating search conditions; and, when the search conditions are true, causing the event transmitter to transmit the event message. Further steps may be communicating to the event activator one or more subscriber selectors, the subscriber selectors to be a basis for search conditions.  
           [0017]    In some embodiments, the method includes receiving in a consolidator the events from the event transmitter; consolidating the events; identifying one or more events of interest; and allowing the events of interest to be transmitted to a data warehouse.  
           [0018]    According to one embodiment of the present invention, there is therefore provided a computer program embodied on a computer-readable medium. The computer program includes a first code segment for receiving one or more events in an event repository. A second code segment is for transmitting an event message to a data warehouse. A third code segment, upon receipt of the event in the event repository, causes the transmission of the message. A fourth code segment is for evaluating search conditions. When the search conditions are true, a fifth code segment causes an event transmitter to transmit the event message.  
           [0019]    According to one embodiment of the present invention, there is therefore provided a method for providing data gathering services in a event driven environment. Upon occurrence of an event in an event source, the method includes receiving the events in a event repository and transmitting an event message to a data warehouse. Upon receipt of the events in the event repository, the service includes activating an event activator for causing an event transmitter to transmit the event message.  
           [0020]    The method may further providing services to evaluate search conditions, and when the search conditions are true, causing the event transmitter to transmit the event message.  
           [0021]    According to one embodiment of the present invention, there is therefore provided a system for providing services for gathering data in a event driven environment. Upon occurrence of one or more events in an event source, the system includes means for receiving the events in a event repository and means for transmitting an event message to a data warehouse.  
           [0022]    The system may further include means for activating, upon receipt of the events in the event repository, an event activator for causing an event transmitter to transmit the event message. The system further includes means for evaluating search conditions; and means for causing, when the search conditions are true, the event transmitter to transmit the event message.  
       
    
    
     BRIEF DESCRIPTION  
       [0023]    Embodiment of the invention will now be described, by way of example, with reference to the accompanying drawings, in which:  
         [0024]    [0024]FIG. 1 is a block diagram of a data system  10  usable in an event driven environment, operated and constructed according to an embodiment of the present invention;  
         [0025]    [0025]FIG. 2 is an illustration of an event source  20 , constructed and operated according to on aspect of the invention; and  
         [0026]    [0026]FIG. 3 is a conceptual illustration of trigger, constructed and operated according to one aspect of the present invention  
     
    
     DETAILED DESCRIPTION  
       [0027]    Reference is now made to FIG. 1, an illustration of a data system  10  usable in an event driven environment such as a e-business management system (eBMS). System  10  may gather and consolidate events from a virtual enterprise or a corporation&#39;s Intranet. System  10  typically comprises one or more event sources  20  and a common data warehouse  60 .  
         [0028]    In a preferred embodiment, each event source  20  may be in communication with common data warehouse  60 . In some embodiments, event sources  20  are a collection of heterogeneous sources such as system management software (SMS), databases, organizations, business processes, vendor specific applications, etc.  
         [0029]    Upon occurrence of an event at one of the event sources  20 , the affected event source  20  is triggered to transmit an event message  32 . Event message  32  may comprise information pertaining to event time, event type, initiator of the event, etc., depending on the event format. The events messages may be supplied to on-demand, or upon their occurrence at the various event sources  20 .  
         [0030]    In some embodiments, each of the event sources  20  may use a common event format. Alternatively, each event source  20  may use a different event format. Event format may be a set of event characteristics, such as event source, event type, event initiator, time, etc. Generally speaking, the different event formats may be both syntactically and semantically different.  
         [0031]    Event message  32  may be transferred to a consolidator  50 . Consolidator  50  filters event messages  32 . Consolidator  50  eliminates some of the event messages  32  and transmits the other event messages  32  to common data warehouse  60 .  
         [0032]    In some embodiments, system  10  may be implemented without consolidator  50 . In other embodiments, common data warehouse  60  may comprises event consolidator  50 .  
         [0033]    In the above manner, data warehouse  60  effectively collects event information from the multiple heterogeneous event sources  20 . It is noted that while prior art systems relied upon unreliable polling, or pull technology, the present invention describes an event-push system.  
         [0034]    Alternative embodiments of the present invention provide event triggering and an extension thereto, using user-defined functions. Yet other alternative embodiments may comprise a publish/subscribe mechanism for publishing events. Yet other embodiments may comprise subscribers for subscribing to certain types of events. Each of these embodiments will be described in detail hereinbelow.  
         [0035]    Reference is now made to FIG. 2, an illustration of an event source  20 , constructed and operated according to one aspect of the present invention. Each event source  20  may comprise a software management system (SMS)  22 , an event repository  24 , an event subscriber  26 , an event activator  28 , and an event transmitter  30 .  
         [0036]    SMS  22  manages the execution of hardware devices and IT processes, such as applications, operational systems and networks. The IT processes may typically be performed in a distributed environment. Examples of SMS  22  include Tivoli TEC and BMC PATROL. Events may be registered in SMS  22 . The events may comprise addition of a data, deletion of data, or amendment of data.  
         [0037]    As an example, if event source  20  is a stock brokerage, SMS  22  may track the value of the stocks, or other events. Alternatively, if event source  20  is a hospital, SMS  22  may track patients and events related thereto.  
         [0038]    Upon registration of an event, SMS  22  may write, erase, and/or update an event record to event repository  24 . Event repository  24  receives and stores the event record for each event. Alternatively, event repository  24  stores the event record only for predetermined relevant events. Via record of all relevant events, event repository  24  captures the execution history of an associated IT process.  
         [0039]    Referring to the example above, if event source  20  is a hospital and SMS  22  is tracking patient histories, event repository  24  receives and stores the event records relevant to the hospitalization of patients. Alternatively, SMS  22  may be managing the pharmacy, and event repository  24  stores event records relating to supply and usage of medicines.  
         [0040]    In some instances, event repository  24  may be stored in a relational database (not shown). In other embodiments, event repository  24  may be optional; SMS  22  may write the event records directly into the relational database. In other alternative embodiments, SMS  22  may not write the event record. Rather, other mechanisms may be responsible for writing the event record.  
         [0041]    Below is an example of data that may be available in an event record.  
         [0042]    Timestamp: Date and time the event took place.  
         [0043]    Event Type: Type of the event that caused the event record to be written. Typical events may comprise the start of a process, termination of a process, abnormal termination of a process, or a process alert. Another exemplary event may be the start or termination of an application. In some embodiments, any type of event occurring during the execution of a process may generate an event record.  
         [0044]    Event Instance Identifier: Identification of the event instance. Each event instance may be uniquely identified via its associated identifier. An exemplary event instance may be:  
         [0045]    “20-Nov-02 12:44:36 AM DB2JDS Information None 2402 TP-SHCHERB JDBCService: JDBC Applet Server started”.  
         [0046]    Event Originator Identifier: Uniquely identifies the object that is the original source of the event. The object may be a network device, a user, or the process instance. SMS  22  may use the event originator identifier to access the object.  
         [0047]    Event Register Identifier: Uniquely identifies the software process that registers the event. Examples of such software processes include Windows Event Source, which runs as a Windows service on a PC and registers application events in the Windows event log.  
         [0048]    Event Register Type: Type of the SMS that is used for initial event registration.  
         [0049]    Event Description: The event description in free text format.  
         [0050]    Severity: Rank of event severity, from critical alerts to informational.  
         [0051]    Event activator  28  is in communication with event repository  24 . When an event is received by event repository  24 , event activator  28  is activated. Once activated, event activator  28  may query the truth of search conditions.  
         [0052]    In a preferred embodiment, event activator  28  is a database trigger  42  extended with a database user-defined function  46  (FIG. 3). Further details of database trigger  42  and user-defined function  46  will be explained hereinbelow in reference to FIG. 3.  
         [0053]    Event activator  28  receives the search conditions from subscriber  26 . Subscriber  26  may hold a set of filtering conditions, or logical expressions, known herein as subscriber selectors  27 . As an example, selector  27  may be; ‘event severity&gt;3’.  
         [0054]    Selectors  27  may be predefined or selected by the administrator of system  10 , or any other user. In alternative embodiments, SMS  22  may select selectors  27 . The selection of selectors  27  may be based on the business needs of the corporation. As an example, if the corporation is a stock brokerage firm, selectors  27  may be: ‘name of company=IBM’.  
         [0055]    Subscriber  26  communicates selectors  27  to event activator  28 . In preferred embodiments, event activator  28  specifies selectors  27  as one or more search conditions.  
         [0056]    Whenever an event record is written, erased, and/or updated in data repository  24 , event activator  28  may be activated. Event activator  28  may then evaluate the new event record to see if it meets the one or more search conditions. When one or more of the search conditions are met, the new event is sent to transmitter  30 .  
         [0057]    As an example, a selector  27  may be; ‘item to follow=stock of IBM’. At a later time, an event may be sent to data repository  24 . The event may be an increase in a stock price. When the event record is updated, event activator  28  may be activated.  
         [0058]    Event activator  28  queries the event record to see if it is IBM stock or not i.e. if the search condition is met. In a preferred embodiment of the present invention, upon occurrence of a selector  27 , e.g. if the search condition is met, event activator  28  transfers event message  32  to event transmitter  30 . Event transmitter  30  then transfer event message  32  to event consolidator  50 .  
         [0059]    Transmitter  30  may transfer event message  32  via a standard message protocol implemented by some message oriented middleware (MOM). An example of MOM is IBM&#39;s MQSeries and its implementation of Sun&#39;s Java Messaging System (JMS) specification. It is apparent to those skilled in the art that other MOMs and/or messaging protocols may be used, and still be in the spirit of the present invention.  
         [0060]    Thus, as explained above, while prior art depending on potentially unreliable event polling, the present invention provides an event-driven or push system.  
         [0061]    It is noted that in preferred embodiments, each event source  20  functions independently of the other event sources  20 . As noted, event sources  20  are event driven, and hence they do not need to wait for a polling center to retrieve the events. Consequently, each event source  20  may supply their respective event messages  32  without interference or dependence on the other event sources  20 .  
         [0062]    Reference is now made to FIG. 3, a conceptual illustration of trigger  42 . Relational database management systems may provide triggers. However, trigger  42  of the present invention may also be extended to be implemented with user defined functions  46 . It is noted that prior art triggers do not comprise, or are not extended to user-defined functions  46 .  
         [0063]    Database triggers  42  and user-defined functions  46  will now be explained. Trigger  42  may define a set of actions that are to be executed, or triggered, by a certain event  38 . Events  38  may take place in a table  36 . Examples of events  38  include ‘delete’, ‘insert’, or ‘update’ operations. These events  38  may cause a “trigger”. When such an operation is executed, trigger  42  is said to be “activated”.  
         [0064]    Triggers  42  may be defined using a “CREATE TRIGGER” statement. CREATE TRIGGER statements may comprise the criteria. Examples of such criteria are following:  
         [0065]    Trigger event  38  or specific SQL operation. The operation may be ‘delete’, ‘insert’, or ‘update’.  
         [0066]    Subject table  36  for which the trigger is defined. As an example, the “expense” table or the “log-in” table. In preferred embodiments, subject table  36  may be in data repository  24  (FIG. 2).  
         [0067]    Thus, when the trigger event  38  occurs at, or to, subject table  36 , trigger  42  is activated. Trigger  42  may be activated after trigger event  38  is performed on subject table  36 .  
         [0068]    As an example, trigger event  38  may be “insert”, subject table  36  may be “log-in” table. Thus, when an “insert” event  38  occurs in the “log-in” table  36 , trigger  42  is activated.  
         [0069]    Once the criteria (trigger event  38 , trigger table  36 , etc.) are fulfilled, trigger  42  is activated. The triggered action comprises a set of structured query language (SQL) statements  44  and one or more search conditions, i.e. subscription selections  27 .  
         [0070]    SQL statements  44  are executed only when two conditions are met: both trigger  42  is activated and the search condition(s) is true. Thus, if trigger  42  is activated, however, the search condition is false, then the SQL statements  44  is not executed.  
         [0071]    In an embodiment of the present invention, once the search condition is met, event activator  28  sends event message  32  to event transmitter  30 .  
         [0072]    It is herein noted that in prior art triggers, it is only possible to query search conditions. Prior art triggers do not send messages or notifications.  
         [0073]    In preferred embodiments of the present invention, trigger  42  may be extended to comprise user function  46 . User function  46  implements a notification mechanism (not shown) that sends event message  32  to event transmitter  30 .  
         [0074]    User-defined functions  46  may be functions registered in a database. User-defined functions  46  may be used via database functions and during regular database processing.  
         [0075]    In some embodiments, user-defined functions  46  offer internal or external database processing. User-defined function  46  may be external or sourced.  
         [0076]    Vendors of other relational database management systems may use a different term for user-defined function  46 , however, provide the same function, and still be included within the true spirit and concept of the present invention.  
         [0077]    While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole, and is not to be construed as limiting the invention to the embodiments shown.  
         [0078]    In other alternative embodiments, data repository  24 , event activator  28  and subscriber  26  may be part of a relational database (not shown). The relational database may be managed by a relational database management system. A relational database management system may evaluates the search condition.  
         [0079]    As a further example, event source  20  may be implemented on top of any SMS  22 . Nevertheless, in some alternative embodiments, SMS  22  may be optional. In such instances, event source  20  may be implemented on top of an event generating software.  
         [0080]    An a further example of alternative embodiments, rather than comprise data repository  24 , event source  20  may communicate with an external data repository. As yet another example, though the present description is based on a relational database system, alternative embodiments may be based on other database system supported by database triggers.  
         [0081]    It is appreciated that those skilled in the art that may be aware of various other modifications, which while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.  
         [0082]    While the method and apparatus disclosed herein may of may not have been described with reference to specific computer hardware of software, it is appreciated that the methods and apparatus described herein may be readily implemented in computer hardware of software using conventional techniques.