InfoQ

News

InfoQ Article: 10 Principles of SOA

Posted by Floyd Marinescu on Feb 27, 2007 02:42 AM

Community
SOA
Topics
Web Services
Tags
XML,
Best Practices,
Web services,
Patterns
In this article, InfoQ's Stefan Tilkov, consultant at innoQ, proposes 10 principles to serve as a basis for SOA discussions. The list starts with Don Box's four tenets (service with explicit boundaries, shared contract and schema, policy-driven, and autonomous) and expands them to include wire formats, document orientation, loose coupling, standards compliance, vendor independence, and metadata.

Read 10 Principles of SOA.

6 comments

Reply

Bravo! by Rajeev Kozhikkattuthodi Posted Feb 27, 2007 4:24 PM
Re: Bravo! by Stefan Tilkov Posted Feb 27, 2007 5:04 PM
Good and interesting, however by graham berri Posted Mar 6, 2007 12:39 PM
Re: Good and interesting, however by Stefan Tilkov Posted Mar 6, 2007 4:47 PM
Re: Good and interesting, however by graham berri Posted Apr 13, 2007 10:31 AM
Very Good! by Carlos Rodriguez Posted Mar 12, 2007 3:29 AM
  1. Back to top

    Bravo!

    Feb 27, 2007 4:24 PM by Rajeev Kozhikkattuthodi

    That was very well written piece. I couldn't have agreed more with the points that you have brought up. My favorite one is the one about document-centric interaction paradigm. In my experience atleast, it is one of the most difficult, yet conceptually elegant concepts to get a "buy-in". Especially from IT/IS departments who have been so habituated to RPC. OTOH, I feel that probably you could also have touched upon the notions of Service Granularity and Service Governance. Or do you think it kind of "folds into" one of the above tenets?

  2. Back to top

    Re: Bravo!

    Feb 27, 2007 5:04 PM by Stefan Tilkov

    With service granularity, I would claim it's sort of implied in document-orientation that services are coarse-grained. With regards to governance, you are probably right: the only "real" reference is the metadata aspect. This would probably be worth expanding -- I'll think about it. Thanks for the feedback!

  3. Back to top

    Good and interesting, however

    Mar 6, 2007 12:39 PM by graham berri

    I'd like to see more to resolve the confusion around sync v async. The consumers view of async (I can carry on) is different and separable from from the services view (I can queue up requests). The fact that there is a buffer for requests does not mean the consumer either can or should carry on without a reply.

  4. Back to top

    Re: Good and interesting, however

    Mar 6, 2007 4:47 PM by Stefan Tilkov

    Good point. I like to distinguish between blocking and non-blocking (on the client side) and synchronous vs. asynchronous (on the communication side). These are orthogonal to each other - i.e. one can do blocking asynchronous, non-blocking asynchronous as well as blocking or non-blocking synchronous calls. Each have their value.

  5. Back to top

    Very Good!

    Mar 12, 2007 3:29 AM by Carlos Rodriguez

    Good work!!.. It is very good principles!.

  6. Back to top

    Re: Good and interesting, however

    Apr 13, 2007 10:31 AM by graham berri

    Stefan Let me challenge you a bit more. I propose you can trim point 1 down quite a bit! It says: Everything needed by the service to provide its functionality should be passed to it when it is invoked. The only way into and out of a service are [is?] through messages. I have seen others say much the same. And people who already know the meaning may not notice, but surely the words are misleading? The fact is that a service may not get all it needs from the invocation message. E.g. it may have to query a database before it can begin to process the input message. And there are others ways out of and into a service. E.g. when it queries that database it might do so by sending a message to what some call a data service*, or it might issue a remote procedure call, or (I guess) it might be actually be an SOA-enabled stored procedure. * BTW, how can a client distinguish a data service from a business service? I don't think there is in fact a distinction between them, only some designer expectations about where the service is deployed.

Exclusive Content

Agile in Practice: What Is Actually Going On Out There?

Scott Ambler talks about actual data resulting from surveys made during 2006-2008, showing how Agile is perceived and implemented within organizations.

Building Smart Windows Applications

From QCon 2008, Daniel Moth presents on using Visual Studio 2008 and .NET 3.5 to create compelling rich Windows applications.

Joshua Kerievsky about Industrial XP

Joshua Kerievsky, founder of Industrial Logic, talks about Industrial Extreme Programming which extends XP by including practices dealing with management, customers and developers.

Jeff Barr Discusses Amazon Web Services

Amazon Web Services (AWS) Evangelist Jeff Barr discusses SimpleDB, S3, EC2, SQS, cloud computing, how different Amazon services interact, origins of AWS, AWS globalization and the March AWS outage.

More Than Just Spin (Up) : Virtualization for the Enterprise and SaaS

Cloud services have helped bring virtualization to the forefront. Its full power however, also includes other benefits such as high availability, disaster recovery, and rapid provisioning.

Ruby Beyond Rails

John Lam talks about his path to dynamic languages, some of the problems of making IronRuby run fast, and how the DLR helps with implementing languages.

VMware Infrastructure 3 Book Excerpt and Author Interview

VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.

Architectures of extraordinarily large, self-sustaining systems

Can a system that is so large it cannot be comprehended be "designed" in a conventional sense? The foundations of computing are about to change. In this talk, Richard P. Gabriel explores why and how.