Service layer pattern: Difference between revisions
→References: Added references |
→References: Added reference |
||
Line 31: | Line 31: | ||
* Bernhard Borges, Kerrie Holley and Ali Arsanjani.[http://searchsoa.techtarget.com/news/article/0,289142,sid26_gci1006206,00.html Service-oriented architecture][Online].Date accessed: 17 April 2010. |
* Bernhard Borges, Kerrie Holley and Ali Arsanjani.[http://searchsoa.techtarget.com/news/article/0,289142,sid26_gci1006206,00.html Service-oriented architecture][Online].Date accessed: 17 April 2010. |
||
* Norbert Bieberstein, Keith Jones, Robert G. Laird, Tilak Mitra.[http://www.informit.com/articles/article.aspx?p=1194198 Executing SOA: A Methodology for Service Modeling and Design][Online].Date accessed: 17 April 2010. |
* Norbert Bieberstein, Keith Jones, Robert G. Laird, Tilak Mitra.[http://www.informit.com/articles/article.aspx?p=1194198 Executing SOA: A Methodology for Service Modeling and Design][Online].Date accessed: 17 April 2010. |
||
* The Open Group.[http://www.opengroup.org/projects/soa-book/page.tpl?ggid=1334 High-Level Perspective of the SOA Reference Architecture][Online].Date accessed: 17 April 2010. |
|||
== External links == |
== External links == |
Revision as of 11:22, 17 April 2010
It has been suggested that this article be merged into Service layer. (Discuss) Proposed since April 2010. |
This article may require copy editing for grammar, style, cohesion, tone, or spelling. (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 the same type of functionality. This helps to reduce the governance burden related to the service inventory as the services belonging to the same layer only contain a particular type of solution logic and as a result are easy to maintain.
Rationale
As more and more services are added to a service inventory, the management of services within the service inventory gets difficult. In an unorganized service inventory, just by having a look at a service, it’s very hard to predict what kind of functionality is contained in it. This further makes it difficult to pickup the right type of service until all of its functions are reviewed. Similarly, a service can be designed in a manner that it contains both the reusable logic as well as the process-specific logic. When it comes to change the process-specific logic, this can inadvertently impact the reusable logic as well, which means that the reusability potential of such a service is reduced. Contrary to this, the Service Reusability design principle dictates that services should be designed in a manner so that they can be reused as much as possible. Similarly, the Service Composability design principle advocate designing services in a manner so that they can be composed into multiple service compositions[3]. Both of these qualities are only possible if the service only contains a specific type of logic e.g. either reusable logic or process-specific logic.
In order to design a service so that it contains a particular type of logic, different logical groups of services need to be established within a service inventory as advocated by the application of the Service Layers design pattern[4]. Each group only contains a particular type of logic, so by restricting the service to only contain a particular type of functionality, the design of the service remains rather straightforward and one can predict the type of functionality the service provides and its behavior by looking at which layer does it belong to e.g. services in a particular group may not be suitable for composition as compared to another group.
Usage
In order to apply this pattern, first it needs to be established which different types of layers are required. This requires creating a service inventory blueprint[5]: a pool of services consisting of candidate services containing candidate functionality. By creating such an inventory, enough information is available to find out the different types of functionality within the intended service inventory. Based on this information, the required types of layers can be established. On the other hand, by applying this pattern at this stage within the service delivery process, the design of the service can be modified so that it contains the relevant type of logic as dictated by the type of the service layer under which this particular service falls.
Although service grouping can be performed based different types of functionalities, however, to keep the grouping standardized across the enterprise, the actual groups can be based on established service models[6] that depict the most common types of logic that services would normally contain. Depending upon the particular area of the business, a service inventory would usually be divided into task[7], entity[8] and utility[9] services. Each of these different types of service models bear specific characteristics that would be eventually demonstrated by the services that belong to the layer, which is based on a particular service model. To design a service based on the aforementioned service models the Process Abstraction[10], the Entity Abstraction and the Utility Abstraction design patterns can be applied as these design patterns help in structuring the solution logic of the services according to specific types.The aforementioned service types are by no means concrete and an SOA could be categorized into a different set of service layers depending upon which characteristics constitute a particular layer, for example, as argued by Bieberstein et al[11], an SOA could be divided in to five different layers, namely Enterprise, Process, Service, Component and Object layers.
The application of the Service Layers pattern would necessitate a change in the architecture of the service and the overall architecture of the service inventory[12].
Considerations
The application of this design pattern depends upon having enough knowledge about the kind of services in a service inventory before they are actually developed. Consequently, a top-down service delivery approach[13] needs to be adopted so that a pool of candidate services exists from which the need for different service layers can be established. This will increase the time and efforts required to actually deliver a set of usable services. Secondly, the confidence with which the need for different types of service layers can be established is directly proportional to the size of the service inventory. This means that as more and more services are added to the service inventory, the already established service layers may need to be modified in case new services do not fit into these existing service layers.
References
- ^ services
- ^ service inventory
- ^ service compositions
- ^ Introducing SOA Design Pattern[Online].Date accessed:6 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 0131870025, 9780131870024
- ^ SOA Types
- ^ Top-Down Service Delivery Approach
- Erl et al,(2009).SOA Design Patterns. Prentice Hall. ISBN 0136135161.
- 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.