Service Oriented ArchitectureAn Introduction : Service Oriented ArchitectureAn Introduction Arnon Rotem-Gal-Oz
Biometrics Line Development Manager
Slide 2: What is Software Architecture
What is Architecture Formal Definition : 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
Slide 4: collection of the fundamental decisions about a software product/solution designed to meet the project‘s 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 What is Software Architecture
Architecture is Early : Architecture is Early Architecture represents the set of earliest design decisions
Hardest to change
Most critical to get right
Architecture is the first design artifact where a system’s quality attributes are addressed
Why Architecture? : Why Architecture? Architecture serves as the blueprint for the system but also the project:
Team structure
Documentation organization
Work breakdown structure
Scheduling, planning, budgeting
Unit testing, integration
Architecture establishes the communication and coordination mechanisms among components
Quality Attributes : Quality Attributes
How Architecture : How Architecture Architecture Quality
Attributes Technology Patterns &
Anti-patterns Principles Community
experience Stakeholders Architect Constraints
What is a Service (1) : What is a Service (1) Merriam-Webster A facility supplying some public demand
the work performed by one that serves HELP, USE, BENEFIT
What is a Service (2) : What is a Service (2) In economics and marketing, a service is the non-material 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) : 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 isn’t a solution to world hunger : SOA isn’t 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 SOAAnalyze the business : ASB BLT HDL AFT TGI FRY DRW SWG QYD DLY BST WIU ASB ZIS XOI CUI RMO DLY XPS KYF KFC WHR JIA GEX FQA VUH HCO WKD ECP SKD MFP WCP DKE AJT Big SOAAnalyze the business
Big SOA Identify Business Areas : ASB BLT HDL AFT TGI FRY DRW SWG QYD DLY BST WIU ASB ZIS XOI CUI RMO DLY XPS KYF KFC WHR JIA GEX FQA VUH HCO WKD ECP SKD MFP WCP DKE AJT Big SOA Identify Business Areas COP Navigation Protectors Alerts
Big SOAMap to software : Big SOAMap to software "Network"
Little SOA : Little SOA Architectural Style
For building distributed systems
Loosely coupled components
Our focus from here onward…
Slide 17: Service describes End Point Exposes Messages Sends/Receives Contracts Binds to Service
Consumer implements Policy governed by Sends/Receives Adheres to Component Relation Key Understands Serves
Services and Systems : Services and Systems A service is a program you interact with via message exchanges
A system is a set of deployed services cooperating in a given task
Slide 19: 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.
Slide 21: Services are Autonomous
Slide 22: X
Slide 24: The fact that I can, doesn’t mean I will. Policies
Policy Illustrated : Policy Illustrated Seller Service Runtime contract Runtime Contract
1. Use X.509 Cert for AuthN
2. Use UTF-8, SOAP 1.2
… Policy
1. Supports X.509 Cert or Kerberos ST for AuthN
2. Supports UTF-8, UTF-16, SOAP 1.2, 1.1
… Adopted from Clemens Vasters Design time Contract
1. You’ll send a PO
2. I’ll send a confirmation
…
Slide 26: Endpoint
Slide 27: It’s all about the
Message, baby!
Slide 28: Messages
travel in
no man’s land!
Slide 29: Is he
Idempotent? Messages
Get
Retransmitted
Messages
Arrive
More than
once
Idempotence : Idempotence Idempotent Means It’s OK to Arrive Multiple Times
As Long as the Request Is Processed at Least Once, the Correct Stuff Occurs
In Today’s Internet, You Must Design Your Requests to Be Idempotent Not Idempotent
Baking a CakeStarting fromIngredients Naturally Idempotent
Sweeping the Floor Naturally Idempotent
Read Record “X” Idempotent
If Haven’t Yet Done
Withdrawal #XYZfor $1 Billion,Then Withdraw$1 Billion andLabel as #XYZ Not Idempotent
Withdrawing$1 Billion Idempotent
Baking a Cake
Starting fromthe ShoppingList (If MoneyDoesn’t Matter) Pat Helland
Message Exchange Patterns : Message Exchange Patterns
Slide 32: Request/Reply Request/Reaction VS
Decoupled Invocation Pattern : Decoupled Invocation Pattern
Slide 34: Service
Contract
Slide 35: Keep Data and state private
Slide 36: Big SOA is about business alignment
Little SOA is an Architectural Style
Autonomous Coarse Grained Components
Message based Interactions
Run-Time configuration
What’s next : What’s next SOA Structural Patterns
SOA Interaction Patterns
UI Interaction Patterns
Service Composition Patterns
Contract Anti-patterns
Service Anti-patterns
SOA Performance Anti-Patterns