Service Layer and Model Design

When designing services, it is important to create categories that the different types of service requirements fall into. This allows us to establish standards, best practices, and reference implementations for those types of services. Also, we can better understand the problem domain by understanding the service requirement and then being able to apply a solution for all services within that service layer.

Two of the better books for service layers and models are:

These books refer to concepts (such as Thomas Erl talks about at http://serviceorientation.com), three types of service layers called task service layer, entity service layer, utility service layer. You can find an explanation for these at the following site:

ServiceOrientation.com – Service Layers

We can see a similar concept when reading the Oracle SOA Reference Architecture, the following diagram is a representation of that from a technical article. It classifies different service layers and the types of services that exist.

OracleSOAReferenceArchitecture
A Guide to Ensuring the Success of Your SOA Governance

There is also a similar reference or description within the Oracle AIA (Application Integration Architecture) documentation:

OraclesAIASharedServicesInventory
Understanding the Oracle AIA Reference Architecture

The interesting thing about reading through the materials, is that the concept of designing services or web services is no different from designing proper APIs. The issue is that as teams are new to the concept of designing services, the concept seems foreign and therefore is treated totally different from API design (which is probably a reflection of sloppy API design). So taking these suggested categories, and the concepts for strategies that are used for Java Application development we can define some generic service types.

The following are the types and these services are based on a functional role, some standards that help drive how they are developed, what dependencies they have, and what standards are applied to them.

  1. Access Service
  2. Utility Service
  3. Data Service
  4. Search Service
  5. Messaging Service
  6. Subscribe Service
  7. Business Service

This blog is a work in progress and I will continue to update with additional information.

Share and Enjoy