Ensure that the service is business aligned
The first test of a service is about its business alignment. If the service is not traceable back to a business task or
goal, it might not yield benefits required for SOA implementation. The following questions, if all are answered
positively, mean the service is aligned with the business.
-
Does the service provide a required business functionality that supports business processes and goals?
-
Is the business willing to fund the service through its lifecycle: provisioning, management, governance, and
maintenance?
-
Is the business willing to share the service internally or externally with clients or business partners? For
example, implications might be additional costs, business secrets, security, and so on.
-
Are there existing or future opportunities within the enterprise to reuse the service?
|
Ensure that the service is composable
Composable services can participate in a service composition. Applications can be created using both hard-wired
and loosely-wired composition approaches.
Goodness-of-fit questions here include the following criteria:
-
Does the service meet the required quality of service attributes as defined in the composition's non-functional
requirements?
-
Is the service stateless? (see State Management for Services)
-
Is the service self-contained? Can the service be deployed independently to meet a business goal, although it might
cooperate with other services at run-time to perform business processes? There are no implicit dependencies of the
service on other embedded functionality. All dependent services are either replaceable or self-contained.
-
Is the service's implementation technology neutral? Technology neutral means that the service does not impose
support of non-standard (and unknown to the consumer) protocols or devices (for example, the constituent component
requires intervention through a non-standard application interface).
This test applies only when the service is deployed in the consumer's environment. For example: A
business provides an image retrieval service to its customers. It can provide this capability to its subscribed
customers using a Web service. Alternatively, the business can hand over to its customer the image retrieval
capability exposed as a Web service, and a collection of images. Here, the customer will be burdened by the
implementation of the technology search.
|
Ensure that the service has external description
The most basic property of a service is that it has an externalized service description. The externalized service
description might either be generated automatically using tools or manually coded.
Questions for this criterion include:
-
Does the service have an externalized service description that is distinct and separate from the underlying
physical implementation? A current example of this is WSDL.
-
Can the service be discovered and bound using the service description?
-
Does the service description contain meta-data about itself? That is, the service description must be
self-sufficient, containing or referencing all of the information necessary to understand the message exchange
between consumer and provider of a service.
|
Ensure that the service is reusable
Can this service be used by the business stakeholder within all processes where its function is required? |
Ensure that the service is technically feasible
Technical feasibility ensures that the service can actually be realized (implemented and deployed) according to
functional and non-functional requirements using available technologies.
-
Is the implementation and management effort for the service reasonable and readily achievable given either the
requirements or infrastructure of the implementation?
This issue is addressed after the realization's technical feasibility exploration
|
Create Service Model elements to represent the services that are to be exposed.
In the modeling approach using SoaML, each candidate service in a graphical version of
the service model is represented as a SoaML Capability. For each candidate service that was selected for exposure,
create a service model element -- either a SoaML ServiceInterface or a UML Interface -- to represent the service that is
carried forth for full definition. A UML Interface "can" be used if the service simply offers capabilities to service consumers and has no protocol that governs interaction between the
service consumer and the service provider.
|
|