一种支持Web信息资源服务化的标记语言及其软件工具.docx
《一种支持Web信息资源服务化的标记语言及其软件工具.docx》由会员分享,可在线阅读,更多相关《一种支持Web信息资源服务化的标记语言及其软件工具.docx(7页珍藏版)》请在三一办公上搜索。
1、一种支持Web信息资源服务化的标记语言及其软件工具杨少华1,2 张利永1,2 韩燕波11 (中国科学院计算技术研究所网格与服务计算研究中心,北京 100080) 2 (中国科学院研究生院,北京100039)(yangshaohua)摘要 互联网上聚集了大量基于万维网技术的信息资源,随着SOA的流行,如何将信息资源封装成Web服务以便于自动聚合和广泛重用成为倍受关注的问题。文中提出一种Web信息资源服务化标记语言,并基于该语言实现了一个可视化、半自动的服务化工具Web2WS。Web2WS提供友好的操作界面辅助用户定义Web信息资源的访问规则、数据抽取规则,以及到目标Web服务的映射规则,可方便有
2、效地将基于Web的信息资源封装成Web服务。关键词 Web服务;资源封装器;Web信息集成;Web资源服务化中图法分类号 TP311A Markup Language for Generating Web Services out of Web-based Information Resources and Software Support ThereofYang Shaohua1, 2, Zhang Liyong1, 2, Han Yanbo1 1 (Research Centre for Grid and Service Computing, Institute of Computing
3、Technology, Chinese Academy of Sciences, Beijing 100080) 2 (Graduate University of Chinese Academy of Sciences, Beijing, 100039)Abstract There exist numerous Web-based resources on the Internet. As service-oreiented concepts and architecture proliferate, more and more attention is paid on encapsulat
4、ing Web-based information resources into Web Services for composition and reuse. A markup language for this kind of encapsulation is proposed and a visual, semi-automatic tool called Web2WS is implemented. It provides a user-friendly interface that allows users to define access rules and data extrac
5、tion rules of the web-base information resource and specify mappings from the information resource to the target Web Service. Web2WS can help to generate Web Services from web sites effectively and conveniently.Keywords Web Service; Wrapper; Web Information Integration; Service Encapsulation今天的互联网聚集
6、了大量基于万维网技术的信息资源,如新闻、天气、股票、交通等等。我们通常使用浏览器访问这些信息,而在应用程序中集成这些信息资源并不容易,具体表现在:1)万维网使用HTTP作为客户端与服务器的通讯协议,处理HTTP协议过于复杂;2)信息嵌入在HTML标记的网页中,标签和数据交织在一起,难以分割,而且HTML的格式比较松散,甚至不要求标签的配对,应用程序很难从中抽取数据以及数据的结构关系。以XML、SOAP、WSDL和UDDI等标准规范和协议为核心的Web服务具有良好的封装性、开放性、松散耦合性、平台独立性等优点。如果以Web服务的形式对基于HTTP和HTML的Web信息资源进行封装,应用程序便可方
7、便地集成此类信息服务。同时,以服务作为基本组成元素的服务组合语言(如BPEL等)及相关工具也已成熟,信息资源的服务化也会给应用集成带来极大的方便。本文借鉴数据库领域Web信息抽取和集成方面的工作,提出一种基于XML语法的Web信息服务化标记语言,并基于该语言实现了一个可视化、半自动的服务化工具Web2WS(Web Site to Web Service)。利用Web2WS,开发者只需简单的操作便可实现如下功能:1) 通过浏览网页的方式定义网页数据抽取规则;2) 提供可视化界面定义服务规约说明并建立服务操作接口与Web页面元素的映射规则;3) 自动生成Web服务代码、相关部署文件以及客户端调用代
8、码,发布与测试服务。本文首先对相关工作进行比较分析;第二节阐述Web信息资源服务化的原理,详细介绍服务化标记语言;第三节介绍服务化工具的设计与实现;第四节进行试验和评价;最后是结论和下一步工作。1. 相关工作数据库领域对Web信息抽取和集成研究进行了大量的工作,出现了一些成熟的技术,典型的有封装器(Wrapper)技术等。封装器特指能从Web站点中自动抽取信息并转化为结构化数据的一类程序1。许多封装器生成工具通过学习样本网页的结构以及用户的选择生成封装器。文献23对此类工具进行了较全面的分析和总结,网站4中维护了三十多个封装器开发工具的列表,并进行了一些简要的分析和比较,其中许多工具能够抽取H
9、TML网页中的数据并按一定的格式封装成XML文档。本文实现的服务化工具本质上属于封装器生成工具,但与传统封装器生成工具不同的是本工具生成的封装器是Web服务。生成封装器的关键技术之一是数据抽取与映射规则的定义。许多生成工具提供图形化的交互界面辅助用户定义这些规则,其方式一般有两种:1)基于标记树方式,样本网页以HTML标记树呈现,用户通过选择感兴趣的树结点定义规则,如XWRAP5;2)基于浏览器方式,样本网页直接在浏览器中显示,如Lixto6、SG-WRAP7。浏览器方式对用户屏蔽了HTML代码,更加方便易用。在数据抽取规则的表达上,有的使用W3C推荐的XML定位和查询语言XPath/XQue
10、ry8,9,如SG-WRAP;有的则使用自定义的数据抽取脚本程序,如Lixto使用一种自定义的基于逻辑的脚本语言Elog。生成封装器的另一关键技术是网页的获取。获取一个简单的静态网页只需知道网页的URL,而访问动态网页或HTML表单背后的网页需要了解更多的访问细节,如请求方法(GET或POST等)、参数传递及取值方法等。传统的封装器生成工具更多的关注数据的抽取,对于网页获取的支持较弱,用户如果封装HTML表单背后的网页需要查看样本网页的HTML原始代码,增加了对用户背景知识的要求。现有的Web信息资源服务化方法大都基于封装器技术。Pollock系统10对Web信息资源的服务化分构造时和运行时两
11、步完成:1)构造时使用现有的封装器生成技术对Web信息源进行封装,同时生成Web服务的WSDL文档,2)运行时将封装器虚拟成Web服务,将基于SOAP的交互与封装器特定的交互进行转换。此方法可以重用已有的封装器生成工具,但是要求用户同时熟悉两套系统,而且已有的封装器生成工具往往从数据源角度而非服务的角度考虑Web信息。Web服务网关11是日本东芝公司提出的另一个Web信息资源服务化系统,该系统的特点是提出一个支持多HTML解析器的框架,提供了可视化交互界面完成Web站点到Web服务的封装过程,并可以对生成的Web服务进行基本的管理。但是具体的服务化过程比较繁琐,例如用户需要手工提供网页获取的细
12、节,虽然提供可视化的Web服务封装器描述文档的编辑器,但是相对于边浏览边定义的方式仍较为复杂。2. Web信息资源服务化原理及标记语言2.1服务化基本原理Web信息资源服务化的目标是把网站提供的信息服务封装成Web服务。以列车车次查询为例,用户首先访问网站(如),然后填写车次,提交后转入车次详细信息页面。这个简单实际的例子揭示了获取Web信息的基本过程:访问网页、提交请求、查看结果。将上述过程进行服务化,生成列车车次查询Web服务,它提供一个getTicketInfo操作,该操作返回请求车次ticketno的详细信息TicketInfo,接口如:TicketInfo getTicketInfo
13、(String ticketno)。目标Web服务需要关心以下几个问题:1)如何获取网页的HTML文档?Web服务需要了解目标文档地址(URL)、获取方法(GET或POST)、请求参数、编码信息等细节。2)如何在网页中抽取有用数据?数据抽取依赖于预定义的数据抽取规则,包括数据的定位和文本的抽取,此过程需要对HTML文档进行解析。3)如何封装抽取的数据作为服务的输出结果?抽取数据的封装依赖于预定义的数据映射规则,它定义了Web信息源的请求参数和抽取的结果数据与Web服务规约说明中的操作的输入输出消息的对应关系。图1揭示了Web信息服务化的基本原理:目标Web服务的输入与输入页面的HTML表单元素
14、建立映射,服务的输出与结果页面中的数据通过XPath表达式建立映射,服务首先使用输入参数“填写”HTML表单或链接参数,提交服务器取得结果页面,然后对页面进行分析,抽取数据并按预定义的数据映射规则进行封装,最后返回结果。XPath是W3C推荐的XML路径语言,HTML文档可以表示为一棵文档对象模型(DOM)树,树结点可以由类似下面的XPath表达式进行定位:/HTML1/BODY1/TABLE1/TR1/text()。结果页面表单输入页面提交HTML解析与错误校正车次查询Web服务服务输入服务输出HTML DOM树Xpath关联图1 Web信息服务化原理图2服务运行逻辑图2以车次查询为例详细说
15、明目标Web服务的运行逻辑:第一步服务调用客户端以车次编号TicketNo为参数调用服务操作getTicketInfo(1);第二步服务通过HTTP客户端与远程服务器建立连接,以车次编号为参数发送HTTP请求,取得包含车次信息的原始HTML文档(2,3,4,5);第三步使用HTML解析器将HTML格式化为符合XML语法的Xml-HTML文档(6,7),格式化的过程是将HTML转换成符合W3C的DOM规范的文档,为下一步使用XML定位语言XPath抽取数据作准备;第四步使用XPath引擎从Xml-HTML文档中抽取信息并把结果封装成TicketInfo对象(8,9)。2.2服务化标记语言为了将基
16、于万维网技术的信息服务封装成Web服务,我们提出一种基于XML语法的Web信息服务化标记语言Web2WS ML(Markup Language),利用该语言可以表达数据抽取和映射规则,以及生成Web服务的一些细节。使用该语言编写的XML文档称为服务化文档。本节将给出Web信息服务化标记语言核心元素的定义和语法,为了方便表达,这里使用BNF文法说明语言的语法结构。服务化文档包括六部分:Web2WS=(InputPage,OutputPage,XpathTable,Operation SoapServer,Config),语法结构如图3所示,下面对各元素进行详细介绍:1)InputPage 样本表
17、单输入页面,结构由WebPage定义,其中Url 为页面地址,LinkValuePair和FormValuePair是请求网页的链接变量和表单变量,当type属性为CONST时,直接使用expression的值,为INPUT类型时,expression必须是Web服务的某个操作的输入参数,表示取值来源于服务的输入。2)OutputPage 样本输出页面,结构与InputPage同。3)XpathTable Xpath变量表,每个Xpath变量的path属性对应一个XPath表达式,type属性说明XPath表达式返回的结果类型,TEXT表示返回文本,COUNT表示计算元素的个数,常用于计算中的
18、标记个数。Xpath变量表定义了数据抽取规则,pattern值为正则表达式,用于匹配抽取的文本。4)Operation Web服务操作,在服务化标记语言中直接使用对象定义服务的输入和输出,一个操作的输入由零个或多个InputParam组成,服务的返回结果可以是Property、Bean、Array中的一种,分别对应Java语言中的简单类型、复合类型以及数组类型,其中Property作为定义服务输出的原子类型,Bean通过Property、Array复合或自身嵌套定义,Array定义为Property或Bean的数组。Property的type属性说明值的计算方式,例如type等于XPATH时,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 支持 Web 信息资源 服务 标记 语言 及其 软件 工具
链接地址:https://www.31ppt.com/p-2014096.html