| By Thomas Erl | Article Rating: |
|
| October 29, 2005 06:00 AM EDT | Reads: |
31,323 |
Services are Loosely Coupled
Coupling refers to a connection between two things. Within automation solutions, the extent of coupling is a measure of dependency in relation to the connection between units of automation logic. A tightly coupled relationship indicates a high degree of dependency, whereas a decoupled relationship indicates no dependency (and no connection).
A fundamental principle of service-orientation is that units of logic that are classified as services retain a minimal level of coupling. The underlying logic of a service and its requestor are therefore not tightly coupled nor are they decoupled. They ideally retain a level of coupling that is classified as "loose" by limiting dependencies between a service and its clients on an agreed-upon service contract.
Services Share a Formal Contract
Units of automation logic that are classified as services must provide a contract in which the terms of engagement are defined. As a whole, service contracts can be composed of legal and technical information. This principle is primarily concerned with service description documents that comprise the technical service contract and provide published details about the service, such as its programmatic interface, communication requirements, constraints, properties, usage policies, and even preferences.
Software programs that request consumption of the service must adhere to the conditions of this contract. By restricting awareness of the service (as well as the scope of allowable communication) to what is documented in the service contract, a loosely coupled relationship is formed. The result is the consistent abstraction of a service's underlying logic.
Services Abstract Underlying Logic
Aside from what is published and described in the service contract, information regarding a service is hidden. This limits dependency (and coupling) to the service contract and essentially treats the service as a black box.
One of the primary benefits of service abstraction is that it allows for the mechanics of the service (development technology, deployment environments, etc.) to change with minimal impact to client programs that have become (loosely) dependent on it. The golden rule, of course, is that the service contract should remain immutable, so as to preserve established service-client relationships.
The Core Trio
In a nutshell, the targeted use of service contracts abstracts underlying service logic, thus limiting the extent of coupling. Applying the principles that implement these characteristics results in a predictable and consistent relationship between a service and its requestor, thereby establishing a fundamental dynamic of primitive service-oriented architecture.
There are, however, additional characteristics that distinguish both service-orientation and SOA. These build upon the foundation laid by the core principles and are what mould services into standardized units of automation logic capable of realizing specific benefits associated with SOA.
Service Are Composable
Service abstraction imposes no limit on what a service can encapsulate. This includes encapsulation of other services. A service composition represents a set of aggregated services that are united to collectively perform a particular task. The principle of composability applies to individual services, and strongly encourages that services be designed in support of aggregated assembly as composition controllers, members, or both.
By ensuring that services are capable of participating in multiple compositions, an inventory of adaptive services can be accumulated. The introduction of new or augmented business requirements can then, to a larger extent, be addressed by the reorganization (or remodeling) of services into new composition configurations. Essentially, the modeling of these compositions can be viewed as a form of service reuse.
Services Are Reusable
Regardless of the design approach taken, a well-established benefit to separating concerns is that individual concerns may not be specific to a particular activity or business task. The solution logic decomposed to address these crosscutting concerns can therefore become reusable. The reuse potential in SOA broadens because the scope of SOA itself can be extended beyond solution or even enterprise environments.
Attaining an effective level of reuse often requires that a service be stripped of solution and/or business process logic in order for it to become adequately generic. As a result, service reuse is a principle that is almost always realized through standardized design. Key service characteristics that support and help to foster reuse are autonomy, statelessness, and discoverability - each of which is addressed by a corresponding principle.
Services Are Autonomous
It is preferred that services exist as independently as possible - both from each other as well as from other parts of the technical environment that may want to share the resources encapsulated by the service. Autonomy represents the governance a service has at the time of execution over the underlying application logic required to carry out the functions exposed by the service contract. The extent to which a service can control its underlying logic dictates the level of its autonomy.
Purely autonomous services have absolute ownership of their resources, which allows them to be better tuned for efficiency, reliability, and availability. However, attaining this level of autonomy can be challenging. For example, integration architectures where services encapsulate legacy system logic frequently require that resources be shared with existing legacy clients. Also, the autonomy of a service that is spearheading a composition will be dependent on the collective autonomy of all services involved.
Either way, services with a high level of autonomy are considered the best candidates for reuse, especially in environments in which usage patterns from multiple clients cannot easily be predicted. Note that although frequently discussed in tandem with reuse, autonomy in no way guarantees statelessness.
Services Are Stateless
State information is data specific to a current activity or task. Its lifespan is generally associated with this task and therefore the manipulation and retention of state-related data typically must occur at runtime.
State management can consume considerable resources. Maintaining a condition of statelessness therefore benefits a service by increasing its scalability and availability. Furthermore, the processing of state information typically requires automation logic that is specific to the business task being executed. For services to maximize reuse potential, their context and underlying logic must be as generic (task-neutral) as possible. Emphasizing stateless design supports the reallocation of task-specific logic outside of the service or to dedicated, stateful services.
Published October 29, 2005 Reads 31,323
Copyright © 2005 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Thomas Erl
Thomas Erl is the world’s top-selling SOA author and Series Editor of the Prentice Hall Service-Oriented Computing Series from Thomas Erl (www.soabooks.com). With over 100,000 copies in print worldwide, his books have become international bestsellers and have been formally endorsed by senior members of major software organizations, such as IBM, Microsoft, Oracle, BEA, Sun, Intel, SAP, CISCO, and HP. His most recent titles - SOA Design Patterns and Web Service Contract Design and Versioning for SOA - were co-authored with a series of industry experts and follow his first three books Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services, Service-Oriented Architecture: Concepts, Technology, and Design, and SOA Principles of Service Design. Thomas is currently working with over 20 authors on a number of upcoming titles, including SOA Governance, SOA with .NET, SOA with Java, ESB Architecture for SOA, and SOA with REST. He is also overseeing the SOAPatterns.org initiative, a community site dedicated to the on-going development of SOA patterns. Thomas is the founder of SOA Systems Inc. (www.soasystems.com), a company specializing in vendor-neutral SOA consulting and training services. He is also the founder of the internationally recognized SOA Certified Professional program (www.soacp.com and www.soaschool.com). Thomas is a speaker and instructor for private and public events and is regularly invited to Gartner summits. He has delivered many workshops and keynote speeches, and is on the program committee for the International SOA Symposium. Articles and interviews by Thomas have been published in numerous publications, including SOA World Magazine, The Wall Street Journal and CIO Magazine. For more information, visit www.thomaserl.com.
![]() |
erl 10/29/05 06:17:48 AM EDT | |||
{{{ have yet to find a better means of explaining service-orientation than to reach back to that fundamental software engineering theory known as the "separation of concerns." }}} I'd not heard this one before. Useful phrase. |
||||
![]() |
queZZtion 10/29/05 05:36:51 AM EDT | |||
||| technology architecture in support of service-orientation is making significant strides, and extending its reach into key realms of enterprise computing ||| The age of SOA will last much longer than the age of client/server. How long though? |
||||
![]() |
Short&Sweet 10/29/05 05:32:53 AM EDT | |||
Erl's book on this subject, Service-Oriented Architecture: Concepts, Technology, and Design has 792 pages - helpful to have this boiled down to just 3 pages here! |
||||
- The Top 150 Players in Cloud Computing
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- Industry Experts Discuss the State of Cloud Computing
- Cloud Expo New York Call for Papers Deadline December 15
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- US Federal Government is Major Cloud Computing Innovator
- Google Wave
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Adaptivity & Cloud Computing: Exclusive Q&A with CEO Tony Bishop
- 4th International Cloud Expo: Photo Album
- The Top 150 Players in Cloud Computing
- SYS-CON.TV: Cloud Computing Expo Power Panel
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- 1st Annual GovIT Expo: Letter from the Technical Chair
- Deputy CIO of the CIA to Keynote 1st Annual GovIT Expo
- Industry Experts Discuss the State of Cloud Computing
- SOA World Power Panel on SYS-CON.TV
- CIA was Headed to an Enterprise Cloud All Along: Jill Tummler Singer
- 1st Annual Government IT Conference & Expo: Themes & Topics
- Cloud Expo New York Call for Papers Deadline December 15
- Stock in Focus: Dragon Capital
- The i-Technology Right Stuff
- Who Are The All-Time Heroes of i-Technology?
- Get the Message
- Where Are RIA Technologies Headed in 2008?
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- Five Reasons Why Web 2.0 Matters
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- SOA World Conference & Expo SYS-CON.TV Power Panel Live From Times Square










There are a variety of applications that supp...
























