resource oriented esb

Post on 24-May-2015

1.279 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Resource Oriented Enterprise Service Bus

Jeremy Deane http://jeremydeane.net

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!

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

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)

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

top related