Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
SYS-CON.TV
Top Links You Must Click On


Service-Oriented Architecture
Components and modeling can make the difference

In many respects, SOA is an evolution of the fundamental tenets governing component-based development (CBD). It also represents a quantum leap in bringing business and information technology into closer alignment through a set of SOA services grounded in business goals in support of business processes. While SOA services are visible to the service consumer, their underlying components are transparent. For the service provider, the design of components, their service exposure and management reflect key architecture and design decisions that enable services in SOA. Making these decisions requires an understanding of an SOA's components and SOA modeling to identify, classify, specify, and structure service-enabled components. In this article we briefly discuss the relationship between CBD and SOA, followed by a discussion of SOA architecture and design decisions. We describe the basic SOA components and building blocks, and a prescriptive technique for performing SOA modeling, analysis, and design for services, where services are realized using components..

Introduction
A brief review of object-oriented (OO) development and CBD will help you understand the evolution of SOA for service-oriented development. The world of objects started with the introduction of object-oriented programming languages and matured into modeling, later adding techniques for design and then maturing into OO analysis and design (OOAD) methods. Infrastructure services, tools, development platforms, patterns, and reference architectures followed.

Component-based development (CBD) ensued, offering a new approach to the design, construction, implementation, and evolution of software applications. Applications are assembled using components from a variety of sources and the components are written in different programming languages and different development environments, and run on different platforms. Just as with OO development, infrastructure services, tools, development platforms, and patterns matured to make CBD a reality.

Both OO and CBD address software economies of scale that require reuse in software development. The achievement economies of scale in software production and deployment has been elusive. Object-oriented development is an enabler, component-based development mandatory. CBD provides an opportunity for greater reuse than what is possible with OO development. SOA, with the underpinnings of both OO development and CBD, provides an even greater opportunity for reuse. SOA becomes a new mandate for achieving economies of scale in software engineering.

Evolution of SOA
The Internet and XML standardization efforts gave way to the need for a service definition and description published by a service provider (SP) that can be located and invoked by a service consumer (SC). The service description can be implemented by a number of service providers, each offering various choices of qualities of service (QoS) based on technical requirements in the areas of availability, performance, scalability, and security. The invocation can be across Internet or intranet in a distributed object connotation and standards such as WSDL and SOAP have been created.

The roles of the SC and the SP is illustrated in Figure 1. Web services standards and technologies pave the way and breathe life into the architectural style of SOA. Infrastructure services in areas of service management and service security are required, along with new technologies to make the economies of scale made possible by SOA a reality.

SOA is the architectural style that supports loosely coupled services to enable business flexibility in an interoperable, technology-agnostic manner. SOA consists of a composite set of business-aligned services that support a flexible and dynamically re-configurable end-to-end business processes realization using interface-based service descriptions. The inherent, salient advantage of today's service descriptions is the decoupling of the SP and SC through open standards and protocols, and the deferment of implementation decisions from the SC to the SP. Moreover, individual or collections of services that enjoy various levels of granularity can be combined and choreographed to produce "new" composite services that not only introduce new levels of reuse but also allow the dynamic reconfiguration of business systems.

Hence, service-oriented development, which SOA enables, is an evolutionary software engineering approach enabled by component-based and object-oriented development. However, the incredibly potent fusion of business and IT is a quantum leap. The flexibility of binding an SC to a new SP, based on changing QoS needs and the stability of interactions through SD publication, and its invocation through standard protocols is a prerequisite for an architecture where flexibility and economies of scale are the primary movers.

SOA encourages the closure of the business-IT gap by emphasizing the reuse of rationalized, normalized services and introducing flexibility that allows end-to-end business process modeling and implementation. This flexibility arises through the ensuing ability to choreograph existing composite services at near real time, i.e., "right-time", using business analyst tools, such as IBM's WebSphere Business Integration (WBI) BPEL modeler.

Component-Based Development and Service-Oriented Architecture
The concepts and disciplines of OO development and CBD should be applied to provide the appropriate frameworks guiding the design and development of SOA services.

A service description is often realized by multiple, possibly competing, service providers. The services, in turn, need to be "powered" by a functional piece, or pieces, of software that lends itself to a component-based view of the world. Within components we can find the design principles of object-orientation defining the internal structures of components. Thus, service modeling is about identifying the right services, organizing them in a manageable hierarchy of composite services (smaller grained often supported larger grained), choreographing them together for supporting a business process. On the provider side, these services are either allocated directly to component-based containers for realization of their functionality, or realized by adapting existing legacy functionality.

This is the fundamental evolution in service-oriented software engineering: the service consumer doesn't have to be concerned with the implementation or realization of the service, as long as it supports the required functionality and quality of service. This is called the Consumer View. Alternatively, the Provider View offers a perspective on how to design the realization of the component that offers the services; its architectural decisions and designs.

One key differentiation with more traditional OO is in the fact that we are no longer creating large object models, but rather designing the internals of larger-grained, business-aligned component boundaries, through finer-grained object-orientation.

SOA introduces two views on components and services: the service consumer and the service provider (see Figure 2).

Components are of no concern to service consumers as long as their service-level agreements and contracts on functional and non-functional requirements are fulfilled. Service providers need to design a service realization that will meet those requirements through decisions on how they contain, manage, and implement the service cescription. The inward view is that of a user or consumer who sees only the service available through the provider, and the outward view where the services provider creates components that provide the services through their interfaces. In order to so, they require an internal set of finer-grained, or peer, components that will participate in the collaborations needed to fulfill the services. Thus, within the service provider components, we will have domain-level components that correspond closely to domain object models in the traditional object-oriented sense and are implemented through standard component container mechanisms such as application servers.

The SOA model is fractal. That is, a service can be composed of finer-grained services such as those providing technical utility such as logging, security, or authentication. This fractal granularity is illustrated in Figure 3.

In addition to services that provide technical utility, there are services that may be created in the context of a project, or services that are created for utility by a business line or line of business. Each of these services can be used to fulfill a business process or a business transaction. The components that are integral to services are also fractal. This requires that both services and components be designed with the appropriate level of granularity, which is a key SOA design decision.

SOA Architectural and Design Decisions
Several architecture and design decisions are essential for SOA to meet its stated goals and benefits. The SOA architectural decisions generally relate to the choice of technologies and products necessary to meet the quality of service attributes required of a business process. Design choices focus on choices that must be made about services using the technique described later on service-oriented analysis and design. Some of the key decisions are:

  • Service identification design decisions are essential for SOA success. Just as the proliferation of objects did not allow organizations to realize economies of scale as reuse is limited largely because of the lack of business utility for object proliferation the same is true if services are proliferated. Many early adopters of SOA and Web services realized quickly that the proliferation of Web services does not make for a sound SOA model. These design choices are made during the service-oriented analysis and design described later in this article.
  • Container design and realization architecture and design decisions are critical for a service to provide the critical qualities for extensibility and maintainability.
  • Granularity design choices about services must be matched to the level of reusability and flexibility required given the context. Larger-grained services can help encapsulate changes in finer-grained technical services that can tend to change more frequently than the higher-level business- level service interface. Factors of flexibility will be key criteria for encapsulation rather than merely the encapsulation of function.
  • State of service often requires both architecture and design decisions on the stateless nature of services, yet state must be maintained. This is often addressed by making architectural decisions on choreography engines (e.g., a BPEL engine ) and design choices on the stateless nature of a proposed business service.
  • Loose coupling and dynamic reconfiguration are a design decision that requires the decoupling of interfaces from implementation and protocol realization via open standards. The connection between service consumers and service providers needs to be stable and well-structured and yet flexible and readily reconfigurable. Re-configurable means that existing service consumers and service providers can be re-assembled with their functionality intact to obtain business solutions in different technical environments and with different operational constraints with new business partners across a value chain. Therefore, integration alone is no longer adequate; dynamic reconfiguration is the name of the game and needs to be pervasive along a spectrum of support in areas of infrastructure (i.e., the enabling software infrastructure), tools, development platforms, reference architectures, patterns, methods and industry-specific reference models.
SOA Layers: The Components of an SOA
So far we've explored the relationship between services and components and have said that components can be large-grained enterprise or business-line components and can be used to realize the functionality and management of exposed services as interfaces. That is, we have discussed components used to realize services. Now we will look at SOA components, not the components used to realize services in SOA.

The major components of an SOA are:

  • Services portfolio: Describes the business services in SOA. This includes a list, classification and hierarchy of services defined through the technique of service-oriented analysis and design described later.
  • Components: Provide the functional realization of the services.
  • Service providers, service consumers, and optionally, the service broker(s): With their service registries where service definitions and descriptions are published.
  • SOA layers: Where components and services reside.
Figure 4 illustrates the SOA layers. For each of these layers, there are design and architectural decisions to be made.

Layer 1, the bottom layer, describes operational systems. This layer contains existing systems or applications, including existing CRM and ERP packaged applications, legacy applications, and "older" object-oriented system implementations, as well as business-intelligence applications. The composite layered architecture of an SOA can leverage existing systems, integrate them using service-oriented integration.

Layer 2, the component layer, used container–based technologies and designs in typical component-based development.

Layer 3 provides for the mechanism to take enterprise-scale components, business unit–specific components, and in some cases project-specific components and provides services through their interfaces. The interfaces get exported out as service descriptions in this layer, where services exist in isolation or as composite services.

Level 4 is an evolution of service composition into flows or choreographies of services bundled into a flow to act as an application. These applications support specific use cases and business processes. Here, visual flow composition tools can be used for design of application flow.

Layer 5, the presentation layer, is usually out of scope for an SOA. However, it is depicted because some recent standards such as Web Services for Remote Portlets version 2.0 may indeed leverage Web services at the application interface or presentation level. It is also important to note that SOA decouples the user interface from the components.

Level 6 enables the integration of services through the introduction of reliable and intelligent routing, protocol mediation, and other transformation mechanisms, often described as the enterprise service bus.

Level 7 ensures quality of service through sense-and–respond mechanisms and tools that monitor the health of SOA applications, including the all-important standards implementations of WS-Management.

Service-Oriented Modeling, Analysis, and Design
So far we've spoken about the end result of SOA, architecture with a composite set of business-aligned services. To create SOA, we need to identify, specify, and design services and their choreography from the angles of consumer and provider. The modeling, analysis, and design of services are not quite the same as the world of OO. There are additional activities that need to be done.

Major activities of a service-oriented modeling approach were described in an IBM Redbook. Also, Zimmerman et al. (see References) describe a case for, and context of, service-oriented analysis and design (SOAD). In this section we describe these key differentiating activities and provide a technique for the modeling, analysis and design of SOA services. Specifically, we examine how the services of an SOA are identified, specified, and realized.

An SOA does not start only from the bottom-up as is often the case with a merely Web services–based approach. There are a number of important activities and decisions that influence not just integration architecture but enterprise and application architectures as well. They include the activities from both the consumer and provider views described in Table 1.

Service identification consists of a combination of top-down, bottom-up, and middle-out techniques. In the top-down view, a blueprint of business use cases provides the specification for business services. This top-down process is often referred to as domain decomposition, the decomposition of the business domain into its functional areas and subsystems, including its flow or process decomposition into processes, sub-processes and high-level business use cases. These use cases are often very good candidates for business services exposed at the edge of the enterprise.

In the bottom-up portion of the process, or existing asset analysis, existing systems are analyzed and selected as viable candidates for providing lower-cost solutions to the implementation of underlying service functionality that supports the business process. In this process, we analyze and leverage APIs, transactions, and modules from legacy and packaged applications. In some cases, componentization of the legacy systems is needed to remodularize the existing assets for supporting service functionality.

The middle-out view consists of goal service analysis to validate and unearth other services not captured by either top-down or bottom-up service identification approaches. It ties services to goals and sub-goals, key performance indicators, and metrics.

Service classification is launched once services have been identified. It is important to start service classification in a service hierarchy, reflecting the composite or fractal nature of services: services can and should be composed of finer-grained components and services. Classification helps determine composition and layering as well as coordinates building of interdependent services base don the hierarchy. Also, it helps alleviate the service proliferation syndrome in which an increasing number of small-grained services get defined, designed, and deployed with very little governance, resulting in major performance, scalability, and management issues. More importantly, service proliferation fails to provide services which are useful to the business which would allow for the economies of scale to be achieved.

Subsystem analysis takes the subsystems found above during domain decomposition and specifies the interdependencies and flow between the subsystems, and puts the use cases identified during domain decomposition as exposed services on the subsystem interface. The analysis of the subsystem consists of creating object models to represent the internal workings and designs of the containing subsystems that will expose the services and realize them. The design construct of "subsystem" will then be realized as an implementation construct of a large-grained component realizing the services in the following activity.

Component specification is the next major activity; the details of the component that will implement the service(s) are specified: data, rules, services, configurable profile, and variations. Messaging and Events specifications and management definition occur at this step.

Service allocation is the process of assigning services to containers that will realize their published functionality. Structuring of components occurs when we use patterns to construct enterprise components with a combination of mediators, facade, rule objects, and configurable profiles and factories. Service allocation also consists of assigning the services and the components that realize them to the layers in your SOA. Allocation of components and services to layers in the SOA is a key task that will require the documentation and resolution of architectural decisions that relate not only to the application architecture but also to the technical operational architecture designed and used to support the SOA realization at runtime.

Service realization recognizes that the software that realizes a given service must be selected or custom built. Other options that are available include integration, transformation, subscription, and outsourcing of parts of the functionality using Web services. Here you decide which legacy system module will be used to realize a given service and which services will be built from the "ground-up." Other realization decisions for services outside of business functionality include: security, management and monitoring of services.

Conclusions
SOA extends CBD into the realm of ubiquity and pervasive access through extending the reach of callable components by using non-proprietary, interoperable protocols, service descriptions that separate of interface from implementation. SOA will have a more profound impact on software engineering than what we have been accustomed to with object-oriented and component-based development. Executing a sound service-oriented analysis and design technique will be a critical success factor to make this promise a reality as SOA itself has components and layers that need to be defined and designed.

References

  • Endrei, M.; Ang, J.; Arsanjani, A.; Chua, Sook; Comte, Philippe; Krogdahl, Pal; Luo, Min; and Newling, Tony. (2004) Patterns: Service-oriented Architecture and Web Services. IBM Redbook, ISBN 073845317X. www.redbooks.ibm.com/redbooks/SG246303/ wwhelp/wwhimpl/java/html/wwhelp.htm
  • Levi, K.; Arsanjani, A. "A Goal-oriented Approach to Enterprise Component Identification and Specification." Communications of the ACM, Oct 2003.
  • Arsanjani, A. "The Enterprise Component Pattern." Proceedings of Pattern Languages of Programming, 2000.
  • Zimmerman, O.; Korgdahl,P.; and C. Gee, C. "Elements of Service-oriented Analysis and Design", IBM developerworks. June 4, 2004.
  • Keen, Martin; Bishop, Susan; Hopkins, Alan; Milinski, Sven; Nott, Chris; Robinson, Rick; Adams, Jonathan; and Verschueren, Paul. ( 2004) Patterns: Implementing an SOA with the Enterprise Service Bus. IBM Redbook ISBN SG24-6346-00.
  • About Bernhard Borges
    Bernhard Borges is a technical executive and solutions architect in the IBM Software Group's Enterprise Integration group. He specializes in distributed, open, interoperable, and portable systems, especially in the context of SOA, ESB, and web services. Bernhard ia an IBM Distinguished Engineer and a member of IBM's Academy of Technology. He is also a member of the IBM Software Architecture Board and several workgroups, IBM's SOA and Web Services Technical council, and an extended member of IBM's BCS SOA-Web Services Center of Excellence.

    About Kerrie Holley
    Mr. Kerrie Holley, IBM Fellow, is the Global CTO for Application Innovation Services, responsible for technical leadership in client projects, strategic initiatives, assets, offerings, methods and tools. He is also CTO for IBM’s SOA Center of Excellence. IBM's highest technical honor is the designation of IBM Fellow. IBM’s CEO appointed Kerrie in 2006. Fellows are selected for sustained and distinguished technical achievements in engineering, programming and technology. Since the program began in 1962, only 231 people have been designated IBM Fellows with 69 active. IBM Fellows have invented some of the industry's most useful and profitably applied technologies. Few computer users may realize how much of this group's innovations have created the computer technology we take for granted. Kerrie’s expertise centers around software engineering, software architecture, application development, business architecture, service oriented architecture, cutting-edge distributed solutions. His responsibilities include technical leadership, architectural oversight, and strategy development, consulting and software architecture for a portfolio of projects around the world. Mr. Holley is an author and IBM Master Inventor and holds several patents.

    About Ali Arsanjani
    Dr. Ali Arsanjani is a senior technical staff member and chief architect of the SOA and Web Service Center of Excellence in IBM global Services. He has 21 years of experience in software development and architecture. He holds a PhD in computer science from DeMontefort University. Ali's areas of expertise include patterns, component-based and service-oriented software architecture, and methods.

    In order to post a comment you need to be registered and logged in.

    Register | Sign-in

    Reader Feedback: Page 1 of 1

    "SOA extends CBD into the realm of ubiquity and pervasive access through extending the reach of callable components by using non-proprietary, interoperable protocols, service descriptions that separate of interface from implementation."

    Doodah! Doodah!

    I have a print-out of Figure 3 hanging in my cube. The reactions of people passing by provides us with hours and hours of entertainment.

    Aside from a significant portion of fluff talk, this article also does not convey any usefull information about software architecture layering which would show the reader how these three things (CBD, SOA and OOD) cooperate. The diagrams provided are typical of other IBM published diagrams on other sites (and also IBM staff I met on numerous projects): imprecise, not based on any diagraming standard and usually do not relate to any widely adopted reference architectures, like CBD reference architecture for example, SOA architecture patterns etc. Such diagrams cause more harm to the industry than anything else


    Your Feedback
    Michael G. Fotiades wrote: "SOA extends CBD into the realm of ubiquity and pervasive access through extending the reach of callable components by using non-proprietary, interoperable protocols, service descriptions that separate of interface from implementation." Doodah! Doodah! I have a print-out of Figure 3 hanging in my cube. The reactions of people passing by provides us with hours and hours of entertainment.
    Navrsale Mile wrote: Aside from a significant portion of fluff talk, this article also does not convey any usefull information about software architecture layering which would show the reader how these three things (CBD, SOA and OOD) cooperate. The diagrams provided are typical of other IBM published diagrams on other sites (and also IBM staff I met on numerous projects): imprecise, not based on any diagraming standard and usually do not relate to any widely adopted reference architectures, like CBD reference architecture for example, SOA architecture patterns etc. Such diagrams cause more harm to the industry than anything else
    Enterprise Open Source Magazine Latest Stories . . .
    Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP). The...
    With Cloud Expo 2012 New York (10th Cloud Expo) just four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have technical and st...
    AMD said late Tuesday that its chief sales officer Emilio Ghilardi had left the company and that CEO and president Rory Read is going to do his job while a replacement is sought. AMD didn’t say why Ghilardi left but it’s assumed Read wants his own people. Read is relatively new to th...
    During the lifespan of M3 (Monitis Monitor Manager) there has always been something lacking – timers. M3 execution procedure was outlined in this previous article. The execution mentioned in the latter was a one-time-execution, whereas server monitoring requires periodic invocati...
    Red Hat is putting its bought-in Gluster scale-out NAS storage technology, acquired in October, on the Amazon cloud. It’s styled Red Hat Virtual Storage Appliance for Amazon Web Services and other clouds are supposed to follow in short order.
    A new episode of the screencast series is now available at the OpenNebula YouTube Channel. This screencast demonstrates the new easily-customizable self-service portal for cloud consumers. Its aim is to offer a simplified access to shared infrastructure for non-IT end users. The scree...
    Subscribe to the World's Most Powerful Newsletters
    Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


    SYS-CON Featured Whitepapers
    ADS BY GOOGLE