Service-Oriented Analysis (Service Modeling)
Service-Oriented Analysis represents one of the early stages in an SOA initiative and the first phase in the service delivery cycle. It is a process that begins with preparatory information gathering steps that are completed in support of a service modeling a sub-process that results in the creation of conceptual service candidates, service capability candidates, and service composition candidates (Figures 1 and 2).
The Service-Oriented Analysis process is commonly carried out iteratively, once for each business process. Typically, the delivery of a service inventory determines a scope that represents a meaningful domain of the enterprise, or the enterprise as a whole. All iterations of a Service-Oriented Analysis then pertain to that scope, with each iteration contributing to the service inventory blueprint.
A key success factor of the Service-Oriented Analysis process is the hands-on collaboration of both Business Analysts and Technology Architects. The former group is especially involved in the definition of service candidates within a business-centric functional context because they understand the business processes used as input for the analysis and because service-orientation aims to align business and IT more closely.
Figure 1 – A generic Service-Oriented Analysis process that can be further customized. The first two steps essentially collect information in preparation for a detailed service modeling sub-process.
Figure 2 – A generic service modeling process comprised of steps that raise key service definition considerations.
Figure 3 – A look at how the collaboration between business analysts and technology architects changes with SOA projects.
A separate analysis is dedicated to each business process definition associated with a
given service inventory. For the full definition of a service inventory blueprint, a complete
top-down delivery process is
carried out, comprised of numerous
iterations through service-oriented
analysis process steps.
Figure 4 – A high-level service-oriented analysis process.
The figure shows how service-oriented
analysis actually represents a parent
process consisting of two
information gathering steps and
then a third step represented by
the service modeling sub-process.
Information Gathering Steps
Define Analysis Scope
During this step business analysts are asked to clearly establish the
boundary of the analysis. Most commonly, there is a ratio of one
analysis process to one business process definition. However, business
processes can be complex or multi-layered (containing nested
processes) and may or may not already be representing portions
of business logic already analyzed during a previous iteration of the
service inventory analysis cycle. Therefore, this step may also
require identifying portions of a given business process for which
service modeling is not required.
Identify Affected Systems
It is helpful to have an understanding of what existing parts of the enterprise will be
affected by the scope of the planned business process analysis. Especially relevant are
legacy systems that may later raise service encapsulation and autonomy challenges.
These types of constraints can directly impact the partitioning of logic into services and
the ultimate granularity at which service candidates are defined.
Service Modeling Process
Service modeling is the process of conceptualizing services and capabilities prior to their
actual physical definition and development. Because nothing concrete is defined during
this stage, we qualify the results of carrying out this process with the term “candidate.”
Service modeling essentially identifies service capability candidates that are grouped
into service candidates that are subsequently assembled into service composition candidates.
Figure 5 – A common service modeling process.
The iterative nature of the aforementioned inventory analysis allows for service
candidates to be repeatedly revised and refined prior to the creation of corresponding
The service modeling steps displayed in the previous figure are explained in detail in “Service-Oriented Architecture: Concepts, Technology, and Design.”
In a nutshell, a business process definition is decomposed
(Step 1) into its most detailed representation, resulting in a series of granular actions.
Those suitable for service encapsulation become potential service capability candidates
The service logic of each capability candidate is assessed in terms of whether it is specific
or agnostic to the current business process. Agnostic capability candidates are
grouped into agnostic service candidates usually based on entity and utility service
models (Step 3), whereas non-agnostic capability candidates are placed into a task service
candidate with a functional scope usually equivalent to the business process (Step 4).
During subsequent iterations of this process, the chances of identifying already defined
capability candidates increase. Therefore, a separate discovery step (not shown) is
added to ensure that no redundant capability or service candidates are introduced into
the blueprint. Also select service-orientation principles are applied to shape modeled
service candidates in preparation for their eventual designs (Step 5).
The following three service-orientation principles are typically applied during the service
- Service Reusability
- Service Autonomy
- Service Discoverability
After the initial set of service candidates is established, a candidate composition is
assembled and subjected to possible runtime scenarios (Step 6). Subsequently, each of
the identified service capability candidates is further studied to explore any additional
processing requirements that may be needed to carry out its functionality. This kicks off
the second half of the service modeling process (Steps 7-12) during which additional
utility service capability candidates are generally defined. The process ends with an
extended composition candidate modeling step and a final revision of all capability and
service candidate definitions created so far.