resource oriented esb

18
Resource Oriented Enterprise Service Bus Jeremy Deane http://jeremydeane.net

Upload: jeremy-deane

Post on 24-May-2015

1.277 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Resource Oriented ESB

Resource Oriented Enterprise Service Bus

Jeremy Deane http://jeremydeane.net

Page 2: Resource Oriented ESB

There are over 1500 pages of specifications

Vendor support and interpretation of the specifications is not universal

Standards Organizations certify vendor interoperability which in turn create more specifications

WS-* Specifications & Vendors & Standards! Oh My!

Page 3: Resource Oriented ESB

To the RESTcue

Simple Integration

REST is simple…but is not a complete enterprise solution

Standards-based

REST is based on a small set of widely-accepted standards such as HTTP URI, and XML

REST requires far fewer development steps, toolkits and execution engines than SOAP

Fewer requirements

Page 4: Resource Oriented ESB

Resource-Oriented Architecture (ROA)

URI

HTTP Methods

A service provides access to a resource, identified by a Universal Resource Indicator (URI), over HTTP

HTTP methods (e.g. GET, PUT, POST, and DELETE) define a uniform interface

Consumer and provider exchange immutable representations of a resource that may itself contain links to other resources

Resources & Representations

• Resource-Oriented Architecture extends the REST architectural style

• Resource-Oriented Architecture is similar to Web Oriented Architecture (WOA)

Page 5: Resource Oriented ESB

ROA Key Concepts

<scheme name>:<authority><path>

http://host/context/employee/1234

A resource is an abstraction of informationResource

Immutable representations of a resource are exposed using a relative URIRepresentations

A relative URI does not contain the scheme name or authority informationRelative URI

A resource provider allows transport-independent stateless C.R.U.D access to a resource

Resource provider

Page 6: Resource Oriented ESB

ROA Conceptual Model

Execution Context

Service

Resource

Resource Representation

Resource Provider

Relative URI

Policies and Contracts

Service Consumer

Real-World Effect

part of

use

represents

seeks

part of

provide access to

returns

constrains

limits use of

hosts

identifies

OASIS SOA Concepts

Resource Oriented Concepts

Key

Page 7: Resource Oriented ESB

ROA Services

HTTP PUT GET POST DELETE

Action Create Retrieve Update Delete

A resource-oriented service provides an extensible transport-independent foundation

Relative URI - /noun/{ID}

Actions - Create, Retrieve, Update, Delete

Transports, such as HTTP and JMS, reside at the edge of the system and map external requests to resource-oriented services

http://host:8080/employee/1234 --> /employee/12345

Page 8: Resource Oriented ESB

ROA Services

Property Value

RelativeURI /noun/{ID}

Action Create, Retrieve, Update Delete

JMSReplyTo Response destination

ContentType Mime Type

A JMS transport uses a message’s properties to map the request to a resource-oriented service

The JMSReplyTo property is used if the action is retrieve or if some other response is required (e.g. confirmation or error)

The Type property is used to determine if the payload (resource representation) is binary or text

Page 9: Resource Oriented ESB

ROA Service Example

«execution environment»Resource Oriented Platform

Resource-Oriented Service

HTTP Transport

JMS Transport

URI

Consumer A

Consumer B

HTTP GET

JMS Retrieve

8080

443

Queue

Response Queue

Both consumers request and receive a resource representation

The Request Reply Enterprise Integration pattern enables the interaction between Consumer B and the resource provider

Page 10: Resource Oriented ESB

ROA Service Security

Authentication - assurance of consumer identity

•HTTP Basic Authentication or HTTP Digest

•Encrypted credentials in JMS Property

Authorization - unauthorized resource access is prevented

•A privilege is comprised of a relative URI and an action (C.R.U.D)

•Accounts are associated with privileges or roles (sets of privileges)

Auditing - a change to the state of a resource is logged

Confidentiality - securing resource representations

Create, Update or Delete actions are audited

Encryption of resource representations

Page 11: Resource Oriented ESB

P2P Hidden Costs

Bottom Line SOA by Marc Rix

Web services

A web service does NOT truly decouple the consumer and provider

P2P Messaging

P2P asynchronous messaging also does NOT decouple the consumer and provider since they both must maintain queue locations

P2P Integrations

The cost of maintaining P2P integrations increases exponentially as the number of the connections increases

# of connections

$

gain

value

cost

loss

Page 12: Resource Oriented ESB

Enterprise Service Bus (ESB)

Enterprise Service Bus (ESB)

An Enterprise Service Bus (ESB) is middleware that provides a platform for service provisioning and decouples consumers from service providers

Enterprise Integration Design Patterns

An ESB implements several key Enterprise Integration Design Patterns

Service Gateway Pipes and Filters

Content Based Router Process Manager

Point-to-Point vs. Service Bus

Page 13: Resource Oriented ESB

ESB Key Concepts

The core capabilities that enable service provisioning across an enterprise include:

Addressing specifies the location of a service regardless of transport

And the main benefits of an ESB include:

Standards-based Enterprise Integration

Framework

Enterprise Architectural Agility

Service Reuse (e.g. Composition & Orchestration)

Routing defines a message path from service provider to consumer

Transformations provides consumer representation transformations

Page 14: Resource Oriented ESB

Resource Oriented ESB (ROA + EI Patterns)

«execution environment»Resource Oriented Platform

Resource-Oriented Service

HTTP Transport

JMS Transport

URI

8080

443Resource-Oriented ServiceURI

Resource-Oriented ServiceURI

Enterprise Integration Patterns

Page 15: Resource Oriented ESB

Resource Oriented Computing Platform

ROC platform

Netkernel is a Resource-Oriented Computing (ROC) platform that runs within a Java Virtual Machine (JVM)

Transports

Transports are used to• Capture external request or events•Map request or event data to a logical

address (URI) and action (C.R.U.D)• Issue sub-request to a RESTful

Microkernel

RESTful microkernel

The RESTful microkernel• Resolves requests to the address space to

physical code• Schedules request to run on available

core allowing processing to scale linearly

NetKernel Middleware Server

TransportsHTTP, JMS, FTP

Logical Address SpaceURI

RESTfulMicrokernel

Physical Code(Java, Ruby, Python)

Page 16: Resource Oriented ESB

Resource Oriented ESB Demo: Content Based Router

«execution environment»NetKernel Server

JMS Transport

Active MQ

Vendor App

Create: Employee XML

Queue

HTTP Transport

8080

443

Employee/employee/{id}

JMeter

Vendor App

Update: Employee XML

Benefits Route Department Route DW Route

Enrollment XML

Employee XML

Employee XML

/route/benefits/employee{id} /department/{id}employee{id} /route/dw/employee{id}

Active MQ

HRS

DW

DW

JMS: Enrollment XML FILE: Employee XML

Page 17: Resource Oriented ESB

Resource Oriented ESB Benefits

Internet Resource Map

Integration functionality

Pushes integration functionality to the edge of the network (as a URI), translating into better service management and scalability

Complexity, cost and time

Reduces integration complexity, lowers cost of entry and decreases time to market

Independent evolution

Decouples consumes from providers allowing each to evolve independently

Page 18: Resource Oriented ESB

Questions & Feedback

My Contact information:

Jeremy DeaneChief ArchitectPlymouth Rock Assurancehttp://jeremydeane.net

The source code along with instructions for building, installing and running the demo can be downloaded: http://jeremdeane.net/demos/ResourceOrientedESB.zip