Skip to main content

SCA application development, Part 1: An overview of Service Component Architecture

Sreedevi Penugonda (sreedevip@in.ibm.com), System Software Engineer, IBM Software Group
Sreedevi Penugonda is a system software engineer at Java Technology center, IBM. Her special focus is in the areas of distributed object computing systems, data structures and algorithms, and operating systems.
Rakesh Kumar Dash (rakesdas@in.ibm.com), System Software Engineer, IBM Software Group
Rakesh Kumar Dash is a system software engineer at Java Technology Center, IBM. He works extensively in RMI and ORB development. SOA, Webservices, CORBA and operating systems are some of his topics of interest.

Summary:  This first in a series of articles on Service Component Architecture (SCA) introduces SCA and shows how it can simplify the design and integration of business applications built using Service-Oriented Architecture (SOA). Subsequent installments of the series will discuss SCA architecture and its key concepts, including service implementations, service clients and the assembly of various components.

View more content in this series

Date:  08 Aug 2006
Level:  Intermediate
Activity:  4538 views

Introduction

Service-Oriented Architecture (SOA) is a framework that combines individual business functions and processes, called services, to implement sophisticated business applications and processes. In a SOA framework, relatively coarse-grained business components are exposed as services. SOA structures IT assets as a series of reusable services, which are loosely coupled and are platform- and implementation-neutral. SOA designs solutions as assemblies of services, which are connected through well-specified interfaces and contracts.

Service Component Architecture (SCA) is a specification which describes a model for building applications and systems using a SOA . It simplifies application development and implementation developed using SOA.

Motivation

SCA simplifies the creation and integration of business applications built using a SOA. SCA provides a mechanism to build coarse-grained components as assemblies of fine-grained components.

SCA relieves programmers from the complexity of traditional middleware programming by abstracting it from business logic. It allows developers to focus on writing business logic and can free them from the need to spend significant cycles on more low-level implementation techniques.

Some advantages of the SCA approach are:

  • Simplified business component development
  • Simplified assembly and deployment of business solutions built as networks of services
  • Increased portability, reusability, and flexibility
  • Protection of business logic assets by shielding from low-level technology change
  • Improved testability

SCA architecture

SCA divides the steps of building of a Service Oriented Application into two major parts:

  • The implementation of components which provide services and which consume other services
  • The assembly of components to build the business application through the wiring of service references to services

SCA offers a mechanism to package and deploy sets of closely related components, which are developed and deployed together as a unit. It decouples service implementation and assembly from the details of infrastructure capabilities and from the mechanisms for invoking external systems. This enables portability of services between different infrastructures.

Service implementations and service clients

Service implementations are concrete implementations of business logic, which provide services and/or consume services. These implementations use any one of many implementation technologies, such as Java™, BPEL or C++. The implementation is the servant of the business process.

An implementation can provide a service, which is a set of operations defined by an interface used by other components. Implementations can also use other services, called service references, which indicate the implementation's dependency on services provided elsewhere. An implementation may also have one or more configurable properties. A property is a data value that can be externally configured and affects the business function of the implementation.

SCA services typically use document-style business data for parameters and return values, and preferably these parameters are represented using as Service Data Objects (SDOs) (please see the Resources section for more information).

Services, references and properties are the configurable aspects of an implementation -- SCA refers to them collectively as Component type.

Configuring a reference is done by binding the reference to a target service, which will then be used by the implementation when it invokes the reference. Configuration of a property involves setting a specific data value for the property. In a SCA framework, one implementation can be used to build multiple different components, with each component having a different configuration of the references and properties. Components and their services are used by other local components, or components can be used for remote access.

Assembly

Assembly is the process of composing business applications by configuring and connecting components that provide service implementations. SCA assembly operates at two levels:

  • Assembly of loosely connected components within a system
  • Assembly of loosely connected components within a module

The SCA assembly model consists of a series of artifacts, which are defined by XML elements.

Module assembly

A SCA module is the largest composition of tightly-coupled components that are developed and deployed together into a SCA system. It is the basic unit of loosely-coupled composition within a SCA System. A SCA module contains a set of components, external services, entry points, and the wires that interconnect them. Modules contribute service implementations to a SCA System.

Entry points define the public services provided by the module, which can either be used by other components within the same module or which can be made available for use outside the module. These are used to publish services provided by a module using a specified binding.

External services within a module represent remote services provided by other modules. They are external to the SCA module that uses the service. These external services can be accessed by components within the module like any service provided by a SCA component. External services use bindings to describe the access to external services.

The interface of an external service must be remotable.

System assembly

A SCA subsystem is used to group modules which provide related business functions through the configuration and administration of module components, external services and entry points, plus the wires that interconnect them in a SCA system. The configuration of a SCA system is represented by the combination of all the subsystems deployed into it. Figure 1 is an example of system assembly; it illustrates how sub systems and modules are wired using services and references.


Figure 1. Service Component Architecture
Service Component Architecture

Let's break down what we see in Figure 1:

  • Module components in a subsystem configuration represent configured instances of a SCA module, where the module component can set values for the external services of the module and can set values for properties exposed by the module.
  • External services are remote services that are external to the SCA system that uses the service. The differences between an external service on the module level and on the system level are:
    • The name has to be unique across all external services defined in the subsystem
    • No external service in a subsystem can have the same name as a module component since they both can be targets of wires
  • Entry points are used to declare the externally accessible services of a subsystem. They are used by other organizations or customers as a Web service. The differences between entry points on the module level and on the system level are:
    • The name has to be unique across all entry points defined in the subsystem. No entry point in the subsystem can have the same name as a module component
    • The specification of the reference child element is optional, since it can be wired through a wire supplied by another subsystem

Open Source runtimes and tools

There is an open source project which provides a runtime implementation of Service Component Architecture, which you can use to run SCA applications. This project is called Tuscany, currently under incubation at Apache. The major contributors to this project are IBM, BEA, Oracle, Sybase, SAP, IONA, and Siebel.

Conclusion

We've introduced the SCA architecture and its assembly model, and explained the SCA subsystem and its various components including module, wires, and external service which make up this subsystem. These details should help you understand the concepts required to build and integrate different business applications using SCA.


Resources

About the authors

Sreedevi Penugonda is a system software engineer at Java Technology center, IBM. Her special focus is in the areas of distributed object computing systems, data structures and algorithms, and operating systems.

Rakesh Kumar Dash is a system software engineer at Java Technology Center, IBM. He works extensively in RMI and ORB development. SOA, Webservices, CORBA and operating systems are some of his topics of interest.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services, Architecture
ArticleID=153017
ArticleTitle=SCA application development, Part 1: An overview of Service Component Architecture
publish-date=08082006
author1-email=sreedevip@in.ibm.com
author1-email-cc=
author2-email=rakesdas@in.ibm.com
author2-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers