soa symposium rest style soa governance 2009 10 23 bc
DESCRIPTION
Governing REST-style SOATRANSCRIPT
![Page 1: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/1.jpg)
Governing REST-style SOA
Benjamin Carlyle
![Page 2: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/2.jpg)
Overview
The Open Group Governance Reference Model
The REST Architectural Style / REST-Style SOA
Governing a REST-style SOA Technology, Processes, and Organisation
Governance Walk-through
![Page 3: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/3.jpg)
SOA Governance Reference Model
Processes
Organisational Structures
Enabling Technologies
Where does REST fit?Does REST fit?
The Open Group – SOA Governance Framework – C093
![Page 4: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/4.jpg)
REST-style SOA
Full compliance with SOA Principles
Full compliance with REST constraints
Impacts: Major Impact on Technology
Impact on Processes
Some Organisational Impact
![Page 5: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/5.jpg)
REST Technology Impact
Uniform Contract and Stateless Constraints
![Page 6: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/6.jpg)
Uniform Contract ConstraintService-specific Contract
Split into fine-grained Uniform Contract endpoints
Transition from design time to runtime discovery
Service<<service>>
+getInvoice(invoice id): InvoiceType+getCustomer(customer id): CustomerType
Contract
+getInvoice(invoice id): InvoiceType+getCustomer(customer id): CustomerType
Consumer
Service<<service>>
+getInvoice(invoice id): InvoiceType+getCustomer(customer id): CustomerTypecustomer/ {customer-id}
+get(acceptable types): Representation
Consumerinvoice/ {invoice-id}
+get(acceptable types): Representation
![Page 7: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/7.jpg)
Stateless Constraint
Stateless between requests State deferred back to service consumer
No publish/subscribe No pessimistic lock or transaction over multiple
requests
Effective scaling and fault recovery at cost of useful communication patterns
Possible reduced service composability
![Page 8: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/8.jpg)
REST Process Impact
New and modified processes
![Page 9: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/9.jpg)
SOA Governance Framework Processes – Major Processes
• Service Portfolio Management• Configuration Control of inventory
• Service Lifecycle• Configuration Control for each service
• Solution Portfolio Management• Configuration Control of SOA-based solution set
• Solution Lifecycle• Configuration Control of each solution
![Page 10: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/10.jpg)
SOA Governance Framework Service Portfolio Sub-processes
• New Process• Uniform Contract Change Management
• Unaffected• Service Portfolio Planning• Service Identification and Business Justification• Service Ownership, Service Funding
• Impacted by split of service-specific contract• Service Change Management
![Page 11: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/11.jpg)
REST Organisational Impact
Uniform Contract Governance within your organization
![Page 12: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/12.jpg)
Bodies to Control Uniform Contract
New standards bodies to support Uniform Contract … or reuse existing contract guidelines bodies
Control shifted from service contract owners to owners of Uniform Contract
Bodies consist of service contract owners as well as centralised governance representatives
![Page 13: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/13.jpg)
Uniform Contract Change Management
Objectives, overview, and walkthrough
![Page 14: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/14.jpg)
REST Constraints
Client/Server → Consumer/Service
Services are stateless between requests
Cache – Implicit or Explicit in responses
Uniform Interface → Uniform Contract
Layered → Virtualised (indirection)
Code on Demand – Consumer-executed Logic
![Page 15: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/15.jpg)
Uniform Contract Methods and Media Types
![Page 16: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/16.jpg)
Change Management Walk-through
Canonical Methods and Communication Patterns
![Page 17: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/17.jpg)
Method Definition
Start with communication pattern
Subject patterns to relevant REST Constraints Client/Server, Stateless, Cache, Layered System
• Future-proof Methods– Negotiate Media Type– Support Redirection– Recover from lost messages
• Reuse methods from elsewhere before invention
![Page 18: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/18.jpg)
HTTP GET –Not quite a simple fetch
REST Constraints Stateless: Leaves no consumer-specific state with the
service at the end of the request Cache: Response indicates cacheability Layered System: Keeps resource identifier intact
Future-proof Negotiated media type Redirection through 3xx responses Retry if response is lost Reuse from Web architecture
![Page 19: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/19.jpg)
Publish/Subscribe
Breaches Stateless Constraint Leaves consumer-specific subscription state with
service at the end of request A single user operating multiple service consumers
would result in multiple subscription records
Alternative: Poll for updates at a reasonable rate Be aware: Scalability and service upgrade reduced Be pragmatic: Real-time systems need pub/sub
Pessimistic transactions and locks are also stateful!
![Page 20: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/20.jpg)
Change Management Walk-through
Canonical Media Types, Data Models and Schemas
![Page 21: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/21.jpg)
Media Types (Schemas)
Enumerate and define encoding for each kind of information to communicate
Subject to REST Constraints Self-Description, Hypermedia, Code on Demand
Future-proof Media Types Include extension points (e.g. must-ignore) Apply principle of least power
Reuse types from elsewhere before invention
![Page 22: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/22.jpg)
HTML
REST Constraints Self-Description: Specific MIME type, easy to find
specification Hypermedia: Used in links and image tags Code on Demand: ECMAscript and applets
Future-proof Evolution via Must-ignore semantics Least Power: Paragraphs, lists and tables Reuse from Web architecture Abstract and reusable for many purposes
![Page 23: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/23.jpg)
Semantic SpectrumSemantic Spectrum
Level of Abstraction / Reusability
Le
vel o
f S
em
an
tic
s /
Ja
rgo
n
Customer Record
Invoice
Address e.g. vCard
News Feed e.g. Atom
Human-readable e.g. HTML
Types with higher level semantics usually contain more jargon, and have narrower applicability
![Page 24: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/24.jpg)
Service Change Management
Service Description and Service Capability Metadata
![Page 25: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/25.jpg)
Service Capability Metadata
Resource Identifiers (Service-specific) Method (Centralised) Media Types (Centralised) CacheDocumentation and Exceptions
/{invoice-id} GET application/vnd.com.example.invoice+xml
Must-revalidate
Retrieve Invoice for invoice-id
application/vnd.com.visa.invoice+xml
PUT application/vnd.com.example.invoice+xml
No cache Update Invoice for invoice-id to match specified state
• Service Endpoint + Method = Service Capability– Media Type is negotiated
• Check Uniform Contract usage is correct• Apply remaining REST Constraints• Apply SOA Principles
![Page 26: Soa Symposium Rest Style Soa Governance 2009 10 23 Bc](https://reader036.vdocuments.mx/reader036/viewer/2022062703/554f47feb4c905524c8b4766/html5/thumbnails/26.jpg)
Take-home Messages
Governance even more important in REST-style SOA
REST doesn’t permit everything you want to do: Be pragmatic, but aware of implications
REST is just as much about integration maturity as it is about scalability and performance
Give Project Teams some space to experiment, but clamp down where required