|
Understanding
Service Stages
A
service is a self-contained function that responds to
requests. The functions typically have a strong
relationship to steps in a business process such as
“Ship Order” or “Check
Inventory”. The
services typically mimic the primary activities found
in a business. A service can be bought
from a vendor (COTS), it can be ‘rented’
as in “Software as a Service” or it can be
programmed from components, frameworks and custom
coding. Regardless of the method of
bringing a service to fruition, a service will
typically pass through several stages.
The
Harmony™ SOA Methodology identifies 8 stages in
a Service Lifecycle. They are as
follows:
- Conceptual
Service (idea)
- Candidate
Service (proposal)
- Contractual
Service (definition)
- Built
Service (fully coded)
- Integrated
Service (certified)
- Released
Service (consumable)
- Managed
Service (controlled)
- Utilized
Service (actively consumed)
After
reviewing the states a service passes through,
we’ll identify how the services pass through an
organization and determine roles, activities and work
products.
Stage
1: Conceptual Service
The
Conceptual Service is just that; it is the
‘idea’ of a service. Many organizations
already have applications that partition
functionality. There is often a high correlation
between in-place applications and the service
counterparts.
At
the conceptual level the primary focus is on
‘service identification’ and
‘service scoping’.
Imagine looking at every major piece of software in an
enterprise and creating a bunch of buckets, or
placeholders for software functionality. This is the
job of the conceptual service. It reserves a slot of
functionality for a future service. As a slice of
functionality, it enables an organization to define
what’s in the service and what’s out. By
defining the boundaries or scope of a service, you are
able to chunk related pieces of functionality together
for implementation.
Stage
2: Candidate Service
A
candidate service is the product of formal domain
analysis. Typically, some combination of service
analysis is performed to determine the scope of a
service and the functions and behaviors that it
represents. The Harmony™ method encourages a
combination of Top Down, Bottom Up and
Meet-in-the-Middle analysis to view problem from
several angles. The result is a specification
identifying the service boundaries and operations. The
analysis will also identify the business logic,
constraints, persistence, security and other
functionally significant elements.
A
core concept of Harmony™ is to ‘succeed
fast’ or alternatively, ‘fail fast’. A common mechanism used to
reduce risk in software implementations is the
prototype. The goal of the prototype is to create a
rough draft of the systems, or portions of it, so that
users and stakeholders can get a better understanding
of the final product. In prior methods, most of the
work around prototyping has focused on the GUI or
presentation layer. We are continuing to promote these
concepts but are also suggesting that a “dummy
service” be created that the UI model connects
to. The goal is to find deficiencies in both UI and
service models in parallel.
Stage
3: Contractual Service
A
service is considered 'contractual' when the contract
is defined (the service interface and associated
policies). A service interface is a digital
representation of the functions provided by a service.
Service interfaces are typically described using a
metadata model or markup languages such as IDL or
WSDL. Accompanying the interface are policies that
describe the non-functional requirements of the
service like security, reliability and transactional
integrity. The service interfaces are a tangible
artifact that can be handed to downstream participant
for either prototyping or realizing production
implementations.
Stage
4: Built Service
A
built service is one that is “code
complete”. The code could come from internal
coding efforts, off-the-shelf, outsourced, etc.
Various paths exist to obtain a working service and
should be explored.
Stage
5: Integrated Service
An
integrated service is on that has passed a certain
level of certification. Many organizations have design
guides, or policies that software assets must adhere
to. It is common for the criteria to include reviews
of the technology standards used, message exchange
patterns, cardinality constraints, use of enterprise
information models, etc.
Stage
6: Released Service
After
a service has been created (or obtained), it is
necessary to deploy the service to a hosting
environment. In a service oriented enterprise, it is
likely that the deployable unit also be registered
with various elements of the infrastructure such as a
intermediaries, registries or repositories.
Stage
7: Managed Service
A
managed service is one that has been deployed and is
‘under management’. This means that
operational instructions have been documented and
personnel have been trained to monitor the service. It
is common that the service is benchmarked against
predetermined service level agreements. In a managed
service environment, utilization rates, latency and
general usage is monitored. Reports are generated and
fed back to ‘service owners’.
Stage
8: Utilized Service
A
service is considered utilized when the first consumer
begins using it. This stage is noteworthy because it
changes how you deal with changes and
versioning.
|