INTRODUCTION TO ANYPOINT PLATFORM and MULE ESB – PART 1
What is AnyPoint Platform and MuleSoft ESB
Integration platforms like Mule ESB have become popular way to integrate different software applications. In this article, we will discuss how integrations were done initially, challenges faced in the integration, what an ESB offers and what Mule ESB is.
POINT TO POINT INTEGRATION
Software applications are developed using various technologies and these applications requires interaction with each other to accomplish business requirements. For example: Company A’s Order Application needs to interact with Company B’s Warehouse Application to utilize available goods and Company B’s Transport application to transport goods.
In Traditional programming, Order application will interact DIRECTLY with these two applications as per required use cases. This can be done through Interfaces like WebService- SOAP or REST, JMS , Sharing files or database.
CHALLENGES OF POINT TO POINT INTEGRATION
TIGHT COUPLING
With point to point integration, Order Application will be tightly coupled to Warehouse and Transport Application.
As an example, we assume that Warehouse and Transport Applications have exposed its SOAP WSDL and Order Application uses it to interact with these Applications. For each scenario, Order application will make appropriate use case specific calls to get required data from these applications and should have appropriate integration use case logic i.e. it makes specific calls to warehouse application , perform some logic and then make calls to transport application.
Impact of Technology Change: There is an impact of technology change if Company B decides to change from SOAP to REST WebService or any other architecture.
Impact of Change in protocol: Company B’s Applications have exposed SOAP WebService on HTTP but now wants to expose SOAP WebService on JMS. Because of this, order application need to change its way of calling these applications.
LOGICAL COUPLING
Logical coupling refers to the architecture where Client and Server does not know about each other.In our scenario, Order Application knows about Warehouse and Transport Applications so logical coupling is missing.
So to achieve Logical coupling, we can decide to use SOAP over JMS. But still, the Order Application requires the knowledge of JMS queue/topic to send its message to broker and may also need to listen on some queue/topic using replyTo Header of JMS message.
Now we have an overhead of a JMS broker. So the question is – Does my application really need this overhead or is it fine to use HTTP in my application scenario. But if SOAP over HTTP is okay then what about logical coupling?
MAINTENANCE
When two or three Applications are directly connected in point-to-point manner, we can still somewhat able to manage the integration of Applications. But the increase in number of inter-connected application causes lot of maintenance requirements due to complexity of tight coupling.
It becomes difficult to make changes in one application without impacting other applications. Whether its change in the design of an application, technical upgrade of application, change in business requirements or a critical downtime of one application.
Many developers spend time in the maintenance of integration of applications rather than using their time effectively on the development of their respective applications to handle business requirements.
WHAT IS ESB AND WHY WE NEED ESB
Let’s understand ESB using the previous example. Order Application won’t interact with transport application and warehouse application directly. An ESB will come between Company A and Company B’s applications.
The integration application developed using ESB will have flows as per each use case and interact with Warehouse and Transport application accordingly. The order application will simply make a call to specific integration application URL based on the requirement of the use case.
Consider ESB (Enterprise Service Bus ) as a BUS that takes message from order application to warehouse and transport application, perform some logic and rules and then will return the message from these applications to order application.
An ESB application helps your applications to be loosely and logically coupled.
Order Application, Warehouse application and Transport application can use different technologies, not tied to other application’s interface and can change their design without directly impacting other application.
An integration application developed in ESB will also help in following ways –
- Adapters
- Interpret an application’s message/data structure and convert it into ESB specific messages/data structure.
- Do processing, and then convert to message/data structure used by another application before sending it to another application.
- Validating
- Validating the message content before sending to another application
- Routing
- Route to different routes based on rules. It could be sent to another integration application or multiple connected applications and services based on some conditions.
- Transforming
- Changing the format and content of messages
- Easy Change in interface
- A change in the interface or technology of one application requires minimal changes at ESB end with no impact on another application
ESB helps in creating integration applications which provides easy maintenance, separation of concerns and an abstraction layer for the existing applications.The time required to create and maintain ESB applications is much lesser than the integration maintenance of tightly coupled point-to-point applications.
The company can also decide to have a dedicated team for integration applications while software applications developers concentrate on their specific area of software.
ANYPOINT PLATFORM AND MULE ESB
Anypoint platform is a product that provides full API life cycle, CloudHub (iPaaS) and Mule ESB integration to connect applications across cloud and on-premises servers.
API LED CONNECTIVITY
MuleSoft approach is API led connectivity for its integration applications. It offers API life cycle (API Design, Build/Implementation, Deploy and Manage).
API(Application programming interface) is an interface of your software application for external world. An external application uses your API to send requests to your application and get responses from your application.
The diagram below shows the building blocks of Integration application –
- Interface – Presentation of service and data
- Implementation- Logic Implementation using flows with filtering, validation, routing, transformation etc. of data
- Connectivity – Connecting to different applications
CloudHub
CloudHub is integration platform as a service (iPaaS) managed by MuleSoft. It provides you the infrastructure to deploy mule applications. Choose the mule runtime version, number of workers (count of mule instances), vCore(worker size in terms of memory).
MULE SDK
Mule SDK for Java or XML (java SDK and XML SDK) can be used to extend Mule 4 Runtime to create new modules similar to existing modules like HTTP. These modules can then be used in integration applications
ANYPOINT PLATFORM OFFERINGS
Anypoint Platform includes Anypoint Exchange , API Manager, Runtime Manager, API Designer, Flow Designer, Anypoint Studio etc.More information on these offerings are provided in next part of the introduction series.
I hope you find this article useful. Please feel free to share your comments