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

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

Transcript of Service Oriented Architecture An Introduction Arnon Rotem-Gal-Oz Biometrics Line Development...

Service Oriented Service Oriented ArchitectureArchitectureAn IntroductionAn Introduction

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

What is Software ArchitectureWhat is Software Architecture

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

Quality Quality AttributesAttributes

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.

Services are Autonomous Services are Autonomous

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

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

PoliciesPolicies

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

……

EndpointEndpoint

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

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

Message Exchange PatternsMessage Exchange Patterns

Request/ReplyRequest/Reply

Request/ReactionRequest/Reaction

VSVS

Decoupled Invocation PatternDecoupled Invocation Pattern

ServiceServiceContractContract

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