Home > SOA Tips > Guest Commentary > SOA: The A is for Architecture
SOA Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

GUEST COMMENTARY

SOA: The A is for Architecture


Alex Bell
01.29.2009
Rating: -4.50- (out of 5)


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   


Alex Bell

Chaaaaaaaaaaaaaaa-ching!

There it goes again, the sound of yet another vendor's cash register signaling the purchase of SOA enabling tools by a customer who may or may not have any legitimate rationale for doing so besides succumbing to propaganda. Could the most recent cha-ching be the result of a customer hoping for instantaneous deployment flexibility or software reuse? Or, could this customer be hoping for immediate productivity improvement and reduced integration efforts that are thought to be implicit by simply writing a check with lots of digits?

The savvy SOA customer, however, understands that the "A" in SOA stands for architecture and that any vendor cha-chings must be justified by engineering analysis showing how purchased products and selected development tactics are compatible with or enable the objective system's architectural objectives. Because the term architecture probably has as many definitions (and mis-definitions) as SOA, it is important that I establish the definition used as a basis in this article:

Software Architecture = {Elements, Form, Rationale}

Elements represent the development products at the heart of a software system: the classes, threads, components, and processes, for example, that provide a system's core functionality. The property of Form describes how the Elements are related to one another in terms of classes grouped into deployment components, connections between processes, and how processes are allocated to nodes. The property of Rationale describes the motivation for grouping Elements into a particular Form. For example, the motivation for developing product line software significantly influences the commonality objectives of Elements and what their Form may be in terms of defining deployable components. On the other hand, if low latency and high performance are the driving Rationale in a system, the granularity of Elements might be more coarse than otherwise and the grouping of those Elements may occur in a Form where they can execute on the same processor.

A system's Quality Attributes (QAs) are typically the foundation of the Rationale motivating the definition of the corresponding system's Elements and their corresponding Form. These QAs, or –ilities, are typically represented by a collection of considerations that may include performance, scalability, security, product line, survivability, and safety that must be prioritized and used as program-wide beacons to be used as a basis of guiding all technical and programmatic and decisions. Doing anything else constitutes design and development based on personal preference, reliving past experience, and conjecture.

As opposed to following a true QA driven approach for developing software architecture, some aspiring SOA aficionados become intoxicated with its flexibility enabling properties and fail to consider other QAs, such as performance and security, which might very well be jeopardized as the result of rash decisions made while in the impaired state. One of the extremely important responsibilities of an architect is to realize that not all QAs can always be simultaneously met with the desired fidelity and that priority based tradeoffs will have to be made to achieve the appropriate balance.

For those who know me or have read Death by UML Fever, I am not a proponent of gargantuan software modeling efforts assuming that the weight of UML artifacts is directly proportional to architectural goodness. That being said, there is often great value in creating a design model that shows a general roadmap of the software architecture. A popular model for conveying this roadmap is the 4+1 View Model of Architecture where each of the views captures a different aspect of the architecture. The Logical View depicts the classes and relationships between those classes that implement a system's functional requirements. The Implementation View shows how the elements of the Logical View are grouped into deployable entities. The Process View shows how the elements of the Logical View are mapped into processes and threads. The Deployment view shows how elements of the Process View are mapped onto a system's computing resources. The "+1" View represents the architecturally significant set of use cases that are analyzed and implemented to drive development and evolution of the other four views simultaneously.

As opposed to endlessly debating what SOA may or may not be, or arguing about whether today's SOA is an entirely different beast than the approaches of those 'old' CORBA-based systems, a much better investment of time would be for the architects to understand a system's needs and choose whichever technologies and design tactics that will accommodate those needs. I learned a very important lesson early in grade school that might serve as great guidance to those soliciting guidance on usage of SOA: those who talk about it the most, do it the least. I have yet to meet a true SOA practitioner that yaps about its salvation qualities the same way that some vendors and some analysts do. The decision to use SOA (or not) as well as identifying the design tactics that enable success should be based on achieving functional and Quality Attribute goals as opposed to being pressured into technology-centric decisions, often by those blindly advocating usage of the latest software engineering silver bulletry to avoid hard work.

About the author
Alex Bell is a software architect with The Boeing Company and has over 25 years of experience in the software industry.

References
D.E. Perry, A.L. Wolf: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes vol. 17 no. 4, October 1992

Non-functional properties, -ilities, that drive software architecture. (Software Architecture in Practice, 2nd edition" (Bass, Clements, Kazman, Addison Wesley, 2003)

Philippe Kruchten IEEE Software 12, 6 (Nov. 1995) pp 45-50


Rate this Tip
To rate tips, you must be a member of SearchSOA.com.
Register now to start rating these tips. Log in if you are already a member.




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   



RELATED CONTENT
Guest Commentary
Get a grip on JavaFX 1.2 for Rich Internet Applications
On the road to SOA – Part 1, Boubez on early insights
On the road to SOA – Part 2, Governance is fundamental
SpringSource approach to adding enterprise class management and deployment features to Tomcat
Canonical Schema establishes interoperability: SOA Pattern (Week 6)
Legacy: Can't Live With It, Can't Live Without It
Review of protocols for cloud services - Part 1
SOA and TOGAF: A Good Fit?
Using atomicity to gain SOA granularity
Too Many Servers: A Case for Enterprise Architecture and TOGAF 9

SOA implementations
U.S. Coast Guard adopts SOA and ESB to better track ships at sea
SOA Implementation: Should top down meet bottom up?
ESB watered down by EAI, but distinction remains
On the road to SOA – Part 1, Boubez on early insights
On the road to SOA – Part 2, Governance is fundamental
Sparx releases new SoaML profile for Enterprise Architect 7.5
SOA implementation: It's the increments, stupid
Bury SOA inside a larger architectural vision
Enterprise Architecture in the Agile age - Part 1, Styles of EA
'SOA is working' for Edinburgh financial company
SOA implementations Research

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
Service Integration Maturity Model  (SearchSOA.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



SOA Trends and Strategy - SOA Education, SOA Development, SOA Implementations
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2001 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts