26
Choosing the right ESB (Enterprise Service Bus) Choosing the right ESB for your Integration @Mohammed Fazuluddin

Choosing The Right ESB

Embed Size (px)

Citation preview

Page 1: Choosing The Right ESB

Choosing the right ESB (Enterprise Service Bus)

Choosing the right ESB for your Integration

@Mohammed Fazuluddin

Page 2: Choosing The Right ESB

TOPICS

Overview and Definition of ESB

What is integration Framework

What is integration Suite

Brief on ESB Tools

Conclusion

Page 3: Choosing The Right ESB

Overview and Definition of ESB

ESB need when different applications within companies and between different companies need to communicate with each other.

The Enterprise Service Bus (ESB) has been established as a tool to support application integration.

ESB("Enterprise Service Bus“):

There is no standard definition, The ESB is defined as a software product which assists the developer in application integration and therefore provides the necessary infrastructure to implement routing, translation, and other integration facilities.

On the integration complexity path, an ESB usually falls between a framework and a suite as an alternative for application integration.

Page 4: Choosing The Right ESB

Overview and Definition of ESB

ESB communication

Page 5: Choosing The Right ESB

Overview and Definition of ESB

ESB architecture

Page 6: Choosing The Right ESB

Overview and Definition of ESB

Service - Denotes non-iterative and autonomously executing programs that communicate with other services through message exchange

Bus - Is used in analogy to a computer hardware bus. Enterprise - The concept has been originally

invented to reduce complexity of enterprise application integration within an enterprise; the restriction has become obsolete since modern Internet communication is no longer limited to a corporate entity.

Integration Framework

Enterprise Service Bus Integration Suite

Includes Includes

Page 7: Choosing The Right ESB

Overview and Definition of ESB

The primary duties of an ESB : Monitor and control routing of message exchange

between services. Resolve contention between communicating service

components. Control deployment and versioning of services. Marshal use of redundant services. Cater for commodity services like

Event handling. Data transformation and mapping. Message and event queuing. Sequencing. Security or exception handling Protocol conversion Enforcing proper quality of communication service.

Page 8: Choosing The Right ESB

Overview and Definition of ESB

ESB Core functionalities: Decoupling: One of the most important things that you

can do via ESB is to decouple clients from service providers.

Transport Protocol Conversion: ESB gives you the ability to accept one input protocol and communicate with another service provider on a different protocol.

Message Enhancement: ESB allows you to isolate the client and make some basic changes to the message.

For example, changing date format of incoming message or appending informational data to messages.

Message Transformation: ESB lets you transform an incoming message into several outgoing formats and structure.

For example, XML to JSON, XML to Java objects.

Page 9: Choosing The Right ESB

Overview and Definition of ESB

Routing: ESB has the ability to redirect a client request to a particular service provider based on deterministic or variable routing criteria.

Security: ESB protects services from unauthorized access.

Process Choreography & Service Orchestration: ESB manages process flow and complex business services to perform a business operation.

Process choreography is about business services while service orchestration is the ability to manage the coordination of their actual implementations. It is also capable of abstracting business services from actual implemented services.

Transaction Management: ESB provides the ability to provide a single unit of work for a business request, providing framework for coordination of multiple disparate systems.

Page 10: Choosing The Right ESB

What is integration Framework

Integration Framework A framework helps implementing Enterprise Integration

Patterns (EIP),for example the Splitter or Content Based Router, in order to integrate applications in a standardized way.

The Integrate products noticeably lowers the implementation effort and the source code is easier to understand for other developers.

A framework is well suited to integrate different applications with different protocols and technologies, and concepts such as endpoints, producer, consumer and EIPs are used to create the integration logic.

Even implicitly supported test automation uses the same concepts.

A framework consists of a set of ordinary libraries and is therefore compatible with any development environment, even a classic text editor. 

Known examples of frameworks are Apache Camel and Spring Integration in the Java environment and NServiceBus for .NET. 

Page 11: Choosing The Right ESB

What is integration Suite

Integration Suite

A suite offers all features of an ESB. In addition, many other functions such as Business Process Management (BPM), Business Activity Monitoring, Master Data Management, or a Repository are included.

If some of these additional features are required in addition to pure integration, then the use of a suite is advisable.

The entire integration can be realized with a single software stack. 

The differences between a framework, an ESB and a suite are hopefully now clarified. Next will be explained how to select the right ESB or suite.

Page 12: Choosing The Right ESB

Brief on ESB Tools

Oracle Service Bus / Fusion Middleware

Page 13: Choosing The Right ESB

Brief on ESB Tools

Oracle Service Bus / Fusion Middleware Oracle Service Bus is the current ESB from Oracle. It is a

component of Oracle Fusion Middleware (OFM) stack, which according to the definition of this article is an integration suite.

Different products available on it like the SOA Suite, Coherence, Complex Event Processing, BPEL Process Manager, Enterprise Messaging Service, Service Registry, and many more.

The OFM is based on standards such as Java EE, BPEL, SOAP, or SCA. The products are proprietary and come from multiple acquisitions made by Oracle over time.

The tools are very powerful and stable. Graphical editors exist for most products. Support is also available for most conceivable service level agreements. If these powerful and SLAs are really needed, you are on the right side with Oracle.

The high complexity of the products should not be underestimated. Besides, you should be aware of high licensing and support costs plus a non-transparent pricing model. 

Page 14: Choosing The Right ESB

Brief on ESB Tools

Mule ESB

Page 15: Choosing The Right ESB

Brief on ESB Tools

Mule ESB Mule ESB is one of the first successful open source ESBs. It has

a lot of qualities in common with the other previously mentioned open source ESBs.

These include a very simple ("one click") installation and intuitive, Eclipse-based tooling. Usually, open source ESBs are very lightweight and extensible solutions.

Apart from the free open source version, a commercial enterprise version is available. This offers additional functionality and support for the product. 

 Important advantages in contrast to frameworks like Apache Camel or Spring Integration are the graphical editors for an efficient implementation of integration scenarios and the available connectors for B2B products such as SAP or Salesforce. 

Negative aspects of Mule ESB are the small community, a restrictive licensing model and limited availability of the source code. Competitors have significant advantages at this.

Page 16: Choosing The Right ESB

Brief on ESB Tools

Mule ESB Lightweight:

Mule is the most lightweight integration platform available, with the fully loaded distribution weighing in at 40 MB.

We don't see "lightweight" as just about size either; it is also the cost of making changes to existing integrations and the amount of heavy lifting you need to do to make changes.

The Mule run-time offers modularization and super-fast hot deployment as well as a configuration model that makes it easy to re-order and add/change functionality.

Not just mediation: Most vendors think of an ESB as purely mediation between

systems and have separate products for hosting business logic and publishing services. We see this as unnecessary complexity.

Mule provides a light and scalable service container for publishing REST and SOAP services.

Page 17: Choosing The Right ESB

Brief on ESB Tools

Mule ESB Accessible - any developer can learn Mule:

Mule uses common tools that all Java developers are familiar with, such as Maven, Eclipse, JUnit and Spring.

Mule uses an XML configuration model (similar to Spring) to define logic, and custom code can be written in a variety of languages, including Java, Groovy, JavaScript, Ruby or Python. Also, MuleStudio helps new developers get up to speed quickly with a graphical development environment.

Scaling up, scaling down: Mule was designed for horizontal scale on commodity

hardware - no need for big iron. Mule's runtime is easily embeddable into an application.

This is powerful because it means you can create repeatable unit tests for integrations that will run on a developer laptop and can be incorporated into a continuous build.

Page 18: Choosing The Right ESB

Brief on ESB Tools

Mule ESB Message agnostic:

A powerful feature of Mule is that the container is message agnostic. This means it does not force XML messages on its users.

While XML is common, there are many scenarios where you will want to use JSON, flat files, Cobol Copybooks, binary and file attachments, streams and Java objects.

Cloud ready: If you'd rather leave the application architecture,

hosting and monitoring of your integration to the integration experts then CloudHub™ is for you.

CloudHub offers a multi-tenanted, elastic platform with connectivity to 150+ SaaS, Social Media and infrastructure services and the ability to connect to your on premise applications.

Page 19: Choosing The Right ESB

Brief on ESB Tools

Fuse ESB

Page 20: Choosing The Right ESB

Brief on ESB Tools

Fuse ESB The Fuse ESB is a pure ESB like Mule ESB, without a

suite. It is based on de facto standards in the integration environment such as Apache CXF and Apache Camel. 

The development environment is based on Eclipse and very intuitive.

Fuse ESB was part of FuseSource. Fuse ESB is contained in the current road map and

will continue to be supported and It will be integrated into the JBoss Enterprise SOA Platform - just like the also acquired BPM solution Polymita.

There is still a long way towards a unified suite, since the integration of FuseSource and Polymita will still take a few months, and with JBoss ESB, Switchyard and Fuse ESB now three ESB products need to be merged into one. Here, other open source vendors have already achieved better results.

Page 21: Choosing The Right ESB

Brief on ESB Tools

Talend ESB

Page 22: Choosing The Right ESB

Brief on ESB Tools

Talend ESB Talend ESB is part of the suite of Talend, it can be used

independently or in combination with other components of Talend’s unified platform. All components are open source and freely available. 

All components are open source and freely available. The enterprise version offers additional features and support.

The difference to proprietary products is that all the partial components are based on the same code base and the same tooling is used everywhere.

All tooling of the Talend suite is built on Eclipse, the familiar "look and feel" and the intuitive use of Eclipse remain. 

This allows an efficient implementation of integration scenarios.

Like Fuse ESB, Talend ESB is based on several de facto standards in the integration environment such as Apache Camel, Apache CXF, Apache Karaf and Apache Zookeeper.

Page 23: Choosing The Right ESB

Brief on ESB Tools

WSO2 ESB

Page 24: Choosing The Right ESB

Brief on ESB Tools

WSO2 ESB WSO2 is a relatively unknown vendor. However, WSO2

provides the entire range of components of a suite including Business Process Server, Business Rules Server, Business Activity Monitor or Governance Registry.

The entire WSO2 platform can be installed very easily and offers a lightweight, Eclipse-based development studio.

Like Talend and FuseSource, WSO2 also puts primarily open source projects such as Apache Synapse (lightweight ESB), Axis (Web Service Implementation) or ODE (Business Process Engine) into its components. 

WSO2 is the only vendor that offers a full suite that is based on a single code base and a single development environment. 

A weakness is the graphical tooling. It supports all components of the platform, but it is not as intuitive to use as the tooling of its competitors.

Page 25: Choosing The Right ESB

Conclusion

First a decision must be made whether a framework is sufficient. Be aware that most of the source code must be written by yourself, and tooling and support is scarce.

If an ESB or integration suite should be used, it must be decided whether a proprietary or open source product is a better choice.

Proprietary solutions provide all possible features and strong support. However, this also leads to higher costs and a perceived higher complexity. 

 Ensure that your team will implement this prototype (from the first installation to final deployment and monitoring), and not just the consultants of the vendor.

Your team will have to install the product in the future alone and implement the integration problems independently of any consultants which may not be available.

Page 26: Choosing The Right ESB

THANKS

If you feel it is helpful and worthy to share with other people, please share the same