一种基于Tuscany SCA 的分布式应用模型

时间:2022-08-04 08:10:43

一种基于Tuscany SCA 的分布式应用模型

摘要:该文提出了一种基于Tuscany SCA 的分布式应用模型:单云多结点模型,分析了模型中的元素之间的逻辑关系和抽象元素的实现方式,并通过TuscanySCA提供的工具演示了如何部署基于该模型的分布式应用。

关键词:SCA;云;构件;组件

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)16-4567-02

A Distributed Application Model Based on Tuscany SCA

CUI Xiao-bao, CHEN Ji-rong, SHEN Ji-feng

(Computer Technology Department, Bengbu Tank Institute, Bengbu 233050, China)

Abstract: A distributed application model called Single Cloud with Multiply Nodes is presented in this paper, and logical relations between model elements and implementing methods are also analyzed, Lastly Using a tool proveide by Tuscany SCA showshow to deploy a distributed application based this model.

Key words: SCA; cloud; composite; component

构建分布式应用有很多种架构。例如,JavaEE架构(数字化校园应用), HLA架构(大规模分布式仿真应用),网格计算或云计算架构(计算资源共享应用)。目前,基于SOA架构来构建分布式应用是一个趋势,尤其在信息化系统建设方面。

Apache Tuscany是一个实现了SOA规范的开源框架, Tuscany SCA是Tuscany下的一个子项目,它实现了SCA规范,并为开发SCA应用提供了运行环境。本文提出了一种基于Tuscany SCA 的分布式应用模型:单云多结点模型,并通过TuscanySCA提供的工具演示了如何部署基于该模型的分布式应用。

1 单域多结点模型

单域多结点模型如图1所示。

1.1 模型元素的分析

图1中涉及到四个元素,分别是cloud、node、contribution、composite和component。在设计一个分布式应用时,可以按照功能或物理位置将其划分为几个部分,为了叙述方便,假设一个应用SCAapplication可以按照物理位置划分为三个部分,分别是PositionA、PositionB和PositionC,下面以此为背景来分析模型的各个元素。

component(组件):按照Tuscany SCA编程实现PositionA所需业务逻辑的各个单元,典型形式有JOPO,即java接口和接口的实现类、EJB、BPEL等。该元素是构成应用的最小单元。

composite(构件):按照按照Tuscany SCA编程模型对PositionA中的所有componet进行组合的文件,该文件反映了component之间的关系(服务和引用),也反映了PositionA与PositionB、PositionC之间的关系(服务和引用)。

contribution(贡献):按照Tuscany SCA编程模型实现PositionA后,其包含的所有内容(例如componet的实现类和接口、composite文件、运行支撑库等)就是一个contrbibution。具体表现形式可以有多种,如压缩文件、包含所有内容的目录等。

node(结点):对应SCAapplication的一个物理结点,通常情况下一个node包含一个contribution和一个composite。当SCAapplication按照功能来划分时,一个node就对应一个功能模块(多个功能模块可以在一个计算机结点上运行)。

cloud(云):一个SCAapplication就是一个cloud,它包含了三个node。这里面有一点需要注意,一个cloud中的所有SCA运行环境必须是用样的,例如本文的Tuscany SCA运行环境。目前有较多的SCA运行环境,商业的如IBM的WID。每一种运行环境就对应一个cloud。关于多个cloud的分布式、利用Tuscany SCA实现云计算是本文今后的研究方向。

1.2 模型元素的具体实现

从图1和上文分析可以看出:上层元素是对下层元素的一种逻辑封装。

composite封装component,node封装contribution和composite,cloud封装node。component和contribution具体的实现元素,其余节点是封装后的抽象元素。

抽象元素主要是通过符合Tuscany SCA的配置文件来产生的,文件格式为composite文件。上层元素的文件对下层元素的文件进行封装,格式类似于C语言的include或java 语言的import。下面是node文件 和cloud文件的示例。

1)node文件示例:

在node文件示例中,有uri="chenjirong-ws" composite="c:catalogs",它就是对contribution(chenjirong-ws)和composite (c:catalogs)的封装。具体语法请参靠论文的相关文献。

2)cloud文件示例:

targetNamespace="/xmlns/sca/1.0"

xmlns=/xmlns/sca/1.0 xmlns:ns1="/xmlns/sca/1.0">

uri=/cloud xmlns:ns2="/cloud"/>

uri=/cloud xmlns:ns2="/cloud"/>

uri=/cloud xmlns:ns2="/cloud"/>

在domain文件示例中,有三个include,分别包含了三个结点,分别是MyCatalogNode、MyCurrencyNode和MyStoreNode。

在图1中,除了contribution、component和composite需要开发人员具体实现或配置外,其余的所有元素可以通过Tuscany SCA提供的应用部署工具自动产生。当然,如果希望应用全部基于程序方式来运行,就需要按照Tuscany SCA的规范来编辑产生上述文件。

1.3 分布式应用的部署

在上文提到,如果分布式应用全部基于程序方式来运行,则不需部署,但是需要编辑cloud、node逻辑元素(配置文件)。这种方式的缺点是:需要编码;node的物理位置,如node运行的主机IP地址和port被固定在配置文件中。

利用Tuscany SCA提供的部署工具可以实现动态的、分布式的部署。所谓动态部署,表现形式是主机IP地址和port可以动态输入、contribution和node可以动态的加入或删除;所谓分布式部署,表现形式是可以从各个node来部署。

基于Tuscany SCA部署工具来部署应用的步骤如下:

1)建立一个部署目录(例如D:\mydeploy) ;

2)基于该部署目录启动Tuscany SCA domain管理应用程序;

假设Tuscany SCA的安装目录为F:\tuscany-sca-1.3.1,则对应的命令行为:

java -jar F:\tuscany-sca-1.3.1\modules\tuscany-node2-launcher-1.3.1.jardomain

3)打开一个IE窗口,地址为localhost:8080/ui/home,如图2所示。

4)加入contribution;

5)加入composite;

6)加入node;

7)启动node。

加入composite是一种“选择”加入。contribution实际上已经把composite包含进去了,所以在加入composite系统给出了可能的composite提示。

一个node包含一个contribution和一个composite,所以在加入node需要“选择”加入一个contribution和一个composite,同时需要输入该node 的网络信息,即主机的IP地址和端口号。

2 结论

基于Tuscany SCA 的分布式应用模型还有其它形式,如单云单结点和多云多结点,单云单结点是Tuscany SCA提供的缺省形式,无需特殊配置和部署,它可以看作本文提出的单云多结点的特例。多云多结点比较复杂,尤其在涉及到多种SCA运行环境下,但是多云多结点可以用单云多结点来组合完成,一个云可以看作是另一个云的客户端。

参考文献:

[1] Tuscany开源项目网站[EB/OL]./.

[2] 王紫瑶.SOA核心技术及应用[M].北京:电子工业出版社,2009.

[3] 梁爱虎.核心技术.SOA思想、技术与系统集成应用详解[M].北京:电子工业出版社,2009.

上一篇:基于欧氏几何的多进制LDPC码的设计 下一篇:计算机课程中任务驱动教学法的应用研究