How to implement an ESB (Enterprise Services Bus) - esb

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/

Related

How can I test my integration with SAP for free?

I need to integrate an API created with .NET with SAP FI/CO.
Researching online I found out there used to be something called IDES that would provide access to an SAP server free of charge, just for testing purposes, but that's no longer available.
The Consolut solution seems to have been a viable solution while it was active:
https://www.outsystems.com/forums/discussion/6598/sap-server-test-account/
Anyway, my question is: Is there any way for an independent developer to test an SAP integration without spending money to access that server? Are there any options out there that would allow me to access an SAP instance for testing purposes?
Here you can find the official list of developer trials that you might access without having any kind of relationship with SAP:
https://www.sap.com/developer/trials-downloads.html.
If you have an SAP S-user, you might have access to more stuff from the SAP Marketplace. From my knowledge, IDES was / is only accessible through the SAP Marketplace (or external sources which use the marketplace themselves).
FI/CO runs on Netweaver AS ABAP (or an older alternative, e.g. R/3), so you could download it here: https://tools.eu1.hana.ondemand.com/#abap. But it will not have FI/CO in it. Based on the discussion here https://archive.sap.com/discussions/thread/2039981 I would say that it is not really possible to get FI/CO up and running on your local Netweaver.
This is a general strategy of SAP. They provide the possibility of trying out their technological platforms (HCP, HANA, NW, etc) but they don't really offer access to their business solutions for free.
If you don't find any other way of getting access to a FI/CO system (e.g. from a third party or customer) then maybe the best thing would be to use the local Netweaver and mock the FI/CO specific RFCs that you are using (assuming that you use NCo for the integration). At least this way, you would know that the integration works at a pure technical level (at some point though, you will need a real system).

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.

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

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

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