Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and...
-
Upload
wendy-newman -
Category
Documents
-
view
219 -
download
0
Transcript of Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and...
![Page 1: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/1.jpg)
Event Driven Architectures with Apache Synapse
Paul FremantleVP, Apache Synapse
Member, ASFCTO and Co-Founder, WSO2
![Page 2: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/2.jpg)
Why am I talking about this?• CTO and Co-Founder, WSO2
– Previously STSM in IBM WebSphere• VP, Apache Synapse• Apache Member• PMC Member:
– Incubator, WebServices,HTTPComponents, Qpid
![Page 3: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/3.jpg)
Plan of Attack• Brief introduction to Apache Synapse• Understanding SOA approaches• Event Driven Architecture
– Why would you use it?– Options and approaches
• How Events fit into Synapse• Case Study• Futures
![Page 4: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/4.jpg)
Why use an Event Driven Architecture?
![Page 5: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/5.jpg)
Empowerment
![Page 6: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/6.jpg)
Understanding the point of SOA• SOA is fundamentally about empowered
distributed systems• Giving each
department/organization/website/etc control of their own systems – Amazon is a great example of this– Went from a traditional three tier
data/app/web architecture – Enabled small teams to be effective
![Page 7: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/7.jpg)
Two different kinds of SOA
Consumers
ESB
Services Services Services
Consumers Consumers
System
ESB
System
System
System
System
System
![Page 8: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/8.jpg)
Wiring• In a process-led or mashup-led SOA, the
wiring is done using ESB configuration or BPEL
![Page 9: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/9.jpg)
Scenario – Financial Security blocking
Database
legacyflat file
NEW YORK
Existing System
SynapsePoll
Record->XMLXML->XML
Send
LONDON
SynapseSplit/Iterate
DBLookup/FilterTransform to MQ
Send
Existing System
XML/JMS
![Page 10: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/10.jpg)
Overall ESB flow
FileSystemListener
NY Sequence
Log
Out-Only
Flatpack
E4X
Send to London
LondonEndpoint
LondonSequence
Iterate
DBReport – log whole msg
Filter/Drop NOAC
Send
![Page 11: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/11.jpg)
PushMePullYou
![Page 12: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/12.jpg)
PushMePullYou scenario
![Page 13: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/13.jpg)
Logical model• Every Service Provider and Consumer
understands the “canonical XML”– Of course in real life there will be adapters – These may be running in an ESB
• But ideally their OWN ESB (or part of a distributed ESB)
• The aim is that each department/group can “own” their own gunk– Not reliant on central systems to adapt
![Page 14: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/14.jpg)
Event approach• Eventing takes this one step further:
– Its up to you to publish to the right place– Its up to you to subscribe to the right events
• You own the wiring too– Allows for situational integration
![Page 15: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/15.jpg)
Loose coupled and Self Organizing
![Page 16: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/16.jpg)
We know this!
![Page 17: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/17.jpg)
Event based models
![Page 18: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/18.jpg)
Actuators and Sensors• An actuator emits an event• A sensor accepts events
![Page 19: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/19.jpg)
The Synapse model of Events• Loosely based on WS-Eventing
– But can be augmented with other models– Also more powerful
• Easily add mediation into the flow
• Main concept:– Event Source
• An Actuator
![Page 20: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/20.jpg)
Advanced Web Services Core Axis© WSO2 Inc. 2006
20
WS-Eventing
Event Source
Subscribe with EPR of subscriber
Respond with EPR of SubsMgr
Subscriber
Event Notifications (any message)
SubsMgr
getStatus
renew
unsubscribe
![Page 21: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/21.jpg)
Synapse configuration example<eventSource name="SampleEventSource">
<subscriptionManager class="o.a.s.eventing.managers.DefaultInMemorySubscriptionManager"> <property name="topicHeaderName" value="Topic"/> <property name="topicHeaderNS" value="http://apache.org/aip"/> </subscriptionManager>
</eventSource> <sequence name="PublicEventSource" >
<log level="full"/> <property name=“OUT_ONLY” value=“true” action=“SET”/><eventPublisher eventSourceName="SampleEventSource"/>
</sequence> <proxy name="EventingProxy">
<target inSequence="PublicEventSource" /> </proxy>
![Page 22: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/22.jpg)
Eventing in Synapse
Synapse
Proxy
EventSource
EventPublisher
SubsMgr
Subscriber
Publisher Subscriber
Subscriber
subscribe
MediationSequence
![Page 23: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/23.jpg)
Different subscription models• WS-Eventing message• Static subscription in Synapse XML• Store-dependent
– E.g. Registry model
![Page 24: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/24.jpg)
Completely transport AND WS-Eventing agnostic
• You can have any kind of message republished to any kind of endpoint– SMTP -> Jabber– SOAP -> JMS
• You don’t HAVE to use WS-Eventing to subscribe
• You can bridge into JMS Topics too– Or bridge from JMS Topics
![Page 25: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/25.jpg)
Registry-based subscription model• A header carries the “Topic”
– e.g. /config/hardware/server/windows/xp• Subscribers can subscribe to a specific topic, or all
sub-events • The topic space is represented as a tree in the registry
– Subscriptions are simply URLs stored as entries at a point in the tree
/config/ /software/ /hardware/ /server/ /linux/ /windows /xp/ URL1 / URL2 (etc)`
![Page 26: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/26.jpg)
Case Study
![Page 27: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/27.jpg)
Enterprise IT Management• Problem statement:
– Customers have multiple installed management systems• Network Management• User Management• Systems Management
– All from the same vendor!– These are not just “stock” systems – each has been
customized for each installation– Customers have to keep these systems in sync
• By data entry– Any solution needs to be flexible, extensible, modifiable
![Page 28: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/28.jpg)
A difficult problem• Synchronizing multiple different systems• But:
– Systems have different underlying formats– Some of the systems may be more accurate
than others– Need to be able to scale to different
numbers of systems– Must be extensible / reprogrammable
![Page 29: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/29.jpg)
Feedback!
![Page 30: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/30.jpg)
Feedback problems
Black Box
change
update
![Page 31: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/31.jpg)
Feedback loops
BlackBox
system
BlackBox
system
Adapter
Adapter
Event Broker
http://pzf.fremantle.org/2008/09/interesting-problem-in-event-driven.html
![Page 32: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/32.jpg)
EDA + MDR
![Page 33: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/33.jpg)
What is Complex Event Processing?
• Simple Event Processing– Acting on single events– e.g. a <filter> in the ESB– Is this a gold or platinum customer?
• Event Stream Processing– Looking across multiple events– Finding patterns – e.g. the CPU utilization has been more than
90% for the last 10 minutes• Complex Event Processing
– Looking across multiple event streams– e.g There has been a significant increase in overall trading
activity AND the average price of commodities has fallen 2% in the last 4 hours
![Page 34: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/34.jpg)
Complex Event Processing in Open Source
• Esper– http://esper.codehaus.org – A Java library that can be integrated into multiple
systems– A GPLv2 project
• (with a commercial edition available)– Supports multiple query models
• Based on a SQL-like language• Grouping, aggregation, sorting, filtering and merging of
event streams • Windows based on time, length, sorted, and others
– Events can be XML, Map, Object
![Page 35: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/35.jpg)
Complex Event Processing examples
• Event processing languages are typically based on SQL – With extensions!
select * from Ticker.win:length_batch(10)select AVG(CPU) FROM GANGLIA.win:time(30 sec)insert into WarningStream select trainStation,
avg(waitTime) as avgWait from MyWindow group by trainStation having avg(waitTime) > 60
![Page 36: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/36.jpg)
Esper + Synapse• Separate project – SciFlex
– http://code.google.com/p/sci-flex/• Allows you to “inject” events from Synapse to
be processed by Esper• Interesting events come back to you
![Page 37: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/37.jpg)
Summary• EDA is an interesting approach• If you design correctly, you can build a really distributed, loosely coupled system
![Page 38: Event Driven Architectures with Apache Synapse Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.](https://reader035.fdocuments.in/reader035/viewer/2022081519/56649ea45503460f94ba88e7/html5/thumbnails/38.jpg)
Questions?