SlideShare une entreprise Scribd logo
1  sur  59
| 25-06-2012 | Alexander van Trijffel
18-06-2012
Your business technologists. Powering progress © Confidential
Service Oriented Architecture
Systems Design
Alexander van Trijffel
| 25-06-2012 | Alexander van Trijffel
2
Agenda
▶ The network
▶ Coupling
▶ Messaging
▶ Reliability
▶ Services
▶ Service decomposition
| 25-06-2012 | Alexander van Trijffel
Connectivity – The network matters
▶ Common assumptions made by developers and architects in distributed systems
• The network is reliable
• Latency isn’t a problem
• Bandwidth isn’t a problem
• The network is secure
• The topology won’t change
• The administrator will know what to do
• Transport cost isn’t a problem
• The network is homogeneous
3
| 25-06-2012 | Alexander van Trijffel
“The 8 fallacies of distributed computing”
1. The network is reliable
2. Latency isn’t a problem
3. Bandwidth isn’t a problem
4. The network is secure
5. The topology won’t change
6. The administrator will know what to do
7. Transport cost isn’t a problem
8. The network is homogeneous
4
Deutsch 94
Gosling 97
| 25-06-2012 | Alexander van Trijffel
Coupling
▶ What is coupling?
– A measure of dependencies
– If X depends on Y, there is coupling between them
– 2 kinds of coupling:
– Afferent (Ca) - Who depends on you
– Efferent (Ce) - On who do you depend
| 25-06-2012 | Alexander van Trijffel
Loose coupling at the systems level
▶ Attempt to minimize afferent and efferent coupling
▶ 3 Different aspects of coupling for systems:
– Platform
– Temporal
– Spatial
| 25-06-2012 | Alexander van Trijffel
Coupling Aspect: Platform
▶ Also known as “Interoperability”
▶ Using protocols only available on one platform
– Remoting
– Enterprise Services/COM+
– Datasets over Web Services
▶ One of the 4 Tenets of Service Orientation:
– “Share contract and schema, not class or type”
| 25-06-2012 | Alexander van Trijffel
Coupling Aspect: Temporal
Service A
Synchronous Call
Waiting Working
Return
Service B
The processing time of Service B affects that of A
| 25-06-2012 | Alexander van Trijffel
Coupling aspect: Spatial
Service A
Service B
| 25-06-2012 | Alexander van Trijffel
Coupling aspect: Spatial
Service A
Service B
| 25-06-2012 | Alexander van Trijffel
Coupling aspect: Spatial
Service A
Service B
Service B
?
Can communication
automatically continue?
| 25-06-2012 | Alexander van Trijffel
Coupling solutions
| 25-06-2012 | Alexander van Trijffel
Coupling Aspect #1: Platform
▶ XML on the wire.
▶ XSD (schema) describing XML structure
▶ Use standards based transfer protocol like http
▶ Standards based description of message flow
– WSDL
| 25-06-2012 | Alexander van Trijffel
Coupling Aspect #2: Temporal - 1
Service A Service B
Customer GetCustomerInfo(id)
Calling thread is
waiting for the
result
MakeCustomerPreferred(id)
Save customer as preferred
Bad. Resources are held while waiting.
| 25-06-2012 | Alexander van Trijffel
Coupling Aspect #2: Temporal - 2
Resources are held while waiting. Increased load on service B per consumer
(impacted by polling interval)
Service A Service B
YieldCustomerInfo(id)
MakeCustomerPreferred(id)
Spawn polling thread
Got data?
Data ready
Got data?
Got data?
Save customer as preferred
Data ready but
not passed to
consumer
| 25-06-2012 | Alexander van Trijffel
Coupling Aspect #2: Temporal - final
Good. By separating (in time) the inter-service communication and the request
handling
Service A Service B
Publish updated customer infoStore data
MakeCustomerPreferred(id)
Save customer as preferred
| 25-06-2012 | Alexander van Trijffel
Coupling Aspect #3: Spatial
▶ Application level code should not need to know where cooperating
services are on the network
▶ Delegate communications to “something else”, let’s call it an “agent” for
now.
– myAgent.Send(message);
▶ But if the application code doesn’t tell the agent which logical destination
to send the message to, how would the agent know?
▶ If there was a direct mapping from message type to logical destination,
then specifying the type of message being sent/published would be
enough
| 25-06-2012 | Alexander van Trijffel
Message Type = Logical Destination
▶ AddCustomerMessage:
– Sent by clients to one logical server
– Multiple physical servers behind a load balancer if required
▶ OrderCancelledEventMessage:
– Published by one logical server
▶ Strongly-typed messages simplify routing
| 25-06-2012 | Alexander van Trijffel
Messaging
▶ Asynchronous: One-way, fire & forget messages
▶ Why messaging?
▶ Reduces coupling
– Use XML for platform coupling
– Use asynchronous messaging for temporal coupling
▶ Reduces Afferent and Efferent coupling while increasing autonomy
| 25-06-2012 | Alexander van Trijffel
Performance – RPC vs Messaging
▶ With RPC, threads are allocated with load
– With messaging, threads are independent
– Difference based on blocking nature of communication
▶ Memory, DB locks, held longer with RPC
Throughput
Load
RPC
Messaging
| 25-06-2012 | Alexander van Trijffel
Reliability
▶ When servers crash
▶ When databases are down
▶ When deadlocks occur in the database
| 25-06-2012 | Alexander van Trijffel
When Servers Crash
DBApp
[HTTP] $$ Order
Tx
Call 1 of 3
Call 2 of 3
Critical
Windows Patch
Rollback
Where’s the order!?
| 25-06-2012 | Alexander van Trijffel
When Deadlocks Happen
TxApp
[HTTP] $$ Order
DB
Call 1 of 3
Deadlock
Exception
Write to log A B
Call 2 of 3
Where’s the order!?
| 25-06-2012 | Alexander van Trijffel
Securing client requests with Messaging
TxQ$$ Order
App
Receive
DB
Call 1 of 3
Rollback
Call 2 of 3
Rollback
The order is back in the queue
| 25-06-2012 | Alexander van Trijffel
Calling Web Services
A B C D
WS
DB
[HTTP] Invoke
$$ Order
Deadlock
Rollback
Not Rolled back
| 25-06-2012 | Alexander van Trijffel
Messaging
Gateway
A B C D
WS
Msg
DB
$$ Order
[HTTP]
Invoke
The message won’t be
sent if there’s a failure
| 25-06-2012 | Alexander van Trijffel
Durable Messaging
Server
Client
MSMQ
MSMQ
IncomingOutgoing
Outgoing Incoming
Store and
Forward
adds resilience
| 25-06-2012 | Alexander van Trijffel
Message types
| 25-06-2012 | Alexander van Trijffel
Standard message handling
▶ Problem is that service layers get too large
▶ Difficult for multiple developers to collaborate
▶ Difficult to reuse logging, authorization, etc
Customer Service
void ChangeAddress(Guid id, Address a);
void MakePreferred(Guid id);
void ChangeCredit(Guid id, Credit c);
| 25-06-2012 | Alexander van Trijffel
Exploit strongly-typed messages
IMessage
where T : IMessage
IHandleMessages<T>
void Handle(T message);
| 25-06-2012 | Alexander van Trijffel
Represent methods as messages
IMessage
ChangeAddress
MakePreferred
ChangeCredit
| 25-06-2012 | Alexander van Trijffel
Handling Logic Separated
IHandleMessages<T>
void Handle(T message);
H1:IHandleMessages<ChangeAddress>
H2:IHandleMessages<MakePreferred>
H3: IHandleMessages<ChangeCredit>
| 25-06-2012 | Alexander van Trijffel
Multiple handlers per message
H1:IHandleMessages<ChangeAddress>
H4:IHandleMessages<ChangeAddressV2>
Authorization: IHandleMessages<IMessage>
▶ Dispatch based on type polymorphism
▶ Allows for pipeline of handler invocation
▶ As side effect less merge change conflicts
| 25-06-2012 | Alexander van Trijffel
Demo
▶ Sending a and receiving a
message using the bus
| 25-06-2012 | Alexander van Trijffel
Messaging patterns
▶ Return Address
▶ Correlated Request/Response
▶ Publish Subscribe
| 25-06-2012 | Alexander van Trijffel
Return Address Pattern – Send / Reply
2 Channels: one for requests, one for responses
Return Address
Target
Service
Return
Address
Some time in the
future
Initiating
Service
| 25-06-2012 | Alexander van Trijffel
Correlated Request/Response
Target
Service
Some time in the
future
Initiating
Service
Ticket (guid)
Ticket (guid)
In the header of the response message, there is a
correlation id equal to the request message id
| 25-06-2012 | Alexander van Trijffel
Publish / Subscribe
Service A Service B
Publish updated customer infoStore data
MakeCustomerPreferred(id)
Save customer as preferred
| 25-06-2012 | Alexander van Trijffel
Publisher
Subscriber
Subscribe
Subscriber
Subscriber
Subscriber
Subscriber
| 25-06-2012 | Alexander van Trijffel
Publisher
Subscriber
Subscriber
Subscriber
Subscriber
Subscriber
MyEvent
MyEvent
MyEvent
MyEvent
MyEvent
| 25-06-2012 | Alexander van Trijffel
Demo
▶ Publishing an event
| 25-06-2012 | Alexander van Trijffel
What is a service?
▶ A service is the technical authority for a specific business capability.
▶ All data and business rules reside within the service.
| 25-06-2012 | Alexander van Trijffel
What a service is NOT
▶ A service that has only functionality is a function, not a service.
– Like check if order is valid
▶ A service that has only data is a database, not a service.
– Like [create, read, update, delete] entity
| 25-06-2012 | Alexander van Trijffel
Technical properties of a service
▶ A service may have multiple end points
▶ A service may communicate over multiple protocols and transports
▶ A service is responsible for its own availability and scalability
| 25-06-2012 | Alexander van Trijffel
Service deployments
▶ Many services can be deployed to the same box
▶ Many services can be deployed in the same app
▶ Many services can cooperate in a workflow
▶ Many services can be mashed up in the same page
| 25-06-2012 | Alexander van Trijffel
Service Examples
Subscribe to Customer
Status Updated
Publish
Customer Status Updated
Save status locally
Subscribe to Product
Pricing Updated
Publish
Product Pricing Updated
Save pricing locally
Place Order
Publish Order Accepted
Sales
MarketingCustomer
care
| 25-06-2012 | Alexander van Trijffel
Which service owns this page?
| 25-06-2012 | Alexander van Trijffel
Which service owns this page?
None
| 25-06-2012 | Alexander van Trijffel
Same page composition
Server
Product Catalog
Pricing
Inventory
Cross Sell
| 25-06-2012 | Alexander van Trijffel
Amazon.com checkout workflow
| 25-06-2012 | Alexander van Trijffel
Which service owns this flow?
| 25-06-2012 | Alexander van Trijffel
Which service owns this flow?
None
| 25-06-2012 | Alexander van Trijffel
Workflow composition
Shipping Billing
Sales
Billing
BillingShipping
ShippingMarketing
| 25-06-2012 | Alexander van Trijffel
Autonomous Components
▶ The large-scale business capability that a service provides can be further
broken down
▶ A service is composed of one or more Autonomous Components
▶ An AC takes responsibility for a specific set of message types in the
service
▶ Autonomous Components are the unit of deployment in SOA
▶ An AC uses the bus to communicate with other ACs.
Is independently deployable, has its own endpoint
| 25-06-2012 | Alexander van Trijffel
Flexibility in deployment
▶ Any number of autonomous components (ACs) can be deployed to a
single machine
▶ Or even a single process
▶ Or have a single AC deployed on each machine
| 25-06-2012 | Alexander van Trijffel
Bus Topology
App
Bus.dll
App
Bus.dll
App
Bus.dll
App
Bus.dll
App
Bus.dll
App
Bus.dll
App
Bus.dll
App
Bus.dll
| 25-06-2012 | Alexander van Trijffel
Scalability
▶ Since each autonomous component maintains its state in the database
of its service
▶ We can have a number of servers each running an instance of the same
autonomous component
| 25-06-2012 | Alexander van Trijffel
Scaling out an AC Autonomous
Component
Distributor ACI
ACI ACI
Ready
Autonomous
Component
Instance
on each machine
| 25-06-2012 | Alexander van Trijffel
www.atos.net
Atos, the Atos logo, Atos Consulting, Atos Worldline, Atos Sphere, Atos Cloud and Atos WorldGrid
are registered trademarks of Atos SA. June 2011
© 2011 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it,
may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos.
Your business technologists. Powering progress © Confidential
Your business technologists. Powering progress © Confidential
www.atos.net
Atos, the Atos logo, Atos Consulting, Atos Worldline, Atos Sphere, Atos Cloud and Atos Worldgrid
are registered trademarks of Atos SA. July 2011
© 2011 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it,
may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos.
Thank You
For more information, please contact :
Alexander van Trijffel

Contenu connexe

Similaire à SOA Systems Design

Systems Integrator Alliance Program 2017
Systems Integrator Alliance Program 2017Systems Integrator Alliance Program 2017
Systems Integrator Alliance Program 2017Schneider Electric
 
Prolifics Managed Services Offering
Prolifics Managed Services OfferingProlifics Managed Services Offering
Prolifics Managed Services Offeringvenkata burra
 
Turnkey Network Services - Aviat Networks
Turnkey Network Services - Aviat NetworksTurnkey Network Services - Aviat Networks
Turnkey Network Services - Aviat NetworksAviat Networks
 
From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...
From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...
From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...Ameur BENTOUTA
 
Using NetScaler Insight to Troubleshoot Network and Server Performance Issues
Using NetScaler Insight to Troubleshoot Network and Server Performance IssuesUsing NetScaler Insight to Troubleshoot Network and Server Performance Issues
Using NetScaler Insight to Troubleshoot Network and Server Performance IssuesDavid McGeough
 
Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...
Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...
Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...BaseN_Corp
 
How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...
How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...
How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...CA Technologies
 
Cloud Computing Principles and Paradigms: 2 migration into a cloud
Cloud Computing Principles and Paradigms: 2 migration into a cloudCloud Computing Principles and Paradigms: 2 migration into a cloud
Cloud Computing Principles and Paradigms: 2 migration into a cloudMajid Hajibaba
 
Unlock your core business assets for the hybrid cloud with addi webinar dec...
Unlock your core business assets for the hybrid cloud with addi   webinar dec...Unlock your core business assets for the hybrid cloud with addi   webinar dec...
Unlock your core business assets for the hybrid cloud with addi webinar dec...Sherri Hanna
 
About MAYKOR Company
About MAYKOR Company	About MAYKOR Company
About MAYKOR Company MAYKOR
 
Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...Obeo
 
May 2013 Federal Cloud Computing Summit Keynote by David Cearly
May 2013 Federal Cloud Computing Summit Keynote by David CearlyMay 2013 Federal Cloud Computing Summit Keynote by David Cearly
May 2013 Federal Cloud Computing Summit Keynote by David CearlyTim Harvey
 
Cloud Management for MSPs
Cloud Management for MSPsCloud Management for MSPs
Cloud Management for MSPsRightScale
 
Agile DevOps Transformation Strategy
Agile DevOps Transformation StrategyAgile DevOps Transformation Strategy
Agile DevOps Transformation StrategySatish Nath
 
Data center trends_from_telco_perspectives_kwangkoog_submit
Data center trends_from_telco_perspectives_kwangkoog_submitData center trends_from_telco_perspectives_kwangkoog_submit
Data center trends_from_telco_perspectives_kwangkoog_submitKwangkoog Lee
 
Developing a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC EventDeveloping a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC EventNexon Asia Pacific
 
Cloud Options for a Modern Architecture
Cloud Options for a Modern ArchitectureCloud Options for a Modern Architecture
Cloud Options for a Modern ArchitectureProlifics
 
Investment gurantee (indirect spend cloudway)
Investment gurantee (indirect spend  cloudway)Investment gurantee (indirect spend  cloudway)
Investment gurantee (indirect spend cloudway)Varsha Kushwaha
 

Similaire à SOA Systems Design (20)

Systems Integrator Alliance Program 2017
Systems Integrator Alliance Program 2017Systems Integrator Alliance Program 2017
Systems Integrator Alliance Program 2017
 
Prolifics Managed Services Offering
Prolifics Managed Services OfferingProlifics Managed Services Offering
Prolifics Managed Services Offering
 
Turnkey Network Services - Aviat Networks
Turnkey Network Services - Aviat NetworksTurnkey Network Services - Aviat Networks
Turnkey Network Services - Aviat Networks
 
From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...
From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...
From ITIL to eTOM Gluing Together the eProcess Value Chain In Mixed CivilMili...
 
Using NetScaler Insight to Troubleshoot Network and Server Performance Issues
Using NetScaler Insight to Troubleshoot Network and Server Performance IssuesUsing NetScaler Insight to Troubleshoot Network and Server Performance Issues
Using NetScaler Insight to Troubleshoot Network and Server Performance Issues
 
Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...
Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...
Dynamic Complex Event Processing for Hybrid Telecommunication Networks and Sm...
 
How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...
How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...
How Kelway Evolved Its Managed Services Practice with CA Unified Infrastructu...
 
Cloud Computing Principles and Paradigms: 2 migration into a cloud
Cloud Computing Principles and Paradigms: 2 migration into a cloudCloud Computing Principles and Paradigms: 2 migration into a cloud
Cloud Computing Principles and Paradigms: 2 migration into a cloud
 
Rexx Shih
Rexx ShihRexx Shih
Rexx Shih
 
Unlock your core business assets for the hybrid cloud with addi webinar dec...
Unlock your core business assets for the hybrid cloud with addi   webinar dec...Unlock your core business assets for the hybrid cloud with addi   webinar dec...
Unlock your core business assets for the hybrid cloud with addi webinar dec...
 
About MAYKOR Company
About MAYKOR Company	About MAYKOR Company
About MAYKOR Company
 
Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...
 
May 2013 Federal Cloud Computing Summit Keynote by David Cearly
May 2013 Federal Cloud Computing Summit Keynote by David CearlyMay 2013 Federal Cloud Computing Summit Keynote by David Cearly
May 2013 Federal Cloud Computing Summit Keynote by David Cearly
 
ASL®2 - Application Services Library - Foundation
ASL®2 - Application Services Library - FoundationASL®2 - Application Services Library - Foundation
ASL®2 - Application Services Library - Foundation
 
Cloud Management for MSPs
Cloud Management for MSPsCloud Management for MSPs
Cloud Management for MSPs
 
Agile DevOps Transformation Strategy
Agile DevOps Transformation StrategyAgile DevOps Transformation Strategy
Agile DevOps Transformation Strategy
 
Data center trends_from_telco_perspectives_kwangkoog_submit
Data center trends_from_telco_perspectives_kwangkoog_submitData center trends_from_telco_perspectives_kwangkoog_submit
Data center trends_from_telco_perspectives_kwangkoog_submit
 
Developing a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC EventDeveloping a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC Event
 
Cloud Options for a Modern Architecture
Cloud Options for a Modern ArchitectureCloud Options for a Modern Architecture
Cloud Options for a Modern Architecture
 
Investment gurantee (indirect spend cloudway)
Investment gurantee (indirect spend  cloudway)Investment gurantee (indirect spend  cloudway)
Investment gurantee (indirect spend cloudway)
 

Dernier

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Dernier (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

SOA Systems Design

  • 1. | 25-06-2012 | Alexander van Trijffel 18-06-2012 Your business technologists. Powering progress © Confidential Service Oriented Architecture Systems Design Alexander van Trijffel
  • 2. | 25-06-2012 | Alexander van Trijffel 2 Agenda ▶ The network ▶ Coupling ▶ Messaging ▶ Reliability ▶ Services ▶ Service decomposition
  • 3. | 25-06-2012 | Alexander van Trijffel Connectivity – The network matters ▶ Common assumptions made by developers and architects in distributed systems • The network is reliable • Latency isn’t a problem • Bandwidth isn’t a problem • The network is secure • The topology won’t change • The administrator will know what to do • Transport cost isn’t a problem • The network is homogeneous 3
  • 4. | 25-06-2012 | Alexander van Trijffel “The 8 fallacies of distributed computing” 1. The network is reliable 2. Latency isn’t a problem 3. Bandwidth isn’t a problem 4. The network is secure 5. The topology won’t change 6. The administrator will know what to do 7. Transport cost isn’t a problem 8. The network is homogeneous 4 Deutsch 94 Gosling 97
  • 5. | 25-06-2012 | Alexander van Trijffel Coupling ▶ What is coupling? – A measure of dependencies – If X depends on Y, there is coupling between them – 2 kinds of coupling: – Afferent (Ca) - Who depends on you – Efferent (Ce) - On who do you depend
  • 6. | 25-06-2012 | Alexander van Trijffel Loose coupling at the systems level ▶ Attempt to minimize afferent and efferent coupling ▶ 3 Different aspects of coupling for systems: – Platform – Temporal – Spatial
  • 7. | 25-06-2012 | Alexander van Trijffel Coupling Aspect: Platform ▶ Also known as “Interoperability” ▶ Using protocols only available on one platform – Remoting – Enterprise Services/COM+ – Datasets over Web Services ▶ One of the 4 Tenets of Service Orientation: – “Share contract and schema, not class or type”
  • 8. | 25-06-2012 | Alexander van Trijffel Coupling Aspect: Temporal Service A Synchronous Call Waiting Working Return Service B The processing time of Service B affects that of A
  • 9. | 25-06-2012 | Alexander van Trijffel Coupling aspect: Spatial Service A Service B
  • 10. | 25-06-2012 | Alexander van Trijffel Coupling aspect: Spatial Service A Service B
  • 11. | 25-06-2012 | Alexander van Trijffel Coupling aspect: Spatial Service A Service B Service B ? Can communication automatically continue?
  • 12. | 25-06-2012 | Alexander van Trijffel Coupling solutions
  • 13. | 25-06-2012 | Alexander van Trijffel Coupling Aspect #1: Platform ▶ XML on the wire. ▶ XSD (schema) describing XML structure ▶ Use standards based transfer protocol like http ▶ Standards based description of message flow – WSDL
  • 14. | 25-06-2012 | Alexander van Trijffel Coupling Aspect #2: Temporal - 1 Service A Service B Customer GetCustomerInfo(id) Calling thread is waiting for the result MakeCustomerPreferred(id) Save customer as preferred Bad. Resources are held while waiting.
  • 15. | 25-06-2012 | Alexander van Trijffel Coupling Aspect #2: Temporal - 2 Resources are held while waiting. Increased load on service B per consumer (impacted by polling interval) Service A Service B YieldCustomerInfo(id) MakeCustomerPreferred(id) Spawn polling thread Got data? Data ready Got data? Got data? Save customer as preferred Data ready but not passed to consumer
  • 16. | 25-06-2012 | Alexander van Trijffel Coupling Aspect #2: Temporal - final Good. By separating (in time) the inter-service communication and the request handling Service A Service B Publish updated customer infoStore data MakeCustomerPreferred(id) Save customer as preferred
  • 17. | 25-06-2012 | Alexander van Trijffel Coupling Aspect #3: Spatial ▶ Application level code should not need to know where cooperating services are on the network ▶ Delegate communications to “something else”, let’s call it an “agent” for now. – myAgent.Send(message); ▶ But if the application code doesn’t tell the agent which logical destination to send the message to, how would the agent know? ▶ If there was a direct mapping from message type to logical destination, then specifying the type of message being sent/published would be enough
  • 18. | 25-06-2012 | Alexander van Trijffel Message Type = Logical Destination ▶ AddCustomerMessage: – Sent by clients to one logical server – Multiple physical servers behind a load balancer if required ▶ OrderCancelledEventMessage: – Published by one logical server ▶ Strongly-typed messages simplify routing
  • 19. | 25-06-2012 | Alexander van Trijffel Messaging ▶ Asynchronous: One-way, fire & forget messages ▶ Why messaging? ▶ Reduces coupling – Use XML for platform coupling – Use asynchronous messaging for temporal coupling ▶ Reduces Afferent and Efferent coupling while increasing autonomy
  • 20. | 25-06-2012 | Alexander van Trijffel Performance – RPC vs Messaging ▶ With RPC, threads are allocated with load – With messaging, threads are independent – Difference based on blocking nature of communication ▶ Memory, DB locks, held longer with RPC Throughput Load RPC Messaging
  • 21. | 25-06-2012 | Alexander van Trijffel Reliability ▶ When servers crash ▶ When databases are down ▶ When deadlocks occur in the database
  • 22. | 25-06-2012 | Alexander van Trijffel When Servers Crash DBApp [HTTP] $$ Order Tx Call 1 of 3 Call 2 of 3 Critical Windows Patch Rollback Where’s the order!?
  • 23. | 25-06-2012 | Alexander van Trijffel When Deadlocks Happen TxApp [HTTP] $$ Order DB Call 1 of 3 Deadlock Exception Write to log A B Call 2 of 3 Where’s the order!?
  • 24. | 25-06-2012 | Alexander van Trijffel Securing client requests with Messaging TxQ$$ Order App Receive DB Call 1 of 3 Rollback Call 2 of 3 Rollback The order is back in the queue
  • 25. | 25-06-2012 | Alexander van Trijffel Calling Web Services A B C D WS DB [HTTP] Invoke $$ Order Deadlock Rollback Not Rolled back
  • 26. | 25-06-2012 | Alexander van Trijffel Messaging Gateway A B C D WS Msg DB $$ Order [HTTP] Invoke The message won’t be sent if there’s a failure
  • 27. | 25-06-2012 | Alexander van Trijffel Durable Messaging Server Client MSMQ MSMQ IncomingOutgoing Outgoing Incoming Store and Forward adds resilience
  • 28. | 25-06-2012 | Alexander van Trijffel Message types
  • 29. | 25-06-2012 | Alexander van Trijffel Standard message handling ▶ Problem is that service layers get too large ▶ Difficult for multiple developers to collaborate ▶ Difficult to reuse logging, authorization, etc Customer Service void ChangeAddress(Guid id, Address a); void MakePreferred(Guid id); void ChangeCredit(Guid id, Credit c);
  • 30. | 25-06-2012 | Alexander van Trijffel Exploit strongly-typed messages IMessage where T : IMessage IHandleMessages<T> void Handle(T message);
  • 31. | 25-06-2012 | Alexander van Trijffel Represent methods as messages IMessage ChangeAddress MakePreferred ChangeCredit
  • 32. | 25-06-2012 | Alexander van Trijffel Handling Logic Separated IHandleMessages<T> void Handle(T message); H1:IHandleMessages<ChangeAddress> H2:IHandleMessages<MakePreferred> H3: IHandleMessages<ChangeCredit>
  • 33. | 25-06-2012 | Alexander van Trijffel Multiple handlers per message H1:IHandleMessages<ChangeAddress> H4:IHandleMessages<ChangeAddressV2> Authorization: IHandleMessages<IMessage> ▶ Dispatch based on type polymorphism ▶ Allows for pipeline of handler invocation ▶ As side effect less merge change conflicts
  • 34. | 25-06-2012 | Alexander van Trijffel Demo ▶ Sending a and receiving a message using the bus
  • 35. | 25-06-2012 | Alexander van Trijffel Messaging patterns ▶ Return Address ▶ Correlated Request/Response ▶ Publish Subscribe
  • 36. | 25-06-2012 | Alexander van Trijffel Return Address Pattern – Send / Reply 2 Channels: one for requests, one for responses Return Address Target Service Return Address Some time in the future Initiating Service
  • 37. | 25-06-2012 | Alexander van Trijffel Correlated Request/Response Target Service Some time in the future Initiating Service Ticket (guid) Ticket (guid) In the header of the response message, there is a correlation id equal to the request message id
  • 38. | 25-06-2012 | Alexander van Trijffel Publish / Subscribe Service A Service B Publish updated customer infoStore data MakeCustomerPreferred(id) Save customer as preferred
  • 39. | 25-06-2012 | Alexander van Trijffel Publisher Subscriber Subscribe Subscriber Subscriber Subscriber Subscriber
  • 40. | 25-06-2012 | Alexander van Trijffel Publisher Subscriber Subscriber Subscriber Subscriber Subscriber MyEvent MyEvent MyEvent MyEvent MyEvent
  • 41. | 25-06-2012 | Alexander van Trijffel Demo ▶ Publishing an event
  • 42. | 25-06-2012 | Alexander van Trijffel What is a service? ▶ A service is the technical authority for a specific business capability. ▶ All data and business rules reside within the service.
  • 43. | 25-06-2012 | Alexander van Trijffel What a service is NOT ▶ A service that has only functionality is a function, not a service. – Like check if order is valid ▶ A service that has only data is a database, not a service. – Like [create, read, update, delete] entity
  • 44. | 25-06-2012 | Alexander van Trijffel Technical properties of a service ▶ A service may have multiple end points ▶ A service may communicate over multiple protocols and transports ▶ A service is responsible for its own availability and scalability
  • 45. | 25-06-2012 | Alexander van Trijffel Service deployments ▶ Many services can be deployed to the same box ▶ Many services can be deployed in the same app ▶ Many services can cooperate in a workflow ▶ Many services can be mashed up in the same page
  • 46. | 25-06-2012 | Alexander van Trijffel Service Examples Subscribe to Customer Status Updated Publish Customer Status Updated Save status locally Subscribe to Product Pricing Updated Publish Product Pricing Updated Save pricing locally Place Order Publish Order Accepted Sales MarketingCustomer care
  • 47. | 25-06-2012 | Alexander van Trijffel Which service owns this page?
  • 48. | 25-06-2012 | Alexander van Trijffel Which service owns this page? None
  • 49. | 25-06-2012 | Alexander van Trijffel Same page composition Server Product Catalog Pricing Inventory Cross Sell
  • 50. | 25-06-2012 | Alexander van Trijffel Amazon.com checkout workflow
  • 51. | 25-06-2012 | Alexander van Trijffel Which service owns this flow?
  • 52. | 25-06-2012 | Alexander van Trijffel Which service owns this flow? None
  • 53. | 25-06-2012 | Alexander van Trijffel Workflow composition Shipping Billing Sales Billing BillingShipping ShippingMarketing
  • 54. | 25-06-2012 | Alexander van Trijffel Autonomous Components ▶ The large-scale business capability that a service provides can be further broken down ▶ A service is composed of one or more Autonomous Components ▶ An AC takes responsibility for a specific set of message types in the service ▶ Autonomous Components are the unit of deployment in SOA ▶ An AC uses the bus to communicate with other ACs. Is independently deployable, has its own endpoint
  • 55. | 25-06-2012 | Alexander van Trijffel Flexibility in deployment ▶ Any number of autonomous components (ACs) can be deployed to a single machine ▶ Or even a single process ▶ Or have a single AC deployed on each machine
  • 56. | 25-06-2012 | Alexander van Trijffel Bus Topology App Bus.dll App Bus.dll App Bus.dll App Bus.dll App Bus.dll App Bus.dll App Bus.dll App Bus.dll
  • 57. | 25-06-2012 | Alexander van Trijffel Scalability ▶ Since each autonomous component maintains its state in the database of its service ▶ We can have a number of servers each running an instance of the same autonomous component
  • 58. | 25-06-2012 | Alexander van Trijffel Scaling out an AC Autonomous Component Distributor ACI ACI ACI Ready Autonomous Component Instance on each machine
  • 59. | 25-06-2012 | Alexander van Trijffel www.atos.net Atos, the Atos logo, Atos Consulting, Atos Worldline, Atos Sphere, Atos Cloud and Atos WorldGrid are registered trademarks of Atos SA. June 2011 © 2011 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos. Your business technologists. Powering progress © Confidential Your business technologists. Powering progress © Confidential www.atos.net Atos, the Atos logo, Atos Consulting, Atos Worldline, Atos Sphere, Atos Cloud and Atos Worldgrid are registered trademarks of Atos SA. July 2011 © 2011 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos. Thank You For more information, please contact : Alexander van Trijffel

Notes de l'éditeur

  1. 1. Network is reliable. Message/data canbe lost when sent over the wire. Failure bySwitch goes up in smoke, power outage, someone trips over networkcord, new security settings Firewall/SP21. Solutions: reliable messaging infrastructure (MSMQ, Sql Server service broker). Rollyourown. Ack&amp; retry, Store &amp; Forward2. LatencyReasonably small for a LAN, not so small for a WAN, and significant over the internet~ 1000 times slower than in-memory accessIf a remote object has 10 properties and you access them one by one, you pay 10 round-trips crossing the network 20 times2. Solutions: Don’t cross the networkifyoudon’t have to. Ifyouneedto cross it, take all the data you MIGHT needwithyou.3. BandwithAlthough bandwidth keeps growing, the amount of data grows fasterWhen transferring lots of data in a given period of time, network congestion may interfere3. Solution: Move time-critical data to separate networks. Prioritize calls4. The topology does not changeUnless a server goes down and is replaced. Or is moved to a different subnetOr clients wirelessly connect and disconnect. What will happen to the application when those hard coded / config-file values change?4. Solution: Don’t hard code IP addresses
  2. Soa Tenet - 1. Services are autonomous.
  3. Guaranteed delivery
  4. Explaintransactionalmessage handlingShow MSMQ queues
  5. In order to avoid spatial coupling, we have a mapping between message type &amp; destinationIf we have subscribed to a message type, then we have a handler for itTherefore, registering that handler with the communications infrastructure is enough to express “subscribe”The infrastructure will send its own subscribe messageWhen the communications infrastructure receives a “subscribe” message, it saves the return address.
  6. One service is authorisedtopublish eventsEvents: Stay away from DB thinking – no CRUDThink about business status changes
  7. Bus architectural styleEvent sources and sinks communicate via channels in the busSource place events (messages) in channels, sinks are notified about message availabilityUse the Bus for SOA services, use Broker for integration of off the shelf software (PeopleSoft / SAP)