【最近一段时间一直在琢磨SCA的东西,到处找了些文档,慢慢拼凑了这篇文章】
概览
目前业界主要的软件厂商都在大力推广面向服务的架构(Service Oritented Architecture,SOA)的概念,但是对于很多客户来说,SOA的概念还是显得相对抽象的。为了使客户能够更加简单的实现向这种面向服务架构的转变,IBM在推出一系列WebSphere新产品的同时,提出了一种新的服务组件模型。
这是一种全新的、跟语言无关的编程模型,它提供了一种统一的调用方式,从而使得客户可以把不同的组件类型,比如POJO, EJB, 流程组件,人工交互组件等都可以通过一种标准的接口来封装和调用。结合SDO的数据模型,这种服务组件的编程模型可以大大的简化客户的编程,提高应用的灵活性,这就是面向服务组件的架构(Service Component Architecture,SCA)。
SCA的起源
基于组件的编程一直是软件业简化编程和提高效率和质量的一个重要方法,但是往往对于不同语言我们有不同的组件模型,从而需要不同的调用方式。比如在J2EE技术领域,我们就有EJB,POJO,JDBC,JMS等,这对于开发人员来说是一个极大的挑战。为了给这些不同的接口提供一个统一的调用方式,IBM提出了WSIF (Web Service Invocation Framework,具体请参考http://ws.apache.org/wsif/ ),并将它贡献给Apache组织。WSIF作为Web Service领域的一个规范,提供了一种基于Java API统一调用各种服务的能力。但是WSIF没有形成一个基于组件的架构模型,因此IBM在此基础上推出了一个面向服务的组件模型(Service Oritented Architecture, SCA)。这个模型不但解决了统一调用的问题,还提出了一个基于组件的构建模型,并提供了许多面向企业计算的QoS能力。
因此,从技术的角度来说,SCA是WSIF的延续和扩展。SCA的目的是使用户在构建企业应用时有一个不再直接面对具体的技术细节的层次,而是通过服务组件的方式来构建应用。这种方式也使得客户的企业应用具有良好的分层架构,能够很好的分离应用的业务逻辑和IT逻辑,不但易于应用的构建,也易于应用的更改和部署。