EAI - Enterprise Service Bus - ESB - Use Case


Published on

A use case approach to using Enterprise Service Bus as part of Enterprise Application Integration

Published in: Technology
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

EAI - Enterprise Service Bus - ESB - Use Case

  1. 1. Sherif Rasmy - ESB Enterprise Application Integration The Enterprise Service Bus – ESB Sherif Rasmy - March 12, 2014 Introduction SPX is a medium size on-line store that has successfully sustained consistent growth over the past two years. In order to maintain that growth, management realized that their operational systems need to be modernized to expedite purchases' delivery as well as improving the quality of customer service through an implementation of a Customer Relationship Management System (CRM). This paper will discuss the current architecture of SPX's systems and how it can be modernized to achieve SPX’s goals with minimal changes. The paper explores using an enterprise service bus (ESB) to integrate existing systems and bring processes to be near real time. We also compare two ESB offering from IBM and Apache. The Problem  File based integration between the order, payment, warehouse and shipping management systems (figure 1).  It takes at least 2 days for any purchase to be ready for shipping.  Available system interfaces (REST/SOAP/Queues) are not utilized.  The life cycle is externally controlled through multiple and non-integrated batch processes Order Management System (OMS) DB Payment Management System (PMS) DB SOAP Warehouse management System (WMS) DB REST Shipping Management System (SMS) DB MQ 1: Place Order 2: Load Orders Overnight 1 3: Load Orders Overnight 2 4: Load Orders Overnight 2 Figure 1 – SPX Current Architecture The Solution  An ESB will be deployed as a mediator/hub between existing systems providing centralized connectivity between all systems (figure 2).
  2. 2. Sherif Rasmy - ESB  Web Service enabled routes will provide near real-time orchestration of activities within processes like placing an order.  In our example, placing an order will: o Create an order in OMS o Asynchronously call PMS payment SOAP service o Wait for payment success and simultaneously call WMS and place shipment request in SMS  The sale process from start to initiating shipping is now reduced minutes  The implementation of such ESB will enable a smooth integration with a COTS CRM solution. Most ESBs have pre-configured connectors to popular CRM like Salesforce, Sugar CRM and Oracle CRM. Order Management System (OMS) DB Payment Management System (PMS) DB SOAP Warehouse management System (WMS) DB REST Shipping Management System (SMS) DB MQ Place Order Route 1: Place Order 2: Place Order Workflow E S B Save Order 4: Payment Request 5: Poll Payment Request 6: Call Recipients Figure 2 – SPX New Architecture The Enterprise Service Bus  There is no standard definition for the term “Enterprise Service Bus”. A collection of software components that provide an infrastructure to integrate applications is very abstract definition but very accurate as well [2] . This leads to confusion between an Integration Framework, an ESB and an Integration Suite  The number and sophistication of functional and non-functional features determine if the integration solution is an Integration Framework, an ESB or an Integration Suite (figure 3).  In the upcoming sections, key features of integration frameworks and ESBs will be described. These features will be the basis of comparison between Apache ServiceMix and IBM WebSphere ESB.  Integration suites are out of scope of this paper but are briefly touched upon in figure 3 for completeness purposes.
  3. 3. Sherif Rasmy - ESB Integration Suite ESB Integration Framework Messaging Connectivity Routing Transformation Business Process Management Business Rules Engine Business Activity Monitoring Web Services Framework Message BrokerSystem Management Development & Tooling Integration Suite DB Figure 3 – Enterprise Application Integration Stack Integration Frameworks  Integration frameworks implement Enterprise Integration Patterns [3] through 4 categories of components; Messaging, Connectivity, Routing and Transformation (figure 4) Trasnsformation Messaging Channels - Point to Point - Publish Subtribe - Dead Letter Message Construction - Event Message - Request Reply - Correlation Management - Control Bus - Detour - Wire Tap ConnectivityEndpoints - Message Mapper - Event Driven Consumer - Polling Consumer - Competing Consumers - Durable Subscriber - Idempotent Consumer - Transactional Client - Messaging Gateway Connectors - JDBC - JMS - JCA - HTTP/HTTPS - FTP/IO - SMTP - SOAP - REST Routing - Content Based - Splitter - Load Balancer - Message Filter - Aggregator - Delayer - Dynamic Router - Re-Sequencer - Routing Slip - Recipient List - Throttler - Sampling - Content Enricher - Sorter - Content Filter - Validator - Claim Check - Normalizer Figure 4 – Integration Frameworks Components  Integration frameworks provide some level of monitoring, tooling, and system management. However these are not as sophisticated as those provided in ESBs. ESBs  An ESB is based on an integration framework. However, it is a much more powerful because it offers strong tool support for deployment, administration and monitoring at runtime, besides basic functionalities for application integration [1] (figure 3).  Graphical editors are provided for the implementation of various integration scenarios. The integration logic can be modelled with "drag and drop" and the corresponding source code can also be generated automatically [1] .  The great advantage of ESBs over the use of pure integration framework is therefore the better tooling, which reduces the cost and complexity significantly.
  4. 4. Sherif Rasmy - ESB System Management - Life Cycle Management - Resource Management - Dynamic Deployment - Clustering and failover - Security - Remote access - Centralized logging - Dynamic configuration Message Broker - Cross-language clients - Flexible persistence - Streams for large messages - Message compression - Cluster configuration manager - Configuration profiles - Runtime registry - Monitoring Development & Tooling - Graphical Editors - Source Code Generators - API Dev. Kits Web Services Framework - Turn Routes and Flows services - WS-* - SOAP/REST Integration Framework Figure 5 – ESB Components ServiceMix vs. WebSphere ESB Integration Framework Apache SeviceMix IBM WebSphere ESB Powered by Apache Camel [4] Camel is a versatile open-source integration framework based on known Enterprise Integration Patterns. Camel defines routing and mediation rules in a variety of domain-specific languages, including a Java-based Fluent API, Spring or Blueprint XML Configuration files, and Scala DSL Camel comes with a rich set of connectors including: JMS, JDBC, JPA, SOAP, REST, IP, FTP, HTTP/HTTPS, JCA, SMTP, Facebook, Salesforce, SAP, Twitter Powered by IBM Integration Bus [10] and IBM WebSphere Adapters [11] The IBM Integration Bus, formerly known as the IBM WebSphere Message Broker Family, provides a variety of options for implementing a universal integration foundation based on an enterprise service bus (ESB). Implementations help to enable connectivity and transformation. Includes connectivity to JMS, JDBC, JPA, SOAP, REST, IP, FTP, HTTP/HTTPS, JCA, SMTP WebSphere Adapters include special connectors (Adapters) including: Facebook, Salesforce, SAP, Twitter System Management Apache SeviceMix IBM WebSphere ESB Powered by Apache Karaf [5] Apache Karaf is a small OSGi based runtime which provides a lightweight container onto which various components and applications can be deployed. It provide the following features: - Hot Deployment - Remote Access - Dynamic Configuration - Instances Management - Provisioning Powered by Tivoli Composite Application Manager [12] Tivoli Composite Application is integrated software for SOA management for services, applications and middleware. It combines in-depth services management with the management of IBM WebSphere Application Server, IBM WebSphere MQ and IBM Message Server environments, and monitoring of virtual servers and operating systems.
  5. 5. Sherif Rasmy - ESB Message Broker Apache SeviceMix IBM WebSphere ESB Powered by Apache ActiveMQ [6] ActiveMQ is an open source MOM compliant with the JMS standard. It supports many cross language clients and protocols including Java, C, C++, C#, Ruby, Perl, Python and PHP. Power by IBM WebSphere MQ [13] WebSphere MQ can transport any type of data as messages. It works with a broad range of computing platforms, applications, web-services and communications protocols for security-rich message delivery. Web Services Framework Apache SeviceMix IBM WebSphere ESB Powered by Apache CXF [7] Apache CXF framework is used to build and develop services using front-end programming APIs, like JAX-WS and JAX- RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI. Powered by WebSphere Application Server [15] IBM WebSphere Application Server Feature Pack for Web Services extends the capabilities of IBM WebSphere Application Server. It helps you send web services messages asynchronously, reliably and securely. It simplifies web service implementation and management, and enables greater interoperability with other platform providers. Development & Tooling Apache SeviceMix IBM WebSphere ESB Powered by Fuse IDE [8] Fuse IDE is a graphical, Eclipse-based tool for integrating software components that works with Apache ServiceMix, Apache ActiveMQ, and Apache Camel. Powered by IBM WebSphere Business Modeler and Integration Developer [14] WebSphere Business Modeler lets business analysts design and optimize the desired business process models through simulation. It speeds up the development process by jump- starting the construction of the implementation-level model, and drives the development of components or services necessary to complete the implementation. WebSphere Developer provides visual software development tools to specify, test and deploy executable business processes that integrate Web services, enterprise applications, human tasks and other service components into a SOA-based business solution. It is an Eclipse-based IDE for integration specialists to build composite applications Conclusion Based on the comparison outlined one finds the following:  The cost saving you achieve with ServiceMix is considerably large. ServiceMix is open source and free of charge; WebSphere ESB license exceeds $350K/year [16] (16 core processor). On the hand, in case professional support is needed a commercial version of ServiceMix (JBoss Fuse) costs $120K.  The core functionality SPX is looking for is an integration framework. Although Apache Camel is relatively new compared to IBM Integration Bus, its routing technology is standardized through DSL and implements all EIP patterns from the ground up. This is not the case with IBM Integration Bus which relies on proprietary technology. Relying in standardized
  6. 6. Sherif Rasmy - ESB technology reduces locking into a specific technology.  An ESB implementation is not an easy task regardless of the provider you choose [17] . The fact that ServiceMix is an open-source provides you with many blogs, tutorials and a very active community. To start an ESB project the technology staff needs to be trained by professionals and it should be clear that the learning curve is steep. It should be noted that while preparing this comparison, it was not easy to fit IBM’s products into the functional component architecture adopted to conduct the comparison. As a matter of fact, the collection of IBM products that form WebSphere ESB overlap in functionality. References 1. Kai Wähner. Apr 02, 2013. Choosing the Right ESB for Your Integration Needs. http://www.infoq.com/articles/ESB- Integration 2. Matthias Feraga. June 6, 2011. Choosing between lightweight and traditional ESBs. http://blog.octo.com/en/choosing- between-lightweight-and-traditional-esbs/ 3. Gregor Hohpe and Booby Wolf. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. http://www.eaipatterns.com/eaipatterns.html 4. Apache Camel. https://camel.apache.org/what-is-camel.html 5. Apache Karaf. http://karaf.apache.org/ 6. Apache ActiveMQ. http://activemq.apache.org/ 7. Apache CXF. http://cxf.apache.org/ 8. Fuse IDE. http://fusesource.com/products/fuse-ide/ 9. IBM ESB. Chapter 3. http://www.redbooks.ibm.com/redbooks/pdfs/sg247369.pdf 10. IBM Integration Bus. http://www-03.ibm.com/software/products/en/ibm-integration-bus 11. IBM WebSphere Adapters. http://www-03.ibm.com/software/products/en/adapters 12. IBM Tivoli Composite Application Manager. http://www- 03.ibm.com/software/products/en/compositeapplicationmanagerforsoaplatform/ 13. IBM WebSphere MQ. http://www-03.ibm.com/software/products/en/wmq/ 14. IBM WebSphere Business Modeler and Integration Developer. https://www.ibm.com/developerworks/websphere/zones/devtools/newto/#soa 15. IBM WebSphere Application Server. http://www-03.ibm.com/software/products/en/webservices 16. Red hat Jboss Fuse. https://img.en25.com/Web/RedHat/fuse-v-ibm-wesb.pdf 17. Don’t use an ESB unless you absolutely, positively need one. http://www.zdnet.com/blog/gardner/dont-use-an-esb- unless-you-absolutely-positively-need-one-mule-cto-warns/3060