Practical SOA with Open ESB
Practical SOA with Open ESB 1
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.
Practical SOA with Open ESB 2
Part 1: Service Classification
Practical SOA with Open ESB 3
• Classifies services into functional groups.
• Provides insight into service implementation.
• Describes both ”As-Is” and ”To-Be” architectures.
• Practical starting point for SOA.
Practical SOA with Open ESB 4
Human to Application services
Need for agility
Cost of change
Application to Application services
Aggregated Core services
Practical SOA with Open ESB 5
• I.T. Building Blocks.
• Bottom up designed.
• Fine Grained – focus on one thing.
• DDD - Maintain domain objects from
• Exposes underlying systems as
• Implemented in dotNet, Java.
• Contained in integration repositories,
Practical SOA with Open ESB 6
Aggregated Core Services
• Combine and orchestrate other
• Reusable business functions.
• Can themselves be aggregated into
• DDD – Context Maps.
• Implemented in dotNet & Java.
• Organised with a developer friendly
ESB (i.e. Mule).
Practical SOA with Open ESB 7
Application 2 Application Services
• Communication between applications.
• Business processes.
• Event / Data Driven.
• Implemented on a JEE platform,
running your choice of ESB/SOA
Practical SOA with Open ESB 8
Human 2 Application Services
• Business Processes interacting with
• Aligned closely with the REAL business
• Portals built on best of breed solutions
that allow for quick and simple
changes (i.e. CorePortal, SiteVision).
Practical SOA with Open ESB 9
•Customer/My Account Portal.
•CRM/Customer Care Portal.
•Order equipment from supplier.
•Automated credit checking.
•Payment of invoices.
Sales System Billing System
Practical SOA with Open ESB 10
The Service Manifest
• I shall do one thing and one thing
• I shall never fail and if I do I will do it
Practical SOA with Open ESB 11
Part 2: JBI & Open ESB
Practical SOA with Open ESB 12
• 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
Practical SOA with Open ESB 13
• Pluggable component.
• Implements business logic and other
• Content based routing.
• Business rules.
• Exposes service endpoints.
Practical SOA with Open ESB 14
• Pluggable component.
• Deals with plumbing and protocols:
• Proxy endpoints for remote services.
• Proxies JBI services to remote
• (Re)used by multiple service engines.
Practical SOA with Open ESB 15
Normalised Message Router
• Provides message interchange
between the loosely coupled
• Normalized Message:
Practical SOA with Open ESB 16
Practical SOA with Open ESB 17
A Very Simple Example
Practical SOA with Open ESB 18
• Allows you to build an integration platform from best of
• 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.
Practical SOA with Open ESB 19
Practical SOA with Open ESB 20
• 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.
Practical SOA with Open ESB 21
• Servicemix has little to no graphical tooling.
• Hot deployment is supported – important for product based
• Still in the Apache Incubator, moderately active community.
• In theory can support all services, but uncertain project
Practical SOA with Open ESB 22
• GUI environment for creating SOA / Composite Applications.
• Supports hot deployment of changes via Service
• Open ESB on a Glassfish platform can support all the
various service categories.
Practical SOA with Open ESB 23
Part 3: Implementing Open ESB
Practical SOA with Open ESB 24
Implementing Open ESB
• The Case
• Existing solution
• Playing with Open ESB
• The solution
Practical SOA with Open ESB 25
• Integration between BaneTele and Sønnico
• BaneTele – Provider of internet and data communication
• Sønnico – Subcontractor that performs equipment
installation and maintainance in the field
Practical SOA with Open ESB 26
Practical SOA with Open ESB 27
Existing Solution: BIE
• Integration managed by the Business Integration Engine
• Open Source project with little activity
• Trouble with large processes
• Limited set of workflow activities
• No support for testing
Practical SOA with Open ESB 28
• 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!
Practical SOA with Open ESB 29
Objectware SOA Stack
• Two service groups
• Core Services
• Application to Application Services
Practical SOA with Open ESB 31
• Three basic services
• Keyword: Data Retrieval
Practical SOA with Open ESB 32
Application 2 Application Services
• One A2A service
• Status Management
• Keyword: Process
Practical SOA with Open ESB 33
Netbeans and Open ESB
as a Silver Bullet
Practical SOA with Open ESB 34
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
Practical SOA with Open ESB 35
JDBC Binding Component
• Alternative to the SQL Service Engine
• Exposes JDBC CRUD operations as
• Wizard-style configuration in Netbeans
• Good support for polling data from
Practical SOA with Open ESB 36
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
• Access to JBI resources
• Exposing the module using any JBI
Practical SOA with Open ESB 37
BPEL Service Engine
• Supports WS-BPEL 2.0
• Good integration with Netbeans
• Visual debugger
• Testable processes
Practical SOA with Open ESB 38
JMS Binding Component
• Enables communication with JMS
Topics and Queues
• Configured through WSDL editor
• Supports polling of JMS queue
• Better tool support is coming
Practical SOA with Open ESB 39
NetBeans IDE 5.5.1
• Established IDE platform
• Provides tooling for Open ESB
• BPEL editor
• Xpath editor
• WSDL editor
• Server and resource management
Practical SOA with Open ESB 40
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
Practical SOA with Open ESB 41
Putting it all Together: Core Services
Practical SOA with Open ESB 42
Putting it all Together: A2A Services
Practical SOA with Open ESB 43
Improvements over BIE
• Better tools support
• Portable standards based solution
• Based on an established platform
• Active development
Practical SOA with Open ESB 44
• 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
Practical SOA with Open ESB 45
Conclusion – Did we get Hooked?
• Many components still unreliable
• Active development, daily
• Worth checking out!
• Yes, we will keep on watching
Practical SOA with Open ESB 46
<pent bilde her>
Practical SOA with Open ESB 47