Soa Symposium Rest Style Soa Governance 2009 10 23 Bc

26
Governin g REST- style SOA Benjamin Carlyle

description

Governing REST-style SOA

Transcript of Soa Symposium Rest Style Soa Governance 2009 10 23 Bc

Page 1: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

Governing REST-style SOA

Benjamin Carlyle

Page 2: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

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

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

REST Technology Impact

Uniform Contract and Stateless Constraints

Page 6: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

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

REST Process Impact

New and modified processes

Page 9: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

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

REST Organisational Impact

Uniform Contract Governance within your organization

Page 12: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

Uniform Contract Change Management

Objectives, overview, and walkthrough

Page 14: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

Uniform Contract Methods and Media Types

Page 16: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

Change Management Walk-through

Canonical Methods and Communication Patterns

Page 17: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

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

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

Change Management Walk-through

Canonical Media Types, Data Models and Schemas

Page 21: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

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

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

Service Change Management

Service Description and Service Capability Metadata

Page 25: Soa Symposium   Rest Style Soa Governance 2009 10 23   Bc

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

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