Web服务可视化的研究

上传人:xins****2008 文档编号:47849401 上传时间:2021-12-25 格式:DOCX 页数:8 大小:44.02KB
收藏 版权申诉 举报 下载
Web服务可视化的研究_第1页
第1页 / 共8页
Web服务可视化的研究_第2页
第2页 / 共8页
Web服务可视化的研究_第3页
第3页 / 共8页
资源描述:

《Web服务可视化的研究》由会员分享,可在线阅读,更多相关《Web服务可视化的研究(8页珍藏版)》请在装配图网上搜索。

1、Web服务可视化的研究日期:2006-05-23来源: 作者:字体:大 中 小 王卫民 郭鸣 苏德富摘 要 可视化不仅是语言环境的发展趋势,还是组件开发的方向。Web服务1作为一种组件开发技术,其可视化也是一个值得研究得课题。本文首先分析了Claus Brabrand博士在他的博士论文Domain Specific Languages for Interactive Web Services2中提出的观点,在此基础上,提出了基于文件下载机制的Web服务可视化解决方案,最后改进了该方案,提出了基于窗体自动生成的Web服务可视化改进方案(WSVL)。关键词 DSL,Web服务,可视化1 DSL的概

2、念DSL3456是Domain Specific Language(领域专用语言)的缩写。DSL是一种用于解决特定领域问题的计算机编程语言,它提供了该领域合适的、固定的抽象概念和符号。DSL通常比较小,侧重于声明而不是过多的规则或命令,并且比通用目标语言(GPL General Purpose Language)的表达能力要差。比如,DSL不能操纵复杂的数据结构。所以领域专用语言也曾被称为应用领域语言、“小”语言或宏语言,与脚本语言紧密相关。像大家熟悉的SQL、Unix shells、makefiles等可以视为领域专用语言7。目前领域专用语言的应用已经渗透到各种领域,如图形图象、金融产品、电

3、话交换系统、各种协议、操作系统、设备驱动程序、网络中的路由器和机器人语言等。由于DSL在领域级别上的高度抽象性,使得其更易于编程、易于验证,提高了产品的生产力、可靠性、可维护性和可移植性,并且可以实现系统级的重用。2 DSL for WS的基本思想Claus Brabrand博士在他的博士论文中,将DSL语言应用于交互式Web服务的研究中,获得了一个有效的解决方案。他的主要思想是:当Web应用程序调用Web 服务时,该服务可以动态地产生HTML文件,该HTML文件可以被浏览器所解释,转换成相应的Web窗体和服务器端组件代码,这样就可以实现Web服务与客户端Web应用程序的交互。Claus Br

4、abrand博士采用了DSL来完成这个过程。论文从四个关键的方面来阐述了他的主张,它们是交互式会话管理、动态HTML/XML的产生、窗体字段验证和并发控制。但是,我们知道,所有的应用程序分两大类,Web应用程序和桌面应用程序。Web服务的使用者不仅仅是Web应用程序,更应该是桌面应用程序。否则,就根本不需要Web服务这种技术了。因为传统的Web应用程序就可以满足和客户端Web应用程序的通信了,且交互性更优。当Web服务的使用者是桌面应用程序的时候,Claus Brabrand博士提出的方案显然就满足不了组件可视化的需求了。同时Claus Brabrand博士主要是从交互式应用的角度来考察Web

5、服务的交互能力的,我们知道,交互并不一定是可视化的。现在我们需要从可视化的角度来重新考察这个问题。3 Web服务可视化的研究可视化的组件比非可视化的组件更好用,更易于维护。当任何一个动态库成了组件,就希望成为可视化的控件,Web服务组件也不例外。该文主要研究了如何将Web服务可视化的问题。提出了自己的一些设想,并在一个Web服务中间件的开发中使用了这种设想。我们首先提出了基于文件下载机制的可视化实现方案,然后改进这个方案,提出了WSVL解决方案。图1 传统的Web服务调用过程图1显示了传统的Web服务的调用过程。我们以一个实例来说明这个过程,比如一个远程的Web服务组件WSAuthentica

6、tion,该组件有一个认证操作,bool Authentication(string username,string password)的操作,其结果是验证传递的用户名和密码,返回验证的结果true或false。我们添加了相应的Web服务之后,我们就可以使用这个组件了。为了客户可以自己输入用户名和密码,我们需要建立一个窗体,它有两个文本框,一个输入用户名,设为EditName,另一个输入密码,设为EditPassword,有两个按钮,一个是“确定”按钮,另一个是“取消”按钮。我们编写确定按钮事件如下:WSAuthentication theWSAuthentication =new WSAut

7、hentication();/建立Web服务对象bool b= theWSAuthentication.Authentication(EditName.text,EditPassword.text);/向这个对象发送消息,要求认证。MessageBox.Show(b.ToString();/显示认证结果。这就是一个完整的Web服务组件的使用过程。但是,在这个过程中,我们发现:第一,这个界面非常特殊,完全可以由客户端或服务器端自动生成;第二,这个过程直接暴露了Web服务的操作。这显然是很不安全的。为了解决这两个问题,同时实现组件的可视化,我们对这个调用过程改进如下图2所示:图2 改进的Web服务

8、调用过程在这个过程中Web服务客户端之前增加了Web服务界面层,由它负责调用Web服务的功能。现在的问题是这个Web服务界面从哪里来,针对Web服务界面的来源,我们有两种不同的设计方案。1)基于文件下载的解决方案第一种就是基于文件下载的解决方案。这种解决方案的最大特点是,界面从Web服务端下载下来。界面可以是语言相关的窗体代码,也可以直接是二进制代码,比如可执行文件。这两种文件的传送方式是不一样的。窗体代码可以采用XML文件的形式传送,二进制代码则不行。在这里我们仅仅讨论二进制代码的传送。首先,我们需要在客户端编写程序,它可以将字节流数组转换可执行文件,并运行,返回调用结果。void *Exe

9、cByte(byte);第二,我们需要在服务器端编写每一个Web服务对应的界面程序。第三,我们在服务器端编写一个额外的文件下载服务方法。它可以将指定的文件转换成字节流传送到客户端。byte DownLoad(string filename);第四,同时我们编写统一的服务调用操作,它会将方法对应的程序转换成字节流。byte Show(string methodname);这样,Web服务的调用过程变成了:WSAuthentication theWSAuthentication =new WSAuthentication();/建立Web服务对象bool *pb=bool*(ExecByte(th

10、eWSAuthentication.Show(“Authentication”));MessageBox.Show(*pb).ToString();/显示认证结果。其中theWSAuthentication.Show(“Authentication”)将认证操作对应的可执行文件转换成字节流,并传送到客户端。ExecByte将该字节流转换成可执行文件,并执行。执行的结果是,屏幕上将出现一个标准的对话框,提示你输入用户名和密码,你输入用户名和密码后,点击确定按钮按钮将调用真正的认证操作,认证操作的结果保存到pb中,如图3所示。图3 认证对话框在该方案中,第一步需要的程序可以直接在开发环境或操作系统

11、中提供;第二步的界面,第三步的下载服务,第四步的统一的服务调用操作都可以由Web服务开发工具自动生成。该方案的优点:(1)大大提高Web服务的安全性;(2)更强的交互能力和统一的调用方式;(3)它还有一个不可忽视的优点是Web服务操作的界面上可以承载广告,费用信息等内容。缺点:(1)服务器要传送大量的程序;(2)由于从Web服务所在的服务器上下载文件直接运行,对客户端来说是不安全的;解决的方法是观察Web服务界面的统一特点,由客户端自动生成界面代码。这就是下面的WSVL的解决方案。2)改进的解决方案WSVL以上的做法值得改进,原因有二:一、服务器端需要编写多个与Web服务相关的额外的程序;二、

12、该程序需要下载到本地,同时在本地要有一个函数来处理这些程序。我们改进这些过程,原因是客户完成Web服务的添加之后就可以知道Web服务有关方法的实现接口,客户端完全可以根据这些接口生成相应的界面和对应的处理程序。例如上述的认证操作,它的界面上将有两个label,一个label的caption是用户名,另一个的caption是密码;有两个edit,窗体有两个数据成员,它们是WebServicesObject,保存这个Web服务对象,另一个是result,保存服务调用的结果。这两个变量都是可变对象;有两个按钮,一个确定按钮按钮,一个取消按钮按钮。一个确定按钮的程序是:thisform.result=

13、thisform.WebServicesObject.Authentication(editusername.text,editpassword.text);thisform.hide;另一个取消按钮的内容是:editusername.text=“”;editpassword.text=“”;我们以伪码来表示窗体设计模式:图4 窗体模式文件图示模式 Form(list,operate,WebServiceType,Type)/模式有五个参数,list表示Web操作的参数名称数组;operate对应Web操作的名称,WebServiceType表示了该操作对应的Web服务的类型。Type则表示该

14、操作的返回值的类型,如图4所示。根据list数组的个数n,界面上将有n个label和n个edit框。其中label的名称由label连接listi组成,它的caption属性为listi,同样edit的名称由edit连接listi组成。i从0开始到n-1:Label:名字为lable+List0,显示为List0Label:名字为lable+List1,显示为List1.Label:名字为lable+Listn-1,显示为Listn-1Edit:名字为Edit+List0Edit:名字为Edit+List1.Edit:名字为Edit+Listn-1有两个变量:一个是Web服务对象,另一个是返回

15、值类型的对象:WebServiceType WebServicesObject;Type result;有两个按钮,确定按钮和取消按钮。确定按钮的程序:(这里用EditI代表第I个文本框的名字。)result=(Type) WebServicesObject.operate(Edit.text,Edit2.text,.,Editn.Text);thisform.hide;取消按钮的程序:edit1.text=“”;edit2.text=“”;editn.text=“”;最后是窗口布局。/模式结束我们可以将该设计模式用XML模式文件表示29。在Visual Studio.Net中可以用设计模式来

16、表示30。在添加Web服务时,让客户端环境中的窗体生成向导来处理这个模式文件,生成所有的窗体文件。生成的窗体文件将有两种形式:可执行文件或环境有关的窗体代码,如果是第一种,处理与上相同,否则处理的时候就完全可以把它当成一个可视化的组件。这就实现了设计时的可视化,这时,我们可以改进生成的窗体的布局,改进界面设计。实现了设计时的可视化后,仅仅需要在设计时添加属性值就行了。编译时这些程序就会和程序员编写的程序一起被编译。WSVL将有两个部分组成,如图5所示。图5 WSVL组成图示一部分是模式文件,它能根据输入的参数产生具体的窗体;另一部分是窗体生成向导。该向导在添加引用时被激发,让用户在选择了要添加

17、的Web服务之后,选择要产生窗体的Web方法,然后该向导就以选中的Web方法的参数列表、它的方法名字、Web服务类型以及返回值类型为参数,执行窗体模版,形成所需的窗体文件。方案的分析:优点:显然,它可以解决基于文件下载机制所带来的不足。缺点:这个方案还有待完善。生成的窗体文件太多也将造成客户端的负担,同时这种方案的实现离不开客户端的支持。当然,如果客户端不支持这个,我们完全可以自己编写一个工具来实现。4 小结Web服务的可视化是一个值得研究的课题,本文主要提出了Web服务的可视化的两个方案。随着Web服务技术的进一步成熟,它的可视化技术的进一步发展,以及MDA工具的不断推广,我们将可以在利用M

18、DA就可以直接得到可视化的Web服务。那时,Web服务完全就可以象本地控件一样地使用了。参考文献:1 柴晓路,梁宇奇.Web Services技术、架构和应用M.电子工业出版社.2003年1月第1版.2 Claus Brabrand.Domain Specific Languages for Interactive Web Services. PhD thesis, Department of Computer Science University of Aarhus Denmark 2002 9.www.brics.dk/brabrand/dissertation.pdf.3 D. Atki

19、ns, T. Ball, M. Benedikt, G. Bruns, K. Cox, P. Mataga, and K. Rehor. Experience with a domain specific language for form-based services. In Proc. Conference on Domain-Specific languages, DSL 97.USENIX, October 1997.4 D. Atkins, T. Ball, G. Bruns, and K. Cox. Mawl: a domain-specific language for form

20、-based services. IEEE Transactions on Software Engineering, 25(3): 334-346, May/June 1999.5 A. van Deursen, P. Klint, and J. Visser. Domain-specific languages: An annotated bibliography. ACM SIGPLAN Notices, 35(6): 26-36, June 2000.6 D. Batory, B. Lofaso, and Y. Smaragdakis. JTS: Tools for implementing domain-specific languages. In Fifth International Conference on Software Reuse, 1998.7 周艳明. 基于领域专用语言的应用软件自动生成J. 计算机工程与应用.2003年10期.124-127.8 Scott Thibault.Domain-Specific Languages: Conception, Implementation, and Application D. PhD Thesis. University of Rennes 1,France, 1998-10.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!