Practical SOA with Open ESB
description
Transcript of Practical SOA with Open ESB
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.
2Practical SOA with Open ESB
Part 1: Service Classification Framework
Practical SOA with Open ESB 3
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
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
• 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
• 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
• 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
• 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
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
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
Part 2: JBI & Open ESB
Practical SOA with Open ESB 12
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.
• 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
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.
• Provides message interchange between the loosely coupled components.
• Normalized Message:
• Message.
• Metadata.
• Attachments.
Normalised Message Router
Practical SOA with Open ESB 16
Overview
17Practical SOA with Open ESB
JBI C
onta
iner
A Very Simple Example
18Practical SOA with Open ESB
J
JBI Container
1
2 3
4
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
JBI Implementations
20Practical SOA with Open ESB
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
?
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
?
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
Part 3: Implementing Open ESB
Practical SOA with Open ESB 24
Implementing Open ESB
•The Case
•Existing solution
•Playing with Open ESB
•The solution
•Experiences
25Practical 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
Integration
27Practical SOA with Open ESB
Sønnico Clients
?
BaneTele Delivery System
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
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
Use Case
30Practical SOA with Open ESB
•Two service groups
•Core Services
•Application to Application Services
Applying the Objectware SOA Stack
Practical SOA with Open ESB 31
•Three basic services
• GetOrders
• GetOrder
• GetNextStatus
• Keyword: Data Retrieval
Core Services
Practical SOA with Open ESB 32
• One A2A service
• Status Management
• Keyword: Process
Application 2 Application Services
Practical SOA with Open ESB 33
Netbeans and Open ESBas a Silver Bullet
34Practical SOA with Open ESB
J
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
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
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
BPEL Service Engine
•Supports WS-BPEL 2.0
•Good integration with Netbeans tooling
•Visual debugger
•Testable processes
•Clustering
•Versioning
38Practical 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
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
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
Putting it all Together: Core Services
42Practical SOA with Open ESB
J
Open ESB
Putting it all Together: A2A Services
43Practical SOA with Open ESB
J
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
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
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
<pent bilde her>
Questions?
Practical SOA with Open ESB 47