35
Service Oriented Service Oriented Architecture Architecture An Introduction An Introduction Arnon Rotem-Gal-Oz Arnon Rotem-Gal-Oz Biometrics Line Development Biometrics Line Development Manager Manager

Soa

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Soa

Service Oriented Service Oriented ArchitectureArchitectureAn IntroductionAn Introduction

Arnon Rotem-Gal-OzArnon Rotem-Gal-OzBiometrics Line Development Biometrics Line Development ManagerManager

Page 2: Soa

What is Software ArchitectureWhat is Software Architecture

Page 3: Soa

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

Page 4: Soa

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

Page 5: Soa

Quality Quality AttributesAttributes

Page 6: Soa

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

Page 7: Soa

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..

Page 8: Soa

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

Page 9: Soa

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

Page 10: Soa

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

Page 11: Soa

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

Page 12: Soa

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

Page 13: Soa

Big SOABig SOAMap to softwareMap to software

"Network"

COPCOPCOPCOP

Nav.Nav.Nav.Nav.

AlertsAlertsAlertsAlerts

Prot.Prot.Prot.Prot.

Page 14: Soa

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…

Page 15: Soa

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

Page 16: Soa

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

Page 17: Soa

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.

Page 18: Soa
Page 19: Soa

Services are Autonomous Services are Autonomous

Page 20: Soa

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

Page 21: Soa

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

Page 22: Soa

The fact that I can, doesn’t mean I will.

PoliciesPolicies

Page 23: Soa

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

……

Page 24: Soa

EndpointEndpoint

Page 25: Soa

It’s all about the It’s all about the Message, baby!Message, baby!

Page 26: Soa

MessagesMessagestravel intravel inno man’s land!no man’s land!

Page 27: Soa

Is he Is he Idempotent?Idempotent?

MessagesMessagesGetGet

RetransmittedRetransmitted

MessagesMessagesArriveArrive

More thanMore thanonceonce

Page 28: Soa

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

Page 29: Soa

Message Exchange PatternsMessage Exchange Patterns

Page 30: Soa

Request/ReplyRequest/Reply

Request/ReactionRequest/Reaction

VSVS

Page 31: Soa

Decoupled Invocation PatternDecoupled Invocation Pattern

Page 32: Soa

ServiceServiceContractContract

Page 33: Soa

Keep Data and state privateKeep Data and state private

Page 34: Soa

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

Page 35: Soa

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