- What is its execution context (i.e. pre and post conditions)
- What are the expected service levels? Etc.
- If I do not have the right service that I need for the task at hand, can I choreograph existing services into a composite service using services I have?
- Will this composite service have required functional and non-functional properties?
This would need specification of composability in both functional as well as non functional sense. I should be able to specify a ‘Plan of Action’ using services and should be able to specify functional and non-functional constraints on this PoA. This PoA is not necessarily only temporal (e.g. like a process) but can also be structural too. (E.g. like a ‘Join’ in relational world). Reference model then can constrain the service specification such that using service specification I should be able to check viability of this PoA.
Usages of this PoA are manifold.
E.g.
- A consumer can request a PoA to be executed instead of individual services. SOA infrastructure can execute this PoA, possibly using an ESB. This specification will help ESB infrastructure to do necessary optimizations, to provide required non-functional capability.
- If there are enough consumers asking for this PoA a service provider may decide to provide this PoA as a composite service. Thus helping service providers evolve the services that their consumers demand the most.