该文介绍了服务构件架构的核心概念和术语。
System
一个SCA System表示了一个组织在某一个业务领域提供的Service Set。一个SCA System由多个Subsystem和Modles组合而成;SCA
System完成了Module的实例化,配置和连接。结构如下图:
Subsystem
Subsystem用来组合Module Component, 以及SCA System的EntryPoints,
External Services。
Component对外保露的是一个Java Interface或者WSDL Interface;Module将Component组合在一起,并且有选择的将Coponent的接口对外保露成Entry
Point;SubSystem是将Module组合在一起,并且有选择的将Module的EntryPoint暴露出来。这样Module的粒度比Component大,SubSystem的粒度比Module高。SCA
System由Sub System和Module组成,SCA System对外暴露的接口就是组成它的Sub
System和Module暴露出来的EntryPoint。
Module
SCA Module是一个在开发和部署时,紧耦合组件组合的”最大组织单元”。而在SCA System中它是一个松耦合组合的“基本组织单元“。一个SCA
Module装配了Components, External Services, Entry Points和用来将这些对象互联在一起的Wire。Modules将服务实现构造成一个SCA
System。Module是作为Module Component的实现来使用的。
Module有如下特性:
- 定义了组件的可视边界,组件是不能被外部模块直接引用的。
- 模块内的组件通讯采用Local方式,模块间的组件通讯采用Remote方式
- 它定义了一个部署单元。Modules是用于将一个SCA系统需要的业务逻辑工件(artifacts)组装在一起。
Module Component
Module Component是一个Module在Subsystem中的配置实例。Moudle是Module
Component的实现。对于SCA Subsystem来说只关注Module Component和Module
Component提供的EntryPoint,而不关注Module的实现细节,比如Reference,
External Service等等。
Module Component是一层更高层次的封装和抽象,但个人感觉这个抽象不是很清晰,或者是理解还不到位,:)
Entry Point
SCA Entry Points用来声明一个Module提供的外部可访问的服务。这些服务可以是Module内组件提供的服务,也可以是Module引用的外部服务提供的服务。我们可以任务EntryPoint是外部客户端访问一个Module的唯一途径。
EntryPoint使用Binding将接口和实现绑定在一起,EntryPoint可以和WebService,
EJB Stateless Method, SCA Remote Service等等绑定,而且绑定机制可以扩展,比如在EOS里面我们可以将Bizlet,Bizlogic绑定为Module的EntryPoint.
Component
SCA Component是SCA Implementation的配置实例。SCA Component将实现和接口绑定在一起,其中SCA
Implementation可以为Java、BPEL, BusinessRules, C++等。
Compoents对外暴露的接口支持Java Interface和WSDL Interface两种模式。
SCA也提供了扩展机制,允许SCA Component提供其他类型的接口。
|