This application claims the benefit of Chinese Patent Application No. 200810080935.X filed on Feb. 29, 2008, which is hereby incorporated by reference.
The present invention generally relates to the field of event processing and, more specifically to processing data events correlated with work flow events.
Business monitoring is an important part of a business process lifecycle, which makes the business process real-time visible and which can provide timely information on the business process. In general, business monitoring comprises analyzing events sent from the execution of a business process, extracting the concerned information and analyzing and processing them for later data mining.
In a business process, a node can emit work flow events to identify the execution status of the business process and states of nodes while processing businesses. Additionally, nodes can control data in the business process.
Some applications have been employed for monitoring work flow events so as to enable clients to keep informed of the progress and state of a business process. If events and data in the whole work flow are implemented by one software system, then complete states of events and data in the work flow can be obtained by checking work flow events. However, the control of a work flow is separated from the operation of data in some applications.
For example, in an application of applying for credit cards controlled by banks, the applying process is controlled by a work flow engine, while the operation of a database is implemented by an existing application of database operation upon request of the work flow engine. Thus, work flow event monitoring software can only obtain work flow events emitted from the work flow engine, but not the data operation these events involve. Similarly, the client can obtain records on data revision through database logs. However, the client is only aware of the revised data but lacks the knowledge of work flow events that request related data. Thus, since work flow events lack the control of data operation or the control of data operation lacks the context of work flow events, the client cannot correlate work flow events with data events, which is not advantageous to later event processing. Therefore, the client hopes to simultaneously monitor work flow events and data events in a business process and correlate work flow events with data events.
Additionally, the client to simultaneously monitor work flow events and data events in a business process without changing the operation of existing data.
Therefore, there is currently a problem of how to correlate work flow events and data events in a business process without affecting the existing architecture, in order to better monitor or control the business process.
The present invention is directed to an apparatus, system, methods, and computer-program product for sending a data event so that a work flow event can be correlated with a data event. According to one embodiment of the invention, a data event sending apparatus can be provided. The apparatus can include a receiver for receiving data revised by a node from which a work flow event is emitted, a formatter for obtaining correlation information on the work flow event according to predefined logic for the revised data, and for formatting the revised data and the correlation information to obtain a data event, and a sender for sending the data event.
According to another embodiment of the invention, an event processing system can be provided. The system can include a data storage for storing data, a node for emitting work flow event and revising data in the data storage, a data event sending apparatus including a receiver for receiving data revised by the node from which a work flow event is emitted, a formatter for obtaining correlation information on the work flow event according to predefined logic for the revised data and for formatting the revised data and the correlation information to obtain a data event, and a sender for sending the data event. Furthermore, the system can include an event processor for correlating the data event with the work flow event.
In yet another embodiment of the invention, a data event sending method can be provided. The method can include receiving data revised by a node from which a work flow event is emitted, obtaining correlation information on the work flow event according to predefined logic for the revised data, formatting the revised data and the correlation information to obtain a data event, and sending the data event. In still another embodiment, a computer-program product for data event sending is provided.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
There are shown in the drawings, embodiments which are presently preferred. It is expressly noted, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
Embodiments of the present invention provide an apparatus, system, method, and computer-program product for sending a data event so that a work flow event can be correlated with a data event. Among terms used in the present application, a business process is a set of correlated activities in which one or more nodes transform inputs into more valuable outputs; a work flow event is a message emitted by nodes to identify the execution status of a business process and states of nodes; a data event is a message generated by nodes revising the data in a data storage, which can comprise: a base portion containing the revised data, and an extended portion containing the correlation information between the revised data and work flow events, so as to make data events correlated with work flow events. In further illustration,
Data storage 120 can be configured for storing data, which may be a database comprising a plurality of tables each comprising a plurality of entries each comprising a plurality of fields. Data storage 120 may also be a data file that can store data in the form of binary code or ASCII code. Nodes 111-113 can directly revise data in the data storage 120, such as add, delete or update data in the database or data file, or can indirectly revise data by requesting an application of database operation as shown in
For example, upon receipt of a message by nodes 111-113 indicating a new revision of data in the database, the data event sending apparatus 130 can read the revised data from data storage 120. In another example, data event sending apparatus 130 periodically can receive revised data responsive to detecting revised data in the data file of data storage 120. Next, data event sending apparatus 130 can obtain correlation information on work flow events according to predefined logic for revised data, which predefined logic defines which kind of correlation information is set for which kind of data. The correlation information includes information on work flow events, such as node identifier, instance identifier, sequence identifier, and time stamp. Then, data event sending apparatus 130 can format the revised data together with the correlation information on work flow events to obtain a data event. Finally, data event sending apparatus 130 can send the data event.
Event processor 140 can be configured for correlating data events from data event sending apparatus 130 with work flow events from nodes 111-113, so that users can perform monitoring, controlling, or the like on correlated work flow events and data events during the business process.
In further illustration,
In the credit card applying process, for example, all actions of applying for a credit card are emitted to the application receiver node (ApplicationReceiver), so the node identifier (NodeID) can be used for identifying events related to the node. If work flow events and data events have the same node identifier “ApplicationReceiver”, i.e. are all related to the application receiver node, then they are monitored or controlled. At the same time, the monitoring or control will not be affected by work flow events and data events that are related to other nodes. In this manner, the relative independence of the monitoring or control is ensured.
In the credit card applying process, each credit card application instance is unique, so each instance identifier (instanceID) of the credit card application identifies a different credit card application instance. The instance identifier of the credit card application can be set using permutations of letters and numerals and serial numbers.
For example, the InstanceID can be 1182261010219. If work flow events and data events have the same InstanceID “1182261010219,” i.e. are related with the same credit card application instance, then they can be monitored or controlled. At the same time, the monitoring or control will not be affected by work flow events and data events that are related to other nodes. In this manner, the relative independence of the monitoring or control is ensured.
The application receiver Node can add data to the data storage by invoking an application, and the time when the data is added to the data storage can be used as a time stamp for correlating respective event with a time sequence. If the respective time stamps of work flow events and data events are known, then the precedence of these events is also known so as to facilitate the monitoring or control of these events. Additionally, those skilled in the art will recognize that other sequence identifiers other than the time stamp can be used to identify time sequences.
Beginning in step 201, correlation information on work flow events can be obtained. The correlation information may be, for example, node identifier, instance identifier, sequence identifier (such as time stamp) and the like.
In step 202, corresponding logic between data and work flow events can be set using the correlation information obtained in step 201. The data storage can preferably be a database that comprises a plurality of tables such as an applicant information table, a credit card information table and the like. Notably, the data storage can be one or more databases. Predefined logic can be set for each of a plurality of databases, or further, predefined logic can be set for each table in each database. The data storage can also be one or more data files, and predefined logic can be set for each of a plurality of data files.
As an example, the applicant information table can include fields of applicant name, age, e-mail and so on. The corresponding logic between the applicant information table and a work flow event can be set as follows: add to the applicant information table the application receiver node identifier “ApplicationReceiver,” the credit card application instance identifier “1182261010219” and the time stamp “2007-06-19 13:50:16”. In this manner, data in the applicant information table can be correlated with the node whose identifier is “ApplicationReceiver,” the instance whose identifier is “1182261010219” and the work flow event which is emitted at 13:50:16 on Jun. 19, 2007.
For example, the revision of data in the applicant information table can be requested by the node whose identifier is “ApplicationReceiver”, implemented in the instance whose identifier is “1182261010219”, and closely correlated with the work flow event which is emitted at 13:50:16 on Jun. 19, 2007.
The credit card information table can include fields of credit card name, currency type, line which an applicant may specify. Corresponding logic between the credit card information table and work flow events can be set, for example, as follows: add to the credit card information table the application receiver node identifier “ApplicationReceiver” and the credit card application instance identifier “1182261010001.” In this manner, data in the credit card information table can be correlated with the work flow event which has the instance identifier “1182261010001” and which is emitted from the node having the node identifier “ApplicationReceiver”.
For example, the revision of data in the credit card information table can be requested by the node whose identifier is “ApplicationReceiver”, and also can be implemented in the instance whose identifier is “1182261010001.”
In another example, if time is of less relevance to the credit card information table, a time stamp may not be added to the correlation information. However, those skilled in the art will recognize that the above settings of predefined logic are merely illustrative and not limiting.
In step 203, a message indicating revised data can be received. When the application receiver node revises data in the database, the database can send via an internal message delivery mechanism a message indicating data is revised.
For example, an update flag is added to a trigger of the database when data is being revised, to form update logs. Another possible approach is that a detector outside the database can periodically detect the change of the database and sends a message indicating data is revised when there is. The detector can be implemented inside the database or at other location in a proper manner.
The message indicating a new revision of data can include information regarding which database or data file the revised data comes from, and which table of the database the revised data comes from (if the revised data is stored in a data file, then the message can indicate which data file the revised data comes from).
The message indicating a new revision of data can include information regarding the source of data from the application receiver database and from the applicant information table in the application receiver database.
In step 204, the revised data is searched for and read from the applicant information table in the application receiver database based on the message indicating data is revised as received in step 203.
For example, the revised data can be a new entry inserted to the applicant information table, which comprises applicant name “Li Ming,” age “30,” e-mail “liming30@yahoo.com.cn” and other information. Description is given below to the new entry:
In step 205, predefined logic set for the revised data can be searched based on identifying where the data originates from. Since corresponding logic between the applicant information table and work flow events can be set in step 202, predefined logic related to the applicant information table can be searched in order to obtain the correlation information on work flow events.
In step 206, the correlation information on work flow events can be obtained according to the predefined logic for the revised data as obtained in step 205.
If the predefined logic related to the applicant information table is found, then the correlation information on work flow events in the applicant information table can be obtained. The correlation information can include the application receiver node identifier “ApplicationReceiver”, the node identifier “1182261010219” and the time stamp “2007-06-19 13:50:16”. The obtained correlation information is as follows:
In step 207, the revised data and its correlation information can be formatted to obtain a data event. First, a blank data event can be created. Then, the revised data received in step 204 can be used as base portion of the data event, and the correlation information correlated with work flow events as obtained in step 206 can be used as extended portion of the data event. The revised data and the correlation information related with work flow events can be respectively filled to proper locations of the data event so that formatting is completed and a complete data event can be obtained.
During the formatting procedure, as long as later processing can be aware of the format of a data event, the base portion and the extended portion of the data event can be disposed in any manner. Thus the data event can be formatted in any manner.
For example, the base information can be disposed at the header of the data event, and the extended portion can be disposed after the base portion, or vice versa. For another example, the extended portion can be divided into two or more parts which are respectively disposed at the header, tail or other location of the data event.
Further, in step 208, the obtained data event can be sent so that the data event can be correlated with work flow events. The data storage can be one or more data files, in which the stored data can be in the form of binary code or ASCII code. Therefore, when corresponding logic between data and work flow events is being set in step 202, predefined logic is set for each data file rather than for the database or each table in the database.
Additionally, when a message indicating data is revised is received in step 203, since the data file does not have an internal message delivery mechanism that sends a message indicating data is revised, a detector is employed to periodically detect the data file, in order to find whether data in the data file is revised or not. The detector can be implemented at any location capable of accessing the data file.
Receiver 310 can be configured for receiving data revised by nodes. The receiver 310 can receive from the data storage a message indicating data is revised by nodes, and then receive the revised data according to the message. The receiver 310 can also periodically detect if data in the data storage is revised by nodes and receive the revised data when there is. The data storage can be a database and/or a data file.
Formatter 320 can be configured for obtaining correlation information on work flow events according to predefined logic for the revised data, and formatting the revised data as the base portion of a data event and the correlation information on work flow events as the extended portion of the data event, so that the data event is obtained. Sender 330 can be configured for sending the obtained data event.
Logic setter 340 is for obtaining correlation information on work flow event and setting corresponding logic between data and work flow events using the correlation information, thereby completing the setting of the predefined logic. The correlation information can comprise at least one of node identifier, instance identifier, sequence identifier and time stamp.
The functions of each component in
As the computer system shown in
The present invention may further be implemented as a computer program product used by, for example the computer system shown in
The disclosed method of the present invention may be implemented in software, hardware or a combination of software and hardware. The hardware part may be implemented using a dedicated logic, and the software part may be stored in a memory and be implemented by a proper instruction implementing system, such as a microprocessor, a personal computer (PC) or a mainframe.
The present invention further relates to a computer program product which contains codes for receiving data revised by a node from which a work flow event is emitted, obtaining correlation information on the work flow event according to predefined logic for the revised data, formatting the revised data and the correlation information to obtain a data event, and sending the data event. Such a computer program product may be stored in a storage carrier.
While the present invention has been described with reference to what are presently considered to be the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. On the contrary, the invention is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. The scope of the following claims is to be accorded the broadcast interpretation so as to encompass all such modifications and equivalent structures and functions.
Number | Date | Country | Kind |
---|---|---|---|
200810080935.X | Feb 2008 | CN | national |