Service Oriented Architecture An Introduction Arnon Rotem-Gal-Oz Biometrics Line Development Manager
What is Software Architecture
What is Architecture Formal Definition
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
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 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
Architecture serves as the blueprint for the system but also the project:
Work breakdown structure
Scheduling, planning, budgeting
Unit testing, integration
Architecture establishes the communication and coordination mechanisms among components
How Architecture Architecture Quality Attributes Technology Patterns & Anti-patterns Principles Community experience Stakeholders Architect Constraints people A “deliverable” Produce Key Is an input
What is a Service (1)
A facility supplying some public demand
the work performed by one that serves HELP , USE , BENEFIT
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.
What is a service (3)
A Windows Service?
RPC Locator, EventLog, DHCP Client,
Distribution Service, Alert Service
Security Service, Log Service
Common Operational Picture, Navigation
Accounts Receivable, Customers
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 SOA Analyze 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 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 COP Navigation Protectors Alerts
Big SOA Map to software "Network" COP Nav. Alerts Prot.
For building distributed systems
Loosely coupled components
Our focus from here onward…
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
A service is a program you interact with via message exchanges
A 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.
Services are Autonomous
The fact that I can, doesn’t mean I will. Policies
Policy Illustrated Seller Service 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 … Organization A Organization B Policy Policy Buyer Service Local Service Local Service
It’s all about the Message, baby!
Messages travel in no man’s land!
Is he Idempotent? Messages Get Retransmitted Messages Arrive More than once
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 Cake Starting from Ingredients Naturally Idempotent Sweeping the Floor Naturally Idempotent Read Record “X” Idempotent If Haven’t Yet Done Withdrawal #XYZ for $1 Billion, Then Withdraw $1 Billion and Label as #XYZ Not Idempotent Withdrawing $1 Billion Idempotent Baking a Cake Starting from the Shopping List (If Money Doesn’t Matter) Pat Helland