Activiti in an Event- driven architecture Robin Bramley Chief Scientific Officer, Ixxus.

Slides:



Advertisements
Similar presentations
Real time vehicle tracking and driver behavior monitoring using a cellular handset based on accelerometry and GPS data Kevin Burke 4 th Electronic and.
Advertisements

A Java Architecture for the Internet of Things Noel Poore, Architect Pete St. Pierre, Product Manager Java Platform Group, Internet of Things September.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 1 Introduction/Overview Wed. 9/6/00.
Wireless LAN Topology Visualiser Project Supervisor: Dr Arkady Zaslavsky Project Team Members: Jignesh Rambhia Robert Mark Bram Tejas Magia.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 2 Introduction/Overview Fri. 9/8/00.
Security administrators The experts need better tools too!
HOL9396: Oracle Event Processing 12c
OEP BOF9272 SOA Event Delivery Network
SOA, EDA, ECM and more Discover a pragmatic architecture for an intelligent enterprise, to maximize impact on the business Patrice Bertrand Software Architect.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
CISCO CONFIDENTIAL – DO NOT DUPLICATE OR COPY Protecting the Business Network and Resources with CiscoWorks VMS Security Management Software Girish Patel,
Distributed Architecture Philosophy Why asynchronous messaging?
Spring Integration - basics Martin Toshev, Diyan Yordanov Cisco Systems.
Next-Generation IDS: A CEP Use Case in 10 Minutes 3rd Draft – November 8, nd Event Processing Symposium Redwood Shores, California Tim Bass, CISSP.
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
1 Implementing Monitoring and Reporting. 2 Why Should Implement Monitoring? One of the biggest complaints we hear about firewall products from almost.
The Real Deal With SIM/SEM The Promise of Security Information / Event Management Scott Sidel Sr. Security Manager Computer Sciences Corp.
DSTT Report - OGC Services May 8, 2002Page 1 Allan Doyle DSTT Report OGC Services DSTT Report OGC & GRID Services Allan Doyle NASA/II May 8, 2002.
Server to Server Communication Redis as an enabler Orion Free
WebMethods Architecture By webMethods_KB. EAI Architecture Concepts Introduction  EAI IT Landscape  Integration Evolution Basic Concepts  Messaging.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Enterprise Integration Patterns CS3300 Fall 2015.
INNOV-10 Progress® Event Engine™ Technical Overview Prashant Thumma Principal Software Engineer.
 Replication is the process of copying database information  Replication is used for:  Backing up your database  Migrating to a new server  Mirroring.
By Nitin Bahadur Gokul Nadathur Department of Computer Sciences University of Wisconsin-Madison Spring 2000.
SOA & Event Driven Architecture Steve Else, Ph.D., Certified Enterprise Architect, SOA COP Srinidhi Boray, Certified Enterprise Architect, Ingine, Inc.
Slide 1 © 2016, Lera Technologies. All Rights Reserved. SAP BO vs SPLUNK vs OBIEE By Lera Technologies.
The best of WF 4.0 and AppFabric Damir Dobric MVP-Connected System Developer Microsoft Connected System Division Advisor Visual Studio Inner Circle member.
Couchbase for Mobile Couchbase Lite & Sync Gateway
ASP.NET 2.0 Mohammed Abdelhadi Developer.NET Evangelist Microsoft Corporation.
Export Services Deep Dive
Connected Infrastructure
CompTIA Security+ Study Guide (SY0-401)
Integrating ArcSight with Enterprise Ticketing Systems
Google Glass Developing for Glass & Alfresco.
Integrating ArcSight with Enterprise Ticketing Systems
5-star Ratings & Recommendations with Mahout
TrueSight Operations Management 11.0 Architecture
The Future and Content Management
Telemedicine.
Software Design and Architecture
Part 3 Design What does design mean in different fields?
The Client/Server Database Environment
Connected Infrastructure
Understanding the OSI Reference Model
#01 Client/Server Computing
Video and Sensor Network Architecture and Displays
CompTIA Security+ Study Guide (SY0-401)
Enterprise Application Integration Styles
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Web Application Architectures
Mobile Agents M. L. Liu.
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Distributed Databases
EPTS Sep Henry Chang, Business Informatics,
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Web Application Architectures
Middleware, Services, etc.
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Enterprise Integration
Computer Networks Topic :User datagram protocol Transmission Control Protocol -Hemashree S( )
Strategic Sponsors Sponsors and Partners Gold Sponsors Silver Sponsors.
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Web Application Architectures
Mark Quirk Head of Technology Developer & Platform Group
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
#01 Client/Server Computing
Demo for Partners and Customers
Presentation transcript:

Activiti in an Event- driven architecture Robin Bramley Chief Scientific Officer, Ixxus

Intro - RB

Intro - Ixxus

Activiti intro

Double entry considered harmful Increases risk of conflict

Integration is essential…

… in more connected times 7

Health warning 8

The fallacies of distributed computing Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences. 1.The network is reliable 2.Latency is zero 3.Bandwidth is infinite 4.The network is secure 5.Topology doesn't change 6.There is one administrator 7.Transport cost is zero 8.The network is homogeneous For more details, read the article by Arnon Rotem-Gal-Ozarticle 9

Integration styles 10

4 styles of integration File Transfer Database RPC Messaging

Integration criteria Application coupling Intrusiveness Technology selection Data format Data timeliness Data or functionality Remote communication Reliability Security (AAA, confidentiality, integrity, …) 12

Messaging Asynchronous messaging is inherently loosely coupled and helps to overcome latency & unreliability issues Can easily apply ‘pipes & filters’ approach for flexibility Frameworks such as Spring Integration mask a lot of the complexity from application developers (but ties you to their API) 13

Event-Driven Architecture A good way of loosely integrating systems using the observer pattern Systems emit events when something that may be of interest to other systems happens Systems can listen for events that are interested in and can then take action when they are triggered The emitting application is unaware of which applications are listening to its events – good for extensibility Can be used for near real time business intelligence / business activity monitoring (BAM), alerting, indexing etc. 14

Complex Event Processing Complex Event Processing involves monitoring an event stream to identify activity patterns or correlations (within time windows) Used in Financial Services trading systems for fraud detection Other uses include billing/metering, delayed shipment with RFID tracking

Enterprise Integration Patterns 16

EAI Patterns

White: Section Head

Event Driven Analytics Complex Event Processors are designed for correlating events – Business Activity Monitoring / near real-time dashboards are one application Time is often a factor applied through a sliding window E.g. number of failed login attempts in the last hours

Event Publishing in Spring 21 public class Xyz implements ApplicationEventPublisherAware {... public create(Map foo) {... XyzCreatedEvent evt = new XyzCreatedEvent(foo); applicationEventPublisher.publishEvent(evt); private ApplicationEventPublisher applicationEventPublisher; public setApplicationEventPublisher(ApplicationEventPublisher aep) { applicationEventPublisher = aep; }

Event Listener 22 public class IndexingListener implements ApplicationListener { public onApplicationEvent(ApplicationEvent event) { if (event instanceof XyzCreatedEvent) { XyzCreatedEvent evt = (XyzCreatedEvent) evt;... // handle created event } else if (event instanceof XyzDeletedEvent) {...

Overview

Sample Code { // extract avm store id and path var fullpath = url.extension.split("/"); if (fullpath.length == 0) { status.code = 400; status.message = "Store id has not been provided."; status.redirect = true; break script; } var storeid = fullpath[0]; var path = (fullpath.length == 1 ? "/" : "/" + fullpath.slice(1).join("/")); }

Sample Code { // extract avm store id and path var fullpath = url.extension.split("/"); if (fullpath.length == 0) { status.code = 400; status.message = "Store id has not been provided."; status.redirect = true; break script; } var storeid = fullpath[0]; var path = (fullpath.length == 1 ? "/" : "/" + fullpath.slice(1).join("/")); }

Demo

Asynchronous browser updates 27

Polling 28

Long polling 29

Streaming 30

HTML5 Web Sockets 31

Example EIP flow 32

Sample Code { // extract avm store id and path var fullpath = url.extension.split("/"); if (fullpath.length == 0) { status.code = 400; status.message = "Store id has not been provided."; status.redirect = true; break script; } var storeid = fullpath[0]; var path = (fullpath.length == 1 ? "/" : "/" + fullpath.slice(1).join("/")); }

Sample Code { // extract avm store id and path var fullpath = url.extension.split("/"); if (fullpath.length == 0) { status.code = 400; status.message = "Store id has not been provided."; status.redirect = true; break script; } var storeid = fullpath[0]; var path = (fullpath.length == 1 ? "/" : "/" + fullpath.slice(1).join("/")); }

Demo

Wrap-up Questions? Resources Hohpe & Woolf Enterprise Integration Patterns