WSO2• Founded in 2005 by acknowledged leaders in XML, Web Services Technologies & Standards and Open Source• Producing entire middleware platform 100% open source under Apache license• Business model is to sell comprehensive support & maintenance for our products• Venture funded by Intel Capital and Quest Software.• Global corporation with offices in USA, UK & Sri Lanka• 150+ employees and growing.
Business Activity Monitoring“The aggregation, analysis, andpresentation of real-time informationabout activities inside organizationsand involving customers andpartners.” - Gartner
BAM In a Nutshell1. Aggregate2. Analyze3. Visualize
BAM 2.0 Analytics Design Flow Capture Data of Interest Aggregate Define Indexes AnalyzeCreate Analyzer Sequences Design Visualizations Visualize
Capture Data of Interest● Using data agents.● Currently we have agents for service/ mediation statisticsand message tracing.● Easy to write new agents to publish custom data using AgentAPI.
Define the Indexes● Required since these indexes are used for filtering andfetching data from the data store during analytics.● Conceptually not that different from SQL indexes.(Composite Indexes)..
Create Analyzer Sequences● An analyzer is a unit of data processing in the data flow.● A sequence of analyzers makes up a data flow doing some useful piece of analytics on raw data.● Currently a XML based language.● Possible to plug in custom analyzers.
Design the Visualizations● Visualizations are based on gadgets.● Using a drag and drop style modelling tool, Gadget IDE.● Wire the data source to the visualization elements and generate the gadget.
Use Case 1 : Retail StoreLets assume a retail store. The owner wants to knowthe performance of his product line. Total sales foreach of the product is required.
Analyzers Explained The frequency in which the analyzer task will run. Get data of retail data stream in batches of 1000 from the database by using the created index. Extract item code and quantity from received SOAP Body and add them to the data flow.
Group the data by item code.Drop unnecessary columns ofeach row. Sum the quantity of each item. Store in productSummary table. If item already exists in the table add current quantity to the amount present in database and store.
Use Case 2 : Statistics MonitoringTwo data centers each having a cluster of ESB and App servernodes. It is required to monitor statistics such as request counts,response times etc. for each data center and cluster.
Analytics● Define two indexes. One for filtering out data for clusterStream data stream. Other for querying table clusterSummary to which summarized data from analytics are stored.● Analyzer sequence groups the data by both data data center and cluster and aggregate request, response, fault counts and averages the response times and store the result in clusterSummary table.
Summary● Introduction● BAM 2.0 Analytics Design Flow● Use Case 1 : Retail Store● Use Case 2 : Cluster Statistics Monitoring
Questions?● Alpha available at this link● Beta release in March● GA in Q3 2012● Ready for you to start POC/Development work