It’s an era with many directions! There are so many tools available for enterprise integration. To choose the right one usually means whether the organization may get expected return on the possible huge investment.
Each enterprise integration requirement can be different. I assume you are working in a SOA environment, facing the pressure to move to cloud, but not quite ready.
We will talk about our preferred BPM and ESB tools, plus the choice of SOA integration and web service protocols.
Let’s start from analyzing business requirements and setting the processes using BPM application. By defining business processes, we get well-defined boundaries of services.
BPM: Activiti (Open Source, Free)
Alfresco Activiti can be the best choice to define and manage business processes and workflows. It provides an intuitive web-based design environment and a robust process engine. It’s Java-based, open source and under Apache license. It follows BPMN 2.0 standards. Activiti is an all-around implementation of BPMN 2.0 standards.
ESB: Mulesoft ESB (Open Source, Proprietary)
Mulesoft ESB is currently ranked No. 1 in ESB category. It’s lightweight, based on Apache Camel, providing an intuitive GUI studio for DSL (Domain Specific Language) for routing design. It supports EIP (Enterprise Integration Pattern) strictly and offers rich ERP connectors. This is great for those who have ERP in house. Mulesoft offers a solution for Activiti integration. A free alternative for Mule ESB would be Apache ServiceMix, but an enterprise hub usually requires some levels of SLA, Mule ESB can be the best bet for most organizations.
SOA Integration: Microservices vs Monolith + Spring Boot (Open Source, Free)
Microservices looks good but also brings concerns. Comparing fine-grained monolith services strategy, which has already been adopted by many organizations, Microservices provides more flexibility and incorporates well-segmented BPM processes nicely. Spring Boot will be a definitive tool for Alfresco Activiti and SOA integration. The benefits of Microservices is independent development, deployment, extension and reusable. But to adopt Microservices may increase the complexity on devops. When there’s no clear boundaries among processes, it’s hard to adopt Microservices. So at the end, we may live in a world with both Microservices and fine-grained monolith services.
Here are a few useful references:
- Getting Started with Microservices in Spring Boot
- Getting started with Activiti and Spring Boot
- Orchestrating Work with Activiti and Spring Integration
- Microservices with Spring
SOAP vs REST
SOAP is a protocol, heavy, XML-based, well-enveloped. SOAP support SSL. If the security is a major concern and the resources are not limited then we should use SOAP web services. Like if we are creating a web service for banking related work then we should go with SOAP as high security is needed.
REST is an architectural style, lightweight, more flexible, efficient and easy for transferring large size data. By following RAML standards, REST can play really well in any enterprise environment. REST supports JSON, plain text and XML, etc.
Which one to pick? It really depends on your business nature and existing service environment. If security is not a major concern and we have limited resources. Or we want to create an API that will be easily used by other developers publicly then we should go with REST web services.
Lionsgatesoft.com consultants have rich experience in enterprise application and service integration design and development. Should you have any questions, please feel free to contact us.