Guido Schmutz<br />Trivadis<br />Torsten Winterberg<br />OPITZ CONSULTING GmbH<br />Nutzen für moderne Anwendungslandschaf...
Agenda<br />Einführung Events<br />Eventbehandlung<br />EDA & Oracle <br />EDA & Esper<br />Wozu braucht man das nun?<br />
Einführung Events<br />1<br />
Financial Services<br />Transportation & Logistics<br />Public Sector & Military<br />Manufacturing<br />Utilities & Insur...
Intrusion detection systems
Military asset allocation</li></ul>Grid Infrastructure Management<br />Reponses to calamities –      	earthquake, flooding...
EDA Basics: Event<br />Zwei Bedeutungen:<br />Etwas, das wahrnehmbar geschieht<br />Etwas, das diese Aktivität in einem Co...
EDA Basics: Event<br />
EDA Basics: Wie sieht ein technisches Event aus?<br />
Eventbehandlung<br />2<br />
Event Processing<br />Durchführung von Operationen auf Ereignissen:<br />Lesen<br />Ändern<br />Erzeugen<br />Terminieren<...
Bausteine der Eventverarbeitung<br />
Simple Event Processing (SEP)<br />
Event Stream Processing (ESP)<br />„Notableevents“ UND „ordinaryevents“ treten auf<br />„ordinaryevents“:<br />Repräsentie...
Event Stream Processing (ESP)<br />
Complex Event Processing (CEP)<br />Complex<br />Event<br />Processor<br />Event Source<br />Filtering; Temporal and causa...
Complex Event Processing (CEP)<br />CEP befasst sich mit dem Zusammentreffen unterschiedlicher Events  um Aktionen abzule...
Complex Event Processing (CEP)<br />
Wo ist der Unterschied zwischen ESP und CEP?<br />Unterschiede:<br />ESP: Verarbeitung von Streams<br />Event Stream ist S...
Continuous Query Language (CQL) <br />Deklarative Anfragesprache für Datenströme in Data-Stream-Management-Systemen<br />E...
Continuous Query Language (CQL)<br />Wesentliche Erweiterung von CQL zu SQL: <br />Zusätzlich zu Relationen existieren Dat...
Beispiel CQL<br />Es werden kontinuierlich Wetterdaten gemessen, die als Datenstrom in einer Applikation ankommen. <br />D...
ORDER 325<br />Customer C2<br />Address A1<br />Credit Card Z2<br />ORDER 567<br />Customer C5<br />Address A1<br />Credit...
Fundamental CEP Design Patterns<br />Filtering<br />In-memory caching<br />Aggregation over windows<br />Database lookups<...
Conceptual Overview<br />Three major building blocks<br />Event producers<br />Event Processing Network<br />Event consume...
3<br />EDA & Oracle<br />
Innovation – Oracle SOA-Plattform<br />PATTERNDETECTION<br />BUSINESSVISIBILITY<br />MANAGEMONITOR<br />DESIGN<br />SECURE...
Oracle Tooling<br />
Oracle CEP – Constructs & Visual Tooling<br />Event-driven components<br />Adapter<br />Complex Event Processor<br />Sink<...
Oracle CEP – CQL Source Editing<br />Syntax highlighting<br />Validation<br />Query templates<br />
Demo<br />
Event Delivery Network (EDN)<br />Seite 30<br />
Next Gen Event Tracing<br />
Create Business Events<br />
33<br />Create Business Events<br />XML schema defines payload<br />Event Definition Language (EDL) defines event<br />
Publish Business Events (from Mediator)<br />Mediator with static routing rule set to event<br />
Publish Business Events (from BPEL)<br />Using BPEL invoke activity to publish an event<br />
Subscribe to Business Events<br />Mediator with “Subscribe to Events”<br />
Subscribe to Business Events<br />
Subscribe to Business Events<br />Filter on event payload using XPath expression<br />
4<br />EDA & Esper<br />
Esper Overview<br />Esper – A Java technology ESP/CEP container<br />When Esper statement then your Java code as usual<br ...
Esper – Architecture<br />Queries are registered, data flows through them<br />Engine: Unit of isolation (time, threads, s...
Rich IDE<br />Debugging<br />JMX instrumentation<br />Embeddable<br />Available as a service<br />Performance<br />Event h...
5<br />Wozu braucht man das nun?<br />
Einsatzszenarien SOA/EDA<br />Eine Komponente sollte SOA für einen Serviceaufruf nutzen, wenn …<br />… genau bekannt ist, ...
Enabling „alter“ Anwendungen Richtung SOA<br />
Entkopplung von SOA-Domänen<br />Event-Driven SOA (ED-SOA)<br />
Beispiel: Integration von Systemen <br />Middleware<br />Virtualisierung Frontend<br />Frontend<br />Virtualisierung Backe...
Fortsetzung Beispiel: Integration von Systemen <br />Quellsystem feuert Event<br />Nicht an Weiterverarbeitung interessier...
Prozesskopplung<br />Komplexe Vorgänge lassen sich oft nicht als lineare Prozessketten formulieren.<br />Steuerprozess sam...
6<br />Fazit<br />
Upcoming SlideShare
Loading in …5
×

Event Driven Architecture - OPITZ CONSULTING - Schmutz - Winterberg

1,395 views

Published on

In ihrer Präsentation "Event Driven Architecture" zeigen Torsten Winterberg (Direktor Strategie & Innovation bei OPITZ CONSULTING) und Guido Schmutz (Technology Manager bei Trivadis) den Nutzen von EDA für moderne Anwendungslandschaften auf.

Published in: Technology, Economy & Finance
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,395
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Event Driven Architecture - OPITZ CONSULTING - Schmutz - Winterberg

  1. 1. Guido Schmutz<br />Trivadis<br />Torsten Winterberg<br />OPITZ CONSULTING GmbH<br />Nutzen für moderne Anwendungslandschaften<br />Düsseldorf, den 23.02.2011<br />Event DrivenArchitecture (EDA)<br />
  2. 2. Agenda<br />Einführung Events<br />Eventbehandlung<br />EDA & Oracle <br />EDA & Esper<br />Wozu braucht man das nun?<br />
  3. 3. Einführung Events<br />1<br />
  4. 4. Financial Services<br />Transportation & Logistics<br />Public Sector & Military<br />Manufacturing<br />Utilities & Insurance<br />Telecommunications & Services<br />Distributed order orchestration<br />Asset management<br />Algorithmic trading<br />‘Negative Working Capital’ inventory management<br /><ul><li>Proximity/Location Tracking
  5. 5. Intrusion detection systems
  6. 6. Military asset allocation</li></ul>Grid Infrastructure Management<br />Reponses to calamities – earthquake, flooding<br />
  7. 7. EDA Basics: Event<br />Zwei Bedeutungen:<br />Etwas, das wahrnehmbar geschieht<br />Etwas, das diese Aktivität in einem Computersystem repräsentiert(Event Object)<br />Der „Event“-Begriff ist überladen<br />Business Event:<br />Statuswechsel in einer Unternehmung<br />Wir sind interessiert am<br />
  8. 8. EDA Basics: Event<br />
  9. 9. EDA Basics: Wie sieht ein technisches Event aus?<br />
  10. 10. Eventbehandlung<br />2<br />
  11. 11. Event Processing<br />Durchführung von Operationen auf Ereignissen:<br />Lesen<br />Ändern<br />Erzeugen<br />Terminieren<br />Voraussetzungen für EDA:<br />Realität weicht von Erwartungshaltung ab<br />Also spezifiziere: <br />Erwartungshaltung<br />Signifikante Abweichung<br />Antwortverhalten<br />
  12. 12. Bausteine der Eventverarbeitung<br />
  13. 13. Simple Event Processing (SEP)<br />
  14. 14. Event Stream Processing (ESP)<br />„Notableevents“ UND „ordinaryevents“ treten auf<br />„ordinaryevents“:<br />Repräsentieren „businessasusual“: Bestellungen, RFID-Übertragungen, etc.<br />Können lokal vorgefiltert werden, ehe sie in den Event Stream übergeben werden: -> Erkennen von „notable“-Zuständen<br />
  15. 15. Event Stream Processing (ESP)<br />
  16. 16. Complex Event Processing (CEP)<br />Complex<br />Event<br />Processor<br />Event Source<br />Filtering; Temporal and causality constraints<br />Validate<br />Aggregation; event-data join<br />Enrich<br />Transform<br />Create “complex event”<br />Intelligent routing; content-based routing; event-driven flows<br />Route<br />Operate<br />Service invocation; alert; dynamic flows<br />Source: IBM<br />Event Consumer<br />
  17. 17. Complex Event Processing (CEP)<br />CEP befasst sich mit dem Zusammentreffen unterschiedlicher Events  um Aktionen abzuleiten<br />Die Events (notable oder ordinary) können unterschiedliche Eventtypen haben und zusätzlich über lange Zeiträume auftreten<br />Die Event-Korrelation kann inhaltlich, zeitlich oder räumlich sein<br />CEP wird verwendet, um Anomalien, Bedrohungen oder Chancen im Geschäft detektieren (und darauf reagieren) zu können<br />
  18. 18. Complex Event Processing (CEP)<br />
  19. 19. Wo ist der Unterschied zwischen ESP und CEP?<br />Unterschiede:<br />ESP: Verarbeitung von Streams<br />Event Stream ist Sequenz von Events, zeitlich geordnet (z. B. Börsenticker)<br />CEP: Verarbeitung von Clouds<br />Event Cloud ist das Ergebnis von vielen eventerzeugenden Aktivitäten aus unterschiedlichen Teilen eines IT-Systems.<br />Eine Event Cloud könnte mehrere Streams enthalten. Ein Stream ist ein Spezialfall einer Cloud.<br />Annahme einer vorliegenden zeitlichen Reihenfolge in Event Streams hat Vorteile:<br />Schnell, nur wenige Events merken<br />In Clouds dagegen: <br />Abhängigkeiten sind wichtig: Welche abhängigen Events sind aufgetreten oder vielleicht ausgeblieben?<br />In Zukunft werden mit der Evolution der Event Processing Engines nur die marginalen Differenzen verschwimmen. <br />
  20. 20. Continuous Query Language (CQL) <br />Deklarative Anfragesprache für Datenströme in Data-Stream-Management-Systemen<br />Erweiterung von SQL<br />Im Rahmen des STREAM-Projekts an der Stanford University entwickelt <br />Noch in der Entwicklung begriffen und nicht offiziell standardisiert<br />Oracle setzt CQL innerhalb der CEP-Engine im Release 11 der SOA Suite ein<br />
  21. 21. Continuous Query Language (CQL)<br />Wesentliche Erweiterung von CQL zu SQL: <br />Zusätzlich zu Relationen existieren Datenströme als Datentypen <br />Datenströme lassen sich als potentiell unendliche Folge von Zeit-Wertepaaren auffassen <br />Umwandlung zwischen Strömen und Relationen durch zwei Arten von Operatoren:<br />Ströme in Relationen<br />„Fenster“-Operator [...]<br />Relationen in Ströme<br />Insert-Stream-Operator ISTREAM<br />Delete-Stream-Operator DSTREAM<br />Relation-Stream-Operator RSTREAM<br />
  22. 22. Beispiel CQL<br />Es werden kontinuierlich Wetterdaten gemessen, die als Datenstrom in einer Applikation ankommen. <br />Der folgende CQL-Ausdruck liefert mit Hilfe eines Fenster-Operators die Durchschnittstemperatur der vergangenen24 Stunden:<br /> SELECT AVG(Temperatur) FROM Wetter [Range 1 Day]<br />Da es sich um eine kontinuierliche Anfrage handelt, wird diese per Istream standardmäßig wieder in einen Datenstrom umgewandelt. <br />Die vollständige Anfrage lautet also:<br /> SELECT ISTREAM(AVG(Temperatur) FROM Wetter [Range 1 Day])<br />
  23. 23. ORDER 325<br />Customer C2<br />Address A1<br />Credit Card Z2<br />ORDER 567<br />Customer C5<br />Address A1<br />Credit Card Z5<br />ORDER 1<br />Customer C1<br />Address A1<br />Credit Card Z1<br />ORDER 567<br />Customer C4<br />Address A1<br />Credit Card Z4<br />Channel 3: web B<br />ORDER 567<br />Customer C3<br />Address A1<br />Credit Card Z3<br />Channel 2: phone<br />Channel 1: web A<br />time<br />CQL-Beispiel<br />CREATE STREAM S ( order_id int, ship_address char(64), credit_card_id BigInt,<br /> […]);<br />CREATE VIEW V1 (ship_address, credit_card_id) Rstream (SELECT DISTINCT ship_address,credit_card_id FROM S [RANGE 180 DAYS]);<br />CREATE VIEW V2 (ship_address, Xcount) RStream (SELECT ship_address, COUNT(*) FROM V1 [RANGE 180 DAYS] group by ship_address;<br />CREATE QUERY Q SELECT Xcount, credit_card_id FROM V2, V1 WHERE Xcount > 5 AND V2.ship_address = V1.ship_address; <br />
  24. 24. Fundamental CEP Design Patterns<br />Filtering<br />In-memory caching<br />Aggregation over windows<br />Database lookups<br />Database writes<br />Correlation (joins)<br />Event pattern matching<br />State machines<br />Hierarchical events<br /> Dynamic queries<br />Source: http://www.coral8.com/system/files/assets/pdf/Coral8DesignPatterns.pdf<br />
  25. 25. Conceptual Overview<br />Three major building blocks<br />Event producers<br />Event Processing Network<br />Event consumers<br />
  26. 26. 3<br />EDA & Oracle<br />
  27. 27. Innovation – Oracle SOA-Plattform<br />PATTERNDETECTION<br />BUSINESSVISIBILITY<br />MANAGEMONITOR<br />DESIGN<br />SECURE<br />JDEV<br />POLICYMANAGER<br />EM<br />BAM<br />CEP<br />BPEL /BPMNBUSINESS RULESHUMAN WORKFLOW<br />ORCHESTRATE<br />SERVICE BUS / MEDIATOREVENT DELIVERY NETWORK (EDN) DATA INTEGRATOR<br />INTEGRATEVIRTUALIZE<br />REG/REP<br />EVENTS<br />SERVICES<br />ERP<br />MAINFRAME<br />PARTNERS<br />DB<br />Adapters & B2B<br />Source: Oracle<br />
  28. 28. Oracle Tooling<br />
  29. 29. Oracle CEP – Constructs & Visual Tooling<br />Event-driven components<br />Adapter<br />Complex Event Processor<br />Sink<br />Event types<br />Event objects are instances of event types<br />Implemented as JavaBeans, Maps or “Tuples”<br />Graphical visualization and editing of Event Processing Network (EPN) through Eclipse<br />
  30. 30. Oracle CEP – CQL Source Editing<br />Syntax highlighting<br />Validation<br />Query templates<br />
  31. 31. Demo<br />
  32. 32. Event Delivery Network (EDN)<br />Seite 30<br />
  33. 33. Next Gen Event Tracing<br />
  34. 34. Create Business Events<br />
  35. 35. 33<br />Create Business Events<br />XML schema defines payload<br />Event Definition Language (EDL) defines event<br />
  36. 36. Publish Business Events (from Mediator)<br />Mediator with static routing rule set to event<br />
  37. 37. Publish Business Events (from BPEL)<br />Using BPEL invoke activity to publish an event<br />
  38. 38. Subscribe to Business Events<br />Mediator with “Subscribe to Events”<br />
  39. 39. Subscribe to Business Events<br />
  40. 40. Subscribe to Business Events<br />Filter on event payload using XPath expression<br />
  41. 41. 4<br />EDA & Esper<br />
  42. 42. Esper Overview<br />Esper – A Java technology ESP/CEP container<br />When Esper statement then your Java code as usual<br />Lightweight and embeddable into any Java technology process<br />Open source<br />Convergence of ESP and CEP<br />Project background<br />Release 1.0 announced in June 2006<br />NEsper for .NET<br />CEP and ESP<br />GPL GNU Public License v2.0<br />Embeddable in any Java 5 App Server<br />Groovy and Spring Integration<br />Commercial liability, support and services available EsperTech Inc.<br />
  43. 43. Esper – Architecture<br />Queries are registered, data flows through them<br />Engine: Unit of isolation (time, threads, streams)<br />Statements: Event Processing Language (EPL)<br />Listener: A simple Java technology interface<br />
  44. 44. Rich IDE<br />Debugging<br />JMX instrumentation<br />Embeddable<br />Available as a service<br />Performance<br />Event history replay<br />Integration options<br />Non-intrusive event model<br />Variety of event data storage options<br />Adapters<br />Ability to start/stop queries<br />Ability to change queries on the fly<br />What to look for in a CEP product<br />
  45. 45. 5<br />Wozu braucht man das nun?<br />
  46. 46. Einsatzszenarien SOA/EDA<br />Eine Komponente sollte SOA für einen Serviceaufruf nutzen, wenn …<br />… genau bekannt ist, welcher Dienst aufgerufen werden soll.<br />… der Service genau einmal aufgerufen werden soll.<br />… eine Antwort über die Beendigung eines Dienstes erwartet wird.<br />… wenn eine Antwort erwartet wird.<br />Eine Komponente sollte EDA für eine Ereignispublikation nutzen, wenn …<br />… alle Empfänger benachrichtigt werden sollen, die daran Interesse haben.<br />… nicht bekannt ist, welche Empfänger an dem Ereignis interessiert sind.<br />… nicht bekannt ist, wie Empfänger auf dieses Ereignis reagieren.<br />… wenn unterschiedliche Empfänger unterschiedlich auf das gleiche Ereignis reagieren.<br />… es sich um eine Einweg-Kommunikation vom Sender zum Empfänger handelt.<br />
  47. 47. Enabling „alter“ Anwendungen Richtung SOA<br />
  48. 48. Entkopplung von SOA-Domänen<br />Event-Driven SOA (ED-SOA)<br />
  49. 49. Beispiel: Integration von Systemen <br />Middleware<br />Virtualisierung Frontend<br />Frontend<br />Virtualisierung Backend<br />Backend<br /><<FTP Adapter>><br />xxx_out_ftp<br /><<Webservice>><br />erp_in_xxx<br /><<FTP Adapter>><br />xxx_out_ftp<br /><<Webservice>><br />erp_in_xxx<br /><<ERP>><br />Standardsoftware<br /><<Middleware>><br />OracleSOA Suite 11g<br /><<ERP>><br />Standardsoftware<br /><<Webshop>><br />Individualentwicklung<br /><<Middleware>><br />OracleSOA Suite 11g<br /><<FTP Adapter>><br />xxx_in_ftp<br /><<Webservice>><br />erp_out_xxx<br />ERP aktualisierteine Artikeldefinition<br />Middleware routet zum richtigen Shop<br />SOA Suite übermittelt die Artikeldefinition<br />
  50. 50. Fortsetzung Beispiel: Integration von Systemen <br />Quellsystem feuert Event<br />Nicht an Weiterverarbeitung interessiert<br />Komplette Entkopplung der Aufrufketten<br />Subscriber horcht auf interessante Eventtypen<br />Startet Weiterverarbeitung<br />Abstraktion von Messagingsystem<br />Jetzt Business Event Level<br />
  51. 51. Prozesskopplung<br />Komplexe Vorgänge lassen sich oft nicht als lineare Prozessketten formulieren.<br />Steuerprozess sammelt Events und reagiert ggf. situationsabhängig.<br />
  52. 52. 6<br />Fazit<br />
  53. 53. Fazit<br />SOA und EDA ergänzen sich und sind keine konkurrierenden Architekturen<br />EDN bringt Events als “first class citizens” in die SOA Suite <br />DeklarativerAnsatz<br />Publish/Subscribe-Semantikohnedirekt JMS zunutzen<br />Setzt den Aspektder “Business Events” in den Fokus<br />Führtzu Event-Driven SOA (ED-SOA)<br />
  54. 54. Kontakt<br />Torsten Winterberg<br />Director Strategy & Innovation Head of Competence Center SOAOracle ACE Director<br />OPITZ CONSULTING GmbHKirchstr. 6, 51647 Gummersbach, GermanyPhone: +49 2261 6001 0torsten.winterberg@opitz-consulting.com<br />
  55. 55. Kontakt<br />Guido Schmutz<br />Technology Manager/PartnerOracle ACE Director<br />Trivadis AGPapiermühlestrasse 73, 3014 Bern, SwitzerlandPhone: +41 31 928 09 60guido.schmutz@trivadis.com<br />

×