6
1 Service Oriented Service Oriented Architecture Architecture An Introduction An Introduction Presented By : Presented By : Nilesh Nilesh Gol Gol (PM, CSSI) (PM, CSSI) What is Software Architecture What is Software Architecture What is Architecture What is Architecture Formal Definition Formal Definition IEEE 1471 IEEE 1471-2000 2000 Software architecture is the Software architecture is the fundamental fundamental organization organization of a system, embodied in its of a system, embodied in its components components , their , their relationships relationships to each other and to each other and the environment and the the environment and the principles principles governing its governing its the environment, and the the environment, and the principles principles governing its governing its design and evolution design and evolution IEEE 1471 IEEE 1471-2000 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 attributes attributes What is Software Architecture What is Software Architecture Includes the main components, their main attributes, and their Includes the main components, their main attributes, and their collaboration collaboration 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 viewpoints Architecture is communicated from multiple viewpoints Architecture is Early Architecture is Early Architecture represents the set of earliest Architecture represents the set of earliest design decisions design decisions Hardest to change Hardest to change Most critical to get right Most critical to get right Architecture is the first design artifact where Architecture is the first design artifact where a system’s quality attributes are addressed a 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 structure Team structure Documentation organization Documentation organization Work breakdown structure Work breakdown structure Scheduling, planning, budgeting Scheduling, planning, budgeting Unit testing, integration Unit testing, integration Architecture establishes the Architecture establishes the communication and coordination communication and coordination mechanisms among components mechanisms among components

What is Software Architecture Service Oriented …...What is Software Architecture Includes the main components, their main attributes, and their collaboration expressed in several

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: What is Software Architecture Service Oriented …...What is Software Architecture Includes the main components, their main attributes, and their collaboration expressed in several

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

Page 2: What is Software Architecture Service Oriented …...What is Software Architecture Includes the main components, their main attributes, and their collaboration expressed in several

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

Page 3: What is Software Architecture Service Oriented …...What is Software Architecture Includes the main components, their main attributes, and their collaboration expressed in several

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

Page 4: What is Software Architecture Service Oriented …...What is Software Architecture Includes the main components, their main attributes, and their collaboration expressed in several

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

Page 5: What is Software Architecture Service Oriented …...What is Software Architecture Includes the main components, their main attributes, and their collaboration expressed in several

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

Page 6: What is Software Architecture Service Oriented …...What is Software Architecture Includes the main components, their main attributes, and their collaboration expressed in several

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