An Introduction to SOA - Model Management
What is Model Management?
As the world
dawns towards Service Oriented Architecture, re-use is the keyword that drives
the motivation of organisations to adopt the SOA culture. Services become the
building blocks of an organisation and hence they need to be built with a high
level of precision. Managing the design models of services is essential in
order to ensure that contamination of service functionality by individual
project requirements do not occur. Model management is the process of ensuring
that the service design models are preserved so that the services they create
are truly reusable across the enterprise and also to ensure that the services
are enhanced to cater for a variety of requirements from across the enterprise.
What is the significance of Model Management?
Consider
a large retail bank that has adopted the SOA culture and is in the process of
building enterprise level services. As an example, the bank has built
retrieveCustomerDetails as a service. A customer may be a high net worth
customer handled by the wealth management division of the bank, an organisation
handled by the commercial division of the bank or a low net worth customer
handled by the retail division of the bank. If the service if owned by
individual projects in different divisions of the bank, it is likely to result
in multiple versions of service models containing functionality specific to the
division of the bank. The service will no longer be a service but an
application specific component. The service must be designed in such a way that
application running in all the divisions of the bank would be able to use the
service. A central control of service modelling is the key to create true
enterprise services. Model management focuses on establishing a central service
analysis and design team owning the enterprise service models and the process
used by the team.
The Service Factory
A central team which owns and
manages the services are called is called as the Service Factory. Individual
projects submit requests for services along with the functional and
non-functional requirements to the Service Factory.
A service factory typically
consists of the following roles,
Service Architect
The
service architect analyses the requirements submitted by the individual
projects and creates a Service analysis document also called as the “Service
Specification”. The service specification typically contains details of the
boundary around the data considered in scope for the requirement, details of any
legacy systems or databases that need to be interfaced with to cater for the
functional requirements and details of how the non-functional requirements
would be realised.
Service Designer
The
service designer takes the Service Specification document and models the
service typically in UML. The service model would contains the service
interface details, the service messages and the interaction between the
business object models involved in the service model which represents the data.
Service Build Team
The
service build team builds the service based on the enterprise service models
and is responsible for testing and deployment. This article does not focus beyond the Service Design
phase so no details are provided about the Service Build team
Model Manager
The
Model manager is an important role in the Service factory. The role of the
model manager is to review the service models created by service designers for
individual project requirements and accept of reject the changes done into the
enterprise model. Further details are provided in the “Model Management
Process” section
Model Management Process
The following figure depicts the Model Management Process in
detail

The following tasks are performed
as a part of the Model Management process
1) The
service architect provides the Service Specification to Service Designers based
on project requirements
2) The
Service Designers create service models for individual project requirements
which would share common design elements such as BOM (Business Object Model),
the service interface and service messages.
3) The
Model Manager reviews the services models created by the Service designers to
ensure there is no project specific modelling present and the model is generic
enough to be reusable.
4) If
there are any concerns, the Model Manager rejects the service model back to the
Service Designer and provides suggestions for changes.
5) If
the changes are found acceptable, the Model Manager merges the changes back
into the Enterprise Model. This activity is also called as Model Merging.
6) The
service designers update their workspace with the latest merged version of the
service model so that they work on the latest model elements.
7) This
is a cyclic activity which is performed over a defined period of time.
8) The
Service Build team takes the enterprise model as their reference to build
services which ensures reusable services are built.
Conclusion
The article
threw some light on the fact that SOA is a culture that needs to be adapted by
every stake holder in the organisation.
The Model
Management process clearly defines the responsibilities of the roles involved
and can be scaled down for large programmes involving multiple projects or can
be scaled up to large enterprises consisting of several companies.