Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
1
Service Oriented Service Oriented ArchitectureArchitectureAn IntroductionAn Introduction
Presented By :Presented By :NileshNilesh GolGol (PM, CSSI)(PM, CSSI)
What is Software ArchitectureWhat is Software Architecture
What is Architecture What is Architecture Formal DefinitionFormal Definition IEEE 1471IEEE 1471--20002000
Software architecture is the Software architecture is the fundamentalfundamentalorganizationorganization 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 thethe environment and the principlesprinciples governing itsgoverning itsthe environment, and the the environment, and the principlesprinciples governing its governing its design and evolutiondesign and evolution
IEEE 1471IEEE 1471--20002000
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
What is Software ArchitectureWhat is Software Architecture
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
Architecture is EarlyArchitecture is Early
Architecture represents the set of earliest Architecture represents the set of earliest design decisionsdesign decisions Hardest to changeHardest to change
Most critical to get rightMost critical to get right
Architecture is the first design artifact where Architecture is the first design artifact where a system’s quality attributes are addresseda system’s quality attributes are addressed
Why Architecture?Why Architecture?
Architecture serves as the blueprint for Architecture serves as the blueprint for the system but also the project:the system but also the project: Team structureTeam structure
Documentation organizationDocumentation organization
Work breakdown structureWork breakdown structure
Scheduling, planning, budgetingScheduling, planning, budgeting
Unit testing, integrationUnit testing, integration
Architecture establishes the Architecture establishes the communication and coordination communication and coordination mechanisms among componentsmechanisms among components
2
Quality Quality AttributesAttributes
How ArchitectureHow Architecture
Quality Quality AttributesAttributes
PrinciplesPrinciples
StakeholdersStakeholders
ConstraintsConstraints
ArchitectureArchitecture
TechnologyTechnology
Patterns & Patterns & AntiAnti--patternspatterns
PrinciplesPrinciples
Community Community experienceexperience
ArchitectArchitect
peoplepeople
A “deliverable”A “deliverable”
ProduceProduce
KeyKey
Is an input Is an input
What is a Service (1)What is a Service (1)
MerriamMerriam--WebsterWebster
A facility supplying some public demand A facility supplying some public demand
the work performed by one that the work performed by one that servesserves HELPHELP, , USEUSE, , BENEFITBENEFIT
HMM..HMM..
What is a Service (2)What is a Service (2)
In economics and marketing, a service is the nonIn 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 aIt is claimed to be a process that creates benefitsprocess that creates benefits byby 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? 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 SOA isn’t a solution to a solution to world hungerworld hungerNor 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
3
ASBASB BLTBLT
HDLHDL
AFTAFT TGITGI FRYFRY
DRWDRWSWGSWG
ECPECP
MFPMFP
Big SOABig SOAAnalyze the business Analyze the business
QYDQYD DLYDLY
BSTBST
WIUWIU
ASBASB
ZISZISXOIXOI CUICUI
RMORMO
DLYDLYXPSXPS
KYFKYF
KFCKFC
WHRWHR
JIAJIA GEXGEX
FQAFQAVUHVUH
HCOHCO
WKDWKD
SKDSKD
WCPWCP
DKEDKEAJTAJT
ASBASB BLTBLT
HDLHDL
AFTAFT TGITGI FRYFRY
DRWDRWSWGSWG
ECPECP
MFPMFP
Big SOA Big SOA Identify Business AreasIdentify Business Areas
Navigation Alerts
QYDQYD DLYDLY
BSTBST
WIUWIU
ASBASB
ZISZISXOIXOI CUICUI
RMORMO
DLYDLYXPSXPS
KYFKYF
KFCKFC
WHRWHR
JIAJIA GEXGEX
FQAFQAVUHVUH
HCOHCO
WKDWKD
SKDSKD
WCPWCP
DKEDKEAJTAJT
COP Protectors
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…
End PointEnd Point ExposesExposesBinds toBinds to
S iS i
PolicyPolicy governed bygoverned byAdheres Adheres toto
ServesServes
ServiceService
describesdescribes
MessagesMessages Sends/ReceivesSends/Receives
ContractsContractsService Service
ConsumerConsumerimplementsimplements
Sends/ReceivesSends/ReceivesComponentComponent
RelationRelation
KeyKey
UnderstandsUnderstands
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 y p yy p ycooperating in a given taskcooperating in a given task
4
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.
Fallacies of
The Network is
reliable
Latency is zero
Bandwidth is Transport
The Network is
homogenous
distributed Computing
infinite
The Network is Secure
Topology doesn’t change
There is one administrator
cost is zero
Services are Autonomous Services are Autonomous PoliciesPolicies
The fact that I can, doesn’t mean I will.
Organization AOrganization A Organization BOrganization B
Policy IllustratedPolicy Illustrated
Buyer ServiceBuyer Service Seller ServiceSeller ServiceRuntime contractRuntime contract
PolicyPolicy
1. Supports X.509 Cert 1. Supports X.509 Cert oror Kerberos ST for AuthNKerberos ST for AuthN2. Supports UTF2. Supports UTF--8, UTF8, UTF--16, SOAP 1.2, 1.116, SOAP 1.2, 1.1
……
Design time ContractDesign time Contract
Local ServiceLocal Service Local ServiceLocal ServiceRuntime ContractRuntime Contract
1. Use X.509 Cert for AuthN1. Use X.509 Cert for AuthN2. Use UTF2. Use UTF--8, SOAP 1.28, SOAP 1.2
……
Adopted from Clemens VastersAdopted from Clemens Vasters
11. You’ll send a PO. You’ll send a PO22. I’ll send a confirmation. I’ll send a confirmation
……
EndpointEndpoint
5
It’s all about the It’s all about the Message, baby!Message, baby!
MessagesMessagestravel intravel inno man’s land!no man’s land!
Is he Is he Idempotent?Idempotent?
MessagesMessagesGetGet
RetransmittedRetransmittedIdempotent?Idempotent?
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 1 BillionBillion
IdempotentIdempotentBaking a CakeBaking a CakeStarting fromStarting fromthe Shoppingthe ShoppingList (If MoneyList (If MoneyDoesn’t Matter)Doesn’t Matter)
Pat HellandPat Helland
Message Exchange PatternsMessage Exchange Patterns Request/ReplyRequest/Reply
VSVS
Request/ReactionRequest/Reaction
6
Decoupled Invocation PatternDecoupled Invocation PatternServiceServiceContractContract
Keep Data and state privateKeep Data and state private 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 Message based InteractionsMessage based Interactions
RunRun--Time configurationTime configuration