YOUR FEEDBACK
Kyle Simpson wrote: Uhh, how exactly is this really at all different from flash and externalinterfac...
Cloud Computing Conference
March 30 - April 1, New York
Register Today and SAVE !..


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
As you can imagine, I spend a lot of time speaking to people about service-oriented architecture (and its variants for infrastructure and enterprise) and about how best to create a true implementation (or at least, an effective one). There is a great deal of detail in creating such an artifact – d...
SYS-CON.TV
TODAY'S TOP SOA & WEBSERVICES LINKS


10 Principles of SOA
A frame of reference - for - SOA-related discussions

In many customer engagements, I need to establish a basic set of SOA principles. The following sections introduce fundamental principles that a Service Oriented Architecture (SOA) should expose. They are not introduced as absolute truth, but rather as a frame of reference for SOA-related discussion. You'll note that the first four are based on Don Box's four tenets, although over time they may have acquired a personal spin.

1) Explicit Boundaries
Everything needed by the service to provide its functionality should be passed to it when it's invoked. All access to the service should be via its publicly exposed interface; no hidden assumptions should be necessary to invoke the service. "Services are inextricably tied to messaging in that the only way into and out of a service is through messages." A service invocation should - as a general pattern - not rely on a shared context; instead service invocations should be modeled as stateless. An interface exposed by a service is governed by a contract that describes its functional and non-functional capabilities and characteristics. The invocation of a service is an action that has a business effect, is possibly expensive in terms of resource consumption, and introduces a category of errors different from those of a local method invocation or remote procedure call. A service invocation isn't a remote procedure call.

While consuming and providing services certainly should be as easy as possible, so it's undesirable to hide too much of the fact that an interaction with a service takes place. The message sent to or received from the service, the service contract, and the service itself should all be first-class constructs within the SOA. This means, for example, that the programming models and tools that are used should at least provide an API that exposes these concepts to the service programmer. In summary, a service exposes its functionality through an explicit interface that encapsulates its internals; interaction with a service is an explicit act, relying on the passing of messages between consumer and provider.

2) Shared Contract and Schema, not Class
Starting from a service description (a contract), both a service consumer and a service provider should have everything they need to consume or provide the service. Following the principle of loose coupling, a service provider can't rely on the consumer's ability to reuse any code that it provides in its own environment; after all, it might be using a different development or runtime environment. This principle puts severe limits on the type of data that can be exchanged in an SOA. Ideally, the data is exchanged as XML documents validatable against one or more schemas, since they are supported in every programming environment one can imagine.

3) Policy-driven
To interact with a service, two orthogonal requirement sets have to be met:

  1. The provider's functionality, syntax, and semantics must fit the consumer's requirements,
  2. The technical capabilities and needs must match.
For example, a service provider may offer exactly the service a consumer needs, but offer it over JMS while the consumer can only use HTTP (because it's implemented on a .NET platform); a provider might require message-level encryption via the XML Encryption standard, while the consumer can only support transport-level security using SSL. So even in cases where both partners have the necessary capabilities, they might have to be "activated" - e.g., a provider might encrypt response messages to different consumers using different algorithms based on their needs.

To support access to a service from the largest number of differently equipped and capable consumers, a policy mechanism has been introduced as part of the SOA toolset. While the functional aspects are described in the service interface, the orthogonal, non-functional capabilities and needs are specified using policies.

4) Autonomous
Related to the explicit boundaries principle (5.4.1.1), a service is autonomous in that its only relation to the outside world - at least from the SOA perspective - is through its interface. In particular, it must be possible to change a service's runtime environment, say from a lightweight prototype implementation to a full-blown application server-based collection of collaborating components without affecting its consumers. Services can be changed and deployed, versioned, and managed independently of each other. A service provider can't rely on the ability of its consumers to adapt to a new version of the service quickly; some of them might not be able, or willing, to adapt to a new version of a service interface at all (especially if they're outside the service provider's sphere of control).

5) Wire Formats, not Programming Language APIs
Services are exposed using a specific wire format that has to be supported. This principle is strongly related to the explicitness of the boundaries principle, but introduces a new perspective: To ensure the utmost accessibility (and so, long-term usability), a service must be accessible from any platform that supports the exchange of messages adhering to the service interface as long as the interaction conforms to the policy defined for the service. For example, it's a useful test of conformance to this principle to consider whether it's possible to consume or provide a specific service from a mainstream dynamic programming language such as Perl, Python, or Ruby. Even though none of these may currently play any role in the current technology landscape, this consideration can serve as a litmus test to assess whether the following criteria are met:

  • All message formats are described using an open standard or human-readable description
  • It's possible to create messages adhering to those schemas with reasonable effort without a specific programmer's library
  • The semantics and syntax for additional information necessary for successful communication, such as headers for purposes such as security or reliability, follow a public specification or standard
  • At least one of the transport (or transfer) protocols used to interact with the service is a standard network protocol (or is accessible via one)

About Stefan Tilkov
Stefan Tilkov is co-founder and a prinicipal consultant at innoQ, a consulting firm with offices in Germany and Switzerland. He focuses on enterprise architecture consulting for Fortune 1000 companies, which currently translates to assessing SOA maturity and deriving appropriate steps for a road map towards a service-oriented enterprise.

SOA WORLD LATEST STORIES
"This is the premier social graph fully integrating with the premier enterprise cloud computing company - this is the true power of Internet," gushed Marc Benioff, Chairman and CEO of Salesforce.com, as he today launched a new offering called Force.com for Facebook – designed to fost...
The other day, HP, the industry's resident smarty pants, let drop that starting this fiscal year – which is now, oh, five or six weeks old – it will save a billion dollars a year on IT compared to 2005 – although it's added upwards of $25 billion in revenue since then. COO Randy ...
Thanks to a sketchy notice in the Official Journal of the European Union we now know a tad more about why Intel has taken the European Commission to court. Seems Intel is accusing the EC of making it the butt of a "discriminatory and partial" antitrust investigation because the EC won'...
If you've been following me on Twitter, or through my other blogs, you already know that I made it to the SOA World Conference & Expo in San Jose, CA, which was collocated with Cloud Computing Conference & Expo. I did the keynote on Wednesday and then stayed around for some of the sess...
A few years ago, a British newspaper speculated on what might be the Web equivalent of the Seven Wonders of the World, and received suggestions that were hardly surprising: Google search, the Amazon.com e-tail portal, the eBay auction mechanism, etc. But that was back in 1991, before F...
Active Endpoints has announced the general availability of ActiveVOS 6.0.2, in response to ever increasing demands for improved process performance and efficiencies. ActiveVOS is an all-in-one, 100% standards-based orchestration and business process management system (BPM) that permits...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS


ADS BY GOOGLE