科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Tuscany SCA扩展机制研究(Implementation)

Tuscany SCA扩展机制研究(Implementation)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Tuscany作为Apache的孵化项目,提供了对SOA的支持,包含的模块有SCA,SDO,DAS三大块,本节仅对其SCA实现进行一些探讨。

来源:gcom 2007年10月10日

关键字: 技术 机制 SCA 中间件

  • 评论
  • 分享微博
  • 分享邮件

Tuscany作为Apache的孵化项目,提供了对SOA的支持,包含的模块有SCA,SDO,DAS三大块,本节仅对其SCA实现进行一些探讨。SCA实现的目前的版本为0.91,是在Tuscany1.0M2的基础上演化而来的,对于SCA规范的支持也由0.96 Spec发展到了1.0Spec。其项目也是相当活跃的,从其Mail List中可见一斑。而对于其分化版本fabric3,显得相对冷清一些。

       Tuscany0.91相对于1.0M2,在结构上做了较大的调整,在功能处理上更加模块化了,其扩展也相对容易一些,仅需要实现较少的接口,就能达到目的,下图为Tuscany的运行期结构图:

4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> 
 

SCA扩展机制包含了4个方面的扩展,有implementaion扩展,binding扩展,interface扩展,databinding扩展,下面就对其扩展机制分别作一下分析。

1、 Implementaion扩展

Implementation作为component的实现而存在,是作为component服务的提供者,component服务调用时,调用的就是implementaion提供的功能。Tuscany目前已实现的implementaion类型有java,script,spring,bpel,这些类型已能基本满足客户的需要,但有些情况还是需要用户自己定义一些特殊的实现。其扩展步骤如下:

a.       定义组装模型扩展(Implementation接口)

b.       定义接口及实现组装模型扩展

c.       定义实现的解析器(扩展StAXArtifactProcessor中的read,write,resolve方法)

d.       定义实现的提供者(扩展ImplementationProvider接口,生成调用Invoker)

e.       注册解析器及提供者(扩展ModuleActivator)


f.      发布ModuleActivator到系统中(在文件META-INF/loaders/com.primeton.sca.runtime.IModelLoader文件中注册)

 

扩展CRUD示例:

a.       在composite文件中定义component实现

 

<component name=“CRUDComponent”>

         
<crud:implementation.crud directory=“/tmp” >

</component>

对应的schema为: 

<element name="implementation.crud" type="sca:CRUDImplementation" 
        substitutionGroup
="sca:implementation" />
    
<complexType name="CRUDImplementation">
        
<complexContent>
            
<extension base="sca:Implementation">
                
<attribute name="directory" type="string" use="optional" />
            
</extension>
        
</complexContent>
</complexType>


b.       接口定义

a)         CRUDImplementation interface 扩展 org.apache.tuscany.sca.assembly.Implementation

b)        CRUDImplementationFactory interface 定义 createImplementation() 方法

c)        定义实现接口CRUDImplementation

d)        定义实现工厂类CRUDImplementationFactory

c.       实现解析器StAXArtifactProcessor,对定义的implementation.crud directory=“/tmp”进行解析

d.       实现调用提供者ImplementationProvider,生成Invoker,通过方法createCallbackInvoker,createInvoker来完成

e.       在ModuleActivator中注册,在其start方法中注册,stop方法中销毁

f.        系统注册(在com.primeton.sca.runtime.IModelLoade文件中注册ModuleActivator)

其实现的类图如下:




 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章