Our client asked us to develop a Cloud based system integrated with up to 10 third party portals including, amongst others, eWAY an Australian based payments portal, Microsoft Dynamics CRM, and Telerik’s CMS SiteFinity.
The varying data formats used by each portal meant that integrating all of them to a central Cloud based system would be a complex task. We had to be able to manage JSON data formats, XML, SOAP, as well as HL7 data formats as used by the international healthcare message exchange standard.
The integration to eWAY required us to seamlessly integrate the historical transactions kept in the MS CRM while keeping the payment data credentials, such as CC number, CVN, etc. as anonymous transactions. That data would be handled by eWAY using their all-in-one solution with advanced fraud prevention, transparent redirect and direct connection.
In order to increase the flexibility and reduce the integration complexities, Mitrais decided to add another layer to tackle these integration challenges and provide enough abstraction so the integration could be simplified. To achieve this level of abstraction, Mitrais chose to adopt the Mule Enterprise Service Bus (ESB), an integration platform that allows developers to connect applications together quickly and easily, enabling them to exchange data.
Mule ESB enables easy integration of existing systems, regardless of the different technologies that the applications use, including JMS, Web Services, JDBC, HTTP, and more.
The key advantage of an ESB is that it allows different applications to communicate with each other by acting as a transit system for carrying data between applications within your enterprise or across the Internet.
Mule ESB has powerful capabilities, including:
- Service creation and hosting — expose and host reusable services, using Mule ESB as a lightweight service container
- Service mediation — shield services from message formats and protocols, separate business logic from messaging, and enable location-independent service calls
- Message routing — route, filter, aggregate, and re-sequence messages based on content and rules
- Data transformation — exchange data across varying formats and transport protocols
The core cloud system only needed to use JSON data format, and Mule ESB was used to handle the REST connection to all the other third party systems and send back the response to the application.
Mule ESB itself can handle more than one connectivity to other application on a single request. The solution required us to consume the services of the eWAY payment portal (such as validating the Credit Card number).
If eWAY validation is passed then the workflow is to send an email notification to the user, send a response to the application confirming that the transaction was successful, purchase SMS credits if applicable and then trigger the required updates both in the main application and in MS CRM to revise the customer’s balance details.
These two actions (email notification and send response to the system) in Mule ESB can be running asynchronous to reduce the response time. Mule ESB also allowed us to retrieve an eWAY customer “token” and use that token to charge payment to customer.
During the planning and implementation stages, a significant level of effort was anticipated to achieve this level of integration. Adopting Mule ESB reduced by up to 500% the effort involved in the legacy code implementation and porting process, and is expected to deliver further cost savings as the product matures in terms of ease of maintainability and ability to rapidly upgrade as new versions of all of the third-party software components are released over the coming years.