Service Component Architecture (SCA) is a software technology designed to provide a model for applications that followservice-oriented architecture principles.[1] The technology, created by major software vendors, includingIBM,Oracle Corporation andTIBCO Software, encompasses a wide range of technologies and as such is specified in independent specifications to maintain programming language and application environment neutrality.[1] Many times it uses anenterprise service bus (ESB).
The original partners announced on November 30, 2005 were:BEA Systems,IBM,IONA Technologies,Oracle Corporation,SAP AG,Sybase, Xcalia andZend Technologies.[2]Additional members announced on July 26, 2006 wereCape Clear,Interface21,Primeton Technologies,Progress Software,Red Hat,Rogue Wave Software,Software AG,Sun Microsystems andTIBCO Software.[3]Siemens AG joined the collaboration of companies working on the technology on September 18, 2006.
In addition to the partners, the SCA community had some formal supporters.[4]
On March 21, 2007, the OSOA Collaboration released the first version of specification.[5] The specifications said that an application designed with SCA should have:
SCA, therefore, was promoted to offer flexibility forcomposite applications, flexibly incorporating reusable components in an SOA programming style.
Marketing firmGartner Group published a short brief that promoted the SCA and its included technology ofService Data Objects (SDO) in December 2005 .[2]
Advantages:
Disadvantages:
SCA was said to provide interoperability through an approach called "Activation". It is the method that provides the highest degree of component autonomy, compared to older "mediation" (e.g.,JBI) or "Invocation" method used inJCA, as explained by an architect at SAP.[8]
TheSCA Assembly Model consists of a series of artifacts, which are defined by elements contained in XML files. An SCA runtime may have other non-standard representations of the artifacts represented by these XML files, and may allow for the configuration of systems to be modified dynamically. However, the XML files define the portable representation of the SCA artifacts.
The basic artifact is thecomposite, which is the unit of deployment for SCA and which holdsservices that can be accessed remotely. A composite contains one or morecomponents,[9] which contain the business function provided by the module. Components offer their function as services, which can either be used by other components within the same module or which can be made available for use outside the module throughEntry Points. Components may also depend on services provided by other components — these dependencies are calledreferences. References can either be linked to services provided by other components in the same module, or references can be linked to services provided outside the module, which can be provided by other modules. References to services provided outside the module, including services provided by other modules, are defined by External Services in the module. Also contained in the module are the linkages between references and services, represented bywires.
A component consists of a configuredimplementation, where an implementation is the piece of program code implementing business functions. The component configures the implementation with specific values for settableproperties declared by the implementation. The component can also configure the implementation with wiring of references declared by the implementation to specific target services.
Composites are deployed within anSCA System. An SCA System represents a set of services providing an area of business functionality that is controlled by a single organization. As an example, for the accounts department in a business, the SCA System might cover all financial-related functions, and it might contain a series of modules dealing with specific areas of accounting, with one for customer accounts and another dealing with accounts payable. To help build and configure the SCA System, Composites can be used as component implementations, in the same way as Java classes orBPEL processes. In other words, SCA allows a hierarchy of composites that is arbitrarily deep – such a nested model is termed recursive.
The capture and expression of non-functional requirements, such as security, is an important aspect of service definition, and affects SCA throughout the life-cycle of components and compositions. SCA provides thePolicy Framework to support specification of constraints, capabilities and Quality of Service (QoS) expectations, from component design through to concrete deployment.
After several years of incubation under an informal industry collaboration, early (V1.0) implementations of the specification are now coming to market. The collaboration partners indicated that formal industry standardization would be the appropriate next step and announced their intentions in March 2007. The chosen Standards Development Organization is theOASIS organization, and a newOASISOpen CSA Member Section has been established.[10] Charters for six new Technical Committees (TCs) have been submitted to OASIS[11] and a Call for Participation for Technical Committee members has been issued within the OASIS organization. The Technical Committees planned to start their work in September 2007. Participation in these OASIS SCA TCs remains open to all companies, non-profit groups, governments, academic institutions, and individuals. Archives of the work will be accessible to both members and non-members, and OASIS will offer a mechanism for public comment.[12]