2005年11月30日,BEA宣布,将与IBM、Oracle、SAP、Iona、Siebel和Sybase一起,支持一种构建和包装应用程序的新规范,即Service Component Architecture(服务组件架构,SCA)。
什么是SCA?
SCA是一种规范,它使开发人员可以将注意力集中在业务逻辑的编写上。更直接地说,它是一种大大改进了的部署描述符,它可以使用任何语言而不限于Java。此外,您还可以使用编程式语言和声明式语言,比如BPEL和XSLT。SCA的特别之处在于,它对安全性、事务和可靠消息传递之类的特性使用了声明式策略的理念。
使SCA脱颖而出的是,它是专门针对SOA设计的,而不像J2EE只是面向SOA做了修改。SCA关注的是如何描述按照各种编程模型和协议编写的组件所组成的程序集。
SCA的目标与BEA的目标是一致的:使事情(这次是应用程序的构建)更容易。SCA允许开发应用程序集而不考虑特定的中间件API或具体语言。
SCA的核心概念是服务及其相关实现。服务由接口定义,而接口包含一组操作。服务实现可以引用其他服务,称为引用。服务可以有一个或多个属性,这些属性是可以在外部配置的数据值。
SCA中的一个关键推动因素是Service Data Object(服务数据对象,SDO)。AquaLogic Data Services Platform一直在使用它。SDO用于表示业务数据、参数以及服务调用的返回值,当它遍历服务网络时,它还是一种表示数据的方式。注意,也可以使用XMLBeans及其它技术。
SCA组件被组成为程序集。程序集是服务级的应用程序,它是服务的集合,这些服务被连接在一起,并进行了正确的配置。SCA程序集运行在两个级别:第一种情况,程序集是系统内的一组松散连接的组件;另一种情况,程序集是模块内的一组松散连接的组件。二者的区别在于,一般来说,模块是组件的集合,而系统是模块的集合。此外,系统对应于“大规模编程”(programming in the large或megaprogramming),而模块对应于“小规模编程”(programming in the small),比如构建当今的典型应用程序。相关例子以及更详细的说明请参见Dev2Dev站点上的SCA白皮书。
将组件连接到它所依赖的服务的方式就是服务网络“装配”的方式。程序集已经在许多技术和框架中广为应用,比如CORBA、J2EE、ATG Dynamo和Spring,也就是说,它并不是新出现的。从这些技术中我们可以知道,程序集提供了许多重要的优点,比如更轻松的迭代开发,以及避免使业务逻辑依赖于中间件容器。SCA使用程序集解决了许多SOA开发中的重要问题,包括:
- 业务逻辑与底层基础架构、服务质量和传输的分离。
- “小规模编程”与“大规模编程”的联系。
- 为架构的设计、编码和操作性部署在自底向上(bottom-up)和自顶向下(top-down)两种方法中来回切换提供了一种统一的方式。
对BEA来说,它意味着什么?
SDO 2.0规范是整个SCA技术平台的一个组成部分,它将在AquaLogic Data Services Platform (ALDSP)产品家族(已经支持SDO 1.0)的下一个主版本中实现。BEA AquaLogic Data Services Platform完全是针对SOA构建的,它自3.0版本开始就采用SCA技术。它提供企业数据服务的自动创建和维护,这可以帮助客户获得更高的生产力,进行业务优化,并更快地创造价值。BEA AquaLogic Data Services Platform提供了一个捕获与数据访问和数据更新有关的逻辑的单一位置。数据服务层提供了对相关的不同实时数据的可重用的、简化了的访问。注意,BEA Workshop中即将包含SCA支持。还有,BEA Workshop可免费下载。
为什么SCA如此重要?
SCA具有重大意义,因为它是第一项承诺提供一个组合模型以启用服务网络并支持构建下一代面向服务应用程序的技术。这一领域的每一次革新,都会导致出现一个新的抽象层,从而产生一批新的应用程序。C允许我们构建不能在汇编程序中构建的应用程序,而C++允许我们构建不能使用C构建的应用程序,Java又允许我们构建不能使用C++构建的应用程序。所有这些都是SCA的先例,简单地说,SCA就是未来用于构建大规模企业组合应用程序的技术。
原文出处:http://dev2dev.bea.com/blog/wgroth2/archive/2005/11/sca_and_the_fut.html