Service layer pattern: Difference between revisions

Content deleted Content added
CmdrObot (talk | contribs)
m Compact Amazon URL
OAbot (talk | contribs)
m Open access bot: url-access updated in citation with #oabot.
 
(23 intermediate revisions by 19 users not shown)
Line 1:
{{Short description|Layered architectural pattern}}
{{Mergeto|Service layer|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<ref name="TopDown">facilitates the use of this pattern.
 
[http://www.soamethodology.com/p9.php Top-Down Service Delivery Approach]</ref> facilitates the use of this pattern.
== See also ==
* [[Service layer]]
 
== References ==
{{Reflist}}
* [[{{cite book |author-link1=Thomas Erl |last1=Erl]] et|first1=Thomas al.,(|year=2009).[http://www.amazon.com/dp/0136135161 |title=SOA Design Patterns]. |publisher=[[Prentice Hall. ISBN]] |isbn=978-0-13-613516-1.6}}
* {{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)]]