Service Component Architecture
Encyclopedia
Service Component Architecture (SCA) is a software technology created by major software vendors including IBM and Oracle. SCA provides a model for composing applications that follow Service-Oriented Architecture
principles. The technology encompasses a wide-range of disparate technologies and as such is specified in various independent specifications in order to maintain programming language and application environment neutrality.
The value proposition of SCA, therefore, is to offer the flexibility for true composite applications, flexibly incorporating reusable components in an SOA programming style. The overhead of business logic programmer concerns regarding platforms, infrastructure, plumbing, policies and protocols are removed, enabling a high degree of programmer productivity.
(SDO) will enjoy more rapid adoption due to its maturity.
Advantages:
Disadvantages:
SCA is 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 in JCA, as explained by an architect at SAP https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2824.
The basic artifact is the Composite, which is the unit of deployment for SCA and which holds Services which can be accessed remotely. A composite contains one or more Components, 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 through Entry Points. Components may also depend on services provided by other components — these dependencies are called References. 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 by Wires.
A Component consists of a configured Implementation, where an implementation is the piece of program code implementing business functions. The component configures the implementation with specific values for settable Properties 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 a SCA System. A 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 function, and it might contain a series of modules dealing with specific areas of accounting, with one for customer accounts, 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 a Java classes or a BPEL
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 has impact on SCA throughout the lifecycle of components and compositions. SCA provides the Policy Framework to support specification of constraints, capabilities and Quality of Service (QoS) expectations, from component design through to concrete deployment.
, and a new OASIS
Open CSA Member Section has been established . Charters for six new Technical Committees (TCs) have been submitted to OASIS and a Call for Participation for Technical Committee members has been issued within the OASIS organization. The Technical Committees will 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.
Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
principles. The technology encompasses a wide-range of disparate technologies and as such is specified in various independent specifications in order to maintain programming language and application environment neutrality.
Partners
Partner vendors include:- the original members: BEA SystemsBEA SystemsBEA Systems, Inc. specialized in enterprise infrastructure software products known as "middleware", which connect software applications to databases and was acquired by Oracle Corporation on April 29, 2008.- History :...
, IBMIBMInternational Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
, IONA TechnologiesIONA TechnologiesIONA Technologies was an Irish software company. It was founded in 1991.The company began life as a campus company in Trinity College, Dublin and maintains headquarters in Dublin, Boston and Tokyo....
, Oracle CorporationOracle CorporationOracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
, SAP AGSAP AGSAP AG is a German software corporation that makes enterprise software to manage business operations and customer relations. Headquartered in Walldorf, Baden-Württemberg, with regional offices around the world, SAP is the market leader in enterprise application software...
, SybaseSybaseSybase, an SAP company, is an enterprise software and services company offering software to manage, analyze, and mobilize information, using relational databases, analytics and data warehousing solutions and mobile applications development platforms....
, Xcalia and Zend TechnologiesZend TechnologiesZend Technologies Ltd. is an Israeli world wide web infrastructure software company with headquarters in Cupertino, California, U.S., technology center in Ramat Gan, Tel Aviv, Israel and offices in France, Italy and Germany... - the additional members announced on July 26, 2006: Cape ClearCape Clear (software company)Cape Clear is a vendor of ESB software, founded in 1999.Cape Clear was a spin-off from IONA Technologies. and was a privately held firm with headquarters in San Mateo, CA, and offices in Atlanta, GA, Chicago, IL, Denver, CO, Waltham, MA, Dublin, Ireland, and London, UK.In November 2000, Cape...
, Interface21, Primeton Technologies, Progress SoftwareProgress SoftwareProgress Software Corporation , formerly Data Language Corporation, is an American software company that sells business application infrastructure software. Its best known product is the OpenEdge ABL , which was developed in the early 1980s. The best known application written in Progress is...
, Red HatRed HatRed Hat, Inc. is an S&P 500 company in the free and open source software sector, and a major Linux distribution vendor. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina with satellite offices worldwide....
, Rogue Wave Software, Software AGSoftware AGFounded in 1969, Software AG is an enterprise software company with over 10,000 enterprise customers in over 70 countries. The company is the second largest software vendor in Germany, the fourth in Europe and among the top 25 globally...
, Sun MicrosystemsSun MicrosystemsSun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
and TIBCO SoftwareTIBCO SoftwareTIBCO Software Inc. is a provider of infrastructure software for companies to use on-premise or as part of cloud computing environments. TIBCO manages information, decisions, processes and applications in real-time for over 4,000 customers worldwide...
. - Siemens AGSiemens AGSiemens AG is a German multinational conglomerate company headquartered in Munich, Germany. It is the largest Europe-based electronics and electrical engineering company....
, which joined the collaboration of companies working on the technology on September 18, 2006.
Supporters
In addition to the partners above, the SCA community has a significant set of formal supporters . The Supporters Program remains open for any interested vendor, ISV, customer or user of the SCA technology to contribute to its evolution.Definition
On March 21, 2007, the OSOA Collaboration released the V1.0 level of specification . The specifications specify that an application designed with SCA should have the following advantages:- Decoupling of application business logic from the details of its invoked service calls
- Target services in a multitude of languages including C++C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, COBOLCOBOLCOBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
, and PHPPHPPHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
as well as XMLXMLExtensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
, BPEL, and XSLTXSLTXSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,... - The ability to seamlessly work with various communications constructs including One-Way, Asynchronous, Call-Return, and Notification
- The ability to "bind" to legacy components or services, accessed normally by technologies such as Web Services, EJBEnterprise JavaBeanEnterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
, JMSJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
, JCAJava EE Connector ArchitectureJava EE Connector Architecture is a Java-based technology solution for connecting application servers and enterprise information systems as part of enterprise application integration solutions. While JDBC is specifically used to connect Java EE applications to databases, JCA is a more generic...
, RMIJava remote method invocationThe Java Remote Method Invocation Application Programming Interface , or Java RMI, is a Java application programming interface that performs the object-oriented equivalent of remote procedure calls ....
, RPCRemote procedure callIn computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...
, CORBAÇorbaChorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...
and others - The ability to declare (outside of business logic) the Quality of Service requirements, such as Security, Transactions and the use of Reliable Messaging
- Data could be represented in Service Data ObjectsService Data ObjectsService Data Objects is a technology that allows heterogeneous data to be accessed in a uniform way. The SDO specification was originally developed in 2004 as a joint collaboration between BEA and IBM and approved by the Java Community Process...
The value proposition of SCA, therefore, is to offer the flexibility for true composite applications, flexibly incorporating reusable components in an SOA programming style. The overhead of business logic programmer concerns regarding platforms, infrastructure, plumbing, policies and protocols are removed, enabling a high degree of programmer productivity.
Further analysis
Gartner Group has published a short brief that concluded that the SCA included technology of Service Data ObjectsService Data Objects
Service Data Objects is a technology that allows heterogeneous data to be accessed in a uniform way. The SDO specification was originally developed in 2004 as a joint collaboration between BEA and IBM and approved by the Java Community Process...
(SDO) will enjoy more rapid adoption due to its maturity.
Advantages:
- caters for all existing Java platform technologies and C++
- less technology dependence - does not have to rely on the Java programming languageJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, nor XMLXMLExtensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards.... - SDOService Data ObjectsService Data Objects is a technology that allows heterogeneous data to be accessed in a uniform way. The SDO specification was originally developed in 2004 as a joint collaboration between BEA and IBM and approved by the Java Community Process...
, which is a technology specification for data access
Disadvantages:
- lack of support by MicrosoftMicrosoftMicrosoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
reduces the relevancy of SCA for a large number of potential users. - Specification does not address performance of SOA applications, which continues to be a detractor of adoption.
- Focusing on portability (instead of interoperability), making it vulnerable to repeat CORBAÇorbaChorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...
's mistakes .
SCA is 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 in JCA, as explained by an architect at SAP https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2824.
SCA artifacts
The SCA Assembly Model consists of a series of artifacts, which are defined by elements contained in XML files. A 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 the Composite, which is the unit of deployment for SCA and which holds Services which can be accessed remotely. A composite contains one or more Components, 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 through Entry Points. Components may also depend on services provided by other components — these dependencies are called References. 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 by Wires.
A Component consists of a configured Implementation, where an implementation is the piece of program code implementing business functions. The component configures the implementation with specific values for settable Properties 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 a SCA System. A 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 function, and it might contain a series of modules dealing with specific areas of accounting, with one for customer accounts, 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 a Java classes or a BPEL
Business Process Execution Language
Business Process Execution Language , short for Web Services Business Process Execution Language is an OASIS standard executable language for specifying actions within business processes with web services...
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 has impact on SCA throughout the lifecycle of components and compositions. SCA provides the Policy Framework to support specification of constraints, capabilities and Quality of Service (QoS) expectations, from component design through to concrete deployment.
Open Source Communities
There are 4 independent open source communities implementing SCA:- Apache Tuscany
- Fabric3
- FraSCAti
- Service Conduit
- TRENTINO A C++-based lightweight and modular SCA runtime that is specifically designed for the peculiarities of the embedded domain.
Transition to a standards body
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 have now indicated that formal industry standardization is the appropriate next step and announced their intentions in March 2007. The chosen Standards Development Organization is the OASIS organizationOASIS (organization)
The Organization for the Advancement of Structured Information Standards is a global consortium that drives the development, convergence and adoption of e-business and web service standards...
, and a new OASIS
OASIS (organization)
The Organization for the Advancement of Structured Information Standards is a global consortium that drives the development, convergence and adoption of e-business and web service standards...
Open CSA Member Section has been established . Charters for six new Technical Committees (TCs) have been submitted to OASIS and a Call for Participation for Technical Committee members has been issued within the OASIS organization. The Technical Committees will 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.
Books on SCA
- Understanding SCA http://my.safaribooksonline.com/9780321617927
- SOA for the Business Developer: Concepts, BPEL, and SCA—ISBN 978-158347-065-7
- Apache Tuscany in Action, ISBN: 9781933988894
- Open Source SOA, ISBN: 1933988541
External links
- Introduction to programming for SCA Dr. Dobb's
- Current SCA Specifications from the Industry Collaboration
- Open Service Oriented Architecture -- official site for information about the SCA & SDO technology
- Fabric3 open source SCA runtime
- Apache Tuscany - Open Source implementation of the SCA specification
- SALT - Enterprise ready SCA runtime for C++, Python, Ruby, and PHP
- PocoCapsule for WS and SCA An open source C++ SCA container based on inversion-of-control (IoC) and domain-specific-modeling (DSM)
- Newton open source distributed SCA & OSGi runtime
- SCorWare A French public research project, which includes a SCA runtime called FraSCati
- SCA Home Page at OASIS web site
- Current SCA Resources & Collateral
- Latest SCA & SDO News
- Introducing SCA -- A tutorial by David Chappell, Chappell & Associates
- Relationship of SCA and JBI
- Eclipse STP/SCA sub project An Open Source Eclipse project that provides a set of tools for SCA