Stephen Cohen's thoughts on Enterprise Architecture

Is Service Oriented Architecture (SOA) really architecture?

Being service oriented (SO) is, and continues to prove itself to be, a valuable and elegant approach for applications as well as enterprise architectures.  However I am a bit baffled by why an architecture which is service oriented is being branded a new kind of architecture.  An architecture may or may not be service oriented but the underlying architecture exists separately. 

My search for clarity started by trying to pin down a definition for Service Orientated Architecture.

The W3C's Web Service Architecture Working Group defines Web Service Architecture as an instance of an SOA in which "a service is viewed as an abstract notion that must be implemented by a concrete agent. The agent is the concrete entity (a piece of software) that sends and receives messages, while the service is the abstract set of functionality that is provided."  Well that clears that up, doesn’t it?  

Equally obscure but I believe more insightful is a definition from Rick Murphy in his article “Centers: The Architecture of Services and the Phenomenon of Life : Christopher Alexander's theory of centers helps explain the essential properties of service-oriented architectures  He invokes Christopher Alexander, one of the original thinkers on architecture, theory’s on centers.   Mr Murphy defines SOA as “… services encapsulate the enduring mission of a virtual organization as centers of value. Services, as centers of value, are living structures we choreograph through a common grammar subject to fitness and evolution. Customer demand determines fitness based on service discovery and service description. Choreography defines the sequence and conditions under which services evolve.”  I love the abstraction but I think we need a more readily consumable definition.

 For that I turn to Ramkumar Kothandaraman from Microsoft.  In his MSDN article “SOA Challenges: Entity AggregationRamkumar defines SOA as having “several core design principles:

  • Service boundaries are explicit;
  • Services share contracts and schema;
  • Services use message-based communication for interaction;
  • Services are autonomous and managed independently; and
  • Services use policy assertions to control the behavior.”  

This works for me.  A five point test I can apply to an implementation to gauge is level of SO-ness.  Even so, these 5 points are possible characteristics of ANY implemented architecture.  Personally, I would add Service Orientated as another style in Roy Fieldings’ dissertation on Architectural Styles and the Design of Network-based Software Architectures.  In which he categorizes architectural approaches and weights their appropriateness to a target problem domain.  A distributed system can be Layered, implement client caching, AND be service oriented.  Considering one can maintain the basic constructs of SO in an embedded, layered, or distributed system it seems clear that the base architecture is not effected by the inclusion or exclusion of services. 

Published Thursday, June 03, 2004 3:23 PM by Stcohen
Filed under:

Comments

 

Marty Garins said:

I too am baffled why SOA is being branded as new. I think a bunch of objects placed into COM+/MTS that are stateless and provide a well organized API certainly fit into most if not all of the 5 several core design principles Ramkumar makes. Certainly MTS/COM+ are not all that new.
June 3, 2004 5:42 PM
 

Udi Dahan - The Software Simplist said:

Is SOA really architecture? Yes.
Is it new? No.
Would now be a good time to start learning how to develop systems of interconnected services? IMO, yes.
June 3, 2004 5:55 PM
 

Stephen Cohen said:

Exactly, SOA isn't new and can be accomplished with many technologies including COM+ (currently Enterprise Services). The "new" part might well be how easy it has become. Web Services certainly provides an excellent platform for implementing SOA's.

My hope is to point out that Service Oriented is but one of many possible approaches and it remains the architect’s responsibility to ensure it is being applied appropriately.
June 3, 2004 6:19 PM
 

Klaus H. Probst said:

Gosh, as others have said, SOA is nothing new. I was doing it three-four years ago using COM+, MSMQ, IIS, Windows services and a message-based transport protocol that looked like SOAP for all practical purposes, all implemented with VB6 and VC++. High decoupling, explicit boundaries, isolation, surface contact restrictions, etc. Nothing new. Much of what .NET brings to the table makes it easier to do those types of things, but still the basic layout and patterns/practices don't change. I.e., SOA didn't suddenly spring from the earth after .NET was released.

One of the things I'd like to see in all this back-and-forth about SOA is the separation of the infrastructure and user spaces. There are things you would not do in your core software infrastructure that are OK for the app space and viceversa. Having spent the last couple of years doing enterprise infrastructure, I sort of cringe whenever I see articles (even on MSDN) that meld the two together and fail to explain why it is important to distinguish them. Beginning with costs!

But that's par for another discussion =)
June 3, 2004 6:49 PM
 

Jay Glynn's Blog said:

June 3, 2004 11:17 PM
 

Jay Glynn's Blog said:

June 3, 2004 11:36 PM
 

Stephen Cohen said:

So lets run with that ... what do you do you see as being part of the infrastructure specific space?
June 4, 2004 1:01 PM
 

Stephen Cohen s thoughts on Enterprise Architecture Is Service | Cellulite Creams said:

June 8, 2009 11:02 PM
 

Stephen Cohen s thoughts on Enterprise Architecture Is Service | Quick Diets said:

June 9, 2009 7:02 AM
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker