Channels ▼
RSS

JVM Languages

Service-Component Architectures

Source Code Accompanies This Article. Download It Now.


Arunava is a manager at BearingPoint working on SOA and Java Enterprise Architectures. He holds a Ph.D. in Physics from Florida State University and can be contacted at chatterjeeb@yahoo.com.


Service-Oriented Architectures have been in the software limelight for several years now. But even as groups attempt to define best practices and governance strategies, the details of developing a SOA for a particular organization remain somewhat elusive. In this article, I examine Service-Component Architectures (SCA) as a means to implement Service-Oriented Architectures (SOA).

SOA is conceptually about loosely coupled behavior. Business and system functionality is exposed as largely independent services, thus letting them be used in different ways in the composition of business flows. This is a simple description, but implementations can be considerably more complex. Anyone who has worked with EAI and distributed technologies recalls the difficulties of vending business functionality across an enterprise.

SOA principles are abstract and independent of implementation technologies. From a development perspective, it would be helpful to define SOA constructs that let engineers discuss implementations in concrete terms without necessarily resorting to technology specifics. Towards this end, the Open Service-Oriented Architecture (OSOA) has published the Service Component Architecture (SCA) Specification 1.1 (www.osoa.org).

SCA has been under development for several years by IBM, BEA, Sun, Software AG, IONA, SAP, and Oracle, among others. Implementations are currently available from IBM, Rogue Wave, Oracle, Tibco, the Apache Software Foundation (Tuscany), and the Eclipse Foundation (SOA Tools Platform).

The SCA Programming Model

The SCA Programming Model addresses the engineering details of SOA by providing an approach to the development, assembly, and deployment of services. In keeping with SOA principles, SCA supports heterogeneous implementations by being metadata driven, language independent, and container independent. So long as a mapping from the SCA specification to a technology can be defined, SCA can be implemented. Consequently, SCA has been bound to multiple languages and containers; most recently a C-language specification has been drafted. Figure 1 is a high-level conceptual view of SCA as it relates to technologies and Quality-of-Service requirements.

[Click image to view at full size]

Figure 1: SCA Model as it relates to implementation details.

To date, SCA mappings exist for Java, C++, Ruby, Spring, and BPEL, among others. Additionally, SCA bindings exist for web services, JMS, JCA, and other communication mechanisms. The purpose of SCA is to reduce the conceptual principles of SOA to a concrete set of elements that can be discussed in an implementation context.

Among SCA's intended benefits are:

  • Simplified SOA implementation using Components and Compositions.
  • Use of loosely coupled Components and References to support agility.
  • Handling of event-driven behavior through a comprehensive invocation model.
  • Separation of development and assembly to allow technology-agnostic composition.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video