SlideShare a Scribd company logo
Event-Driven Architecture Como, Quando e Porquê?ARC316NunoGodinhoPartner & CTO @ ITech4Allnuno.godinho@itech4all.com@NunoGodinho
Session abstractSession title
Speaker Bio and PhotoSpeaker Name
Nuno Filipe GodinhoPartner & CTO @ ITech4allMail: 	Nuno.Godinho@itech4all.comNuno.Godinho@sapo.ptBlogs:	http://pontonetpt.com/blogs/nunogodinhohttp://xamlpt.com/blogs/nunogodinhohttp://weblogs.asp.net/nunogodinhohttp://msmvps.org/blogs/nunogodinhoTwitter: @NunoGodinhoAbout Me
IntroductionEvent Driven ArchitectureSOA vs EDAHow to ImplementResourcesQ&AAgenda
Introduction
SOA is a synchronous RPC (mostly over Web services)EDA is SOAThe best of EDA and SOA is combined in SOA 2.0IntroductionCommon Thoughts about SOA and EDA
 Moving towards on-Demand Business. Why?Organizations tend to change their structure frequentlyParts of the business process are outsourced to External PartnersDepartments and business units are seen now as service providersFocus not only internally on the organization, but they are seeking for external markets to offer their servicesIntroductionTrend Change
 Moving towards on-Demand Business. Why?Everything is moving toward on-demand business where service providers react to impulses from the environment.Loose coupling between application componentsIntroductionTrend Change
Linking application to simplify and automate a process, while avoiding changes to existing applicationsIntroductionSample Painpoint : EAI – Enterprise Application Integration
File TranferImport and Export FilesCommon Issues:Various Formats Needs TranslationManually LoadedIntroductionHow to Solve this painpoint?
Shared DatabasesMaking integration on the Database LevelSeveral Applications share the same DatabaseCommon Issues:Data is tightly coupled to multiple applicationsIncremental or partial updates are impossibleIntroductionHow to Solve this painpoint?
Web ServicesProviding Services to automate the integrationCommon Issues:Requires services to be available at invocationResults in multiple call stacksResource consumingYet another Remote Procedure Call (RPC, COM, Corba, DCOM, ...)IntroductionHow to Solve this painpoint?
MessagingUsing Messaging mechanismsBasics:Defined data formatAsynchronous OperationsMinimized CouplingFault ToleranceData FreshnessIntroductionHow to Solve this painpoint?
MessagingDefined data formatContract between Producer and ConsumerInternal formats remain privateIntegration is maintained at the edge of the application, to prevent internal changes to impact the interfaceIntroductionHow to Solve this painpoint?
MessagingAsynchronous OperationsProcesses run on their own contextSource process continuesNo need for the service to be always availableIntroductionHow to Solve this painpoint?
MessagingMinimized CouplingAdditive Model reducing the changes needed to existing systemsReduces dependenciesIncreases service reuseEnable Isolated Service TestingIntroductionHow to Solve this painpoint?
MessagingFault ToleranceDurable MessagingImproved recoverabilityCompensating Actions to handle partial failuresIntroductionHow to Solve this painpoint?
MessagingData FreshnessFavors small data transferMinimized data exchange latencyIntroductionHow to Solve this painpoint?
EventsRepresent a change in stateSelf-ContainedPure and complete representation of an EventNo references to other data sourcesReduces dependencies, Loosens coupling Uniquely indentifiedEnabled idempotent handling eventsImproves tracebility of related processingAllows correlation with related eventsIntroductionHow to Solve this painpoint?
EventsTime relevant, not time sensitiveSourced using messagingObservable Published events can be observed by multiple subscribersEvent stream ProcessingIntroductionHow to Solve this painpoint?
Event TypesExecutionLifecycleManagementBusinessIntroductionHow to Solve this painpoint?
Event Driven Architecture
Architecture pattern that orchestrates behavior around:ProductionDetection Consumption of events as well as the responses they invoke.A method for building enterprise systems in which events flow between decoupled components and servicesA maintainable, sustainable and extensible model for building complex, distributed applicationsEvent Driven ArchitectureWhat is EDA?
Suited for Asynchronous, unpredictable environmentsExtremely Loosely Coupled Inversion of communication Event Driven ArchitectureWhat is EDA?
Companies must manage and react to a large number events every day in real timeReal time trade settlement systemsFlight reservation systemStreaming stock dataReal time vehicle location for transportation companiesStock Exchange Market systemsSystem designers normally must support both events and ServicesSystems must be “Business Oriented”Event Driven ArchitectureWhy do we need EDA?
Concerns events that are directly related to specific, measurable changes of conditionEvent Driven ArchitectureSimple Event Processing
Both ordinary and notable events happenEvent Driven ArchitectureStream Event Processing
Allows patterns of simple and ordinary events to be considered to infer that a complex event has occurredEvent Driven ArchitectureComplex Event Processing
  SOA-2: Event-Driven Service Oriented ArchitectureEvent Driven ArchitectureWhat is Complex Event Processing?Event Stream ProcessingComplex Event Processingtime123456789Event pattern of significance where prompt detection and action can have materially impact
  SOA-2: Event-Driven Service Oriented ArchitectureEvent Driven ArchitectureWhat is Complex Event Processing?WHEN   MSFT price moves outside 2% of MSFT-15-minute-VWAPFOLLOWED-BY(S&P moving by 0.5%AND(HPQ’s price moves up by 5%ORMSFT’s price moves down by 2%   ))!  ALL WITHIN    any 2 minute time periodS&P500! ! MSFT 15-MIN-VWAP! NYSENASDAQTHENBUY MSFT   SELL HPQtime Multiple data streams
 Temporal sequencing
 Complex event sequences Real-time Data Streams Real-time constraints
 Automated actionsEvent Driven ArchitectureImplementation Components
Event Driven ArchitectureEvent Processing Engine
Event GeneratorEvent ChannelEvent Processing EngineDownstream ActivityEvent Driven ArchitectureEvent Flow Layers
  SOA-2: Event-Driven Service Oriented ArchitectureEvent-driven ProcessAutomating the basic processOTHER SERVICESOTHER SERVICESOTHER SERVICESInvestment manager wants order management system integrated with trading deskECNORDER MANAGEMENT SYSTEMBROKERTRADINGDESKEXCHANGETRADER
  SOA-2: Event-Driven Service Oriented ArchitectureEvent-driven ProcessesOperational improvementOTHER SERVICESOTHER SERVICESCOMPLIANCEENGINEOTHER SERVICESTRADINGDESKPresident wants compliance engine to monitor trading activities to eliminate cash liability during market swingsINBOUNDTRANSFORMATIONOUTBOUNDTRANSFORMATION?ECNORDER MANAGEMENT SYSTEMBROKEREXCHANGETRADERFUND MANAGER
  SOA-2: Event-Driven Service Oriented ArchitectureEvent-driven ProcessesKeeping up with regulationsOTHER SERVICESCOMPLIANCE ENGINELOGGING SERVICEOTHER SERVICESOTHER SERVICESTRADINGDESKDBBoard wants trades logged for Sarbanes-Oxley and integrated with company-wide risk managementINBOUNDTRANSFORMATIONOUTBOUNDTRANSFORMATIONTOCORPORATERISK MGT?ECNORDER MANAGEMENT SYSTEMBROKEREXCHANGETRADERFUND MANAGER
SOA vs EDA
SOA vs EDASOA Core Services
SOA provides an organizing and delivery paradigm that derives greater value by reusing existing software solutions rather than duplicating capabilitiesSOA establishes services as the mechanism by which needs and capabilities are brought togetherSOA standardizes the necessary interfaces and behavior to support interactionSOA vs EDAWhat is SOA?ServiceSCapabilities performed by one for another to achieve a desired outcomeOrientedOWhen capabilities are self-contained and independent to enable a collection of services to be linked together to solve a business problemArchitectureAThe fundamental organization of a system embodied in its capabilities, their interactions, and the environment
SOA vs EDAService Oriented ArchitectureApplications are composed in design-timeLinear flow between servicesPredictable behaviorRequest/Response is common, and often overusedEvent Driven ArchitectureApplications are composed at run-timeAsynchronous componentsReactive behavior
Support strong cohesion in the business processes, situations where all process steps are under one controlCommonly applied to:Verticalinteraction between the hierarchical layers of functional decompositionFunctional request-and-reply processes such as man-machine dialogues; the user waits for an answerProcesses with a transactional nature which require commit and rollback facilitiesData enrichment in a message to be published to bring the message to its full content in a formal formatSOA vs EDAWhen to use SOA?
Support independency between business process stepsCommonly applied to:Horizontal communication between tiers in a process chainWorkflow type of processesProcesses that cross recognizable functional organization borders, external (B2B) as well as internalSOA vs EDAWhen to use EDA?
SOA vs EDAVisualization
How to Implement
Using Web service technologies today, and additional SOAP-aware message queuing infrastructure.Current ESB infrastructures provide a way of message queuing combined with Web service technologies.SOA and EDA implementations must be regarded in the context of Business Process Management (BPM)How to Implement
Modern BPM-tools are based on BPEL (Business Process Execution Language)Current BPEL implementation focuses strongly on the command-and-control model, the orchestration of services, and so on SOABeside orchestration BPEL - to a certain extend - also supports workflow, a kind of choreography, which goes in the direction of EDABPEL has a procedural natureEDA would rather be a declarative model.How to Implement
Preparatory steps:Model business requirements into functions at the granularity level of the desired autonomy. Outline the application landscape to identify all affected systems. Map the application landscape to the business function model. Identify applications that cross functional borders as potential "agility bottlenecks" (assign a special high priority to those applications that are required to cross external organization borders). Basis for the decoupled service boundaries How to ImplementScenarios where SOA and EDA can easily co-exist
Resources

More Related Content

PPTX
Dave Jones, CIO at Cape Plc - Transition of Autonomous regional IT to Providi...
PPT
Why Coordination And Transactions Are Key To Building An Operational Soa
PPT
BPM & Workflow in the New Enterprise Architecture
PPT
D1 3 200710 Poznan+Paris Bpm Arch
PPT
Ws Soa V6 Theory And Practice
PPTX
KTSL Overview July 2014
PPTX
How EA, BPM, SOA and ECM work together
PPT
SOA in banking issues and remedies
Dave Jones, CIO at Cape Plc - Transition of Autonomous regional IT to Providi...
Why Coordination And Transactions Are Key To Building An Operational Soa
BPM & Workflow in the New Enterprise Architecture
D1 3 200710 Poznan+Paris Bpm Arch
Ws Soa V6 Theory And Practice
KTSL Overview July 2014
How EA, BPM, SOA and ECM work together
SOA in banking issues and remedies

What's hot (20)

PPTX
6 Things to Look for when Choosing Contract Management Software
PPT
Achieving synergy between BPM, SOA and EA
PPT
SOA - BPM
PDF
ServiceNow Governance, Risk, and Compliance
PPS
A Business Process-Centric Approach To Financial Transactions
PPTX
Ascent overview deck_sep_25_2013
PPTX
SPSNH12 - SharePoint + Contract Management
PDF
Impact 2011 2667 - Developing effective services for use in critical business...
PPT
21 Secrets of Self-Service IT Request Fulfillment
PPTX
Simplifying Contract Lifecycle Management with SharePoint
PDF
Usda ocio-its itsm7-integration_architecturediagram_v1_100109
PPTX
Creating a Workflow engine for BPM Application through the use of the Microse...
PPTX
Managing Contracts with SharePoint
PPTX
Protecting SAP® Data with Managed File Transfer
PPT
Three SOA Case Studies
PPT
Tss Reference Architecture Reduced
PDF
Managing Contract Obligations and Milestones with SharePoint
PDF
BPM Benefits
PPTX
Implementing IT Service Management: A Guide to Success
PDF
Reducing The Time And Costs Associated With Sarbanes Oxley Compliance
6 Things to Look for when Choosing Contract Management Software
Achieving synergy between BPM, SOA and EA
SOA - BPM
ServiceNow Governance, Risk, and Compliance
A Business Process-Centric Approach To Financial Transactions
Ascent overview deck_sep_25_2013
SPSNH12 - SharePoint + Contract Management
Impact 2011 2667 - Developing effective services for use in critical business...
21 Secrets of Self-Service IT Request Fulfillment
Simplifying Contract Lifecycle Management with SharePoint
Usda ocio-its itsm7-integration_architecturediagram_v1_100109
Creating a Workflow engine for BPM Application through the use of the Microse...
Managing Contracts with SharePoint
Protecting SAP® Data with Managed File Transfer
Three SOA Case Studies
Tss Reference Architecture Reduced
Managing Contract Obligations and Milestones with SharePoint
BPM Benefits
Implementing IT Service Management: A Guide to Success
Reducing The Time And Costs Associated With Sarbanes Oxley Compliance
Ad

Similar to TechDays 2010 Portugal - Event Driven Architectures - 16x9 (20)

PPT
PPT
BPM & Workflow in the New Enterprise Architecture
PPTX
Microsoft SQL Server 2008 R2 and BizTalk Server Presentation
PDF
KAFKA Summit 2021: From legacy systems to microservices and back.pdf
PPT
Business Integration
PPTX
MGT310 Reduce Support Costs and Improve Business Alignment with Microsoft Sys...
PPT
Event Driven Architecture (EDA), November 2, 2006
PPTX
Guido schmutz-jax2011-event-driven soa
PPT
SOA Presentation
PDF
Digital integration hub: Why, what and how?
PPT
Webinar: Gaining Control and Visibility of Your Virtualized Infrastructure
PDF
Mashups and Business Process Management in SOA
PPT
Architecting Enterprise BPM Systems for Optimal Agility
PPT
Soa & Bpel
PPT
Soa & Bpel
PPT
Architecting enterprise BPM systems for optimal agility
PPT
Phase Two: What’s Next for Life Sciences and Enterprise Content Management
PPT
Soa Business And Technical Overview Presentation (Reed003707)
PPT
Soa Business And Technical Overview Presentation (Reed003707)
PPT
Soa Business And Technical Overview Presentation (Reed003707)
BPM & Workflow in the New Enterprise Architecture
Microsoft SQL Server 2008 R2 and BizTalk Server Presentation
KAFKA Summit 2021: From legacy systems to microservices and back.pdf
Business Integration
MGT310 Reduce Support Costs and Improve Business Alignment with Microsoft Sys...
Event Driven Architecture (EDA), November 2, 2006
Guido schmutz-jax2011-event-driven soa
SOA Presentation
Digital integration hub: Why, what and how?
Webinar: Gaining Control and Visibility of Your Virtualized Infrastructure
Mashups and Business Process Management in SOA
Architecting Enterprise BPM Systems for Optimal Agility
Soa & Bpel
Soa & Bpel
Architecting enterprise BPM systems for optimal agility
Phase Two: What’s Next for Life Sciences and Enterprise Content Management
Soa Business And Technical Overview Presentation (Reed003707)
Soa Business And Technical Overview Presentation (Reed003707)
Soa Business And Technical Overview Presentation (Reed003707)
Ad

More from Nuno Godinho (12)

PPTX
Windows Azure Security & Compliance
PPT
Architecture Best Practices on Windows Azure
PPT
Tips & Tricks On Architecting Windows Azure For Costs
PPTX
Wif and sl4 (pt)
PPTX
Wif and sl4 (en)
PPTX
Extensibility with sl4 and mef (pt)
PPTX
Extensibility with sl4 and mef (en)
PPTX
TechDays 2010 Portugal - WCF RIA Services 16x9
PPTX
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9
PPTX
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
PPTX
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
PPTX
TechDays 2010 Portugal - Entity Framework 4.0 and Beyond
Windows Azure Security & Compliance
Architecture Best Practices on Windows Azure
Tips & Tricks On Architecting Windows Azure For Costs
Wif and sl4 (pt)
Wif and sl4 (en)
Extensibility with sl4 and mef (pt)
Extensibility with sl4 and mef (en)
TechDays 2010 Portugal - WCF RIA Services 16x9
TechDays 2010 Portugal - The Microsoft Silverlight Analytics Framework 16x9
TechDays 2010 Portugal - Scaling your data tier with app fabric 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Entity Framework 4.0 and Beyond

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Modernizing your data center with Dell and AMD
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
Electronic commerce courselecture one. Pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
The Rise and Fall of 3GPP – Time for a Sabbatical?
NewMind AI Weekly Chronicles - August'25 Week I
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Monthly Chronicles - July 2025
Modernizing your data center with Dell and AMD
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
A Presentation on Artificial Intelligence
Review of recent advances in non-invasive hemoglobin estimation
Unlocking AI with Model Context Protocol (MCP)
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
The AUB Centre for AI in Media Proposal.docx

TechDays 2010 Portugal - Event Driven Architectures - 16x9

  • 1. Event-Driven Architecture Como, Quando e Porquê?ARC316NunoGodinhoPartner & CTO @ ITech4Allnuno.godinho@itech4all.com@NunoGodinho
  • 3. Speaker Bio and PhotoSpeaker Name
  • 4. Nuno Filipe GodinhoPartner & CTO @ ITech4allMail: Nuno.Godinho@itech4all.comNuno.Godinho@sapo.ptBlogs: http://pontonetpt.com/blogs/nunogodinhohttp://xamlpt.com/blogs/nunogodinhohttp://weblogs.asp.net/nunogodinhohttp://msmvps.org/blogs/nunogodinhoTwitter: @NunoGodinhoAbout Me
  • 5. IntroductionEvent Driven ArchitectureSOA vs EDAHow to ImplementResourcesQ&AAgenda
  • 7. SOA is a synchronous RPC (mostly over Web services)EDA is SOAThe best of EDA and SOA is combined in SOA 2.0IntroductionCommon Thoughts about SOA and EDA
  • 8. Moving towards on-Demand Business. Why?Organizations tend to change their structure frequentlyParts of the business process are outsourced to External PartnersDepartments and business units are seen now as service providersFocus not only internally on the organization, but they are seeking for external markets to offer their servicesIntroductionTrend Change
  • 9. Moving towards on-Demand Business. Why?Everything is moving toward on-demand business where service providers react to impulses from the environment.Loose coupling between application componentsIntroductionTrend Change
  • 10. Linking application to simplify and automate a process, while avoiding changes to existing applicationsIntroductionSample Painpoint : EAI – Enterprise Application Integration
  • 11. File TranferImport and Export FilesCommon Issues:Various Formats Needs TranslationManually LoadedIntroductionHow to Solve this painpoint?
  • 12. Shared DatabasesMaking integration on the Database LevelSeveral Applications share the same DatabaseCommon Issues:Data is tightly coupled to multiple applicationsIncremental or partial updates are impossibleIntroductionHow to Solve this painpoint?
  • 13. Web ServicesProviding Services to automate the integrationCommon Issues:Requires services to be available at invocationResults in multiple call stacksResource consumingYet another Remote Procedure Call (RPC, COM, Corba, DCOM, ...)IntroductionHow to Solve this painpoint?
  • 14. MessagingUsing Messaging mechanismsBasics:Defined data formatAsynchronous OperationsMinimized CouplingFault ToleranceData FreshnessIntroductionHow to Solve this painpoint?
  • 15. MessagingDefined data formatContract between Producer and ConsumerInternal formats remain privateIntegration is maintained at the edge of the application, to prevent internal changes to impact the interfaceIntroductionHow to Solve this painpoint?
  • 16. MessagingAsynchronous OperationsProcesses run on their own contextSource process continuesNo need for the service to be always availableIntroductionHow to Solve this painpoint?
  • 17. MessagingMinimized CouplingAdditive Model reducing the changes needed to existing systemsReduces dependenciesIncreases service reuseEnable Isolated Service TestingIntroductionHow to Solve this painpoint?
  • 18. MessagingFault ToleranceDurable MessagingImproved recoverabilityCompensating Actions to handle partial failuresIntroductionHow to Solve this painpoint?
  • 19. MessagingData FreshnessFavors small data transferMinimized data exchange latencyIntroductionHow to Solve this painpoint?
  • 20. EventsRepresent a change in stateSelf-ContainedPure and complete representation of an EventNo references to other data sourcesReduces dependencies, Loosens coupling Uniquely indentifiedEnabled idempotent handling eventsImproves tracebility of related processingAllows correlation with related eventsIntroductionHow to Solve this painpoint?
  • 21. EventsTime relevant, not time sensitiveSourced using messagingObservable Published events can be observed by multiple subscribersEvent stream ProcessingIntroductionHow to Solve this painpoint?
  • 24. Architecture pattern that orchestrates behavior around:ProductionDetection Consumption of events as well as the responses they invoke.A method for building enterprise systems in which events flow between decoupled components and servicesA maintainable, sustainable and extensible model for building complex, distributed applicationsEvent Driven ArchitectureWhat is EDA?
  • 25. Suited for Asynchronous, unpredictable environmentsExtremely Loosely Coupled Inversion of communication Event Driven ArchitectureWhat is EDA?
  • 26. Companies must manage and react to a large number events every day in real timeReal time trade settlement systemsFlight reservation systemStreaming stock dataReal time vehicle location for transportation companiesStock Exchange Market systemsSystem designers normally must support both events and ServicesSystems must be “Business Oriented”Event Driven ArchitectureWhy do we need EDA?
  • 27. Concerns events that are directly related to specific, measurable changes of conditionEvent Driven ArchitectureSimple Event Processing
  • 28. Both ordinary and notable events happenEvent Driven ArchitectureStream Event Processing
  • 29. Allows patterns of simple and ordinary events to be considered to infer that a complex event has occurredEvent Driven ArchitectureComplex Event Processing
  • 30. SOA-2: Event-Driven Service Oriented ArchitectureEvent Driven ArchitectureWhat is Complex Event Processing?Event Stream ProcessingComplex Event Processingtime123456789Event pattern of significance where prompt detection and action can have materially impact
  • 31. SOA-2: Event-Driven Service Oriented ArchitectureEvent Driven ArchitectureWhat is Complex Event Processing?WHEN MSFT price moves outside 2% of MSFT-15-minute-VWAPFOLLOWED-BY(S&P moving by 0.5%AND(HPQ’s price moves up by 5%ORMSFT’s price moves down by 2% ))! ALL WITHIN any 2 minute time periodS&P500! ! MSFT 15-MIN-VWAP! NYSENASDAQTHENBUY MSFT SELL HPQtime Multiple data streams
  • 33. Complex event sequences Real-time Data Streams Real-time constraints
  • 34. Automated actionsEvent Driven ArchitectureImplementation Components
  • 35. Event Driven ArchitectureEvent Processing Engine
  • 36. Event GeneratorEvent ChannelEvent Processing EngineDownstream ActivityEvent Driven ArchitectureEvent Flow Layers
  • 37. SOA-2: Event-Driven Service Oriented ArchitectureEvent-driven ProcessAutomating the basic processOTHER SERVICESOTHER SERVICESOTHER SERVICESInvestment manager wants order management system integrated with trading deskECNORDER MANAGEMENT SYSTEMBROKERTRADINGDESKEXCHANGETRADER
  • 38. SOA-2: Event-Driven Service Oriented ArchitectureEvent-driven ProcessesOperational improvementOTHER SERVICESOTHER SERVICESCOMPLIANCEENGINEOTHER SERVICESTRADINGDESKPresident wants compliance engine to monitor trading activities to eliminate cash liability during market swingsINBOUNDTRANSFORMATIONOUTBOUNDTRANSFORMATION?ECNORDER MANAGEMENT SYSTEMBROKEREXCHANGETRADERFUND MANAGER
  • 39. SOA-2: Event-Driven Service Oriented ArchitectureEvent-driven ProcessesKeeping up with regulationsOTHER SERVICESCOMPLIANCE ENGINELOGGING SERVICEOTHER SERVICESOTHER SERVICESTRADINGDESKDBBoard wants trades logged for Sarbanes-Oxley and integrated with company-wide risk managementINBOUNDTRANSFORMATIONOUTBOUNDTRANSFORMATIONTOCORPORATERISK MGT?ECNORDER MANAGEMENT SYSTEMBROKEREXCHANGETRADERFUND MANAGER
  • 41. SOA vs EDASOA Core Services
  • 42. SOA provides an organizing and delivery paradigm that derives greater value by reusing existing software solutions rather than duplicating capabilitiesSOA establishes services as the mechanism by which needs and capabilities are brought togetherSOA standardizes the necessary interfaces and behavior to support interactionSOA vs EDAWhat is SOA?ServiceSCapabilities performed by one for another to achieve a desired outcomeOrientedOWhen capabilities are self-contained and independent to enable a collection of services to be linked together to solve a business problemArchitectureAThe fundamental organization of a system embodied in its capabilities, their interactions, and the environment
  • 43. SOA vs EDAService Oriented ArchitectureApplications are composed in design-timeLinear flow between servicesPredictable behaviorRequest/Response is common, and often overusedEvent Driven ArchitectureApplications are composed at run-timeAsynchronous componentsReactive behavior
  • 44. Support strong cohesion in the business processes, situations where all process steps are under one controlCommonly applied to:Verticalinteraction between the hierarchical layers of functional decompositionFunctional request-and-reply processes such as man-machine dialogues; the user waits for an answerProcesses with a transactional nature which require commit and rollback facilitiesData enrichment in a message to be published to bring the message to its full content in a formal formatSOA vs EDAWhen to use SOA?
  • 45. Support independency between business process stepsCommonly applied to:Horizontal communication between tiers in a process chainWorkflow type of processesProcesses that cross recognizable functional organization borders, external (B2B) as well as internalSOA vs EDAWhen to use EDA?
  • 48. Using Web service technologies today, and additional SOAP-aware message queuing infrastructure.Current ESB infrastructures provide a way of message queuing combined with Web service technologies.SOA and EDA implementations must be regarded in the context of Business Process Management (BPM)How to Implement
  • 49. Modern BPM-tools are based on BPEL (Business Process Execution Language)Current BPEL implementation focuses strongly on the command-and-control model, the orchestration of services, and so on SOABeside orchestration BPEL - to a certain extend - also supports workflow, a kind of choreography, which goes in the direction of EDABPEL has a procedural natureEDA would rather be a declarative model.How to Implement
  • 50. Preparatory steps:Model business requirements into functions at the granularity level of the desired autonomy. Outline the application landscape to identify all affected systems. Map the application landscape to the business function model. Identify applications that cross functional borders as potential "agility bottlenecks" (assign a special high priority to those applications that are required to cross external organization borders). Basis for the decoupled service boundaries How to ImplementScenarios where SOA and EDA can easily co-exist
  • 52. Enterprise Integration Patterns (GregorHohpe and Bobby Woolf )Patterns for Enterprise Architecture (Martin Fowler)SOA Patterns (ArnonRotem-Gal-Oz, Eric Bruno, UdiDahan)ResourcesBooks
  • 53. Event Processing: Designing IT Systems for Agile Companies (K. Chandy, W. Schulte)Event-Driven Architecture: How SOA Enables the Real-Time Enterprise (Hugh Taylor, Angela Yochem, Les Phillips, Frank Martinez)SOA Design Patterns (The Prentice Hall Service-Oriented Computing Series from Thomas Erl) ResourcesBooks

Editor's Notes

  • #26: Inversion of communication. In contrast to the direct communication frequently used in a composite SOA, or other architectures, communications is done asynchronously through publishing events
  • #28: Notable event happens, Initiating downstream action(s). Simple event processing is commonly used to drive the real-time flow of work—taking lag time and cost out of a business.
  • #29: Ordinary events are screened for notability and streamed to information subscribersCommonly used to drive the real-time flow of information in and around the enterprise, which enables in-time decision making
  • #30: Complex event processing evaluates a confluence of events and then takes action. The events (notable or ordinary) may cross event types and occur over a long period of time. The event correlation may be causal, temporal, or spatial. CEP is commonly used to detect and respond to business anomalies, threats, and opportunities.
  • #33: Event Metadata. A good event-driven architecture has a strong metadata architecture. Event metadata includes event specifications and event processing rules. Event specifications must be made available to event generators, event format transformers, event processing engines, and subscribers. While no standards currently exist for event definition and processing notation, it is only a matter of time.Event Processing. The cores of event processing are the engine and the event occurrence data. Simple event engines are often homegrown. Complex event engines should be acquired from a CEP engine provider. Event occurrence data is typically persisted and retained for audit and trend analysis.Event Tooling. Event development tools are required to define event specifications and processing rules, and to manage subscriptions. Event management tools provide administration and monitoring of the event processing infrastructure, monitoring of event flows, and visibility into event generation and processing statistics.Enterprise Integration. An enterprise integration backbone plays a large role in event-driven architecture. Some of the required integration services are: event preprocessing (filters, routes, and transformations), event channel transport, service invocation, business process invocation, publication and subscription, and enterprise information access.Sources and Targets. These are the resources of the enterprise—applications, services, business processes, data stores, people, and automated agents—that generate events and/or perform an event-driven action.
  • #34: The third layer, the event processing engine, is the logical location where the event is identified and the appropriate reaction is selected to be executed. Multiple reactions can be chosen by the engine for the same event. For example, the processing engine can decide to forward the event to other event processors. On the other hand it could choose to invoke a downstream activity like invoking a part of a business process, such as reserving some seats in the VIP area of a party, or send an email to the original requestor to tell him or her that everything went horribly wrong and he or she will get their money back. The primary tool for processing events on the Azure platform is the worker role; it continuously polls a queue for new events and responds to them by executing custom code. Every queuing mechanism discussed in the previous paragraph supports the queue-peek-lock mechanism to ensure that when a message is read from the queue, it does not really get removed from the queue. Until the processor has finished his work and explicitly removes it from the queue, the message will only go invisible for some time. If the processor fails to remove the message within an allotted time frame it will reappear as this indicates that the processor has failed to handle the message. This mechanism provides some sort of retry mechanism to make the processing a bit more resilient to the challenges that the cloud presents us. The .Net Service Bus provides another feature that is vital for the implementation of an event process layer, routers. A Router is a publish/subscribe message distribution primitive that allows to push events to subscribers. Routers can be configured through policies, just like queues, to distribute the events they receive to all or one of the subscribers, meaning they can be used to forward messages from one or multiple publishers to one or multiple subscribers. The real beauty however is the fact that queues and routers can subscribe and read from each other, allowing the composition of these primitives in a customized event processing engine, as shown in the example below. They are especially powerful when combined together with worker roles that take care of any complex routing, filtering logic or correlation of events.
  • #35: EVENT GENERATORS. Every event is generated from a source. The source might be an application, data store, service, business process, transmitter, sensor, or collaboration tool (IM, email). An ordinary event may be evaluated for notability by an event preprocessor (router, filter), resulting in the generation of a new notable event. Because of the variety of event generators, not all events will be generated in the required format for event processing. In those cases, the events need to be transformed to the required (enterprise standard)format prior to being deposited in the event channel.EVENT CHANNEL. The event channel, typically a messaging backbone, transports standard formatted events between event generators, event processing engines, and downstream subscribers.EVENT PROCESSING. In the event processing layer, upon receipt, events are evaluated against event processing rules, and actions are initiated. The event processing rules and actions are defined in accordance to the needs of the interested parties, not of the event generators. The actions include invoking a service, initiating a business process, publishing the event out to a subscription hub, directly notifying humans or systems, generating a new event, and/or capturing the eventfor historical purposes. Events are processed by engines. A simple engine processes each event occurrence independently. A complex engine processes new event occurrences in context of prior and future events.DOWNSTREAM EVENT-DRIVEN ACTIVITY. A single event, or event correlation, may initiate numerous downstream activities. The invocation of the activity might be a push by the event processing engine (service invocation, business process initiation,notification) or a pull by subscribers of event publications. Subscribers might be humans, applications, active business processes, data warehouses, performance dashboards, and/or automated agents. Events should be published in the standard event format. Transformation to subscriber-specific formats is typically done by an enterprise integration backbone.
  • #45: The circles at the top of the picture denote decoupling points (events), the linking pins between loosely coupled systems. At these decoupling points components can be connected and disconnected without any change of the connected systems (peers). All data exchange between the domains takes place only at this point and not at the lower levels.Within a reuse domain (see figure 1) a finer grained EDA may be implemented. The more fine-grained EDA, the more flexible the IT-systems are, but also to smaller the reuse domains will be.
  • #48: BPEL, however, has a procedural nature and runtime implementations need a controlling BPEL-engine. This isnot a problem in case of SOA, but to achieve the aimed loose coupling of EDA it is. Good support for EDA wouldrather be a declarative model than a procedural model.