转换基于Component的软件架构至基于服务的架构

时间:2022-10-15 07:12:18

转换基于Component的软件架构至基于服务的架构

摘要:快速增长的商务需求使得基于服务的软件构架正变得越来越流行。通过使用web service,可以使得业务流程的电子操作平台更加独立,兼容。ACME是一种用来描述软件架构的通用的架构设计工具[1]。它作为ADL,被广泛运用于软件架构设计。该文章阐述了一种把基于构件的软件架构转化为基于服务的软件架构的方法。

关键词:ACME;XSLT;WSDL;WSBPEL

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2011) 18-0000-02

Component-based Software Architecture Transformation to Service-based Architecture

Zhuang Ping

(EDIPRESSE Group,Shanghai 200052,China)

Abstract:Rapid growth of the business needs of service-based software architecture enables are becoming increasingly popular.By using the web service,can make business processes more electronic platform independent and compatible.ACME is used to describe the software architecture of a common architecture design tools[1].As ADL,are widely used in software architecture design.The article describes a component-based software architecture to translate into service-based software architecture approach.

Keywords:ACME;XSLT;WSDL;WSBPEL

一、简介

如今随着软件系统的规模越来越庞大,软件工程师们深受复杂的软件结构之苦。软件架构成为在软件开发过程中的重要组成部分。目前有很多设计工具可以使用构架描述语言(ADL)来设计软件框架,比如ACME。ACME是一种使软件在不同构架中转换的设计工具[1].基于服务的软件框架是一种软件开发模式。通过WSDL描述的Web service,是独立于操作平台并且可以在全球中通过网络被调用。通过使用WSBPEL使得web service可以相互协作。基于商业需求的上升以及使用web service的规模扩大,服务构件架构(SCA)作为一种新的规范来提供基于服务的软件框架的设计模型。但是该设计模型相当复杂,可读性很差。并且有不可重复性以及不能保证安全性等弊端。由此我们准备设计一个转换软件来解决以上问题。该软件能够把基于构件的软件架构转换为基于web service的软件架构。本文将通过背景介绍和遇到问题以及解决方案来介绍该软件,并在最后给出结论以及未来需要改进的地方。

二、背景

软件或者系统的架构就是系统的框架,它包含了包括了软件构件,构件外部可见属性以及构件之间的关系[2],ACME作为一种简单的普遍的构架描述语言,被应用于设计以及分析软件框架[1]。该语言以及他的扩展包提供了三项基本的功能:框架转换,可扩展的新软件框架设计与分析工具,以及体系架构描述[2]。选择ACME而非其他ADL比如AADl,C2,是因为与其他ADL相比,ACME能更表述构件之间的关系。而web service通过XML信息,遵循SOAP的规范,来连接客户端与服务端。

三、功能实现

本章节将阐述系统的设计与实现。

为了设计系统,我们首先得考虑所使用的转换语言,然后是是元素映射关系。系统工作流程如图1:

(一)转换语言的选择与比较

首先比较目前主流的两种转换语言:

XQuery以及XSLT。XQuery是一种查询语言(拥有程序设计语言的一些特征),他被用来从XML中收集数据[3]。XSLT的功能是转换XML成为另一种“人类可读的”语言。XQuery擅长于静态分析,能大幅度优化SQL语句。但是不能很好处理动态的绑定。相对而言,XSLT处理动态绑定的效果非常优秀,比较适合本项目。由此本项目的传输语言将使用XSLT。

(二)从ACME项目到基于Web-Service项目

1.映射至XML

ACME语言有三个主要元素:元件,连接器,系统与元素的属性。主要的计算流程以及数据存放在元件中。元件之间的关系则是通过连接器来展现。接口标准,元素的性质都是通过属性来定义的。下图展现了一个拥有两个原件并相互通信软件架构例子的结构。

ACMEStudio可以把ACME的语言转换为XML。4对变量陈述了上述例子中Compress和Package之间的关系。

2.XML映射至对象

为了使得转换工具可以在转换时重新构建元件之间的关系,以上所有的xml信息必须存入对象。为了该转换工具的可复用性,输出的XML必须可以同时转换为WSDL和WSBPEL。新的xml文件必须拥有“system”,“component”,“port”以及“connection”元素。“system”展示系统的流程,“component”描述服务内容,“port”和“connection”说明了服务之间的关系。

3.对象映射至WSDL

WSDL是一种用来描述网络服务运算和信息的XMl。WSDL拥有7种元素:“Services”,

“Port”,“Binding”,“Type”,“Message”,“Operation”以及“Port Type”。“Services”用来表现服务内容,“Messages”描述了传输的数据,“Port Type”是抽象运算的集合。“Port”定义了一个绑定的接口。并且为了让WSBPEL能从WSDL里得到信息,必须在WSDL中添加名为“plnk”的元素。根据各元素所定义的功能,我们把ACME中的各元素映射为WSDL的各个元素。如下图:

4.对象映射至WSBPEL

SOAP,WSDL以及UDDI的相互链接是宽松的,并且是独立于操作系统的。而WSBPEL作为一个标准描述了服务内部的信息交换。

在WSBPEL中一共有7种基本元素,“Partner”,“Variables”,“Correlation sets”,“Fault Handlers”,“Compensation Handlers”,“Event Handlers”以及“Actives”。“Partner”连接两个用来描述Partner入口的PortType。因此,在转换工具中,把Role以及Port映射为Partner。“Variables”用来处理流程中的数据,而在ACME中Port描述了数据相关信息。所以在系统中,我们把port的一些属性映射为Variables。“Correlation sets”用来定义数据,信息以及属性之间的映射。由于在ACME中,Port和Role拥有同样的功能,所以我们映射Port和Role至“Correlation sets”。WSBPEL有三种控制器:“Fault Handler”,“Compensation Handler”以及“Event Handler”。但是这三种处理机制并不存在于ACME中。所有的运算都被ACME中的“component”与“connector”所处理。所以并不需要把ACME中的元素映射到这三种控制器。WSBPEL中的Actives描述了服务流程,处理Web Service Related,Control Flow Commands以及Data

Manipulation。而ACME中的Connector软件运作流程.因此,把Connector映射到WSBPEL中的Actives。由于ACME中起始流程是由配置文件来确定的。所以对于树状结构流程,所开发的转换工具可以准确的映射流程,但是对于环状结构流程,系统就无法准确识别。除此之外,在WSBPEL中并不会描述元件的功能,所以不需要把component的属性映射到WSBPEL。如下图:

四、讨论

从研究结果上来看,该软件能够转换ACME设计的,基于component的系统框架成为基于Web service的系统框架。输出的文件可以用来作为线上Web Service服务。开发人员能够在ACMEStudio上对程序进行开发和测试,并且经过转换软件转换,使程序能在互联网上成为基于Web Srevice的软件。然而,由于ACME中并没有有关于WSDL中SOAP以及SOAP绑定的信息,所以我们定义了默认的SOAP以及SOAP的绑定信息。并且在WSDL中的namespace也并不会在ACME语言中提到,所以namespace被默认设为系统名。在WSBPEL中,由于ACME无法非常准确表示出环状程序起始元件(如果是环状程序,选取第一个元件作为其实元件),所以由ACME所开发的系统框架最好还是使用树状结构。

五、结论以及未来的工作

传输component-based软件结构成为service-based结构是一件复杂,繁琐的话题。他依旧有很多问题需要解决,比如新结构的安全性问题,比如如何处理个性化的元素问题,再比如如何确定流程顺序等。该研究与之前研究不同的地方是该研究更注重于Web Service之间的关系,而不是component做什么。.因此该软件传输的是一个系统的流程而不是系统内容。

由此,我们还需要更进一步研究,解决以上问题。

参考文献:

[1]David,G.Robert,M.David,W.(1997).ACME:an architecture description interchange language.In J.Howard Johnson.(Ed.),Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research.pp.7.Toronto,Ontario,Canada.

[2]Bradley,S.David,G.(2004).ACMEStudio:Supporting Style-Centered Architecture Development(Research Demonstration).Proceedings of the 26th International Conference on Software Engineering.pp.1.Edinburgh,Scotland.

[3]Scott,B.Don,C.Mary,F.Daniela,F.Jonathan,R.Jerome,S.XQuery1.0:An XML Query Language.(23January 2007).Retrieved August 26,2008.from the World Wide Web:/TR/xquery/

上一篇:智能光网络控制平面技术的发展研究 下一篇:VRRP技术在校园网络中的应用