Search code examples
wsdlsoarulesbpel

BPEL and ESB: SOA Overview


I am studying SOA architecture and I am bit confused, googling there are many definition of that, many technologies are involved and here my doubts start:
If I got correctly these are the principles for a system to be SOA:

  1. Use Open Standard: XML, WSDL, WS Security. About WSDL, it is important because integrating different services (typically Web Services must expose them contract? Then If I got BPEL usage is just a process that uses contract of services to permit communication between them.
  2. Be Modular
  3. Use ESB : (This seems to be a must, even for services that don't need to communicate via it.. This introduces my first doubts.. if a service is exposed as Web Service expose his own WSLD that enables interoperability, why the ESB should be used as a must?
  4. Then comes BPEL, is BPEL a language to orchestrate services interaction each other? Something like Orchestration in Saga Pattern?
  5. Increase interworking between services as much as possible (different than the principles of Microservice Architecture)
  6. Adopting previous (old) enterprise application that usually are very old, a SOA is frequently based on services using traditional relational database

Maybe point 5 and 6 are consequences than rules to follow...
Tks


Solution

  • I can try to answer to my question:
    About the usage of ESB: In theory it could be possible to avoid the usage of ESB, but without an ESB application owners would each have to find their own unique way to expose service interfaces, which is a lot of work (even if the interfaces are eventually reusable) and creates a significant maintenance challenge in the future, that's why it is considered essential part of a SOA and considered such a de facto element of any SOA implementation.

    BPEL: yes, it is used to orchestrate and coordinate different exposed API, maybe from different Web Services to create a new application.