Service composition strategies


The current challenge is to use Web Service composition across company boundaries. Here are the benefits of the automatization of cross-organizational business transactions:

  • Improvements of cost-performance ratio of IT
  • Extending market reach
  • Saving time
  • Cutting costs
  • Responding to customer demands more agilely.

The main troubles faced by the companies to adopt this kind of architecture:

  • Different standards and standardization approaches prevent from a common understanding of business processes and data
  • High costs and complexity of existing approaches

There is different strategies and architectures to achieve Web Service composition:

  • Orchestration
    • Represents the relation between one central service and different other ones called according to a pre-defined sequence
    • Adequate to describe exchange patterns of one individual service
    • Can be conducted with the help of languages such as BPEL
    • Executable on respective engines
  • Choreography
    • Message exchange described from the perspective of an observer who is able to see all interaction of the participants of a choreography
    • Languages, e.g. WS-CDL, BPSS
    • Not executable, used for modelling and monitoring

There is 3 kinds of service orchestration:

  • Centralized Service Orchestration
    • Pro:
      • Efficient monitoring
      • Fault handling
      • Maintenance
      • Less local complexity
    • Con:
      • Invocation policies (not all services might be called by one single hub)
      • Lack of trust
      • Single point of failure
  • Decentral Service Orchestration with Hub Support
    • Pro:
      • Message exchange independent from server
      • Overall choreography can still be used for monitoring and fault handling support
    • Con:
      • Fault handling more complex
      • Users must be able to handle an execution engine
      • Increased complexity
  • Decentral Orchestration without Hub
    • Pro:
      • Robustness against partial errors
      • Higher scalability
    • Con:
      • Permanent synchronization of the local repositories
      • Complicated fault handling
      • Highest complexity on client side


The most promising approach seems to be the hybrid one.