You are on page 1of 17

WSO2 BAM & CEP

Architecture

Data Agents

Data Agents

Compatible with CEP/BAM

Get data across to BAM –


Service monitoring feature – WSO2 AS, DSS,
BPS, ESB
Mediation monitoring feature – BAM Mediator
for WSO2 ESB

Asynchronous & non-blocking
Thrift for high performance message
throughput

Custom Agents

Java SDK provided

Same is used for provided Data Agents

Due to Thrift, different languages can be
supported

Already used by existing customers for Perl/C#

Data Model

Data is sent over using strongly typed Data
Streams

{
'name':'phone.retail.shop',
'version':'1.0.0',
'nickName': 'Phone_Retail_Shop',
'description': 'Phone Sales',
'metaData':[
{'name':'clientType','type':'STRING'}
],
'payloadData':[
{'name':'brand','type':'STRING'},
{'name':'quantity','type':'INT'},
{'name':'total','type':'INT'},
{'name':'user','type':'STRING'}
]
}

Data Streams are versioned

Allows for easier analysis

Data Receiver

Receives data and stores it in Cassandra

Scalable, big data repository

Asynchronous & non-blocking

Combination of Cassandra, Thrift and the nonblocking nature results in extremely fast writes

Shared with WSO2 CEP for real time analysis

Supports Thrift & REST API

Supports plugging in of different receiver types

The Analyzer Engine

The Analyzer Engine

Analyzers are based on Easy to learn, SQL like
query language

insert overwrite table UserTable select userName, count(DISTINCT
orderID),sum(quantity) from PhoneSalesTable where version= "1.0.0" group by
userName;

Runs on top of Apache Hive

Runs locally or delegates to Hadoop cluster

Scalable analytics

Cluster can range from a couple of nodes to 1000s

The Analyzer Engine

Analyzers can be scheduled

Ex: once a minute, every Wednesday at 12.15,
every 30th at 12 midnight

Supports Polyglot data architecture

Write result to any kind of data store
Custom written Hive JDBC handler and use this for
our scenarios

The Presentation Layer

The Presentation Layer

Gadget Portal for the dashboard
Gadget Generation Wizard – Tool for
generating gadgets for the dashboard
Plug in your own report server/ dashboard
server

WSO2 CEP

Real time analytics

Based on Siddhi - A high performance complex
event processing engine developed at WSO2

Can be seamless integrated with BAM to form a
complete analytics solution

Key Features

Filtering

Join

Group By

Having

Temporal Windows

Time window

Time batch window

Length window

Length batch window

Pattern

Negation

Deployment – Shared events with
BAM/CEP

Use Case : Retail Store
Let's assume a retail store. The owner wants to
know the performance of his product line. Total
sales for each of the product is required.