admin 管理员组文章数量: 1184232
2024年4月20日发(作者:web表现标准指的是什么)
维普资讯
第48卷第5期
武汉大学学报(理学版)
J.Wuhan Univ.(Nat.Sci.Ed.)
Vo1.48 No.5
Oct.2002,573~576
2002年1O月
文章编号:0253—9888(2002)05—0573—04
基于XML的软件体系结构描述方法
张功耀,黄水松
(武汉大学计算机学院,湖北武汉430072)
摘要:介绍了当前软件体系结构描述语言语法与概念框架领域中存在的问题.并探讨了使用扩展标记语言
XML来表述软件体系结构作为解决办法的可行性.在借助可交换的体系结构描述语言ACME作为桥梁的基础
上,实现了用XML表述的软件体系结构.
关键词:软件体系结构;体系结构描述语言;扩展标记语言
文献标识码:A 中图分类号:TP 311.52
化描述格式.为了达到这个目标,ACME应为各种
0 引 言
软件体系结构描述语言ADL(Architecture de—
scription languages)是一种形式化语言,它在底层
独立的ADL提供一个中间的交换平台,使得它们
可以在此平台的基础上完成信息的交换.
1.2 ACME与ADL间的联系
语义模型的支持下,为软件系统的概念体系结构建
模提供了具体语法与概念框架 ].ADL强调的是概
念体系结构,它通常要包含形式化的语义理论,并以
此来刻划体系结构的底层框架.虽然这些特点使得
ADL在描述软件体系结构时,具有精确、完全的特
点,但也会导致专业术语过多,语义理论过于复杂等
ACME有7类基本元素,部件(components)、
连接(connectors)、系统(systems)、端口(ports)、角
色(roles)、表示(representations)和表示图(rep-
maps).其中主要用于描述体系结构的元素是系统、
部件和连接,它们用于描述体系结构的元素.部件
表示系统中主要的可计算单元和数据存储.连接表
问题,使其不利于向产业界推广.而XML被设计
成简单易于实现,并且由于XML(Extensible mark—
示部件间的交互,它代表部件间的通讯和协调活
动.系统表示部件和连接所组成的结构.在软件体
系结构的研究领域中有几种类型的ADL,每种都有
各自的优缺点 ],每类ADL的支持工具作用的各
up language)在工业上的广泛使用 ],因此,本文认
为若能够用XML来表示软件体系结构,必将能极
大推广软件体系结构领域的研究成果在我国软件产
业界的使用.基于此,本文提出了以可交换的体系
结构描述语言ACME 作为桥梁用XML语言来描
不相同 ].但是ACME能够同其它的ADL之间进
行交互,在ACME中的某种特征几乎完全可以被映
射到ADL的特征中,映射不会对语言的特征产生
影响,通过增加一些可选项,一些ACME概念能够
被直接映射进ADL的词汇中,表1列出了它们的一
些常用概念的对应关系.
然而另一些ACME概念不能被直接映射到
述软件体系结构的方法.
1 用ACME作为XML与ADL的中间语言
1.1 ACME的基本概念
ADL中,因此,需要在ACME的命名空间中独立地
对它们进行建模.需要强调的是本文并没有象在
ADML(Architecture Description Markup Language)
可交换的体系结构描述语言(ACME)是一种简
单的、通用的软件体系结构描述语言.ACME的目
标是为体系结构设计工具,提供一个可交换的形式
收稿日期:2001—11一O2 十通讯联系人
作者简介:张功耀(1977一),男,硕士生,现从事软件工程研究
中所做的那样 ],完全用XML去表示ACME,而是
维普资讯
574 武汉大学学报(理学版)
表1 ACME与ADL的部分概念术语映射关系对照表
第48卷
试图找到能被共享或与其它ADL相关的构造方 式,并且开发操作这些描述的新工具,对ACME扩
展去描述更加复杂的系统 ].基于上述研究,本文
式,能被与其它的ADL一起使用去表示软件体系
结构L7].为了使ACME中的某些特征能够被完全
映射到ADL的特征中,通过增加一些可选项,AC—
ME中的某些概念就可以被直接被映射到ADL中,
然而另外一些在ADL中没有相应的内容,因此,需
认为采用ACME作为中间桥梁是使得XML成为
一
种新的软件体系描述语言的最佳选择.
由以上讨论可以看出,可以先用XML语言描
2.2用XML语言描述ACME中的元素
要在ACME的命名空间中单独对这些概念建立模
珏 .
述ACME,然后再用ACME来描述软件体系结构.
为了能够用XML语言描述ACME,本文在XML
语言的DTD(Document type Definition)中定义了
2 基于XML描述的软件体系结构
2.1 以ACME为桥梁基于XML语言描述的软件
体系结构原理
基本的ACME体系结构元素类型、名称、属性和出
现的频率等.如下所示:
(?xml version=“1.0”standalone=“no”?)
(!ELEMENT csADL((Architecture l Acme:Property—
由于ACME与软件体系结构描述方法是非常
相似的,因此可以用ACME开发一个新的体系结构
描述语言或者一个应用于专门领域的体系结构语言
提供一个基础,然后我们可以在这个基础上加入自
己的定义和描述来开发一个新的体系结构描述语
言.如图1.
Type)+ l(ComponentType l ConnectorType l PortType l
Acme:ComponentType l Acme:ConnectorType l Acme:Ro—
leType)*))
(!ELEMENT Architecture(Topology?l Acme:Prop—
erty+l(Component l Connector l Port l Acme:Role l Acme:
Representation)*))
(!ATTLIST Port type(top l bottom l in I out)#IM—
PLIED datatype CDATA#IMPLIED name CDATA#IM—
PLIED property CDATA#IMPLIED)
(!ELEMENT Component(Port*,Link*,Acme:
Property ))
(!ATTLIST Component name CDATA #RE—
QUIR:r3 type CDATA#IMPLIED datatype CDATA#
IMPLIED)
图1用ACME在XML语言和
(!ELEMENT Acme:ComponentType(Port*,Ac—
me:Property+))
(!ELEMENT Connector(Port*.Acme:Role*.Ac—
me:Property+))
软件体系结构之间建立桥梁
ACME也提供了一种综合多种体系结构描述
语言的方法,它也提供了一套固定的描述基本体系
结构的描述的符号集,同时提供了一种开放式的附
加信息的描述,这样就使得不同的体系结构描述语
言描述的系统可以共享一个基本体系结构内核,从
而达到不同的体系结构描述语言之间共享的目的.
(!ATTLIST Connector name CDATA#REQUIRED
type CDATA#IMPLIED datatype CDATA#IMPLIED)
(!ELEMENT Acme:Role EMPTY)
(!ATTLIST Acme:Role name CDATA #RE—
QUIRED property CDATA#IMPLIED)
(!ELEMENT Link(Port女))
通过可扩展的附加信息描述,ACME能够兼容不同
的体系结构描述语言.通过定义新的注解描述方
(!ATTLIST Link source CDATA#REQUIRED des—
维普资讯
第5期 张功耀等:基于XML的软件体系结构描述方法
tination CDATA#REQUIRED name CDATA#IMPLIED
linkname CDATA#IMPLIED)
(!ELEMENT Acme:Representation(Architecture+,
Topology?)>
(! ATTLIST Acme:Representation idnum ID#RE—
QUIRED name CDATA#IMPLIED)
通过上面的DTD片段,可以看出,XML具有
描述软件体系结构能力.因此,可以通过某种途径
实现将XML扩展作为一种通用的ADL[9],使其可
以描述软件体系结构.
3 用XML语言表述的基于ACME的客户/
服务器体系结构
3.I 一个用ACME表示的简单客户//R务器体系
结构
如图2所示,用ACME表示的简单客户/JR务
器体系结构客户部件被声明有一个“发送一请求”端
口[1。。,服务器部件有一个“接收~请求”端口.连接
器有调用者和被调用者两个角色.
图2 简单客户/服务器体系结构
3.2用XML表述的基于ACME的带属性的客户/
服务器结构
ACME提供了一种属性描述方法,它包含属性
的名称、类型和属性值等,在ACME中属性类型是
指所有使用的子系统结构描述语言.ACME预定义
了一些简单的类型如整数、字符串和布尔变量等.
带属性的客户/服务器的ACME描述如下:
System Acme—cs2一{
Component client一{Port send—request;
Properties{Aesop—style:style—id—client—
server;UniCon—style:style—id—CS;
source-code:externa1一“CODE—LIB/cli一
ent.C”))
oCmponent server一{Port receive--request;
Properties{idempotence:boolean—true;
source—code:external一“CODE—LIB/
server.C”))
Connector rpc=f Roles{caller,callee)
Properties{synchronous:boolean—true;
protocol:Wright一“...”))
Attachments{client.send—request tO rpc.caller;
server.receive--request tO rpc.callee}}
上述的带属性的客户/服务器体系结构用XML
语言表述为:
(?xml version:“1.0”standalone=“no”?)
(ADL)
(Architecture name=“Acme—cs2”)
(Component name一“client”)
(Port name一“send—request”)(/Port)
Properties name一“Unicon—style”type一
“
style—id”value一“CS”)(/Properties)
Properties name一“source—code’’type一“ex—
ternal”value=“C0DE—LIB/client.c”)(/Properties>
(/Component>
<Component name一“server”)
(Port name一“receive--request”)(/Port)
,Properties name=“idempotence”type一“boole—
an”value一“true”)</Properties)
Properties name=“source--code”type一“exter—
nal”value一“CODE--LiB/server.C”)(/Properties)
(/Component)
,Connector name一“rpc’’、
(AcmeRole name=“caller”)(/AcmeRole)
(AcmeRole name---“callee”)(/AcmeRole)
Properties name一“synchronous”type一“boole—
an”value=“true’’)</Properties)
Properties name一“protocol”type一“Wright’’
value一“…”)(/Properties)(/Connector)
(Topology name一“simple--CS”)
(Link from=“client.send—request”tO=“rpc.cal—
ler’’)(/Link)
(Link from=“server.receive—request”tO一“rpc.
callee”)(/Link)(/Topology)(/Architecture)
(/ADL)
前面用XML语言描述了基于带属性的C/S的
体系结构,以此说明借助于ACME,XML完全能够
描述软件体系结构的能力.通过用ACME将简单
的体系结构转换为带有可选属性的体系结构,就可
以用XML来表达此体系结构.
4 结论
虽然目前用XML通过以ACME作为中间语
言去描述的软件体系结构的这种方法还存在某些问
题,比如说它还不够完善,因为ACME本身还不是
一
个很完善的体系结构描述语言,许多常用的软件
体系结构还未能用ACME表示,但是通过其开发式
的语义框架,使得其它体系结构描述语言能够通过
属性的方式给一些基本的体系结构元素标注一些附
加信息,这些问题都可以解决.并且通过语义分析,
维普资讯
576 武汉大学学报(理学版) 第48卷
我们能够用它在不同ADL之间建立一个交互的基
parison Framework for Software Architecture Descrip—
础.此外,本文前面所描述的DTD包含了被大多数
ADL都接受的核心概念,那些非核心的概念可以利
用XML命名空间的特征通过扩展ADL的语言机
tion Languages[J].IEEE Transactions on Softw,are
Engineering,2000,26(1):70—91.
Es]Robbins j,Medvidovic N,Redmiles D,et a1.Integra—
ring Architecture Description Ianguages with fl Stand—
制来处理.XML命名空间也确保了该ADL在
XML元素中的惟一性.随着工作的深入,本文还需
ard Design Method[DB/OL].http://www.ics.vci.
edu/jrobbins/papers/ics9735.pd1.2001—09—16.
要使用ACME来表示更多、更复杂的软件体系结
构,并以此为基础,逐步形成用XML描述软件体系
结构的规范,进一步改进这种表示方法使其更广泛
的应用于软件系统体系结构的分析设计,使得这种
方法更适用和易于扩展.
[63 The Open Group.ADML Document Type Definition
[DB/OL].http://wv. ̄.opengroup.org/public/
arch/p4/adml/adm1.dtd.2001-10-27.
[73 Khare R,Guntersdorfer M。Oreizy P,et a1.xADL:
Enabling Architecture-Centric Tool Integration with
XML[DB/OL].http:// ̄mow.ftp.ics.uci.edu/pwb/
参考文献:
E l i Shaw M.Garlan D.Software Architecture:Perspec
tires on an Emerging Discipline[M].Englewood
Cliffs.New Jersey:Prentice-Hal1.http://wv ̄.ftp.
ics.uci.edu/pub/c2papers/KGOMT-SE.pd1.1996.
c2papers/KGOMT-SE.pd{.1996.
[83 Nenad Medvidovic。Richard N Taylor.Exploiting Ar—
chitecturol Style tO Develop fl Fcnnily of Applications
[J].IEEE Proceedings—Software Engineering,1997,
144:231—248.
[23 W3C.Extensible Markup Language(XML)[DB/OL].
http://wu ̄.w3.org/xm1.2001—09—16.
an D.Monroe R T,Wlie D.ACME:An Archi—
[3]
Garl
r9]Pruitt S,Stuar D,SuU W,et a1.The Merit of XML as
an Architecture Description Language Meta-Language
[Dt3/OL].http//xm1.coverpages.org/ADL-merit—
of ̄,a.htmo1.2001-11—12.
tecture Description Interchange Language[DB/OL].
http {l 2。CS.cmu.edu/al s/cs/project/able/
[1O]Zhou Zhi—ying.Modern Software Engineering[M].
Beijing:Science Press,2000,174—207(Ch).
ftp/acme-cascon97/acme-cascon97.pdf.2001—09—16.
[43
Medidovic N,Taylor R N.A Classification and COrn—
XML-Based Software Architecture Representati0n
ZHANG Gong-yao,HUANG Shui—song
(School of Computer,Wuhan University,Wuhan 430072,Hubei,China)
Abstract:We research how tO represent software architecture,Firstly,This paper describe the ques—
tion existing in specific syntax of architecture description languages.In order tO resolve the question,we put
forward tO use the extensjble markup language(XML)tO represent software architecture with the help of
exchangeable architecture description languages ACME.Finally,we have realized tO represent the software
architecture is based on ACME expressed by XML.
Key words:architecture description languages;software architecture;extensible markup language
版权声明:本文标题:基于XML的软件体系结构描述方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713597253a642588.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论