Home | WebServices | Maven | SOA | REST | Agile & SCRUM | Java & JEE
Homepage

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.

 

 

Copyrights 2008 Thea Solutions
All rights reserved
Powered by 4creativeweb Solutions