service oriented architecture an introduction arnon rotem-gal-oz biometrics line development manager
TRANSCRIPT
Service Oriented Service Oriented ArchitectureArchitectureAn IntroductionAn Introduction
Arnon Rotem-Gal-OzArnon Rotem-Gal-OzBiometrics Line Development Biometrics Line Development ManagerManager
What is Architecture What is Architecture Formal DefinitionFormal Definition IEEE 1471-2000IEEE 1471-2000
Software architecture is the Software architecture is the fundamentalfundamental organizationorganization of a system, embodied in its of a system, embodied in its componentscomponents, their , their relationshipsrelationships to each other and to each other and the environment, and the the environment, and the principlesprinciples governing its governing its design and evolutiondesign and evolution
IEEE 1471-2000IEEE 1471-2000
collection of the fundamental decisions about a software collection of the fundamental decisions about a software product/solution designed to meet the project‘s quality product/solution designed to meet the project‘s quality attributesattributes
Includes the main components, their main attributes, and their Includes the main components, their main attributes, and their collaborationcollaboration
expressed in several levels of abstraction (depending on the expressed in several levels of abstraction (depending on the project's size).project's size).
Architecture is communicated from multiple viewpointsArchitecture is communicated from multiple viewpoints
What is Software ArchitectureWhat is Software Architecture
How ArchitectureHow Architecture
ArchitectureArchitecture
Quality Quality AttributesAttributes
TechnologyTechnology
Patterns & Patterns & Anti-patternsAnti-patterns
PrinciplesPrinciples
Community Community experienceexperienceCommunity Community experienceexperience
StakeholdersStakeholdersStakeholdersStakeholders
ArchitectArchitectArchitectArchitect
peoplepeople
A “deliverable”A “deliverable”
ProduceProduce
KeyKey
Is an input Is an input
ConstraintsConstraints
What is a Service (1)What is a Service (1)
Merriam-WebsterMerriam-Webster
A facility supplying some public demand A facility supplying some public demand the work performed by one that serves HELP, USE, the work performed by one that serves HELP, USE,
BENEFITBENEFIT
HMM..HMM..
What is a Service (2)What is a Service (2)
In economics and marketing, a service is the non-In economics and marketing, a service is the non-material equivalent of a good. Service provision has material equivalent of a good. Service provision has been defined as an economic activity that does not been defined as an economic activity that does not result in ownership, and this is what differentiates it result in ownership, and this is what differentiates it from providing physical goods.from providing physical goods.
It is claimed to be a It is claimed to be a process that creates benefitsprocess that creates benefits by by facilitating either a change in customers, a change facilitating either a change in customers, a change in their physical possessions, or a change in their in their physical possessions, or a change in their
intangible assets.intangible assets.
en.wikipedia.org/wiki/Serviceen.wikipedia.org/wiki/Service
What is a service (3)What is a service (3)
A Windows Service?A Windows Service? RPC Locator, EventLog, DHCP Client, RPC Locator, EventLog, DHCP Client,
Software Service?Software Service? Distribution Service, Alert ServiceDistribution Service, Alert Service Security Service, Log ServiceSecurity Service, Log Service
Business Service?Business Service? Common Operational Picture, NavigationCommon Operational Picture, Navigation Accounts Receivable, Customers Accounts Receivable, Customers
SOA isn’t a solution to SOA isn’t a solution to world hungerworld hunger
Nor is it: Nor is it: A specific TechnologyA specific Technology
The Ultimate answer to reuseThe Ultimate answer to reuse
AA New name for EAI New name for EAI
A New way to do RPCA New way to do RPC
ASBASB BLTBLT
HDLHDL
AFTAFT TGITGI FRYFRY
DRWDRWSWGSWG
QYDQYD DLYDLY
BSTBST
WIUWIU
ASBASB
ZISZISXOIXOI CUICUI
RMORMO
DLYDLYXPSXPS
KYFKYF
KFCKFC
WHRWHR
JIAJIA GEXGEX
FQAFQAVUHVUH
HCOHCO
WKDWKD
ECPECP
SKDSKD
MFPMFP
WCPWCP
DKEDKEAJTAJT
Big SOABig SOAAnalyze the business Analyze the business
ASBASB BLTBLT
HDLHDL
AFTAFT TGITGI FRYFRY
DRWDRWSWGSWG
QYDQYD DLYDLY
BSTBST
WIUWIU
ASBASB
ZISZISXOIXOI CUICUI
RMORMO
DLYDLYXPSXPS
KYFKYF
KFCKFC
WHRWHR
JIAJIA GEXGEX
FQAFQAVUHVUH
HCOHCO
WKDWKD
ECPECP
SKDSKD
MFPMFP
WCPWCP
DKEDKEAJTAJT
Big SOA Big SOA Identify Business AreasIdentify Business Areas
COP
Navigation
Protectors
Alerts
Big SOABig SOAMap to softwareMap to software
"Network"
COPCOPCOPCOP
Nav.Nav.Nav.Nav.
AlertsAlertsAlertsAlerts
Prot.Prot.Prot.Prot.
Little SOALittle SOA
Architectural StyleArchitectural Style
For building distributed systemsFor building distributed systems
Loosely coupled componentsLoosely coupled components
Our focus from here onward…Our focus from here onward…
ServiceService
describesdescribes
End PointEnd Point ExposesExposes
MessagesMessages Sends/ReceivesSends/Receives
ContractsContracts
Binds toBinds to
Service Service ConsumerConsumer implementsimplements
PolicyPolicy governed bygoverned by
Sends/ReceivesSends/Receives
Adheres Adheres toto
ComponentComponent
RelationRelation
KeyKey
UnderstandsUnderstands
ServesServes
Services and SystemsServices and Systems
A service is a program you interact with A service is a program you interact with via message exchangesvia message exchanges
A system is a set of deployed services A system is a set of deployed services cooperating in a given taskcooperating in a given task
A Service edge A Service edge is a natural is a natural boundaryboundary
Warning: Remoting and other RPCs trick us into thinking that there is no substantial difference
between a local and a remote object. In fact, they hide the presence of the network.
sd Autonomous Serv ices
User Journal Subscription System Publisher X
User
«service»
Customer
«service»
Proposals
«service»
Proposals
Waiting on external resources do we really know how long will it take?Not to mention that getting the information only when needed makes Service interaction very RPC-like (but that's another problem)
1.0getProforma
1.1getCustomerDiscount
1.2
1.3getDiscountRate
1.4
1.5 XX
sd ActiveServ ice
User Journal Subscription System Publisher X
User
«service»
Customer
«service»
Proposals
«service»
Proposals
note that now we are getting all the dicount rates in one call (less messages) to generate even less traffic the contracts can be made to include only changes from timestamp supplied in the request
loop Active Class polls external resources
1.0 getCustomerDiscounts
1.1
1.2 getDiscounts
1.3
2.0 ProduceProforma
2.1
Organization AOrganization A Organization BOrganization B
PolicyPolicy PolicyPolicy
Policy IllustratedPolicy Illustrated
Buyer ServiceBuyer Service
Local ServiceLocal Service Local ServiceLocal Service
Seller ServiceSeller ServiceRuntime contractRuntime contract
Runtime ContractRuntime Contract
1. Use X.509 Cert for AuthN1. Use X.509 Cert for AuthN2. Use UTF-8, SOAP 1.22. Use UTF-8, SOAP 1.2
……
PolicyPolicy
1. Supports X.509 Cert 1. Supports X.509 Cert oror Kerberos ST for AuthN Kerberos ST for AuthN2. Supports UTF-8, UTF-16, SOAP 1.2, 1.12. Supports UTF-8, UTF-16, SOAP 1.2, 1.1
……
Adopted from Clemens VastersAdopted from Clemens Vasters
Design time ContractDesign time Contract
1. You’ll send a PO1. You’ll send a PO2. I’ll send a confirmation2. I’ll send a confirmation
……
Is he Is he Idempotent?Idempotent?
MessagesMessagesGetGet
RetransmittedRetransmitted
MessagesMessagesArriveArrive
More thanMore thanonceonce
IdempotenceIdempotence Idempotent Means It’s OK to Arrive Multiple TimesIdempotent Means It’s OK to Arrive Multiple Times
As Long as the Request Is Processed at Least Once, the Correct As Long as the Request Is Processed at Least Once, the Correct Stuff OccursStuff Occurs
In Today’s Internet, You Must Design Your Requests to Be In Today’s Internet, You Must Design Your Requests to Be IdempotentIdempotent
Not IdempotentNot IdempotentBaking a CakeBaking a CakeStarting fromStarting fromIngredientsIngredients
Naturally IdempotentNaturally IdempotentSweeping the FloorSweeping the Floor
Naturally IdempotentNaturally IdempotentRead Record “X”Read Record “X”
IdempotentIdempotentIf Haven’t Yet DoneIf Haven’t Yet DoneWithdrawal #XYZWithdrawal #XYZfor $1 Billion,for $1 Billion,Then WithdrawThen Withdraw$1 Billion and$1 Billion andLabel as #XYZLabel as #XYZ
Not IdempotentNot IdempotentWithdrawingWithdrawing$1 Billion$1 Billion
IdempotentIdempotentBaking a CakeBaking a CakeStarting fromStarting fromthe Shoppingthe ShoppingList (If MoneyList (If MoneyDoesn’t Matter)Doesn’t Matter)
Pat HellandPat Helland
Big SOA is about business alignmentBig SOA is about business alignment
Little SOA is an Architectural StyleLittle SOA is an Architectural Style Autonomous Coarse Grained Autonomous Coarse Grained
ComponentsComponents Message based InteractionsMessage based Interactions Run-Time configurationRun-Time configuration
What’s nextWhat’s next
SOA Structural PatternsSOA Structural Patterns SOA Interaction PatternsSOA Interaction Patterns UI Interaction PatternsUI Interaction Patterns Service Composition PatternsService Composition Patterns Contract Anti-patternsContract Anti-patterns Service Anti-patternsService Anti-patterns SOA Performance Anti-PatternsSOA Performance Anti-Patterns