Service layer pattern: Difference between revisions

Content deleted Content added
Usage: copy-edits
OAbot (talk | contribs)
m Open access bot: url-access updated in citation with #oabot.
 
(29 intermediate revisions by 22 users not shown)
Line 1:
{{Short description|Layered architectural pattern}}
{{Mergeto|Service layer|date=April 2010}}
{{Copyedit|date=April 2010}}
{{One source|date=April 2010}}
 
'''Service Layerslayer''' is aan [[Design pattern (computer science)|designarchitectural pattern]], applied within the [[service-orientation]] [[design paradigm]], which aims to organize the services<ref, within a service inventory, 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 name='services'> belonging to the same layer address a smaller set of activities.
[http://www.whatissoa.com/p11.php services]</ref>, within a service inventory<ref name='serviceinventory'>
[http://www.whatissoa.com/p13.php service inventory]</ref>, 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|Serviceservice Reusabilityreusability]] principle dictates that services should be designed to maximize reuse. Similarly, the [[Service Composability Principle|Serviceservice Composabilitycomposability]] principle advocates designing services so that they can be composed intoin various ways.<ref name='servicecompositions'>[http://www.whatissoa.com/p12.php service compositions]</ref> Both principles require that a service contain only a specific type of logic e.g., either reusable or process-specific logic.<ref name='SOAMag'>[[Thomas Erl]].[http://soa.sys-con.com/node/645271?page=0,1 Introducing SOA Design Pattern] [Online]. Date accessed:6 April 2010.</ref> Restricting each layer to a particular functionality, simplifies the design of the service.
Thomas Erl.[http://soa.sys-con.com/node/645271?page=0,1 Introducing SOA Design Pattern][Online].Date accessed:6 April 2010.</ref> Restricting each layer to a particular functionality, simplifies the design of the service.<ref name='WK' />
 
==Usage==
[[ImageFile:Service Layers Image A.JPG|thumb|alt=Diagram A|Diagram A<br />In the absence of any layers, services contain a mixture of different types of logic. This makes it difficult to manage these services.]]
[[ImageFile:Service Layers Image B.JPG|thumb|alt=Diagram B|Diagram B<br />A service inventory divided into layers where each layer contains the same type of logic.]]
[http://www.soamethodology.com/p2.phpApplying this pattern requires creating a service inventory blueprint]</ref>, 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.<ref name='service models'>[http://www.soamethodology.com/p5.php service models]</ref> One common layering uses task,<ref name='task'>[http://www.soamethodology.com/p7.php Task Service]</ref> [[Entity Abstraction Pattern|entity]] <ref name='entity'>[http://www.soamethodology.com/p6.php Entity Service]</ref> and [[Utility Abstraction Pattern|utility]] <ref name='utility'>[http://www.soamethodology.com/p8.php Utility Service]</ref> layers.<ref name='ProcessAbstractionWK'>
Applying this pattern requires creating a service inventory blueprint,<ref name='serviceinventoryblueprint'>
Wajid Khattak [http://www.informit.com/articles/article.aspx?p=1583177 Service Layers] [Online].Date accessed: 21 April 2010.</ref>.
[http://www.soamethodology.com/p2.php service inventory blueprint]</ref> 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.<ref name='service models'>[http://www.soamethodology.com/p5.php service models]</ref> One common layering uses task,<ref name='task'>[http://www.soamethodology.com/p7.php Task Service]</ref> [[Entity Abstraction Pattern|entity]] <ref name='entity'>[http://www.soamethodology.com/p6.php Entity Service]</ref> and [[Utility Abstraction Pattern|utility]] <ref name='utility'>[http://www.soamethodology.com/p8.php Utility Service]</ref> layers.<ref name='ProcessAbstraction'>
[http://www.soapatterns.org/process_abstraction.php Process Abstraction]</ref><ref name='WK'>
Wajid Khattak [http://www.informit.com/articles/article.aspx?p=1583177 Service Layers][Online].Date accessed: 21 April 2010.</ref>.
 
An alternative layering from Bieberstein et al.,<ref>Bieberstein. et al.[httphttps://books.google.com/books?id=NISyExeJ5mAC&pg=PA88&dq=%22service+layer%22&lr=&hl=sv#PPA87,M1 Service-oriented Architecture Compass: Business Value, Planning, and Enterprise Roadmap].FT Press, 2005. {{ISBN |0-13-187002-5}}, 9780131870024{{ISBN|978-0-13-187002-4}}</ref>, involves five layers, namely Enterpriseenterprise, Processprocess, Serviceservice, Componentcomponent and Objectobject.
 
The Serviceservice Layerslayer pattern invokes a specific [[Service-Orientedoriented Architecturearchitecture Typestypes|service architecture]].
 
The [[Top-down and bottom-up design|top-down]] service delivery approach facilitates the use of this pattern.
==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 and bottom-up design|top-down]] service delivery approach<ref name="TopDown">[http://www.soamethodology.com/p9.php Top-Down Service Delivery Approach]</ref> 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.
== See also ==
* [[Service layer]]
 
== References ==
{{Reflist}}
* {{cite book |author-link1=Thomas Erl |last1=Erl |first1=Thomas |year=2009 |title=SOA Design Patterns |publisher=[[Prentice Hall]] |isbn=978-0-13-613516-6}}
* Erl et al.,(2009).[http://www.amazon.com/gp/product/0136135161/ref=s9_simi_gw_p14_i1?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-1&pf_rd_r=0FBSA23BKC0AXWVZ5Q9G&pf_rd_t=101&pf_rd_p=51471022&pf_rd_i=507846 SOA Design Patterns]. Prentice Hall. ISBN 0-13-613516-1.
* {{cite conference |display-authors=1 |last1=Mauro. et|first1=Christian al.|last2=Leimeister [http://www.computer.org/portal/web/csdl/doi/10.1109/HICSS.|first2=Jan Marco |last3=Krcmar |first3=Helmut |year=2010.336 |title=Service Oriented Device Integration - An Analysis of SOA Design Patterns.] [Online],|department=HICSS pp.&nbsp;1–10,2010 |work=2010 43rd Hawaii International Conference on System Sciences, |pages=1–10 |doi=10.1109/HICSS.2010.336 Date accessed: |isbn=978-1-4244-5509-6 April|issn=1530-1605 |url=https://doi.ieeecomputersociety.org/10.1109/HICSS.2010.336 |accessdate=2020-07-26|url-access=subscription }}
* {{cite web |last1=Seshadri |first1=Srikanth |date=2007-01-17 |df=dmy |url=https://www.infoworld.com/article/2077670/logically-soa.html |title=Logically SOA |work=[[JavaWorld]] |accessdate=2020-07-26}}
* Dave Oliver.[http://geekswithblogs.net/SabotsShell/archive/2006/07/11/84708.aspx SOA Logical Model][Online].Date accessed: 17 April 2010.
* www.binaryspectrum.com.[{{cite web |url=http://www.binaryspectrum.com/service-oriented_architecture/soa_and_Java_2.html |title=Service-Oriented Architecture and Java - Service Layer][Online].Date accessed:|department=Technology 17|publisher=Binary AprilSpectrum 2010.|accessdate=2020-07-26}}
* Srikanth Seshadri.[http://www.javaworld.com/javaworld/jw-01-2007/jw-01-soa.html A logical architecture for SOA][Online].Date accessed: 17 April 2010.
* Norbert{{cite web |last1=Bieberstein, Keith|first1=Norbert |last2=Jones, |first2=Keith |last3=Laird |first3=Robert G. Laird,|last4=Mitra |first4=Tilak Mitra.[http|date=2008-07-17 |df=dmy |url=https://www.informit.com/articles/article.aspx?p=1194198 |title=Executing SOA: A Methodology for Service Modeling and Design] |work=[[OnlineInformIT]].Date accessed: 17 April 2010.|accessdate=2020-07-26}}
* www.binaryspectrum.com.[http://www.binaryspectrum.com/service-oriented_architecture/soa_and_Java_2.html Service-Oriented Architecture and Java - Service Layer][Online].Date accessed: 17 April 2010.
* {{cite web |url=https://collaboration.opengroup.org/projects/soa-book/pages.php?action=show&ggid=1334 |title=High-Level Perspective of the SOA RA |work=SOA Source Book |publisher=[[The Open Group]] |accessdate=2020-07-26}}
* 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.
* 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 ==
* [https://web.archive.org/web/20201111163522/https://patterns.arcitura.com/soa-patterns SOA Design Patterns]
* [http://www.whatissoa.com/ SOA Concepts]
* [http://www.soaglossary.com/ SOA Terms Glossary]
* [http://www.soapatterns.org SOA Design Patterns]
 
[[Category:Service-oriented (business computing)]]