Thomas Erl

Subscribe to Thomas Erl: eMailAlertsEmail Alerts
Get Thomas Erl: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: SOA & WOA Magazine

SOA & WOA: Article

Exclusive SOA Web Services Journal Briefing – Thomas Erl On SOA

The Principles of Service-Orientation

Note that unlike autonomy, services cannot attain a level of pure statelessness. While processing, a service is stateful for a period of time. This principle simply emphasizes that the duration of this period be minimized.

See Figure 8

Services Are Discoverable
Service discovery has been a well-promoted aspect of SOA. This principle does not require that service-oriented applications be outfitted with service registries or other forms of discovery mechanisms. Instead, it supports the overall notion of discoverability by focusing on the design of the service itself.

Service contracts describe technical aspects of a service to facilitate consumption by potential clients. Specifically, discoverability introduces conventions that foster clarity and descriptiveness on a granular level. These conventions govern discoverability characteristics related to both human interpretation and automated evaluation of the service contract.

Additional Considerations
There are further qualities commonly associated with services and service-orientation that are relevant to generic service design, but that do not necessarily qualify as governing principles. A well-known example is the common belief that services should have coarse-grained interface designs. This type of consideration is important when designing service-oriented solutions, but should be classified more as a design guideline to be applied when it suitably fulfills specific requirements.

For example, it is almost always desirable for a service to be reusable, autonomous, and loosely coupled from its consumers; however, the appropriate measure of interface granularity needs to be assessed on a service-by-service basis (especially when designing compositions). This is why a distinction between principles and guidelines is beneficial.

How Service-Orientation Principles Interrelate
Each principle influences or is influenced by others. Interprinciple relationships establish the overall service-orientation dynamic and are therefore an important aspect that is worth understanding prior to incorporating service-orientation into concrete designs.

The manner in which principles interrelate is a broad subject matter. Relationships can be straightforward or complex, uni- or bi-directional, direct or inadvertent. Further, the extent to which applied principles affect each other can also be influenced by external factors, such as environmental conditions.

A glimpse of how the core trio from Figure 4 acts as a primary enabler of the remaining principles is illustrated in Figure 9.

Service-Orientation and Web Services
You may have noticed that we have yet to really discuss service-orientation in relation to Web services. As with object-orientation, the design paradigm established by service-orientation is intended to be implementation-agnostic. Its goal is to establish a set of interrelated principles for the purpose of attaining the benefits associated with contemporary SOA, regardless of how SOA itself is manifested in the real world.

Having stated that, though, it is important to acknowledge the Web services technology platform as providing the foremost means of realizing these principles. Loosely coupled relationships, the use of service contracts, the abstraction of underlying logic, and the ability for services to be composed are natural characteristics that can be realized through the mere use of Web services.

This highlights the suitability of Web services as a means of achieving service-orientation. In fact, it's fair to say that the emergence of these common principles has been directly influenced by the availability and popularity of the Web services technology platform. However, despite the ability for Web services to natively fulfill core principles, realizing an effective level of service-orientation requires attention to design and standardization.

For example, in the Web services world, reusability is made possible through deliberate analysis and design, during which generic processing logic is created and expressed through standardized WSDL, XSD schema, and policy definitions. Web service autonomy is also achieved through explicit design with the focus on the level of exclusivity a service has to the processing logic it encapsulates.

Statelessness within Web services can be maximized through the deferral of state-related processing responsibilities to other parts of the solution environment (including intentionally stateful activity management services), and discoverability can be enhanced through the use of naming conventions and annotations that are applied to individual service descriptions.

Also worth noting is the use of SOAP headers as a key feature of the Web services platform that supports several principles, including reusability, autonomy, and statelessness. SOAP header blocks allow messages to be outfitted with a wide range of metadata associated with the message contents as well as the business process or activity in which the message is participating. This further alleviates the need for services to contain task-specific logic, and emphasizes the creation of generic services that are capable of facilitating multiple requestors in multiple business process contexts.

Service-Orientation and the Enterprise
The scope of this discussion has so far been limited to principles that apply to the design of individual services. However, service-orientation is a broad paradigm that is capable of realizing large-scale SOA benefits through the application of key principles to the enterprise as a whole.

For example, services can be categorized into service models with predefined functional characteristics and implied, high-level contexts. These standardized services can then be organized into coordinated layers that are positioned to abstract entire domains within an organization. The use of service layers effectively implements a loosely coupled relationship between these domains. This significantly amplifies the effect of service-orientation, resulting in the potential to contribute to and even realize major benefits, such as increased organizational agility.

Of course, it all begins with the service. Services are the fundamental building blocks of SOA and the quality and consistency with which they are constructed ultimately determines not only the success of the solutions that utilize them, but also the potential of an organization to propagate service-orientation throughout its domains.

To this end, I generally emphasize the development of highly agnostic and standardized service logic so as to allow an organization to consistently build an inventory of reusable and compatible services, each abstracting a distinct part of the enterprise. As the quantity of these services grows, the fulfillment of new business automation requirements becomes less of a development effort and more of a modeling exercise.

This aspect of service-orientation broaches a large subject matter I haven't yet touched upon in this article, namely the incorporation of service-orientation within business modeling and business logic encapsulation. Deriving services from business models, isolating process logic into an orchestration service layer, and using services to express enterprise ontologies are important steps for abstracting enterprise domains through service-orientation.

Summary
Variations of service-orientation exist, with numerous SOA vendors and organizations furthering its cause while also contributing divergent definitions and implementations. To accurately establish it as a mainstream design paradigm, extracting commonality from these contributions provides a useful, generic set of accepted principles.

These principles can be applied for different reasons and at different levels. They propose a shift in mindset and philosophy in solving real world problems through targeted abstraction of solution logic. The benefit potential for service-orientation is high, but with the broad application scope of its principles comes the responsibility of properly planning and standardizing its incorporation.

As with past design paradigms, simply separating concerns is not enough. A common vision of how this separation is accomplished is required. The unit of logic used to address a concern, the system built with units of logic, the enterprise composed of systems, the business community consisting of enterprises - all benefit from threads of commonality. Service-orientation is an ambitious paradigm that aims to define these threads with the ultimate vision of weaving them into all levels of business automation.

.  .  . 

This article contains diagrams from SOA Systems Inc. methodology documentation and Service-Oriented Architecture: Concepts, Technology, and Design by Thomas Erl (792 pages, Hardcover, ISBN: 0131858580, Prentice Hall/Pearson PTR, Copyright 2005). For more information, see www.soasystems.com and www.serviceoriented.ws.

More Stories By Thomas Erl

Thomas Erl is a best-selling IT author and founder of Arcitura Education Inc., a global provider of vendor-neutral educational services and certification that encompasses the Cloud Certified Professional (CCP) and SOA Certified Professional (SOACP) programs from CloudSchool.com™ and SOASchool.com® respectively. Thomas has been the world's top-selling service technology author for nearly a decade and is the series editor of the Prentice Hall Service Technology Series from Thomas Erl, as well as the editor of the Service Technology Magazine. With over 175,000 copies in print world-wide, his eight published books have become international bestsellers and have been formally endorsed by senior members of many major IT organizations and academic institutions. To learn more, visit: www.thomaserl.com

Comments (3) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
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!