Saturday, April 25, 2009

Spot Light to Service Component Architecture

If we take a Normal Software application it will be consist of Many components.Where they may be developed using a same technology or different technologies.And also they may be deployed in a Same runtime ,machine or different ones and communicating with each other using a same technology or different technologies.

SCA (Service component Architecture) defines how these components are created and how they are assembled together to build composites.It is a programing model build based on the SOA.

According to the SCA specification SCA applications can be implemented using many technologies like Java ,Spring ,C++ etc ... SCA defines how these components built using any technology can be Assembled to built a application.

A Simple example of a Component assembled to build a Application would be a Simple Java Application with few classes communicating with each other in a Single JVM.Or in a More Complex case it will be set of Web Services working together to build up a Custom Service .

SCA Component is the atomic unit in a SCA application where they can be combine together in a preferable way
As the Diagram shows a Component can expose services that other components (or may be the out side applications )will be able to use.And also a Component may be relying on the Services provided by other components(or by out side systems).And also a Components can have properties that will be able to initialized at the component creation.In SCA a component can be properly configured by mentiong above mentioned properties ,services etc using SCDL (service component definition language)

Composites are Logical constructs that will consist of one or many components.but interestingly these components in side a Composite may be distributed in many runtimes. So it is impotent to understand that composite only define a logical construct using deferent components.It will have a logical meaning in the context of work done within the composite.But the components that the composite is build from may use different technologies.



As u see The composites can also have Services references , properties.

Following is a example of how a composite is configured using SCDL

sample.composite

<?xml version="1.0" encoding="UTF-8"?>

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:burlap="http://www.fabric3.org/binding/burlap/0.2"
name="BurlapTestComposite">

<!-- Hello Client -->
<component name="HelloClient">

<implementation.java class="org.fabric3.sample.hello.HelloClientImpl"/>
<reference name="helloService" target="HelloService"/>
</component>

<!-- Hello Service -->
<component name="HelloService">
<implementation.java class="org.fabric3.sample.hello.HelloServiceImpl"/>
</component>

</composite>





These fundamentals of SCA (components and composites) are contained with in a lager construct called SCA domain.Which is normally a Set of Systems with a common SCA runtime technology and common management(people).


Apache Tuscany , HydraSCA , Fabric3 are few examples of these SCA Runtimes.

SCA can be seen as a programming modal that will be very useful when developing and maintaining complex business applications.Which ensure the reuse by having low coupling and componentizing . The modal that SCA is trying to bring in is not a new concept to the domain. Even the Spring frame work has same concepts that shears with the SCA.These evelutions happening are showing some bright lights of the Pinnacle we are seeking in the Computer Science.

references : http://www.osoa.org/display/Main/Service+Component+Architecture+Home