Service layer pattern
It has been suggested that this article be merged into Service layer. (Discuss) Proposed since April 2010. |
This article relies largely or entirely on a single source. (April 2010) |
Service Layers is a design pattern, applied within the service-orientation design paradigm, which aims to organize the services[1], within a service inventory[2], into a set of logical layers. Services that are categorized into a particular layer share functionality. This helps to reduce the conceptual overhead related to managing the service inventory, as the services belonging to the same layer address a smaller set of activities.
Rationale
Grouping services into functional layers reduces the impact of change. Most changes affect only the layer in which they're made, with few side-effects that impact other layers. This fundamentally simplifies service maintenance.
The Service Reusability principle dictates that services should be designed to maximize reuse. Similarly, the Service Composability principle advocates designing services so that they can be composed into various ways.[3] Both principles require that a service contain only a specific type of logic e.g., either reusable or process-specific logic.[4] Restricting each layer to a particular functionality, simplifies the design of the service.[5]
Usage
Applying this pattern requires creating a service inventory blueprint,[6] a list of services with associated functionality. Next, group the services into layers according to function. Adopting a common layering strategy across the enterprise facilitates reuse in other applications, because developers don't have as much to learn (or invent) when they join a project.[7] One common layering uses task,[8] entity [9] and utility [10] layers.[11][5].
An alternative layering from Bieberstein et al.[12], involves five layers, namely Enterprise, Process, Service, Component and Object.
The Service Layers pattern invokes a specific service architecture.
The top-down service delivery approach[13] facilitates the use of this pattern.
References
- ^ services
- ^ service inventory
- ^ service compositions
- ^ Thomas Erl.Introducing SOA Design Pattern[Online].Date accessed:6 April 2010.
- ^ a b Wajid Khattak Service Layers[Online].Date accessed: 21 April 2010.
- ^ service inventory blueprint
- ^ service models
- ^ Task Service
- ^ Entity Service
- ^ Utility Service
- ^ Process Abstraction
- ^ Bieberstein. et al.Service-oriented Architecture Compass: Business Value, Planning, and Enterprise Roadmap.FT Press, 2005. ISBN 0-13-187002-5, 9780131870024
- ^ Top-Down Service Delivery Approach
- Erl et al.,(2009).SOA Design Patterns. Prentice Hall. ISBN 0-13-613516-1.
- Mauro. et al. Service Oriented Device Integration - An Analysis of SOA Design Patterns. [Online], pp. 1–10, 2010 43rd Hawaii International Conference on System Sciences, 2010. Date accessed: 6 April 2010.
- Dave Oliver.SOA Logical Model[Online].Date accessed: 17 April 2010.
- Srikanth Seshadri.A logical architecture for SOA[Online].Date accessed: 17 April 2010.
- www.binaryspectrum.com.Service-Oriented Architecture and Java - Service Layer[Online].Date accessed: 17 April 2010.
- Bernhard Borges, Kerrie Holley and Ali Arsanjani.Service-oriented architecture[Online].Date accessed: 17 April 2010.
- Norbert Bieberstein, Keith Jones, Robert G. Laird, Tilak Mitra.Executing SOA: A Methodology for Service Modeling and Design[Online].Date accessed: 17 April 2010.
- The Open Group.High-Level Perspective of the SOA Reference Architecture[Online].Date accessed: 17 April 2010.