Implementing Complex Event Processing using Microsoft StreamInsight will probably change the way some problems are solved in current Event-Drive Architectures.
Demo: StreamInsight and SignalR concept and source
Media monitoring Web analytics Transactional data CRM / Customer data The Data Conversation Relevant experiences need data. Smart Iteration requires insight
per user Identify relevant content before the next click Define content behind next click based on detected online behavior StreamInsight advantage Scale to millions of concurrent online users Immediate insight - real time analytics Web logs no longer processed offline in batches Correlate across your web farms and applications
are small and continue to decrease Processing costs are non- negligible Data loading costs continue to be significant Manage business via KPI-triggered actions Mine historical data Devise new KPIs Monitor KPIs Record raw data (history) Cycle: Monitor, Manage, Mine 5 CEP advantage Process data incrementally, i.e., while it is in flight Avoid loading while still doing the processing you want Seamless querying for monitoring, managing and mining
Services, Smart Grids, Monitoring – Systems mgmt, Health Care, Manufacturing, etc. years months days hrs min sec $ value of analytics Forecasting in Enterprises Historical Trend Analysis
100000 10000 1000 100 Custom-built solutions that carry huge development and customization costs Facts/sec. years months days hrs min sec Load time in ETL ET time in ETL Load barrier is dictated by current choices of the solution, e.g., loading into databases, persisting into files. This is intrinsic because in current approaches no processing can be done till the data is loaded.
immediately and enable responses to them with minimal latency Database Applications Event-driven Applications Query Paradigm Ad-hoc queries or requests Continuous standing queries Latency Seconds, hours, days Milliseconds or less Data Rate Hundreds of events/sec Tens of thousands of events/sec or more Query Semantics Declarative relational analytics Declarative relational and temporal analytics request response Event output stream input stream
e3 by e3.i into SubStream from win in SubStream.HoppingWindow( FiveMinutes,ThreeSeconds) select new { i = SubStream.Key, a = win.Avg(e => e.f) }; LINQ Example – JOIN, PROJECT, FILTER: from e1 in MyStream1 join e2 in MyStream2 on e1.ID equals e2.ID where e1.f2 == “foo” select new { e1.f1, e2.f4 }; Join Filter Project Grouping Window Project & Aggregate
for lightweight processing and filtering CEP for aggregation and correlation of in-flight events CEP for complex analytics including historical data Event processing engines are deployed at multiple places on different scales • At the edge – close to the data source • In the mid-tier – consolidate related data sources, • In the data center – historical archive, mining, large scale correlation. Devices Sensors Web servers Feeds StreamInsight Complex Analytics & Mining StreamInsight StreamInsight StreamInsight StreamInsight StreamInsight StreamInsight StreamInsight
Sensors Web servers Event stores & Databases Stock ticker, news feeds Event stores & Databases Pagers & Monitoring devices KPI Dashboards, SharePoint UI Trading stations Input Adapters Output Adapters StreamInsight Engine Query Logic Query Logic StreamInsight Application Development StreamInsight Application at Runtime Flexible adapter SDK with high performance to connect to different event sources and sinks Event-driven applications are fundamentally different from traditional database applications: queries are continuous, consume and produce streams, and compute results incrementally The CEP platform does the heavy lifting for you to deal with temporal characteristics of event stream data Development experience with .NET, C#, LINQ and Visual Studio 2008 and 2010 CEP platform from Microsoft to build event-driven applications