- The SOA/ESB/middleware business is all about "integrating" applications so they can share data and functionality - Integration Once.
- When delivering these integrated applications you need "Integrated" tools which work together to make you productive - Integration Twice.
- When deploying integrated applications you want a common platform for managing and monitoring the integrated apps - Integration 3 times.
Too many integration solutions today offer a disjointed experience. They focus on one layer of the architecture without properly considering the end-to-end use-cases. In doing so they create solutions that dont quite fit together and are less than the sum of their parts.
Take for example BPEL orchestration in the SOA context - there are a number of vendors offering orchestration as a standalone offering. In some cases these products are quite sophisticated however they fail for the following reasons:
- BPEL engines are often combined with a Web Services stack and an ESB container to provide SOAP and transport/data integration capabilities respectively. The setup, configuration and support of these three can be quite difficult for simple applications - but for mission-critical applications with high availability, performance and resilience requirements the architecture becomes like a house of cards.
- BPEL processes are themselves Web services, and, just like other Web Services they must be managed and monitored. However if they are deployed to a separate engine then you probably need two consoles instead of one to manage them. If you want to apply security to your services then you probably need to specify policy for your services in different places for your BPEL Services and their children.
- BPEL Orchestrations are dependant on the underlying web services from which they are created. In a perfect world these services are complete when the orchestration is being authored. In this idyll the developer has access to everything they require in order to build their orchestrated service - the WSDL - and this does not change. Sadly the blue planet that we call earth is not perfect - the reality is that Web Service implementations and the BPEL which orchestrates them are often evolving in parallel. In this case it is important that changes in the WSDL get reflected in the BPEL. This does not happen when you have separate development environments for BPEL and Web Services.