The present application is a national stage filing under 35 U.S.C. § 371 of PCT application number PCT/IN2014/000512, having an international filing date of Aug. 4, 2014, the disclosure of which is hereby incorporated by reference in its entirety.
Many businesses today analyze large amounts of data to make business decisions. Often the amount of data to be analyzed is voluminous, to the point at which real-time analysis of such large amounts of data is problematic. Analysis of such data may burden processing (e.g., latency) and storage resources.
For a detailed description of various examples, reference will now be made to the accompanying drawings in which:
The examples disclosed herein reduce the detrimental impacts that may occur to processing and/or storage resources in the face of analyzing data such as large amounts of data in a short period of time. The data may be received by the disclosed systems in the form of multiple input event streams and the system may process the event streams by one or more complex event rules. An event is any data item that typically occurs over time. A complex event rule is a rule that causes a system to track and analyze streams of information about things that happen and derive conclusions from them. Complex event processing (CEP) is event processing that combines data from multiple sources to infer events or patterns that suggest more complicated circumstances. A goal of complex event processing is to identify meaningful events (such as opportunities or threats) and respond to them as quickly as possible.
Some disclosed examples provide for an initial filtering of each individual input event stream followed by correlating the filtered results. Because the input event streams are initially separately filtered, less data is then subjected to the correlation operation, which thereby alleviates the burden on the processing resources of the system. A historical rule and/or a time window-based rule may be applied to the correlated results. A historical may be, for example, a rule that specifies an operation to be performed that is based on previously stored information. Application of a historical rule generally entails an access to a non-volatile device such as a hard disk drive, which incurs significant latency overhead relative to an access of volatile storage such as random access memory. A time window-based rule may be applied to the correlated results or the results from the application of the historical rule. A time window-based rule may entail the determination of certain events that occur over a defined period of time (a time window). As such, the correlated results or results from the application of the historical rule are saved to memory for subsequent analysis per the time window-based rule. Storage of such results in memory may burden the memory resources in the system, but applying the time window-based rule after the initial filtering of the individual event streams and after correlation of such data reduces the amount of data to be saved per the time window-based rules.
An example of the usefulness of the disclosed systems is for credit card fraud detection. For example, a fraud detection complex event rule might be to check for credit card transactions for a given card in excess of $500 and for which the credit card owner's cell phone GPS indicates that the user is within a threshold distance of the point of sale (credit card swipe location). Most card users also carry a cell phone and the location of the cell phone and the location of the credit card swipe should be the same−a difference in locations may be indicative of fraudulent activity. The complex event may also include detecting whether the same credit card has been used in at least two locations more than a threshold distance apart in less than a certain period of time. That a credit card has been used, for example, in two locations more than 100 miles apart in less than 30 minutes may also be indicative of a fraudulent credit card use. The complex event rule may also cause, in the case of a fraud event being detected, a different level of a fraud response service to be performed for different levels of credit card customers. For example, a credit card company may offer platinum, gold, silver, and bronze service levels. The reaction to a fraud event may differ from platinum users than for bronze users. For a platinum user, a fraud response service may put a temporary hold on the card, send a text message to the card owner, make a phone call to one or more phone numbers associated with the card owner, and automatically issue the card owner a new card, but for a bronze user, the service might only put a temporary hold on the card. This particular credit card fraud detection complex event rule is referred to below throughout the description of the implementations described herein.
Each event stream filter engine 100a, 100b implements a filter rule that is specified for that particular event stream to generate a filtered output event stream. Event stream filter engine 100a thus generates a filtered output event stream 105a and event stream filter engine 100b generates a filtered output event stream 105b. For example, if the event stream for event stream filter engine 100a includes credit card transactions, the filter rule for that engine might be to exclude credit card transactions that are less than $500. If the event stream for event stream filter engine 100b includes cell phone records, the filter rule for that filter engine might be to exclude those cell phone records that do not have a complete cell phone location. For example, the fraud detection service may prompt the user's cell phone to report its location every 10 minutes so that the service knows the location of the cell phone at all times (at least within a resolution of 10 minutes). If the cell phone's GPS is disabled, non-functional or the phone is inside a building and not within line of sight of a GPS satellite, the data record reported by the phone might not have any or enough information to enable the service to precisely determine the location of the user's phone. Each individual filter rule thus causes a subset of the event stream received by that event stream filter engine to be output by the event stream filter engine as the filtered output event stream. Therefore, there are fewer records in filtered output event streams 105a, 105b than in their counterpart input event streams.
Each filter rule for a given event stream filter engine only applies to the event stream for that particular event stream filter engine. That is, the various input event streams are separately filtered without regard to the records of the other stream(s).
The correlation engine 110 then receives the filtered output event streams 105a, 105b from the event stream filter engines 100a, 100b. The correlation engine 110 applies a correlation rule to the filtered output event streams to produce correlated event results 115. The correlation rule causes the correlation engine 110 to compare the individual filtered output event streams 105a, 105b to each other. By way of the preceding example, a correlation rule might cause the correlation engine 110 to associate the location of a particular customer's credit card transaction in excess of $500 (from filtered output event stream 105a) with the same customer's cell phone location information (from filtered output event stream 105b). The correlation engine 110 associates records from the various filtered output event streams 105a, 105b (e.g., associating credit card transactions above $500 and their location with the card owner's cell phone location) to form “tuples” in the correlated event results 115.
The correlated event results 115 are then provided to the historical processing engine 120, which applies a historical rule to the correlated event results 115 to produce historical filtered results. The historical rule indicates a processing operation to be performed by the historical processing engine 120 on the correlated event results based on data previously mapped to at least one of the event streams and previously stored in non-volatile storage (not shown in
After the historical processing engine 120 processes the correlated event results 115 to produce the historical event results (identified in
The implementation of
The non-transitory storage device 210 may include volatile storage such as random access memory, non-volatile storage such as a magnetic storage device, optical storage device, solid state storage device, etc. or combinations thereof. The non-transitory storage device 210 includes an event stream reception module 212, a stream rule application module 214, a correlation rule module 216, a historical rule module 218, and a time window module 220. Each of these modules includes machine instructions, which are executable by the processing resource 200. Each of the engines of
The storage device 230 of
At 300, the method includes receiving a plurality of event streams. The method then includes at 302 applying a separate stream rule to each individual event stream to produce a filtered output event stream from each such event stream. At 304, after applying a separate stream rule to each individual event stream, the method includes correlating the filtered output event streams to produce correlated event results. At 314, after correlating the filtered output event streams, the method includes applying the historical rule to the correlated event results to produce historical filtered results. At 316, after applying the historical rule, the method then includes applying a time window-based rule to the historical filtered results to produce time window results.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IN2014/000512 | 8/4/2014 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2016/020927 | 2/11/2016 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
7408458 | Sheleheda | Aug 2008 | B1 |
7793835 | Coggeshall | Sep 2010 | B1 |
8166351 | Slutsman et al. | Apr 2012 | B2 |
8374986 | Indeck | Feb 2013 | B2 |
20050010545 | Joseph | Jan 2005 | A1 |
20060130070 | Graf | Jun 2006 | A1 |
20070283194 | Villella | Dec 2007 | A1 |
20080301135 | Alves | Dec 2008 | A1 |
20080301207 | Demarest | Dec 2008 | A1 |
20090089352 | Davis | Apr 2009 | A1 |
20090119307 | Braun | May 2009 | A1 |
20090265288 | Chakravarty | Oct 2009 | A1 |
20090287628 | Indeck | Nov 2009 | A1 |
20100017380 | Naibo | Jan 2010 | A1 |
20100106611 | Paulsen | Apr 2010 | A1 |
20110251951 | Kolkowitz | Oct 2011 | A1 |
20110288692 | Scott | Nov 2011 | A1 |
20110296123 | Adler | Dec 2011 | A1 |
20120054420 | Kang | Mar 2012 | A1 |
20120060173 | Malnati | Mar 2012 | A1 |
20120166421 | Cammert | Jun 2012 | A1 |
20130325890 | Vaught | Dec 2013 | A1 |
20140032535 | Singla | Jan 2014 | A1 |
20140095444 | Deshmukh et al. | Apr 2014 | A1 |
20140095541 | Herwadkar | Apr 2014 | A1 |
20140359008 | Finney | Dec 2014 | A1 |
20150100436 | Spofford | Apr 2015 | A1 |
20150112917 | Lorentzen | Apr 2015 | A1 |
20150199406 | Liang | Jul 2015 | A1 |
20150213358 | Shelton | Jul 2015 | A1 |
20150381712 | de Castro Alves | Dec 2015 | A1 |
20160182251 | Weygandt | Jun 2016 | A1 |
Entry |
---|
Cugola et al., “TESLA: A Formally Defined Event Specification Language”, Jul. 2010, ACM. |
Bhattacharya, et al.., “Analytics on Big Fast Data using Real Time Stream Data Processing Architecture, 2013 EMC Proven Professional Knowledge Sharing,” 34 p. <http://www.happiestminds.com/sites/all/themes/happiestminds/pdf/ANALYTICS_ON_BIG_FAST_DATA_USING_A_REALTIME_STREAM_DATA_PROCESSING_ARCHITECTURE.pdf>. |
Dindar et al., “Efficiently Correlating Complex Events over Live and Archived Data Streams,” DEBS '11, Jul. 11-15, 2011, 12 p. <http://people.csail.mit.edu/tatbul/publications/dejavu_debs11.pdf>. |
PCT; “Notification of Transmitial of the International Search Report and the Writien Opinion of the International Searching Authority, or the Declaration”; cited in PCT/IN2014/000512; dated May 11, 2015; 11 pages. |
wordpress.com, “In Stream Big Data Processing,” Aug. 20, 2013, 34 p. <http://highlyscalable.wordpress.com/2013/08/20/in-stream-big-data-processing/>. |
Zhou et al., “SCEPter: Semantic Complex Event Processing over End-to-End Data Flows,” Apr. 2012, 20 p. |
Number | Date | Country | |
---|---|---|---|
20170147697 A1 | May 2017 | US |