Specification
BACKGROUND
[0001] Many business enterprises use computer systems to monitor and process business activities and transactions. Business entities that handle complex transactions and activities, in particular, often employ distributed computer systems. As such, current networks, systems, applications, and businesses are inherently distributed and event-driven.
[0002] For example, an online retailer may use a business application to receive online purchase orders, an inventory application to manage the store's inventory and to communicate with its suppliers, and other applications or services to create online interfaces and to manage shipping. In another example, a web server often faces heavy client loads and serves many scripts registered on a number of different uniform resource locators (URLs). Because each client request can cause multiple monitoring events, and the requests are handled asynchronously and independently of each other, the server generates a continuous stream of monitoring events. In this example, a network administrator may be very interested in analyzing the network's performance based on these monitoring events.
[0003] Events of interest happen in various places throughout an enterprise. Unfortunately, the users of such event-driven systems are frequently unable to easily extract information from the event streams because there is no central place to easily evaluate the information contained in the events or to examine holistic patterns of interest. This results in blindness to valuable information in an event-driven enterprise, which can seriously impair a user's ability to identify and react to changing and developing situations.
[0004] Multiple technologies currently exist for monitoring and centralizing remote events. For example, operations management tools provide monitoring and alerting as well as reporting and trend analysis for managing server events. And audit collection services manage security events. In the retail world, the conventional radio frequency identification (RFID) framework has become very popular for tracking inventory and the like. But users are still unable to quickly, easily, and intuitively define reports for aggregating event information. [0005] For example, current business activity monitoring (BAM) user experience emphasizes the business process and separates the roles of the business analyst and developer. In the canonical BAM solution, first a business analyst defines an
observation model (i.e., desired data views) and then a developer maps this model to the available events in the implementation. Even though this top-down approach works well for BAM, it does not provide an intuitive solution when the system is- configured by a single user who understands the available events and wants to go essentially from the bottom up, that is, from events to reports. SUMMARY
[0006] Embodiments of the invention overcome one or more deficiencies in known reporting systems by providing improved event reporting in which a user can directly define reports based on metadata about what events are available. As such, aspects of the invention allow users to think how they want to "shape up" event streams into data and multi-dimensional aggregations, without any knowledge of SQL and Data Warehousing. By centralizing events of interest, users can easily generate data views of event streams and use correlation processors such as those available in BAM tools. In one aspect, the invention captures user input specifying events that are of interest, a desired correlation pattern, and a desired dimensional structure and then maps between data items in the events and the dimensional structure. Advantageously, aspects of the invention operate in conjunction with current BAM runtime to manipulate virtually any kind of event stream into aggregations.
[0007] Computer-readable media having computer-executable instructions for generating reports from event streams and defining an intuitive user experience embody further aspects of the invention. Alternatively, embodiments of the invention may comprise various other methods and apparatuses. [0008] Other features will be in part apparent and in part pointed out hereinafter. [0009] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a block diagram illustrating components of an exemplary
computer system implementing an embodiment of the invention.
[0011] FIG. 2 is a block flow diagram illustrating an exemplary event stream source for use with an embodiment of the invention.
[0012] FIG. 3 is an exemplary screen shot illustrating aspects of a multi¬dimensional aggregation according to an embodiment of the invention. [0013] FIG. 4 is an exemplary screen shot illustrating further aspects of a multi¬dimensional aggregation according to an embodiment of the invention. [0014] FIG. 5 is an exemplary screen shot illustrating aspects of a user interface for selecting events of interest according to an embodiment of the invention. [0015] FIG. 6 is an exemplary screen shot illustrating aspects of a user interface for defining activity semantics according to an embodiment of the invention. [0016] FIG. 7 is an exemplary screen shot illustrating aspects of a user interface for defining a dimensional structure and mapping from event schema according to an embodiment of the invention.
[0017] FIG. 8 is a block diagram of an exemplary computer system implementing further aspects of an embodiment of the invention.
[0018] FIG. 9 is a flow diagram illustrating exemplary operations for generating reports from an event stream according to an embodiment of the invention. [0019] FIG. 10 is a block diagram illustrating an exemplary computer-readable medium containing computer-executable instructions for implementing aspects of the invention.
[0020] Corresponding reference characters indicate corresponding parts throughout the drawings. DETAILED DESCRIPTION
[0021] Referring now to the drawings, FIG. 1 illustrates an exemplary computing environment 20 in which the present invention may be implemented for defining multi-dimensional aggregations on event streams. As shown, a computing device 22 executes computer-executable instructions for processing an event stream 24 to generate one or more reports 26 representative of the information in the stream. In one embodiment, an aggregation definition tool 28 implemented on computing device 22 captures user input relating to which events in event stream 24 are of interest, what is the desired correlation pattern, what is the desired dimensional structure, and what is the mapping between the data items in the events and the dimensional structure.
[0022] To illustrate aspects of the invention, FIG. 2 presents an example of event stream 24. In this instance, the event stream 24 comprises a stream of diagnostic events in a web server 32. An administrator or other user of the server 32 can obtain various reports by defining how the event data is "shaped up". For purposes .of illustration, web server 32 is capable of executing external scripts 34 and is instrumented with four monitoring events (shown generally at A, B, C, and D). When a client opens a socket to server 32, it may send a request (e.g., HTTP GET) with the URL of the script 34 and some arguments. The server 32 then locates and executes the appropriate script 34, which produces some output. FIG. 2 shows a component 36 for executing scripts 34. The server 32 replies back with' a status code, such as 200 (OK) or 500 (Internal Server Error), and streams the output from the script or the error information to the client before closing the socket.
[0023] In one embodiment, four diagnostic events A, B, C, and D are available for monitoring web server 32. At A, an event HTTPRequest_Begin contains data such as the URL and the size of the incoming request in bytes; at B, an event ScriptExecution_Begin occurs when server 32 spawns the script process (e.g. Perl interpreter); at C, an event ScriptExecution_End indicates when the executed script 34 is completed (or a resultant error code); and at D, an event HTTPRequest_End occurs when the request is completed (including any error code). In this example, the list of events that can possibly happen and the shape of the data they will contain (i.e., their schema) is known ahead of time. According to aspects of the invention, the aggregation definition tool 28 utilizes event metadata for processing event stream 24. The event metadata for the example of FIG. 2 may be embodied by an extensible markup language (XML) file such as the one shown below in which Item Name specifies the metadata:
Documents
Application Documents
| # |
Name |
Date |
| 1 |
2375-chenp-2008 abstract.pdf |
2011-09-04 |
| 1 |
2375-chenp-2008 pct.pdf |
2011-09-04 |
| 2 |
2375-chenp-2008 claims.pdf |
2011-09-04 |
| 2 |
2375-chenp-2008 form-5.pdf |
2011-09-04 |
| 3 |
2375-chenp-2008 correspondences-others.pdf |
2011-09-04 |
| 3 |
2375-chenp-2008 form-3.pdf |
2011-09-04 |
| 4 |
2375-chenp-2008 destriction (complete).pdf |
2011-09-04 |
| 4 |
2375-chenp-2008 form-26.pdf |
2011-09-04 |
| 5 |
2375-chenp-2008 form-1.pdf |
2011-09-04 |
| 5 |
2375-chenp-2008 drawings.pdf |
2011-09-04 |
| 6 |
2375-chenp-2008 drawings.pdf |
2011-09-04 |
| 6 |
2375-chenp-2008 form-1.pdf |
2011-09-04 |
| 7 |
2375-chenp-2008 destriction (complete).pdf |
2011-09-04 |
| 7 |
2375-chenp-2008 form-26.pdf |
2011-09-04 |
| 8 |
2375-chenp-2008 correspondences-others.pdf |
2011-09-04 |
| 8 |
2375-chenp-2008 form-3.pdf |
2011-09-04 |
| 9 |
2375-chenp-2008 claims.pdf |
2011-09-04 |
| 9 |
2375-chenp-2008 form-5.pdf |
2011-09-04 |
| 10 |
2375-chenp-2008 pct.pdf |
2011-09-04 |
| 10 |
2375-chenp-2008 abstract.pdf |
2011-09-04 |