Lee Ackerman, writing in Service Technology, makes the case for greater automation in the service design process to provide greater consistency and better output. He provides a "litmus test" (which can be part of the automated report generation) to determine whether services being developed and deployed meet the requirements of an SOA or cloud registry/repository.
Automated or not, addressing these basic points help clarify the SOA-awareness or cloud-readiness of a service being created amidst the "the fog and friction" of development and design, and are worth repeating:
- Does the service provide business functionality? "Does it trace back to a business process or goal? We also need to consider service lifecycle funding, whether and how the service will be used (internally? externally?) - and the implications of such use."
- Does the service have a WSDL file -- or some other comparable representation -- that is used to describe the solution? "Is this description external and separate from the implementation?"
- Can the service be reused in all of the processes where it is required?
- Is the service technically feasible? "Taking into account all functional and non-functional requirements, is it possible to create the service?"
- Is the service composable? "Does the service have the right level of granularity? Does the service meet QoS requirements? Is the service stateless? Is the service technically aligned?"