What is ESB ? What it Does ? Where it runs? - esb

Can anyone elaborately explain about ESB ? I am new to it. Apart from integrating applications, I need to know where does ESB runs ? what types of services it can be integrated. Thanks in advance.

An enterprise service bus (ESB) is a software architecture concept that enables communication among various applications. Instead of having to make each of your applications communicate directly with each other in all their various formats, each application simply communicates with the ESB, which handles transforming and routing the messages to their appropriate destinations.
An ESB provides its fundamental services through an event-driven and standards-based messaging engine (the bus). Thanks to ESB, integration architects can exploit the value of messaging without writing code. Developers typically implement an ESB using technologies found in a category of middleware infrastructure products, usually based on recognized standards. As with a Service-Oriented Architecture (SOA), an ESB is essentially a collection of enterprise architecture design patterns that is now implemented directly by many enterprise software products.
Moreover, WSO2 ESB is a fast, light-weight, and versatile enterprise service bus. It is 100% open source and released under the Apache License v2.0. Using WSO2 ESB you can perform a variety of enterprise integration patterns, including filtering, transforming, and routing SOAP, binary, plain XML, and text messages that pass through your business systems by HTTP, HTTPS, JMS, mail, etc.
Resources: http://soatutorials.blogspot.com/2013/08/10-minute-tutorial-for-extending-wso2.html

Related

What is the main difference between MDM and ESB?

I have read a few articles online, but I'm still pretty confused. What is the main difference between ESB - mediator and MDM?
Is MDM (Master Data Management) just a subset of ESB (Enterprise Service Bus)? Is the ESB just the underlying technology with IT governance support for connecting systems, while the MDM is just syncing the data within the systems? Do both architectures have their own dashboard?
Thanks!
ESB is an integration solution which makes it possible to connect systems in a loosely coupled way.
MDM is a concept which ensures that organization's key business information (master data) is provided to all relevant systems and users in a consistent way. (MDM can utilize ESB in data integration and communication.)
For MDM I recommend to read www.whatismdm.com It has a good overview about MDM and links to good MDM articles.

SAP PI/PO vs open source ESB advantages

Is SAP PI/PO now considered a true ESB? I've read various sources claiming it was not quite there 4-5 years ago.
And what if you have a very SAP-centric environment, would it be very strongly suggested to use PI/PO instead of the more standard integration platforms such as Mule ESB, Jboss Fuse, BizTalk and Oracle ESB?
If you primarily have expertise with the platform agnostic ESB's mentioned, would it still be worth integrating with SAP Pi? What are the advantages of PI?
I see they all have some option to integrate with SAP, but unbiased information seems hard to come by in the SAP-scene.
If your entire landscape consists of SAP modules then probably better to use PI.
If however you want to connect to other systems in the cloud, internally or externally then I would not choose PI.
PI is not an integration platform (better to use this phrase an an ESB). In this case it is better than have something fronting your SAP backend such as Biztalk, Fuse, Mule or other. They are more flexible and have more functionality when it comes to communicating with other systems and protocol. They are probably far easier to use as well.
Most of these integration platforms have commercial adapters that can connect to SAP. IBM's Integration Bus has SAP adapters, so does Fuse and others.
Like I said, it depends on your landscape and your integration requirements.
Today, as SAP NetWeaver 7.5 released, SAP PO is common ESB.
It is based entirely on Java8 and JEE5 standards, with optional old-fashioned ABAP usage.
Someone could implement integration scenarios with many tools (simple mappings, SOJO or EJB, or even your own JCA-adapter). Now SAP PO is really fast and reliable.

Connectors in Activiti BPM

Currently we evaluate Activiti as a possible Open Source Business Process Engine. One important requirement is an easy integration of external systems (ECM, CRM, SharePoint, SAP...) within the processes. During research I found some articles claiming that there are no build-in connectors to other systems. The only way to interact with external systems is to invoke java classes (see http://forums.activiti.org/content/how-create-connector and http://books.google.de/books?id=kMldSaOSgPYC&pg=PA100&lpg=PA100&dq=Bonita+Open+Solution+connectors&source=bl&ots=uwzz5OSten&sig=h2wf0q5J3xAxwN3AZ7Vondemnec&hl=de&sa=X&ei=uwBYUtehHoTqswacrYHgDQ&ved=0CIUBEOgBMAc4Cg#v=onepage&q=Bonita%20Open%20Solution%20connectors&f=false)
How complex is the integration of external systems in Activiti processes? Is it true that there are no bulid-in connectors? This would be a showstopper-criteria for us.
best regards and thanks for you reply
Ben
Currently (as version 5.14) Activiti has direct connection to
Alfresco for document repository
Drools for rule tasks
LDAP for groups and users
Mule for sending messages
Camel for sending/receiving messages
To integrate any other external system you need to use Java Service Task, where you can use Java classes to delegate workflow to your external system. These Java classes can take variables from your workflow, can direct to one of its outgoing flows and of course you can use any capability of your external system.

How to implement an ESB (Enterprise Services Bus)

In terms of implementing an ESB, what roles are involved?
What are their responsibility respectively?
And what steps should be taken?
Any materials on these topics?
I'm freshman in this field.
I've read the "Enterprise Services Bus" by Dave Chappell, but I'm still confused in a way.
Unfortunately it is in german, but the german "Bundesamt für Sicherheit in der Informationstechnik" (BSI, which means something like federal agency for information security) has published a comprehensive guideline for implementing SOA Security Middleware (in fact ESB products) in a way that information security can be guaranteed in your organization.
It defines evaluation catalogues, steps, roles and actions to build up an entperise SOA Middleware based on an ESB product (called "SOA Security Middleware Screening").
The BSI is an eminent authority for security issues in the german speaking parts of the world, pretty much like NIST, IEEE and so on...
Don't know if this helps you much, but if you are interested you can find it here.
You can look at available open source code, such as PServiceBus, NServiceBus, and MassTransit.
If your requirement is to create a middleware system which should act as a bus of communication for all the systems, then apache servicemix or jboss fuse are cool ESB tools. First is to decide a ESB tool then you should start implementing the concepts.
Apache servicemix is a Open source integration system which provides features like Apache ActiveMQ, Camel, CXF, and Karaf into a powerful runtime platform. Please refer to below url, dowload and start working on the examples inside downloaded bundle.
http://servicemix.apache.org/

Difference between JBPM and BPEL/ESB

what is difference between JBPM and BPEL(and ESB)?
Would you please explain them?
RGDS
I am not much familiar with JBPM. But it seems to be a Business work flow which can work with java services or basically java based process. Not only with web services.
BPEL is a standard to write work follows with web services. Always BPEL language used to integrate the web services and define processes based on that. Here is an sample I have written for that[1].
ESB is primarily used for mediation and transform messages. When you integrate different types of systems, the message flow between them may vary. So people can use ESB as a mediator. And also some ESBs provides service integration as well. WSO2 ESB[2] is such an ESB you can use.
[1] http://wso2.org/library/articles/2011/05/integrate-business-rules-bpel
[2] http://wso2.org/library/esb
Exactly, ESB + BPEL is a technical solution for an integration problem. If you want to use jBPM5 just to do integrations thats fine and you probably will use jBPM5 with an ESB for all your mediation and transformation of your messages. The power of BPMN2, a standard notation to describe business processes will help you to describe more high level/business oriented scenarios than just simple system integrations. The concept of human interaction is heavily embedded in the language and in the jBPM5 infrastructure. Think about the fact that your models (business processes) can be shared and understood by business/non technical people and they will be able to validate, improve and change those definitions when the business reality changes.
Hope it helps!
jBPM is BPMN based. This is a java based solution to your workflow problem.
BPEL is also solves the workflow problem, but the approach is entirely different. It is web service based.
BPEL from a syntax perspective is more complex than BPMN but is considered more extensive.
The right comparison should actually be between BPMN and BPEL I guess.
Similarity
>Both can be used for orchestration
difference in terms of technology.
JBPM has BPMN2.0 Notation for Workflow designer and workflow XML it generate is BPM2.0 compliance(which means you can import it in any BPMN2.0 tool) .It is assumed to be Product Analyst friendly whereas BPEL has its own specifications and its considered more developer oriented
BPM should only be used where there is a human task otherwise ESB fulfills everything from orchestration to transformation to Rules to CEP