Note: You are experiencing only the raw content of this site, without the intended layout and design. Either your browser has ignored the Cascading Style Sheet (CSS) files for this site, or you are using an outdated browser which does not support Web Standards. Learn more.

Home « Blogs

EDS' Next Big Thing Blog: Read and Respond to What the EDS Fellows Say About Technology

Read and respond to what the EDS Fellows have to say about the future of technology on EDS' Next Big Thing Blog on eds.com.

SOA as an Architectural Style

by Alex Cameron

Lord Kenneth Clark, the famous English peer who wrote and presented the watershed BBC TV documentary "Civilisation," reflected that, “Architectural style cannot take root unless it satisfies some need of the time.” Of course he was referring to structures and buildings but this resonates with what we know of the IT industry as well. We all know that architectural styles have come and gone and been displaced because technology has enabled different approaches.

We have learned the hard way that this mixture of styles has caused the mess most IT shops have today. It seems absurd when you think about it and indeed, it would almost be tantamount to mixing say Romanesque, Gothic and Renaissance architectures with connecting bridges, halls and corridors for traffic to pass between - such a thing would not only be unrecognisable as conveying any style or grand design, but it would be torn down as being grotesque. But this is what we have done in the IT industry to a large extent - we have built accidental architectures that have focused on architecture from an application perspective, not an enterprise or integration perspective.

There are various views on the benefits and differences between monolithic, layered and n-tier architectures but how does SOA fit into the picture?

Most architects in the IT industry would argue that SOA in many respects is the first architecture that truly can be called an Enterprise Architecture as it based on a paradigm of loosely coupled integration. This of course does not make it a loose connection of objects lying around the network, but a true evolution of what attributes we now know make sense in an architecture - this has been learned over the past 40 years. What of course makes sense to us now is the loose coupling of independent units or work that have a granularity that reflects true business functionality. This functionality is called a service within SOA and should be a formally defined and contracted service reflecting the appropriate QoS. (This is where the OO paradigm failed as it could not address the high level business functionality and so tried to drive re-use from a programming paradigm rather than a business - as such re-use was doomed - but that will be the subject of another blog).

Now whilst a layered architecture can be viewed as an integration architecture, it is predominately a local integration model and thus should be seen as an Application Architecture as such, where as SOA addresses the Enterprise integration model and therefore I would argue is a true enterprise architecture style.

So why isn’t a N tier application architecture equivalent to an A3 and SOA architecture? N-Tier has application elements that are tightly coupled, dependent and focused on achieving levels of scalability, fault tolerance or security that can lead to complex integration problems (figure 1).

N-Layer is more about how components of applications are logically grouped. Layers are loosely coupled and organised in highly cohesive areas that reduce the impact of change and help improve maintainability and agility of the architecture.

Although these are useful abstractions for the construction of services, or indeed applications, they are not enterprise architectures.

We have also learned from bitter experience that connectivity between systems quickly becomes an N*N problem that can be exceedingly complex if built on a sea of non standard middleware - so we now know that open standards has provided the route for us to begin understanding the solution to the enterprise integration problem. And we also know that point to point connections create a major problem and that Message Oriented Middleware that supports loose coupled systems is the way forward; so there we have it.

Now using this new found wealth of knowledge, we should be able to draw a quadrant diagram (figure 1 that positions our recent architectures). So a networked SOA basically extends the layer concept to allow self contained services to be integrated (using messaging) to form applications without impacting the integrity of the layer concept.

So the future should allow us to design to the Architecture Style of the time, but the architect should always be able to recognise this style and how to integrate new design or applications into it as he would use a building blueprint that conforms to that style. If we take that architecture view, we then see the integration problem very clearly and will not continue to build accidental architectures in the future. Of course enterprise governance must play a role in constraining those who wish to compromise the style, and better still if the architects and business leaders form and run the governance group. SOA offers this opportunity as an enterprise architecture.

Lastly, SOA not only can address the legacy of today, but can help bridge the "needs gap" that has existed between business and IT.

Published Monday, June 19, 2006 2:17 PM

Subscribe to this post's comments using RSS

Comments

# Posted by Jurgens Pieterse aka Value Wizard Wednesday, April 12, 2006 5:42 AM

I linked to this entry from http://asailorskis.com/arch/?p=23. I like the conclusion you are making in this article. I have long been speculating that SOA and Enterprise architecture will be closely related and it is a topic I follow with great interest. You have articulated it well. I am blogging on Enterprise design strategies on IT Toolbox at http://blogs.ittoolbox.com/eai/practices/
Your blog is also now on my RSS engine

# Posted by Alex Cameron Thursday, May 04, 2006 12:38 AM

Thanks Jurgens for your comment - I am planning a follow up blog extending the argument.

# Posted by Martin Holzworth Tuesday, June 20, 2006 5:39 AM

An interesting argument indeed, although not one that I entirely agree with. Whilst I agree that the overall argument of moving to SOA is preferred, to say that a layered architecture is predominately a local integration model is not entirely accurate IMHP. Middleware enabled architectures based on “plug & play” have been around for some time and provide a level of abstraction. As to the degree of how loosely or tightly coupled they are depends on how they have been designed and not necessarily a restriction of the model. Just have a look at the A3 Conceptual Architecture Framework where layers for FrontPlane, CrossPlane, Backplane and Point Solutions are identified. Likewise the asertion that a N-Tier has application elements that are tightly coupled, is at best one interpretation how the model may be poorly implemented. To me, many of the principles contained in SOA have existed for some time and we need to be careful not to jump to conclusions that everything contained in it are new or that a layered or n-tier architecture cannot implement SOA. To me the models are fine, but not necesarily how they are implemented. I agree 100% that we need to look at loosely coupled components better, and the advent of web services provides just that. Also agree that developments in business rules engines provide an improved orchestration layer. Just my 2 cents anyway.

# Posted by Scott Hatanaka Friday, June 30, 2006 4:54 PM

The big, big difference that is driving SOA as a formal approach, from the distributed data models of the past is hardware. IBM introduced a virtual switch system in 2000(not sure about the year), called hipersockets that allows the flow of IP data at memory speeds. Sun has followed suit and I know Performance Solutions has an offering as well, called fatpipes. Not sure about HP. This removed the performance bottleneck that IP networks had between computers. SOA is a concept that IBM has been promoting for awhile and is all a part of their 'on-demand' strategy. Phase one of on-demand was consolidation, moving divergent workloads onto the mainframe using the cheaper IFL engines, which was specifically targeted at Sun. It has been an unmitigated success... Sun has been in deep trouble, starting in 2000. Phase two of on-demand was interconnectivity, via hipersocket connections....was specifically targeted at Cisco. Cisco has been suffering lately. Phase three of on-demand is interoperability...aka...making the systems work cohesively/seemlessly together and was specifically targeted at EDS. This phase started in February.

# Posted by Alex Cameron Wednesday, August 02, 2006 8:14 AM

Scott,
I remember evaluating hardware in 1989, that would allows us to compute very large Fast Fourier Transforms (FFTs) to extract Doppler information from a HF Radar system – the processing was of the order of 26GFlops and we found that the only way we could approach the problem was to break the processing into stages (pipeline) and into an array /vector problem running small FFTs and then recombining. The point of this is that it was not hard to find the processing power (VMEs back planed processors) but it was the IO that caused the problem – we just could not get the data into and out of the devices because the interface architecture did not keep up with the processing power – it was if the architects of the processor boards felt that all data was integral to the application that was running. This was about the time that FDDI was being implemented into DEC machines which we then used for the backend where the processing was less and the data rates reduced,

# Posted by Steve M. Saturday, September 22, 2007 8:59 AM

Thanks Jurgens , visited ur link, i agree without the shadow of second thinking with scott that ,SOA is a concept that IBM has been promoting for awhile and is all a part of their 'on-demand' strategy

Post a New Comment

: required  
required  
optional
required  
Please only click Submit once.

Subscribe to EDS RSS Feeds

I would like to receive the EDS Newsletter