服务组件是SCA中的基本组成元素和基本构建单位,也是我们具体实现业务逻辑的地方。我们可以把它看成是构建我们应用的积木。我们可以非常容易地把传统的POJO,无状态会话BEAN等包装成SCA中的服务组件。 SCA服务组件的主要接口规范是基于WSDL(Web Service Description Language)的,另外为了给Java编程人员提供一个比较直接的接口,SCA的部分服务组件也提供了Java接口。因此,使用服务组件的客户端可以选择使用WSDL接口或Java接口。
WebSphere Process Server 充分利用了SCA的这种组件架构,并在产品中提供了一些与业务联系比较紧密的组件,比如业务流程,人工任务,业务状态机,业务规则等。这样用户就可以直接利用这些服务组件,构建自己的业务流程或其它业务集成的应用。在WebSphere Process Server V6.0.1中,服务组件及SCA在架构中的作用如图 2所示:
图 2: WebSphere Process Server V6.0.1的架构环境
我们可以从图 2 中看到服务组件架构在WebSphere Process Server中的基础地位,也可以看到各种与业务相关的服务组件或技术相关的辅助服务组件的关系。关于WebSphere Process Server的体系架构这里不展开论述,具体请参考developerWorks专刊,2005年第三期的文章――WebSphere Process Srever V6体系结构概述。
由于涉及到模块内外的调用,因此需要指定专门的绑定信息。这些绑定信息包括了目标服务或源服务的调用方式,位置信息,调用的方法等。目前,在WebSphere Process Server V6.0中,导入端点提供了四种绑定方式,包括:JMS绑定,Web Service绑定,SCA绑定和无状态会话BEAN的绑定。导出端点提供了三种绑定方式,包括:JMS绑定,Web Service绑定和SCA绑定。对于SCA模块之间的调用,我们可以非常方便的把绑定方式设置为SCA绑定,但是对于非SCA模块与SCA模块之间的调用我们只能选择其它绑定方式。
ServiceManager serviceManager = new ServiceManager();
HelloWorldInterface service =
(HelloWorldInterface) serviceManager.locateService("HelloWorldInterfacePartner");