Practical SOA with Open ESB

47
Practical SOA with Open ESB Practical SOA with Open ESB 1

description

 

Transcript of Practical SOA with Open ESB

Page 1: Practical SOA with Open ESB

Practical SOA with Open ESB

Practical SOA with Open ESB 1

Page 2: Practical SOA with Open ESB

Aims & Agenda

• Introduce Objectwares Service Classification Framework –approx 10 minutes.

• Explain how JBI (& Open ESB) fits into this framework –approx 10 minutes.

• Describe our experiences with implementing a part of our framework with Open ESB – approx 25 minutes.

• Question time – 10 minutes.

2Practical SOA with Open ESB

Page 3: Practical SOA with Open ESB

Part 1: Service Classification Framework

Practical SOA with Open ESB 3

Page 4: Practical SOA with Open ESB

Framework Introduction

•Classifies services into functional groups.

•Provides insight into service implementation.

•Describes both ”As-Is” and ”To-Be” architectures.

•Practical starting point for SOA.

4Practical SOA with Open ESB

Page 5: Practical SOA with Open ESB

Overview

5Practical SOA with Open ESB

Human to Application services

Core services

Aggregated Core services

Application to Application services

Pro

duct c

entric

Code c

entric

Ne

ed

fo

r a

gil

ity

Co

st o

f ch

an

ge

Page 6: Practical SOA with Open ESB

• I.T. Building Blocks.

• Bottom up designed.

• Fine Grained – focus on one thing.

• DDD - Maintain domain objects from silo applications.

• Exposes underlying systems as services.

• Implemented in dotNet, Java.

• Contained in integration repositories, i.e. Glassfish.

Core Services

Practical SOA with Open ESB 6

Page 7: Practical SOA with Open ESB

• Combine and orchestrate other services.

• Reusable business functions.

• Can themselves be aggregated into other services.

• DDD – Context Maps.

• Implemented in dotNet & Java.

• Organised with a developer friendly ESB (i.e. Mule).

• Wrapped.

Aggregated Core Services

Practical SOA with Open ESB 7

Page 8: Practical SOA with Open ESB

• Communication between applications.

• Business processes.

• Automated.

• Event / Data Driven.

• Conversational.

• Implemented on a JEE platform, running your choice of ESB/SOA platform.

Application 2 Application Services

Practical SOA with Open ESB 8

Page 9: Practical SOA with Open ESB

• Business Processes interacting with humans.

• Workflow.

• Aligned closely with the REAL business processes.

• Portals built on best of breed solutions that allow for quick and simple changes (i.e. CorePortal, SiteVision).

Human 2 Application Services

Practical SOA with Open ESB 9

Page 10: Practical SOA with Open ESB

Example Implementations

10Practical SOA with Open ESB

•Customer/My Account Portal.•CRM/Customer Care Portal.•Partner Portal.

•Order equipment from supplier.•Automated credit checking.•Payment of invoices.

•Customer overview.

•Customer.•Order.•Product.

Billing SystemSales SystemEquipment Database

Page 11: Practical SOA with Open ESB

The Service Manifest

• I shall do one thing and one thing well.

• I shall never fail and if I do I will do it gracefully.

11Practical SOA with Open ESB

Page 12: Practical SOA with Open ESB

Part 2: JBI & Open ESB

Practical SOA with Open ESB 12

Page 13: Practical SOA with Open ESB

JBI Introduction

13Practical SOA with Open ESB

• JSR 208: Java Business Integration.

•Specification describing a pluggable component framework based on open standards.

•Components communicate via WSDL.

• Implementations such as Open ESB offer a ”Build It Yourself” ESB.

Page 14: Practical SOA with Open ESB

• Pluggable component.

• Implements business logic and other services:

• Content based routing.

• Orchestration.

• Business rules.

• Transformations.

• Exposes service endpoints.

Service Engines

Practical SOA with Open ESB 14

Page 15: Practical SOA with Open ESB

Binding Components

Practical SOA with Open ESB 15

• Pluggable component.

• Deals with plumbing and protocols:

• JMS.

• MQ.

• EJB.

• Proxy endpoints for remote services.

• Proxies JBI services to remote consumers.

• (Re)used by multiple service engines.

Page 16: Practical SOA with Open ESB

• Provides message interchange between the loosely coupled components.

• Normalized Message:

• Message.

• Metadata.

• Attachments.

Normalised Message Router

Practical SOA with Open ESB 16

Page 17: Practical SOA with Open ESB

Overview

17Practical SOA with Open ESB

JBI C

onta

iner

Page 18: Practical SOA with Open ESB

A Very Simple Example

18Practical SOA with Open ESB

J

JBI Container

1

2 3

4

Page 19: Practical SOA with Open ESB

JBI Advantages

•Allows you to build an integration platform from best of breed components.

•Avoids lock-in to a specific vendors ‘suite’.

•Encourages a SOA approach.

•Vendors can concentrate on what they do best.

•Encourages the use of Open Standards.

19Practical SOA with Open ESB

Page 20: Practical SOA with Open ESB

JBI Implementations

20Practical SOA with Open ESB

Open ESB

Page 21: Practical SOA with Open ESB

Mule-JBI

• No drag n’ drop development environment.

• Deployments require restart of the mule container.

• Limited Mule-JBI community.

• Mule-JBI would be best suited to code centric services, but is currently vapor ware.

21Practical SOA with Open ESB

?

Page 22: Practical SOA with Open ESB

Servicemix

• Servicemix has little to no graphical tooling.

• Hot deployment is supported – important for product based services.

• Still in the Apache Incubator, moderately active community.

• In theory can support all services, but uncertain project stability.

22Practical SOA with Open ESB

?

Page 23: Practical SOA with Open ESB

Open ESB

• GUI environment for creating SOA / Composite Applications.

• Supports hot deployment of changes via Service Assemblies.

• Open ESB on a Glassfish platform can support all the various service categories.

23Practical SOA with Open ESB

Open ESB

Page 24: Practical SOA with Open ESB

Part 3: Implementing Open ESB

Practical SOA with Open ESB 24

Page 25: Practical SOA with Open ESB

Implementing Open ESB

•The Case

•Existing solution

•Playing with Open ESB

•The solution

•Experiences

25Practical SOA with Open ESB

Page 26: Practical SOA with Open ESB

The Actors

• Integration between BaneTele and Sønnico

•BaneTele – Provider of internet and data communication services

•Sønnico – Subcontractor that performs equipment installation and maintainance in the field

26Practical SOA with Open ESB

Page 27: Practical SOA with Open ESB

Integration

27Practical SOA with Open ESB

Sønnico Clients

?

BaneTele Delivery System

Page 28: Practical SOA with Open ESB

Existing Solution: BIE

• Integration managed by the Business Integration Engine (BIE)

•Open Source project with little activity

•Trouble with large processes

•Limited set of workflow activities

•No support for testing

28Practical SOA with Open ESB

Page 29: Practical SOA with Open ESB

Open ESB

•Open Source ESB from Sun Microsystems

•Based on JBI

• Just hit version 2.0

•Runs on top of Java EE Containers such as Glassfish

•Netbeans IDE provides tooling

•Lacking in monitoring and configuration, but new tools are on their way!

29Practical SOA with Open ESB

Page 30: Practical SOA with Open ESB

Use Case

30Practical SOA with Open ESB

Page 31: Practical SOA with Open ESB

•Two service groups

•Core Services

•Application to Application Services

Applying the Objectware SOA Stack

Practical SOA with Open ESB 31

Page 32: Practical SOA with Open ESB

•Three basic services

• GetOrders

• GetOrder

• GetNextStatus

• Keyword: Data Retrieval

Core Services

Practical SOA with Open ESB 32

Page 33: Practical SOA with Open ESB

• One A2A service

• Status Management

• Keyword: Process

Application 2 Application Services

Practical SOA with Open ESB 33

Page 34: Practical SOA with Open ESB

Netbeans and Open ESBas a Silver Bullet

34Practical SOA with Open ESB

J

Open ESB

Page 35: Practical SOA with Open ESB

SQL Service Engine

•New in the latest Open ESB 2 Beta

•Exposes SQL queries as Web Services

•WSDL generated from query result

•Handy for importing simple data or performing simple operations

35Practical SOA with Open ESB

Page 36: Practical SOA with Open ESB

JDBC Binding Component

•Alternative to the SQL Service Engine

•Exposes JDBC CRUD operations as web services

•Wizard-style configuration in Netbeans

•Good support for polling data from database

36Practical SOA with Open ESB

Page 37: Practical SOA with Open ESB

Java EE Service Engine

•Acts as a bridge to the underlying Java EE Container

•Enables existing Java EE modules to be deployed in a JBI Service Assembly

•Connects the Java EE module to the NMR, enabling..

• Access to JBI resources

• Exposing the module using any JBI Binding Component

37Practical SOA with Open ESB

Page 38: Practical SOA with Open ESB

BPEL Service Engine

•Supports WS-BPEL 2.0

•Good integration with Netbeans tooling

•Visual debugger

•Testable processes

•Clustering

•Versioning

38Practical SOA with Open ESB

Page 39: Practical SOA with Open ESB

JMS Binding Component

•Enables communication with JMS Topics and Queues

•Configured through WSDL editor

•Supports polling of JMS queue

•Better tool support is coming

39Practical SOA with Open ESB

Page 40: Practical SOA with Open ESB

NetBeans IDE 5.5.1

•Established IDE platform

•Provides tooling for Open ESB

• BPEL editor

• Xpath editor

• WSDL editor

• Debugging

• Testing

•Server and resource management

40Practical SOA with Open ESB

Page 41: Practical SOA with Open ESB

Putting it all Together

•Core Services implemented using Java EE

• Data Access through JDBC

• Exposed as services using JAX-WS annotations

•A2A Services implemented using BPEL Service Engine

• Orchestration through BPEL

• Message Queing (Statuses) using JMS BC

41Practical SOA with Open ESB

Page 42: Practical SOA with Open ESB

Putting it all Together: Core Services

42Practical SOA with Open ESB

J

Open ESB

Page 43: Practical SOA with Open ESB

Putting it all Together: A2A Services

43Practical SOA with Open ESB

J

Open ESB

Page 44: Practical SOA with Open ESB

Improvements over BIE

•Testability

•Better tools support

•Portable standards based solution

•Based on an established platform

•Active development

44Practical SOA with Open ESB

Page 45: Practical SOA with Open ESB

Experiences

•Active component development

•Most components are still beta software

•Still little documentation

•Configuration issues

•Tooling looks promising, but is still immature

•Good A2A support with BPEL

•Easy to get started

45Practical SOA with Open ESB

Page 46: Practical SOA with Open ESB

Conclusion – Did we get Hooked?

•Many components still unreliable

•Active development, daily improvements

•Worth checking out!

•Yes, we will keep on watching Open ESB

46Practical SOA with Open ESB

Page 47: Practical SOA with Open ESB

<pent bilde her>

Questions?

Practical SOA with Open ESB 47