SlideShare uma empresa Scribd logo
1 de 62
SOA Patterns  © 2008 Studio MikMik
ArnonRotem-Gal-Oz
Another quiet day at the office… © Todd Bonita 2009
Before we begin
SOA Policy Adheres to governed by End Point Binds to Exposes Serves Service  Consumer Service Contracts implements Understands describes Key Component Messages Sends/Receives Sends/Receives Relation
Pipes and Filters Client Server Distributed Agents Layered System Stateless Comm. SOA  is derived from other styles SOA
SOA vs. REST Pipes and Filters Client Server Uniform Interface Virtual Machine Distributed Agents Layered System Replicated Repository Code On Demand Stateless Comm. Cacheable REST SOA
SOA also means challenges…
…and patterns can help mitigate them Virtual Endpoint Service Instance Workflodize Edge Component Gridable Service Blogjecting Watchdog Inversion of Communications Orchestrated Choreography Composite Frontend Transactable Service Identity Provider Request/Reply Parallel Pipelines Service Firewall Decoupled Invocation Saga Aggregated Reporting Client/Server/Service Service Monitor
Xsights, meet audienceAudience, xsights
Mobile Integration Services Applications Advertizing Management Resources Reporting Rich Client Link management Web based Link Managment
Mobile Integration Services 3G Video Calls MMS Dedicated Client 3rd parties Monitoring Usage Datmart Ad Management Applications Acquisition Interactions branding Targeted Advertizing Campaign Mgmt. Billing Resources Reporting Interactions Reference  Data Links Data mining & Statistics Link Managment Reports Publishing tools integration Interaction Designer Web Front-end Data Interfaces
Load balancer Smart phones Web Server (IIS/Apache Web Server (IIS/Apache MMS Gateway 3G Gateway 3G Gateway Camera Phones DMZ Firewall Load balancer App Server App Server App Server App Server App Server App Server App Server Operational Firewall Backend BI & Reporting Links Registeration Sync. Server NMS Paper Editor Web Server (IIS/Apache Firewall Advertizing clients DB Links Datamart usage DB References Admin Console DMZ
ServiceHost Edge Business Logic WD Agent Resource Allocator Event Broker
The Service host sets up the common components and services for each Component
Challenge – Service Availability
What’s in a 9
0.99 reliability  We have a nice little  legacy  business component
And we move it to SOA
Failsafe hardware  Status Technologies FT Server
Or try to detect failure , handle it and minimize its effect on overall service © Rosendahl
What’s the effect of a failure - Server Call Flow Service E1 line = 30 concurrent  video calls
Service Instance Service Business logic End point reaction Distribute Request/Reply Dispatcher request Edge Service Instance
What’s the effect of a failure - Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel E1 line = 30 concurrent  video calls Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel
Service Instance with NLB Real IP : 1.1.1.2 Real IP : 1.1.1.3 Real IP : 1.1.1.4 Cluster Host Cluster Host Windows Host Service  Service  Edge Instance Instance Windows Kernel Windows Kernel Windows Kernel TCP/IP TCP/IP TCP/IP NLB Driver NLB Driver NIC Driver NIC Driver NIC Driver NIC NIC NIC Virtual IP : 1.1.1.1
Alternative : Virtual Endpoint
Challenge  - Flexibility
Request/Reply  EndPoint 2. 1. Request Synchronous  processing 3. Reply Service Service Consumer
Things look Cool & Simple ™  3G Call
Parallel Pipelines Key Queue SOA Component Pattern Component Relation Concern/attribute  pipeline pipeline Edge Request EndPoint Request 1 EndPoint EndPoint Perform  Task Request 2 Perform  Task Reaction pipeline EndPoint Perform  Task Service
IVP (RV) 3G GW (RV) SIP Listner 3G VAS (Cestel) RTP Image Extractor 3G Builder  (Cestel) WS Alg. Engine WebRenderer Resource Manager Dispatcher WebConnector Turn out Complicated & Ugly ™
Inversion of Communications
Consumer view http://www.flickr.com/photos/crimson_wolf/2851737125/sizes/l/
Service view [ServiceContract] [DataContract] publicclassSendMmsEvent : ImEvent     { ///<summary> /// end user's number. should be in international format: +[country-code]number. Example: +491737692260 ///</summary>         [DataMember] publicstringToNumber { get; set; } ///<summary> /// service's number, usually a short-code. Example: 84343 ///</summary>         [DataMember] publicstringFromNumber { get; set; } ///<summary> /// Text, as byte array. Use Encoding classes to do it. ///</summary>         [DataMember] publicbyte[] TextAsByteArray { get; set; } ///<summary> /// Image, as byte array. Can be: jpg, gif, png, bmp. (jpg rulez!!) ///</summary>         [DataMember] publicbyte[] ImageAsByteArray { get; set; } ///<summary> ///Remeber<c>ImageAsByteArray</c>? - This is where you manaually tell us what's the extension. Yes, we can inspect the signature, but why? ///</summary>         [DataMember] publicstringImageExtension { get; set; } ///<summary> /// the mms message should have a subject. just put something there. ///</summary>         [DataMember] publicstring Subject { get; set; }
Edge translates external structures to internal ones
Sagas tie instances together for conversations
Call Recovery X
Alternative : Orchestration Service Service request reaction Protocol Manage Process Schedule Coordinator route request monitor Workflow instance Offline  designer Host Workflows Auxiliary tools Workflow Engine Orchestration platform
Be Wary of Nano-Services
Challenge - Management
Blogjecting Watchdog Edge Service EndPoint Monitor Watchdog  Agent Watchdog  Edge Monitor Request Heal EndPoint Reports Monitor Report Monitor Monitor Log
Blogjects concept  is about collaborating objects
RESTful resource management
http://devrig:52141/RM/Sessions/abc/ ATOMPUB Session details URI (ID) State (start/end/status etc.) Resources Knows status URI for the Resource representation on the RM URI for the Resource itself
ServiceHost Edge Business Logic WD Agent Resource Allocator Event Broker
WatchDog WDWatcher Service B Service A
WatchDog Call Recovery X
Service Monitor Collect  Metrics  collection Status Fault  Monitoring  Reporting & Dashboarding Edge/Service Security  monitoring Status Policy governance Notify Commands Control In Monitor Act Edge/Service Service Monitor
Image of the site-manager
Keep the BIT http://www.flickr.com/photos/37643027@N00/2050024263/sizes/o/
WatchDog Call Recovery X WatchDog 3G Call Liveliness Monitor
Challenge - Reporting
Reporting?!  BI?   but the data is fragmented
Aggregated Reporting EndPoint Produce  reports Request Request Report ODS report Transpose Out EndPoint Join Convert Send Poll Data Save Data Clean Pre-Proces Subscribed/ Polled data Load Transform Edge Aggregated Reporting Service
Challenge – Multi-tennancy(lies, I tell you, all lies)
Same event different subscribers Call Flow Player (interaction Renderer) Play Movie Event Call Flow Bridge to 3rd Party
Routing
Raise a saga initiating event Initiator A Participant A Capacity : 2 Participant B Capacity : 1 Initiator B Now what ?!
Reservation Pattern
Business  Logic Control Edge Event Broker Resource Allocator Service Host Service Instance #1 Service Instance #2 Business  Logic Control Edge Business  Logic Control Edge Business  Logic Control Edge Service Host Reservation  Event Broker Event Broker Event Broker Resource Allocator Resource Allocator Resource Allocator Service Host Service Host Service Host Service Host Service Host Service Host
Good old 2PC to the rescue

Mais conteúdo relacionado

Mais procurados

WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep DiveWSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep DiveWSO2
 
Lecture 04 - Loose Coupling
Lecture 04 - Loose CouplingLecture 04 - Loose Coupling
Lecture 04 - Loose Couplingphanleson
 
Introduction to business process execution language
Introduction to business process execution languageIntroduction to business process execution language
Introduction to business process execution languagesuranisaunak
 
Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0Tammo van Lessen
 
MOM - Message Oriented Middleware
MOM - Message Oriented MiddlewareMOM - Message Oriented Middleware
MOM - Message Oriented MiddlewarePeter R. Egli
 
Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad Faisal Shehzad
 
Introduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPELIntroduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPELDenis Weerasiri
 
IBM SmartCloud Notes Mail Routing - 21st Oct
IBM SmartCloud Notes Mail Routing - 21st OctIBM SmartCloud Notes Mail Routing - 21st Oct
IBM SmartCloud Notes Mail Routing - 21st OctVinayak Tavargeri
 
SOA vs Microservices vs SBA
SOA vs Microservices vs SBASOA vs Microservices vs SBA
SOA vs Microservices vs SBAMichael Sukachev
 
Integrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process ServerIntegrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process ServerGaneshNagalingam1
 

Mais procurados (20)

WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep DiveWSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
 
Soa unit iv
Soa unit ivSoa unit iv
Soa unit iv
 
Unit iii soa
Unit iii soaUnit iii soa
Unit iii soa
 
SOA Princples : 7. service autonomy
SOA Princples : 7. service autonomySOA Princples : 7. service autonomy
SOA Princples : 7. service autonomy
 
Lecture 04 - Loose Coupling
Lecture 04 - Loose CouplingLecture 04 - Loose Coupling
Lecture 04 - Loose Coupling
 
Introduction to business process execution language
Introduction to business process execution languageIntroduction to business process execution language
Introduction to business process execution language
 
1. soa design pattern introduction
1. soa design pattern introduction1. soa design pattern introduction
1. soa design pattern introduction
 
SOA Principles : 4.service loose coupling
SOA Principles : 4.service loose couplingSOA Principles : 4.service loose coupling
SOA Principles : 4.service loose coupling
 
Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0Web Services Orchestration with BPEL 2.0
Web Services Orchestration with BPEL 2.0
 
MOM - Message Oriented Middleware
MOM - Message Oriented MiddlewareMOM - Message Oriented Middleware
MOM - Message Oriented Middleware
 
Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad
 
Unit 07: Design Patterns and Frameworks (2/3)
Unit 07: Design Patterns and Frameworks (2/3)Unit 07: Design Patterns and Frameworks (2/3)
Unit 07: Design Patterns and Frameworks (2/3)
 
Application Architecture
Application ArchitectureApplication Architecture
Application Architecture
 
Introduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPELIntroduction and Advanced Concepts of BPEL
Introduction and Advanced Concepts of BPEL
 
Unit 04: From Requirements to the UX Model
Unit 04: From Requirements to the UX ModelUnit 04: From Requirements to the UX Model
Unit 04: From Requirements to the UX Model
 
componenets of osb12c
componenets of osb12ccomponenets of osb12c
componenets of osb12c
 
IBM SmartCloud Notes Mail Routing - 21st Oct
IBM SmartCloud Notes Mail Routing - 21st OctIBM SmartCloud Notes Mail Routing - 21st Oct
IBM SmartCloud Notes Mail Routing - 21st Oct
 
SOA vs Microservices vs SBA
SOA vs Microservices vs SBASOA vs Microservices vs SBA
SOA vs Microservices vs SBA
 
Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)
 
Integrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process ServerIntegrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process Server
 

Semelhante a SOA patterns

Building an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsBuilding an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsDigitalOcean
 
Jeffrey Richter
Jeffrey RichterJeffrey Richter
Jeffrey RichterCodeFest
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admJeffrey Nunn
 
Big datadc skyfall_preso_v2
Big datadc skyfall_preso_v2Big datadc skyfall_preso_v2
Big datadc skyfall_preso_v2abramsm
 
Servicehost Customization
Servicehost CustomizationServicehost Customization
Servicehost CustomizationEyal Vardi
 
Large Scale Deployment of SOA-P
Large Scale Deployment of SOA-PLarge Scale Deployment of SOA-P
Large Scale Deployment of SOA-PC2B2 Consulting
 
FMS Administration Seminar
FMS Administration SeminarFMS Administration Seminar
FMS Administration SeminarYoss Cohen
 
Summit 16: Open-O Mini-Summit - VF Event Streaming Project Proposal
Summit 16: Open-O Mini-Summit - VF Event Streaming Project ProposalSummit 16: Open-O Mini-Summit - VF Event Streaming Project Proposal
Summit 16: Open-O Mini-Summit - VF Event Streaming Project ProposalOPNFV
 
Lync 2010 deep dive edge
Lync 2010 deep dive edgeLync 2010 deep dive edge
Lync 2010 deep dive edgeHarold Wong
 
Shedding Light on LINE Token Economy You Won't Find in Our White Paper
Shedding Light on LINE Token Economy You Won't Find in Our White PaperShedding Light on LINE Token Economy You Won't Find in Our White Paper
Shedding Light on LINE Token Economy You Won't Find in Our White PaperLINE Corporation
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?João Pedro Martins
 
Topic2 Understanding Middleware
Topic2 Understanding MiddlewareTopic2 Understanding Middleware
Topic2 Understanding Middlewaresanjoysanyal
 
Analytics driven SDN and commodity switches
Analytics driven SDN and commodity switchesAnalytics driven SDN and commodity switches
Analytics driven SDN and commodity switchesnetvis
 
Innovation in SDN Tools and Platforms
Innovation in SDN Tools and PlatformsInnovation in SDN Tools and Platforms
Innovation in SDN Tools and PlatformsUmesh Krishnaswamy
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service MeshRafik HARABI
 
From nothing to production in 1 hour
From nothing to production in 1 hourFrom nothing to production in 1 hour
From nothing to production in 1 hourRoy Braam
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondJon Galloway
 

Semelhante a SOA patterns (20)

Building an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult StepsBuilding an Observability Platform in 389 Difficult Steps
Building an Observability Platform in 389 Difficult Steps
 
Jeffrey Richter
Jeffrey RichterJeffrey Richter
Jeffrey Richter
 
Introduction To Cloud Computing
Introduction To Cloud ComputingIntroduction To Cloud Computing
Introduction To Cloud Computing
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago adm
 
Big datadc skyfall_preso_v2
Big datadc skyfall_preso_v2Big datadc skyfall_preso_v2
Big datadc skyfall_preso_v2
 
Servicehost Customization
Servicehost CustomizationServicehost Customization
Servicehost Customization
 
C++ N Pv2
C++ N Pv2C++ N Pv2
C++ N Pv2
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
Large Scale Deployment of SOA-P
Large Scale Deployment of SOA-PLarge Scale Deployment of SOA-P
Large Scale Deployment of SOA-P
 
FMS Administration Seminar
FMS Administration SeminarFMS Administration Seminar
FMS Administration Seminar
 
Summit 16: Open-O Mini-Summit - VF Event Streaming Project Proposal
Summit 16: Open-O Mini-Summit - VF Event Streaming Project ProposalSummit 16: Open-O Mini-Summit - VF Event Streaming Project Proposal
Summit 16: Open-O Mini-Summit - VF Event Streaming Project Proposal
 
Lync 2010 deep dive edge
Lync 2010 deep dive edgeLync 2010 deep dive edge
Lync 2010 deep dive edge
 
Shedding Light on LINE Token Economy You Won't Find in Our White Paper
Shedding Light on LINE Token Economy You Won't Find in Our White PaperShedding Light on LINE Token Economy You Won't Find in Our White Paper
Shedding Light on LINE Token Economy You Won't Find in Our White Paper
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
 
Topic2 Understanding Middleware
Topic2 Understanding MiddlewareTopic2 Understanding Middleware
Topic2 Understanding Middleware
 
Analytics driven SDN and commodity switches
Analytics driven SDN and commodity switchesAnalytics driven SDN and commodity switches
Analytics driven SDN and commodity switches
 
Innovation in SDN Tools and Platforms
Innovation in SDN Tools and PlatformsInnovation in SDN Tools and Platforms
Innovation in SDN Tools and Platforms
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
From nothing to production in 1 hour
From nothing to production in 1 hourFrom nothing to production in 1 hour
From nothing to production in 1 hour
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
 

Mais de Arnon Rotem-Gal-Oz

Mais de Arnon Rotem-Gal-Oz (20)

Taking ML to production - a journey
Taking ML to production - a journeyTaking ML to production - a journey
Taking ML to production - a journey
 
Apache spark
Apache sparkApache spark
Apache spark
 
Fallacies of Distributed Computing
Fallacies of Distributed Computing Fallacies of Distributed Computing
Fallacies of Distributed Computing
 
Docker & Kubernetes intro
Docker & Kubernetes introDocker & Kubernetes intro
Docker & Kubernetes intro
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Data security @ the personal level
Data security @ the personal levelData security @ the personal level
Data security @ the personal level
 
Microservices - it's déjà vu all over again
Microservices  - it's déjà vu all over againMicroservices  - it's déjà vu all over again
Microservices - it's déjà vu all over again
 
Big data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented designBig data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented design
 
Distilling insights @ AppsFlyer
Distilling insights @ AppsFlyerDistilling insights @ AppsFlyer
Distilling insights @ AppsFlyer
 
Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)
 
Big data Overview
Big data OverviewBig data Overview
Big data Overview
 
Hadoop YARN overview
Hadoop YARN overviewHadoop YARN overview
Hadoop YARN overview
 
SAF
SAFSAF
SAF
 
REST presentation
REST presentationREST presentation
REST presentation
 
SOA & Big Data
SOA & Big DataSOA & Big Data
SOA & Big Data
 
Why the JVM?
Why the JVM?Why the JVM?
Why the JVM?
 
Building reliable systems from unreliable components
Building reliable systems from unreliable componentsBuilding reliable systems from unreliable components
Building reliable systems from unreliable components
 
Azure migration
Azure migrationAzure migration
Azure migration
 
Things to think about while architecting azure solutions
Things to think about while architecting azure solutionsThings to think about while architecting azure solutions
Things to think about while architecting azure solutions
 
Soa
Soa Soa
Soa
 

Último

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Último (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

SOA patterns

  • 1. SOA Patterns © 2008 Studio MikMik
  • 3. Another quiet day at the office… © Todd Bonita 2009
  • 5. SOA Policy Adheres to governed by End Point Binds to Exposes Serves Service Consumer Service Contracts implements Understands describes Key Component Messages Sends/Receives Sends/Receives Relation
  • 6. Pipes and Filters Client Server Distributed Agents Layered System Stateless Comm. SOA is derived from other styles SOA
  • 7. SOA vs. REST Pipes and Filters Client Server Uniform Interface Virtual Machine Distributed Agents Layered System Replicated Repository Code On Demand Stateless Comm. Cacheable REST SOA
  • 8. SOA also means challenges…
  • 9. …and patterns can help mitigate them Virtual Endpoint Service Instance Workflodize Edge Component Gridable Service Blogjecting Watchdog Inversion of Communications Orchestrated Choreography Composite Frontend Transactable Service Identity Provider Request/Reply Parallel Pipelines Service Firewall Decoupled Invocation Saga Aggregated Reporting Client/Server/Service Service Monitor
  • 11. Mobile Integration Services Applications Advertizing Management Resources Reporting Rich Client Link management Web based Link Managment
  • 12. Mobile Integration Services 3G Video Calls MMS Dedicated Client 3rd parties Monitoring Usage Datmart Ad Management Applications Acquisition Interactions branding Targeted Advertizing Campaign Mgmt. Billing Resources Reporting Interactions Reference Data Links Data mining & Statistics Link Managment Reports Publishing tools integration Interaction Designer Web Front-end Data Interfaces
  • 13. Load balancer Smart phones Web Server (IIS/Apache Web Server (IIS/Apache MMS Gateway 3G Gateway 3G Gateway Camera Phones DMZ Firewall Load balancer App Server App Server App Server App Server App Server App Server App Server Operational Firewall Backend BI & Reporting Links Registeration Sync. Server NMS Paper Editor Web Server (IIS/Apache Firewall Advertizing clients DB Links Datamart usage DB References Admin Console DMZ
  • 14. ServiceHost Edge Business Logic WD Agent Resource Allocator Event Broker
  • 15. The Service host sets up the common components and services for each Component
  • 16. Challenge – Service Availability
  • 18. 0.99 reliability We have a nice little legacy business component
  • 19. And we move it to SOA
  • 20. Failsafe hardware Status Technologies FT Server
  • 21. Or try to detect failure , handle it and minimize its effect on overall service © Rosendahl
  • 22. What’s the effect of a failure - Server Call Flow Service E1 line = 30 concurrent video calls
  • 23. Service Instance Service Business logic End point reaction Distribute Request/Reply Dispatcher request Edge Service Instance
  • 24. What’s the effect of a failure - Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel E1 line = 30 concurrent video calls Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel Call Flow Channel
  • 25. Service Instance with NLB Real IP : 1.1.1.2 Real IP : 1.1.1.3 Real IP : 1.1.1.4 Cluster Host Cluster Host Windows Host Service Service Edge Instance Instance Windows Kernel Windows Kernel Windows Kernel TCP/IP TCP/IP TCP/IP NLB Driver NLB Driver NIC Driver NIC Driver NIC Driver NIC NIC NIC Virtual IP : 1.1.1.1
  • 27. Challenge - Flexibility
  • 28. Request/Reply EndPoint 2. 1. Request Synchronous processing 3. Reply Service Service Consumer
  • 29. Things look Cool & Simple ™ 3G Call
  • 30. Parallel Pipelines Key Queue SOA Component Pattern Component Relation Concern/attribute pipeline pipeline Edge Request EndPoint Request 1 EndPoint EndPoint Perform Task Request 2 Perform Task Reaction pipeline EndPoint Perform Task Service
  • 31. IVP (RV) 3G GW (RV) SIP Listner 3G VAS (Cestel) RTP Image Extractor 3G Builder (Cestel) WS Alg. Engine WebRenderer Resource Manager Dispatcher WebConnector Turn out Complicated & Ugly ™
  • 34. Service view [ServiceContract] [DataContract] publicclassSendMmsEvent : ImEvent { ///<summary> /// end user's number. should be in international format: +[country-code]number. Example: +491737692260 ///</summary> [DataMember] publicstringToNumber { get; set; } ///<summary> /// service's number, usually a short-code. Example: 84343 ///</summary> [DataMember] publicstringFromNumber { get; set; } ///<summary> /// Text, as byte array. Use Encoding classes to do it. ///</summary> [DataMember] publicbyte[] TextAsByteArray { get; set; } ///<summary> /// Image, as byte array. Can be: jpg, gif, png, bmp. (jpg rulez!!) ///</summary> [DataMember] publicbyte[] ImageAsByteArray { get; set; } ///<summary> ///Remeber<c>ImageAsByteArray</c>? - This is where you manaually tell us what's the extension. Yes, we can inspect the signature, but why? ///</summary> [DataMember] publicstringImageExtension { get; set; } ///<summary> /// the mms message should have a subject. just put something there. ///</summary> [DataMember] publicstring Subject { get; set; }
  • 35. Edge translates external structures to internal ones
  • 36. Sagas tie instances together for conversations
  • 38. Alternative : Orchestration Service Service request reaction Protocol Manage Process Schedule Coordinator route request monitor Workflow instance Offline designer Host Workflows Auxiliary tools Workflow Engine Orchestration platform
  • 39. Be Wary of Nano-Services
  • 41. Blogjecting Watchdog Edge Service EndPoint Monitor Watchdog Agent Watchdog Edge Monitor Request Heal EndPoint Reports Monitor Report Monitor Monitor Log
  • 42. Blogjects concept is about collaborating objects
  • 44. http://devrig:52141/RM/Sessions/abc/ ATOMPUB Session details URI (ID) State (start/end/status etc.) Resources Knows status URI for the Resource representation on the RM URI for the Resource itself
  • 45. ServiceHost Edge Business Logic WD Agent Resource Allocator Event Broker
  • 48.
  • 49. Service Monitor Collect Metrics collection Status Fault Monitoring Reporting & Dashboarding Edge/Service Security monitoring Status Policy governance Notify Commands Control In Monitor Act Edge/Service Service Monitor
  • 50. Image of the site-manager
  • 51. Keep the BIT http://www.flickr.com/photos/37643027@N00/2050024263/sizes/o/
  • 52. WatchDog Call Recovery X WatchDog 3G Call Liveliness Monitor
  • 54. Reporting?! BI? but the data is fragmented
  • 55. Aggregated Reporting EndPoint Produce reports Request Request Report ODS report Transpose Out EndPoint Join Convert Send Poll Data Save Data Clean Pre-Proces Subscribed/ Polled data Load Transform Edge Aggregated Reporting Service
  • 56. Challenge – Multi-tennancy(lies, I tell you, all lies)
  • 57. Same event different subscribers Call Flow Player (interaction Renderer) Play Movie Event Call Flow Bridge to 3rd Party
  • 59. Raise a saga initiating event Initiator A Participant A Capacity : 2 Participant B Capacity : 1 Initiator B Now what ?!
  • 61. Business Logic Control Edge Event Broker Resource Allocator Service Host Service Instance #1 Service Instance #2 Business Logic Control Edge Business Logic Control Edge Business Logic Control Edge Service Host Reservation Event Broker Event Broker Event Broker Resource Allocator Resource Allocator Resource Allocator Service Host Service Host Service Host Service Host Service Host Service Host
  • 62. Good old 2PC to the rescue

Notas do Editor

  1. http://www.flickr.com/photos/mikmik_uk/2867687602/sizes/o/
  2. It has been quite a while since I last presented – in fact it was just a bit more than 2 years ago when I presented in Dr. Dobb’s ArchitectureI spent most of my time since buried inside xsightsI like startups (that’s my second time around) it is a cooking pot for new learnings* I’d like to give you a short glimpse into a typical day @ the office (courtesy of Tim ConleyConnelly customer expectations…http://painting-life.blogspot.com/2009/08/morning-mist.html
  3. Software architecture is the collection of the fundamental decisions about a software product/solution designed to meet the project&apos;s quality attributes (i.e. requirements). The architecture includes the main components, their main attributes, and their collaboration (i.e. interactions and behavior) to meet the quality attributes. Architecture can and usually should be expressed in several levels of abstraction (depending on the project&apos;s size). If an architecture is to be intentional (rather than accidental), it should be communicated. Architecture is communicated from multiple viewpoints to cater the needs of the different stakeholders.Architectural decisions are global tied to quality attributesDesigns decisions are local –tied to functionality Photograph: Charlie Brown http://www.bestfoto.com/Galleries/GalleryView.asp?PIC=01%2D11%2Ejpg
  4. Client Serverdescribes client-server components as follows: A client is a triggering process; a server is a reactive process. Clients make requests that trigger reactions from servers. Thus, a client initiates activity at times of its choosing; it often then delays until its request has been serviced. On the other hand, a server waits for requests to be made and then reacts to them. A server is usually a non-terminating process and often provides service to more than one client.LayeredThe layered style is composed of layers (the components) which provides facilities and has a specific roles. The layers have communication paths / dependencies (the connectors).In a layered style a layer has some limitations on how it can communicate with other layers (the constraints). Typically a layered is allowed to call only the layer below it and be called only by the layer above it (but there are variants e.g. a layer can call to any layer below it; etc. - all is fine as long as the layers communication paths are limited and restricted by some rules)Pipes and FiltersFilters - are independent processing steps they are constrained to be autonomous of each other and not share state, control thread etc. Pipes - are interconnecting channels“invisible hand” arranging the filters (..bpm) Brings autonomyDistributed AgentsThe term &quot;agent&quot; describes a software abstraction, an idea, or a concept, similar to OOP terms such as methods, functions, and objects.[citation needed] The concept of an agent provides a convenient and powerful way to describe a complex software entity that is capable of acting with a certain degree of autonomy in order to accomplish tasks on behalf of its user. But unlike objects, which are defined in terms of methods and attributes, an agent is defined in terms of its behavior.[citation needed]Various authors have proposed different definitions of agents, these commonly include concepts such aspersistence (code is not executed on demand but runs continuously and decides for itself when it should perform some activity)autonomy (agents have capabilities of task selection, prioritization, goal-directed behaviour, decision-making without human intervention)social ability (agents are able to engage other components through some sort of communication and coordination, they may collaborate on a task)reactivity (agents perceive the context in which they operate and react to it appropriately).
  5. I am not going to talk about the “Code On Demand” since it is optional (also easy to understand – think javascript)
  6. In addition to a solution, a pattern gives us context, forces and consequences What are the patterns we are going to look at today?Reporting &amp; BI ( Incident analysis) (Aggregated Reporting and Inversion of Communications)Connecting legacy UI ( Client/Server/Service)Securing integration with external Party (Service Firewall, ticket server) Reliability (Transactional Service, Saga vs. Cross-service transactions)Availability (Virtual End-point, Service Instance)Flexibility ( Workflodze vs. Orchestrated Choreography vs. ?)Manageability (Blogjecting Watchdog &amp; MPerformance (Decouples invocation vs. Request/Reply)
  7. Maybe in the future Video platform/IVP replacement(maybe later) Dedicated Client
  8. Set up and provide common componentse.g. throtteling and message size ,
  9. Stages approachFailure detectionService instance (simple services) vs. Virtual endpoint (handle redirection within the service – more autonomous but more complex)
  10. http://www.flickr.com/photos/29327368@N06/2739558370/sizes/o/What does it mean to achieve 99.999% in an SOAMTBF vs.MTBCFReliable Messaging, “transactions” - we already talked about that – will all help us more reliable when a crash happens How much time 99 % - 3d 15h 36s99.9% - 8h 45m 57s99.99% - 52m 35s99.999% - 5m 15s99.9999% - 31s The number of “9” for a single component depends on its own reliability and on the interactions it has (each call is a chance for a failure)The overall reliablity of a system is the product of the reliabilities of each component (the more component you have the lower is your systems reliability -&gt; again beware of fine grained services)
  11. Lets look at a sample process and say it has a 99% availability (about 3.5 days of downtime in a year)
  12. About 31.5 days of downtime a year – each component (service) and that’s before we consider the reliability of all the network calls….
  13. stratus
  14. http://www.flickr.com/photos/rosendahl/2110324860/sizes/l/
  15. Video calls means no client – so we need a service to handle call flowLikely to failNeed to mat
  16. We can also use the Service instance pattern we already mentioned
  17. The service components are simpler e.g less locks (less likely to fail)We may even redirect on failure (if we can detect it – more later)Only handle one session More management overhead (virtual end-point is simpler in that sense)Remener MTBF vs. MTCBF
  18. Needs stateless components Since we do have state we’ll need stateless communications (e.g.
  19. Take 1
  20. The bread and butter of communication in general anRPC over SOA - a generalized antipattern of the above Simple to implement – time to market
  21. Good for stateful services
  22. 1. prepare an interaction (offline)2. define the coordinates for a link (offline)3. Preprocess target pages (offline)4. Accept a 3G call (using RV 3G GW)5. Initiate a call on the IVP (RV product)6. The IVP contacts a web service to accept the call configuration7. The web service contacts a resource manager to get an Address for a SIP Listner, passing it the radvision session ID 8 The Resource Manager allocates all the resources needed to handle a call (including a SIP listner) and returns the list to the webservice9 The webservice configures the conference call for the IVP sending video to the user from a cestel application and sending the incoming video to the SIP listner10 The siplisners negotiates a session with the IVP and instructs it to send the video to the RTP extractor11 The RTP extractor, listen for incoming video, using a component developed by DSP-IP it extracts individual frames from the video and forwards them to the algorithmic engine12. The algorithmic engine wrapper, accepts the frames and initiates a match 13 The algorithmic engine converts the image to grayscale , calls the matlab algorithm and returns a result to the wrapper14 the wrapper forwards the coordinates to the dispatcher15. the dispatcher looks at the list of links and identifies the relevant link16. The dispatcher updates a the web connector with the last identified link17, All this time the cestel application streams a webpage18. The webpage constantly polls the web connector for the the identified link and when that is updated by the dispatcher (step 16) updates the display to indicate the link
  23. Be careful from theNanoservices Anti-pattern- make every little component a service
  24. Take 1
  25. “pigeon blog”: monitoring air quality by equipping GPS on pigeons (Beatriz da Costa)Beatriz da Costa showing miniaturized hardware for Pigeon Blog project at ISEA2006(http://www.flickr.com/photos/26468628@N00/74795130/in/set-1193491/)
  26. Set up and provide common componentse.g. throtteling and message size ,
  27. PBITCBITIBIThttp://www.flickr.com/photos/37643027@N00/2050024263/sizes/o/
  28. http://www.flickr.com/photos/myklroventine/3261364899/sizes/l/
  29. ODS – Operational Data Store
  30. Stages approachFailure detectionService instance (simple services) vs. Virtual endpoint (handle redirection within the service – more autonomous but more complex)
  31. The routing problem
  32. Same resource two saga initiatorsDistributed resource allocation
  33. With less guarantees Expected to fail