| By Thomas Erl | Article Rating: |
|
| August 8, 2005 12:00 PM EDT | Reads: |
24,759 |
Many are comparing notes on two well-publicized paths to achieving SOA. The bottom-up approach is currently the most common variety, where Web services are created on an "as need" basis to fulfill mostly integration-related requirements. These services are typically application specific and simply re-create traditional integration channels over the open Web services communication framework.
The top-down approach, on the other hand, is one of analysis, deep thought, and patience. Service-orientation is infused into the business process layer so that services can be modeled in alignment with business models. The models themselves may need to be built or further refined in order to fully incorporate service-orientation principles.
Then, of course, there's the middle ground - an approach that tries to balance the requirements of the top-down strategy with the efficiency of the bottom-up approach. Known as the "agile" or "meet-in-the-middle" strategy, this path is somewhat of a roller-coaster ride, and sure to challenge the most seasoned project manager.
This article explores these three approaches to building service-oriented solutions. Before we chart each path, though, let's begin by establishing the common project phases associated with a generic SOA delivery life cycle.
SOA Delivery Life-Cycle Phases
Development projects for service-oriented solutions are, on the surface, much like other custom development projects for distributed applications. Web services are designed, developed, and deployed alongside standard components and the usual supporting cast of front and back-end technologies. Once you dig a bit deeper under the layers of service-orientation, though, you'll find that in order to properly construct and position services as part of a standardized SOA, traditional project cycles require some adjustments.
Looking at Figure 1, you may wonder why the first two-phase names are prefixed with "service-oriented" when the remaining phases have names that begin with just "service." The main reason this distinction is made is because it is during the analysis and design stages that SOA characteristics and service-orientation principles are actually incorporated into the solution being built - so much so, that they warrant unique analysis and design processes that are distinctly "service-oriented." The service phases are primarily concerned with the delivery of services that implement the results of service-oriented analysis and design efforts. Let's now explain each of these life-cycle phases.
Service-Oriented Analysis
It is in this initial stage that we determine the potential scope of our SOA. Service layers are mapped out and individual services are modeled as service candidates that compose a preliminary SOA. (Formal service-oriented analysis and step-by-step service modeling processes are provided as part of Chapters 11 and 12 in Service-Oriented Architecture: Concepts, Technology, and Design.)
Service-Oriented Design
Once we know what it is we want to build, we need to determine how it should be constructed. Service-oriented design is a heavily standards-driven phase that incorporates industry conventions and service-orientation principles into the service design process.
This phase therefore confronts service designers with key decisions that establish the hard logic boundaries encapsulated by services. The service layers designed during this stage can also include the orchestration layer, which results in a formal business process definition. (Four step-by-step design processes are provided within Chapters 13 to 16 in Service-Oriented Architecture: Concepts, Technology, and Design.)
Service Development
Next, of course, is the actual construction phase. Here development platform-specific issues come into play, regardless of service type. Specifically, the choice of programming language and development environment will determine the physical form services and orchestrated business processes take, in accordance with their designs. (SOA support in .NET and J2EE platforms is explored in Chapter 18 of Service-Oriented Architecture: Concepts, Technology, and Design.)
Service Testing
Given their generic nature and potential to be reused and composed in unforeseeable situations, services are required to undergo rigorous testing prior to deployment into a production environment. Below is a sampling of some of the key issues facing service testers.
- What types of service requestors could potentially access a service?
- Can all service policy assertions be successfully met?
- What types of exception conditions could a service be potentially subjected to?
- How well do service descriptions communicate service semantics?
- Do revised service descriptions alter or extend previous versions?
- How easily can the services be composed?
- How easily can the service descriptions be discovered?
- Is compliance to WS-I profiles required?
- What data typing-related issues might arise?
- Have all possible service activities and service compositions been mapped out?
- Have all compensation processes been fully tested?
- What happens if exceptions occur within compensation processes?
- Do all new services comply with existing design standards?
- Do new services introduce custom SOAP headers? And, if yes, are all potential requestors (including intermediaries) required to do so, capable of understanding and processing them?
- Do new services introduce functional or QoS requirements that the current architecture does not support?
Published August 8, 2005 Reads 24,759
Copyright © 2005 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Thomas Erl
Thomas Erl is the world’s top-selling SOA author and Series Editor of the Prentice Hall Service-Oriented Computing Series from Thomas Erl (www.soabooks.com). With over 100,000 copies in print worldwide, his books have become international bestsellers and have been formally endorsed by senior members of major software organizations, such as IBM, Microsoft, Oracle, BEA, Sun, Intel, SAP, CISCO, and HP. His most recent titles - SOA Design Patterns and Web Service Contract Design and Versioning for SOA - were co-authored with a series of industry experts and follow his first three books Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services, Service-Oriented Architecture: Concepts, Technology, and Design, and SOA Principles of Service Design. Thomas is currently working with over 20 authors on a number of upcoming titles, including SOA Governance, SOA with .NET, SOA with Java, ESB Architecture for SOA, and SOA with REST. He is also overseeing the SOAPatterns.org initiative, a community site dedicated to the on-going development of SOA patterns. Thomas is the founder of SOA Systems Inc. (www.soasystems.com), a company specializing in vendor-neutral SOA consulting and training services. He is also the founder of the internationally recognized SOA Certified Professional program (www.soacp.com and www.soaschool.com). Thomas is a speaker and instructor for private and public events and is regularly invited to Gartner summits. He has delivered many workshops and keynote speeches, and is on the program committee for the International SOA Symposium. Articles and interviews by Thomas have been published in numerous publications, including SOA World Magazine, The Wall Street Journal and CIO Magazine. For more information, visit www.thomaserl.com.
- Oracle To Keynote Cloud Computing Expo
- The Economics of Cloud Computing Analyzed
- The Difference Between Web Hosting and Cloud Computing
- GovIT Expo Highlights Cloud Computing
- Cloud Computing Best Practices
- Gang of Four Creates Cloud BI Stack
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Citrix Aims To Cripple VMware’s Cloud Designs
- Product Evaluation: JBoss TCO Calculator
- Platform as a Service Journal Launched on Ulitzer
- An Introduction to Abbot
- Oracle To Keynote Cloud Computing Expo
- Will Ulitzer Dominate News Content on The Web? -Gartner
- REA Is Where RIA Becomes the Norm
- The Economics of Cloud Computing Analyzed
- Software AG Named "Gold Sponsor" of SOA World Conference & Expo 2009 East
- The Difference Between Web Hosting and Cloud Computing
- GovIT Expo Highlights Cloud Computing
- Cloud Computing Best Practices
- Gang of Four Creates Cloud BI Stack
- Java vs C++ "Shootout" Revisited
- Where Are RIA Technologies Headed in 2008?
- Configuring Eclipse for Remote Debugging a WebLogic Java Application
- Migrating a JBoss EJB Application to WebLogic
- XA Transactions
- An Introduction to Abbot
- WebLogic Tutorial: "Integrating Apache Poi in WebLogic Server"
- Eclipse "Pollinate" Project to Integrate with Apache Beehive
- Failover and Recovery of Enterprise Applications - Part 1
- Cover Story: A Practical Solution to Internationalization of a J2EE Web App
































