Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Practical SOA with Open ESB

4,303 views

Published on

  • Be the first to comment

Practical SOA with Open ESB

  1. 1. Practical SOA with Open ESB Practical SOA with Open ESB 1
  2. 2. 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
  3. 3. Part 1: Service Classification Framework Practical SOA with Open ESB 3
  4. 4. 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. Practical SOA with Open ESB 4
  5. 5. Overview Product centric Human to Application services Need for agility Cost of change Application to Application services Aggregated Core services Code centric Core services Practical SOA with Open ESB 5
  6. 6. Core Services • 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. Practical SOA with Open ESB 6
  7. 7. Aggregated Core Services • 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. Practical SOA with Open ESB 7
  8. 8. Application 2 Application Services • Communication between applications. • Business processes. • Automated. • Event / Data Driven. • Conversational. • Implemented on a JEE platform, running your choice of ESB/SOA platform. Practical SOA with Open ESB 8
  9. 9. Human 2 Application Services • 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). Practical SOA with Open ESB 9
  10. 10. Example Implementations •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. Equipment Sales System Billing System Database Practical SOA with Open ESB 10
  11. 11. 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. Practical SOA with Open ESB 11
  12. 12. Part 2: JBI & Open ESB Practical SOA with Open ESB 12
  13. 13. JBI Introduction • 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. Practical SOA with Open ESB 13
  14. 14. Service Engines • Pluggable component. • Implements business logic and other services: • Content based routing. • Orchestration. • Business rules. • Transformations. • Exposes service endpoints. Practical SOA with Open ESB 14
  15. 15. Binding Components • 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. Practical SOA with Open ESB 15
  16. 16. Normalised Message Router • Provides message interchange between the loosely coupled components. • Normalized Message: • Message. • Metadata. • Attachments. Practical SOA with Open ESB 16
  17. 17. Overview JBI Container Practical SOA with Open ESB 17
  18. 18. A Very Simple Example JBI Container J 2 3 1 4 Practical SOA with Open ESB 18
  19. 19. 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. Practical SOA with Open ESB 19
  20. 20. JBI Implementations Open ESB Practical SOA with Open ESB 20
  21. 21. 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. ? Practical SOA with Open ESB 21
  22. 22. 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. ? Practical SOA with Open ESB 22
  23. 23. 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. Open ESB Practical SOA with Open ESB 23
  24. 24. Part 3: Implementing Open ESB Practical SOA with Open ESB 24
  25. 25. Implementing Open ESB • The Case • Existing solution • Playing with Open ESB • The solution • Experiences Practical SOA with Open ESB 25
  26. 26. 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 Practical SOA with Open ESB 26
  27. 27. Integration Sønnico Clients ? BaneTele Delivery System Practical SOA with Open ESB 27
  28. 28. 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 Practical SOA with Open ESB 28
  29. 29. 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! Practical SOA with Open ESB 29
  30. 30. Use Case Practical SOA with Open ESB 30
  31. 31. Applying the Objectware SOA Stack • Two service groups • Core Services • Application to Application Services Practical SOA with Open ESB 31
  32. 32. Core Services • Three basic services • GetOrders • GetOrder • GetNextStatus • Keyword: Data Retrieval Practical SOA with Open ESB 32
  33. 33. Application 2 Application Services • One A2A service • Status Management • Keyword: Process Practical SOA with Open ESB 33
  34. 34. Netbeans and Open ESB as a Silver Bullet Open ESB J Practical SOA with Open ESB 34
  35. 35. 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
  36. 36. 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 Practical SOA with Open ESB 36
  37. 37. 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 Practical SOA with Open ESB 37
  38. 38. BPEL Service Engine • Supports WS-BPEL 2.0 • Good integration with Netbeans tooling • Visual debugger • Testable processes • Clustering • Versioning Practical SOA with Open ESB 38
  39. 39. 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
  40. 40. 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 Practical SOA with Open ESB 40
  41. 41. 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
  42. 42. Putting it all Together: Core Services Open ESB J Practical SOA with Open ESB 42
  43. 43. Putting it all Together: A2A Services Open ESB J Practical SOA with Open ESB 43
  44. 44. Improvements over BIE • Testability • Better tools support • Portable standards based solution • Based on an established platform • Active development Practical SOA with Open ESB 44
  45. 45. 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 Practical SOA with Open ESB 45
  46. 46. Conclusion – Did we get Hooked? • Many components still unreliable • Active development, daily improvements • Worth checking out! • Yes, we will keep on watching Open ESB Practical SOA with Open ESB 46
  47. 47. Questions? <pent bilde her> Practical SOA with Open ESB 47

×