Sie sind auf Seite 1von 35

Service Oriented Architecture

An Introduction

Arnon Rotem-Gal-Oz Biometrics Line Development Manager

What is Software Architecture

What is Architecture
Formal Definition IEEE 1471-2000

Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution

IEEE 1471-2000

What is Software Architecture

collection of the fundamental decisions about a software product/solution designed to meet the projects quality attributes Includes the main components, their main attributes, and their collaboration expressed in several levels of abstraction (depending on the project's size).

Architecture is communicated from multiple viewpoints

Quality Attributes

How Architecture
Stakeholders Quality Attributes

Constraints

Principles Community experience Patterns & Anti-patterns


Key people A deliverable

Architect

Architecture

Technology

Produce Is an input

What is a Service (1)

HMM..

A facility supplying some public demand the work performed by one that serves HELP, USE, BENEFIT
Merriam-Webster

What is a Service (2)

In economics and marketing, a service is the nonmaterial equivalent of a good. Service provision has been defined as an economic activity that does not result in ownership, and this is what differentiates it from providing physical goods. It is claimed to be a process that creates benefits by facilitating either a change in customers, a change in their physical possessions, or a change in their intangible assets.

en.wikipedia.org/wiki/Service

What is a service (3)

A Windows Service?

RPC Locator, EventLog, DHCP Client,

Software Service?

Distribution Service, Alert Service Security Service, Log Service

Business Service?

Common Operational Picture, Navigation Accounts Receivable, Customers

SOA isnt a solution to world hunger


Nor is it: A specific Technology

The Ultimate answer to reuse A New name for EAI A New way to do RPC

Big SOA
Analyze the business
ASB BLT AFT TGI

FRY
ECP SWG

HDL DRW

MFP

WCP QYD WIU XOI ZIS CUI WHR ASB RMO HCO JIA GEX WKD DLY DLY
SKD

XPS KYF

BST

VUH

KFC

AJT

FQA

DKE

Big SOA
Identify Business Areas
ASB BLT AFT TGI

FRY
ECP SWG

Navigation
HDL DRW QYD WIU XOI ZIS CUI DLY

Alerts
SKD

MFP

WCP DLY

XPS KYF

WKD WHR

ASB

COP
RMO BST VUH

HCO

Protectors
JIA AJT
FQA

GEX

KFC

DKE

Big SOA
Map to software

Prot. COP "Network" Nav.

Alerts

Little SOA

Architectural Style For building distributed systems

Loosely coupled components


Our focus from here onward

Adheres to

Policy

governed by

Binds to

End Point Serves

Exposes

Service Consumer

Understands

Contracts

implements

Service

describes
Key Component

Sends/Receives

Messages

Sends/Receives

Relation

Services and Systems


A

service is a program you interact with via message exchanges system is a set of deployed services cooperating in a given task

A Service edge is a natural boundary

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.

The Network is reliable The Network is homogenous Latency is zero

Transport cost is zero

Fallacies of distributed Computing

Bandwidth is infinite

There is one administrator Topology doesnt change

The Network is Secure

Services are Autonomous

sd Autonomous Serv ices User Journal Subscription System Publisher X

service Proposals User

service Customer

service Proposals

1.0 getProforma 1.1 getCustomerDiscount 1.2

1.3 getDiscountRate 1.4

1.5

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)

sd Activ eServ ice User Journal Subscription System Publisher X

service Proposals User

service Customer

service Proposals

loop Activ e Class polls external resources 1.0 getCustomerDiscounts

1.1 1.2 getDiscounts

1.3

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

2.1

Policies

The fact that I can, doesnt mean I will.

Policy Illustrated
Organization A
Policy

Organization B

1. Supports X.509 Cert or Kerberos ST for AuthN Runtime contract Buyer Service Supports UTF-8, UTF-16, SOAPSeller Service 2. 1.2, 1.1
Design time Contract

Policy

1. Youll send a PO Policy 2. Ill send a confirmation


Runtime Contract

Local Service

Local Service 1. Use X.509 Cert for AuthN 2. Use UTF-8, SOAP 1.2
Adopted from Clemens Vasters

Endpoint

Its all about the Message, baby!

Messages travel in no mans land!

Is he Idempotent?

Messages Get Retransmitted

Messages Arrive More than once

Idempotence

Idempotent Means Its OK to Arrive Multiple Times

As Long as the Request Is Processed at Least Once, the Correct Stuff Occurs

In Todays Internet, You Must Design Your Requests to Be Idempotent

Not Idempotent Withdrawing $1 Billion Not Idempotent Baking a Cake Starting from Ingredients

Naturally Idempotent Sweeping the Floor Idempotent If Havent Yet Done Withdrawal #XYZ for $1 Billion, Then Withdraw $1 Billion and Label as #XYZ

Idempotent Baking a Cake Starting from the Shopping List (If Money Doesnt Matter)

Naturally Idempotent Read Record X Pat Helland

Message Exchange Patterns

Request/Reply

VS

Request/Reaction

Decoupled Invocation Pattern

Service Contract

Keep Data and state private

Big SOA is about business alignment Little SOA is an Architectural Style


Autonomous Coarse Grained Components Message based Interactions Run-Time configuration

Whats next

SOA Structural Patterns SOA Interaction Patterns UI Interaction Patterns Service Composition Patterns Contract Anti-patterns Service Anti-patterns SOA Performance Anti-Patterns

Das könnte Ihnen auch gefallen