时间:2024-05-04
曹步清 文一凭 王少伟
1(湖南科技大学计算机科学与工程学院,知识处理与网络化制造湖南省重点实验室 湖南 湘潭 411201)
2(武汉大学软件工程国家重点实验室 湖北 武汉 430072)
基于Restful的Mashup应用服务系统
曹步清1,2文一凭1王少伟1
1(湖南科技大学计算机科学与工程学院,知识处理与网络化制造湖南省重点实验室湖南 湘潭 411201)
2(武汉大学软件工程国家重点实验室湖北 武汉 430072)
摘要轻量级Restful架构、采用开放Web API组合得到的Mashup应用,发展迅速、数量众多。开发者用户如何准确、快速地找到所需的高质量Mashup应用,以构建面向Mashup应用的服务系统,成为一个具有挑战性的问题。针对该问题,开发了一个基于Restful的Mashup应用服务系统,采用TF/IDF、Jacard相似度系数等关键技术,实现了Mashup应用的注册与管理、匹配与搜索、Mashup网络构建,以及Mashup应用推荐等功能。测试结果表明该系统界面友好,功能完备,能够帮助开发者用户快速、准确地找到所需的高质量Mashup应用。
关键词RestfulMashup应用Mashup应用匹配Mashup应用推荐
MASHUP APPLICATION SERVICE SYSTEM BASED ON RESTFUL TECHNOLOGY
Cao Buqing1,2Wen Yiping1Wang Shaowei1
1(Key Laboratory of Knowledge Management and Network-based Manufacturing,School of Computer Science and Engineering,Hunan University of Science and Technology,Xiangtan 411201,Hunan,China)2(State Key Laboratory of Software Engineering,Wuhan University,Wuhan 430072,Hubei,China)
AbstractLightweight Restful-based Mashup applications composed by open Web API has become very popular nowadays. It becomes a challenging problem for the users of developer to accurately and rapidly find a desired Mashup application with high-quality to construct the Mashup applications-oriented service system. To solve this problem, the paper develops a Restful technology-based Mashup application service system, it uses TF/IDF, Jaccard similarity coefficient and other technologies, and implements the functions of Mashup applications’ registration and management, matching and searching, network construction and recommendation. Test results indicate that the developed system is friendly in interface, perfect in function, and can help users of developer to find the desired and high-quality Mashup application accurately and rapidly.
KeywordsRestfulMashup applicationMashup application matchingMashup application recommendation
0引言
传统的基于SOAP协议,用WSDL文档描述的Web服务广泛应用于互联网各个领域,但也暴露出了很多问题,比如技术体系复杂、不易组合等。而轻量级的、基于Restful架构的Mashup应用,是当今互联网上新出现的一种服务组合现象。它是将两种或两种以上的Web应用(Web API)混搭在一起,创建一个全新的Web应用,其具有易开发与组合等优点,成为服务计算领域的研究热点[1-3],诞生了诸如Microsoft Popfly, Google Mashup Editor, IBM Mashup Center 等业界优秀的企业Mashup 平台,支持开发者用户组装简单、灵活和动态的Web 应用[4-6]。截至2014 年6 月10 日,著名网站ProgrammableWeb 上Mashup 应用高达7064个。
随着构建企业Mashup平台及应用服务系统愈来愈受到重视,国内外的一些研究者针对Mashup应用的搜索以及推荐等方面,开展了一些相关的研究工作。其中, Bianchini D[7]提出一种Mashup应用推荐系统,通过Mashup组件间的语义相似度计算所获得的值,进行Mashup应用推荐。Maaradji A[8]提出一种基于社会网络的服务组合方法,利用用户的社会网络所集聚的信息,动态地给用户推荐Web API服务。Muhammad R[9]、Cinzia C[10]以及Picozzi M等[11],建立了基于Mashup的服务质量QoS模型,并根据QoS排序进行Mashup服务的推荐。
以上这些工作,利用了语义、社会网络以及QoS等技术,提高了Mashup应用的搜索精度及推荐质量,为面向Mashup应用的服务系统构建提供了重要的技术支撑。然而,它们暂未考虑开发者用户的历史搜索记录,以较为准确地推荐用户所感兴趣的Mashup应用。特别是,Mashup应用、Web API及其Tag描述之间存在着一定关系,利用这种关系构建网络并实现Mashup应用的搜索与推荐,将大大提高其搜索精度与推荐质量[2,3]。
因此,在面向Mashup应用的平台及服务系统构建中,开发者用户如何准确、快速地找到所需的高质量Mashup应用,仍然是一个挑战性问题。在我们前期工作中,提出了一种基于用户使用历史及服务网络的Mashup应用推荐方法[12]。该方法,利用了用户的Mashup应用使用历史,实现了面向Mashup应用网络的相似服务推荐。以此为基础,本文将深入研究基于TF/IDF的Mashup应用搜索与匹配技术、基于Jacard相似度系数的Mashup应用推荐技术,并开发Mashup应用服务系统。系统将帮助开发者用户快速、准确地找到所需的高质量Mashup应用,以提高Mashup应用及其服务系统的开发效率,促进大众服务市场的成熟。
1系统框架与主要功能
基于Restful的Mashup应用服务系统,其框架如图1所示。
图1 基于Restful的Mashup应用服务系统框架
图1所示框架,包括“功能—模型—平台”三个层次,层层递进。其中,“功能”是指设定系统的功能需求,主要包括Mashup应用注册、搜索与推荐。“模型”是指设计系统所需的模型及关键技术;“平台”是指编码开发Mashup应用服务系统。系统的模型及关键技术描述如下:
(1) Mashup应用注册模型该模型包括Mashup应用抓取、领域设定、HTML解析与元数据存储等部分。Mashup应用注册的具体流程为:首先,提供Mashup应用的网络地址,并选定Mashup应用所属领域(比如物流、地图等);然后,解析服务的HTML文件成功能、消息格式、程序语言、协议等信息;最后,将Mashup应用数据存储进数据库,从而完成Mashup应用注册。
(2) Mashup应用搜索模型该模型提供基于关键字的Mashup应用模糊搜索,以及基于关键词的Mashup应用匹配与精确搜索功能。其中,在基于关键词的Mashup应用匹配与精确搜索中,系统将对所注册的Mashup应用文档,进行分词处理,获取内容关键词,构建Mashup倒排索引。利用TF/IDF技术进行文本相似度计算,实现用户搜索关键词与Mashup倒排索引文件之间的匹配,按相似度大小进行排序返回搜索结果。
(3) Mashup应用推荐模型该模型将根据Mashup与Web API的调用关系,Mashup与Tag之间以及Web API与Tag之间的功能标注关系,利用Jaccard相似度系数,构建出大规模的Mashup(相似关系)网络,以向用户推荐相似的Mashup应用或Mashup组合应用。
2系统关键模块实现技术
2.1Mashup应用数据爬取
以ProgrammableWeb网站的Mashup应用数据为来源,采用JSOUP解析器,实现Mashup应用数据的爬取,完成Mashup应用注册。
2.1.1数据来源
著名网站ProgrammableWeb是数据开放的Mashup应用和Web API服务系统。目前,该网站提供了可供开发者用户调用的Mashup应用7064个,Web API服务11 483个。开发者用户可从该网站获得Mashup应用、Web API服务的功能信息,包括名称、URL、提供者、标签等。
本文以ProgrammableWeb上的这些Mashup应用、Web API以及Tag描述为数据爬取来源,并以Mashup
2.1.2数据爬取
2.2Mashup应用搜索
通过开源项目Lucene为Mashup创建索引文件,并利用TF/IDF向量分析法,实现基于关键词的Mashup应用的匹配,以快速、准确地返回满足用户需求的Mashup应用。
2.2.1Mashup索引构建方法
采用Lucene构建Mashup索引的流程为:(1) Lucene是基于关键词索引和查询的,首先进行全文分析,以获得要建立Mashup索引的内容关键词。对Mashup文档进行分词处理,去除the、me、in、once、too”等没有什么实际意义的词,提取词干。具体是由lucene中的Analyzer类实现分词,该类封装了很多种分词方法。(2) 根据内容关键词,建立Mashup倒排索引,提高Mashup应用的检索效率。“倒排索引”是实现单词到文档映射关系的最佳实现方式和最有效的索引结构。把“Mashup文档号—Mashup文档中所有关键词”,转变成“关键词—拥有该关键词的所有Mashup文档号”,建立Mashup倒排索引表。Mashup应用倒排索引构建算法如下所示:
Algorithm1: BuildMashupIndexs
Input: IndexPath
//存储索引的路径//
Output: MashupIndexs
1.Resultset=Mashup
我国的大部分国有电力企业均具有较为庞大的机制,从而导致在开展组织管理的过程中,会出现由于组织庞大而导致组织的管理精细化缺失问题,且许多企业均未能建立有效的高效管理体系。不同于其他工程类型,电力工程的质量问题将严重影响工程的安全性,甚至将存在一定的安全隐患,为国家和人民均带来了巨大的经济损失[3]。在实际施工的过程中,许多施工企业由于缺乏高效的管理体系,导致部分施工人员的施工行为未能得到有效的规范,导致工程内存在许多安全风险,影响了施工管理质量。
//从数据库中获取Mashup的名称、概述、Tags、URL等信息,查询结果存放在结果集ResultSet 中//
2.while Resultset.next()
//遍历结果集//
3.Document doc = new Document();
//doc表示索引中的一行,该数据结构中包含Step4中生成的域信息//
4.Field title = new Field ("summary", summary, Field.Store.YES, Field. Index.TOKENIZED ); //分别为Mashup的名称、概述、Tags、URL等创建相应的域,Field.Store.YES表示该域的存储状态,Field. Store.YES,Field.Index.TOKENIZED表示把每个域都建成可搜索索引//
5.doc.add(Field);
//将该域放入到该索引行中//
6.writer.addDocument(doc);
//将Document添加到IndexWriter中//
7.End while
8.writer.optimize();
//基于原来索引进行索引重建//
9.writer.close();
//关闭资源//
2.2.2基于关键词Mashup应用匹配与搜索
利用TF/IDF向量空间模型,在Mashup倒排索引文件与用户搜索关键词之间进行匹配,获得的Mashup应用结果会根据匹配后的相似度分数进行排序。
在TF/IDF向量空间模型构建中,首先,把每一个Mashup倒排索引文件看作由一系列关键词组成的字符串,每一个词都有一个权重,词会根据在文档中的权重来影响对文档相关性的打分。把所有此文档中词的权重看成一个空间向量模型,向量中的值就是该文档中词的权重,格式为Document={Term1,Term2,…,TermN},对应向量为DocumentVector={Weight1,Weight2,…,WeightN}。然后,把用户搜索关键词看作一个简单的文档,也用向量模型来表示,格式为Query={Term1,Term2,…,TermN},对应向量为QueryVector={Weight1,Weight2,…,WeightN}。最后,把Mashup倒排索引文件向量与用户搜索关键词向量放到一个N维空间中,由N个一维的词(Term),构成一个N维的空间坐标系,如图2所示。
图2 N维TF/IDF向量空间模型
根据以上模型,相似度分数计算如式(1)所示:
(1)
其中,q表示用户搜索关键词向量;d表示所构建的Mashup倒排索引文件向量。
2.3Mashup应用推荐
根据用户需求,除了提供基于关键词的Mashup应用搜索之外,系统将根据Mashup、Web API以及Tag之间的关系构建出大规模的Mashup(相似关系)网络,可以向用户推荐相似的Mashup应用或Mashup组合应用,丰富推荐结果,增强推荐的多样性与新颖性。
Web API是指可调用的网络应用程序接口。Tag是指标签,通常用来描述事物的功能。Mashup、Web API以及Tag三者之间的关系可以表述为:一个Mashup应用由一个或多个Web API组合而成(调用关系);一个 Mashup应用或一个Web API服务,由多个Tag所标注,用于描述它们的功能(标注关系)。我们引入Jaccard相似度系数来度量任意两个Mashup应用的相似度。以任意两个Mashup节点为例,根据它们所共同调用的 Web API或被共同的Tag标签所标注而产生的相似度计算方法,如式(2)所示:
(2)
式中,API(Vi),API(Vj)分别为Mashup应用 Vi,Vj所调用的相应WebAPI集合。TAG(Vi),TAG(Vj)分别为用于标注Mashup应用Vi,Vj的相应Tag标签集合。基于用户的偏好来设置α,β的值,α+β=1。针对任意两个Mashup节点Vi,Vj,如其W(Vi,Vj)在一定的阈值以上,则构建边,由此,Mashup网络将逐步形成。当用户搜索Mashup应用时,系统将在Mashup网络中执行Mashup应用的推荐,这里不详述。Mashup应用网络构建算法如下所示:
Algorithm2: Mashup Application Network Construction
Input:Mashup, Web API, Tag
output:MMN (Mashup-Mashup Network by Web API and Tag)
1.DataSet={{Mashup1,…,MashupN1}, { API1,…, APIN2}, {Tag1,…, TagN3}}
// 初始数据集,包括Mashup, API 以及Tag数据存储信息 //
2.FOR i=1 TO N1
//构建Mashup应用网络//
3.FOR j=i TO N1
//以下变量Num1, Num2为相同API与Tag计数//
4. { IF(Mashupi.Api=Mashupj.Api) Num1++;
5. IF(Mashupi.Tag=Mashupj.Tag) Num2++;
6. Construct Viby Mashupi, Vjby Mashupj;
//构建顶点集//
8. IF(W(Vi,Vj)>0)
9. Construct E (Mashupi, Mashupj); }
//构建边集//
10.END FOR
11.OUTPUT MMN
//输出MMN网络
3原型系统实现及效果
3.1系统配置
本系统应用MVC设计模式思想,使用Java语言进行开发,主要用到的软件有:(1) JDK(J2SE Development Kit)1.6:Java程序开发包;(2) MyEclipse集成开发平台;(3) MySQL数据库;(4) Lucene2.2.0:实现索引和搜索的Java类库;(5) Tomcat 6.0(Servlet/JSP容器);(6) JUNG2.0.1:一个用Java来建模、分析和做可视化图表的框架;(7) Cytoscape Web 1.0.1:生物信息网络关系软件,实现网络可视化显示及网络拓扑结构分析。
在以上这些程序包配置和安装之后,可实现对本系统的访问和操作, URL为http://125.221.225.2:8080/Mashup/。
3.2系统实现与效果
原型系统的主界面,如图3所示,主要由Mashup应用搜索框、Mashup应用注册消息窗口、用户注册与登录窗口和所构建的Mashup网络浏览窗口所组成。
图3 原型系统主界面
3.2.1Mashup浏览与搜索
系统实现了基于关键字的Mashup应用模糊搜索功能,提供普通搜索与高级搜索两种功能。其中,图4为普通搜索界面,显示了搜索关键字为“google”的Mashup应用搜索结果列表,包括Mashup应用的Name、Description、APIs、Tags等详细信息。图5为高级搜索界面,提供包括Name、Description、Tags、APIs、Date等在内的Mashup应用组合搜索选项。
图4 基于关键字的普通模糊搜索界面
图5 基于关键字的高级模糊搜索界面
此外,系统利用TF/IDF模型,实现了基于关键词的Mashup应用匹配与精确搜索功能。图6为搜索Mashup应用“book”的结果。系统采用了Lucene构建Mashup倒排索引,并利用TF/IDF技术,实现了用户搜索关键词与Mashup倒排索引文件之间的匹配,搜索结果则根据相似度分数进行排序。该功能比上述模糊搜索更加精准。
图6 基于关键词的Mashup应用匹配与搜索
3.2.2Mashup网络构建及推荐
系统根据Mashup、Web API以及Tag之间的关系,利用Jaccard系数,构建了大规模Mashup网络,可向用户推荐相似的Mashup(组合)应用。在该系统中使用了Cytoscape Web技术(Cytoscape Web,是在浏览器上显示网络图的一个Flash插件,可实现服务网络可视化,显示效果好、界面美观简洁,适合显示以节点为中心的、直径在一定范围内的网络,网络规模可通过节点间相似度大小与具体推荐算法控制)。如图7所示,图上部分是用户所搜索的Mashup应用“album-art-search”的详细信息;图中间部分显示的是以album-art-search为中心的Mashup组合应用推荐网络,该推荐网络以红色节点为源点,直径为5,Mashup应用节点相似度在0.6以上;图下部分是该网络的一些具体信息(包括节点数、边数等),以及网络中某个Mashup应用的详细信息。
图7 Mashup应用网络构建及推荐
针对以上的Mashup应用网络,可实现多种操作(如图8所示):(1) 单击Mashup节点或者每条边,则会显示该节点或边的详细信息。双击某个Mashup节点则进入其详细信息页面;(2) 提供了Force、Directed、Circle、Radial、TreePreset等六种Mashup应用网络布局形式;(3) 可放大、缩小、拖拽、移动Mashup应用网络;(4) 可将该网络导出为png、svg等图片格式;(5) 提供以Mashup节点相似度为阈值的边过滤,有选择性地推荐相似Mashup应用。
图8 Mashup应用网络操作界面
4结语
本文针对Mashup应用的搜索与推荐问题,重点研究了基于TF/IDF技术的Mashup应用匹配与搜索方法、利用Jaccard相似度系数的Mashup应用网络构建及推荐技术,并开发一个基于Restful的Mashup应用服务系统。该系统实现了Mashup应用的注册与管理、匹配与搜索、网络构建与推荐等功能。在将来的工作中,我们将引入Mashup应用的提供者与使用者信息,从社会网络角度深入研究Mashup应用的推荐。
参考文献
[1] Keman Huang,Yushun Fan,Wei Tan,et al.BSNet:a network-based framework for service-oriented business ecosystem management[J].Concurrency and Computation:Practice and Experience,2013,25(13):1861-1878.
[2] Keman Huang,Yushun Fan,Wei Tan.An Empirical Study of Programmable Web:A Network Analysis on a Service-Mashup System[C]//ICWS 2012,Honolulu,Hawaii,USA,2012:552-559.
[3] Jian Cao,Wenxing Xu,Liang Hu,et al.A Social-Aware Service Recommendation Approach for Mashup Creation[J].International Journal of Web Services Research,2013,10(3):53-72.
[4] 潘伟丰,李兵,邵波,等.基于软件网络的服务自动分类和推荐方法研究[J].计算机学报,2011,34(12):2355-2369.
[5] Ding W,Wang G A.Pattern-Oriented Impact Analysis Approach for Mashups[C]//SOSE,2010:55-58.
[6] Elmeleegy H.Mashup advisor:A recommendation tool for mashup development[C]//ICWS,2008:337-344.
[7] Bianchini D.A Recommendation System for SemanticMashup Design[C]//2010 Workshops on Database and Expert Systems Applications,2010:159-163.
[8] Maaradji A.Towards a Social Network Based Approach for Services Composition[C]//2010 IEEE International Conference on Communications (ICC),2010:1-5.
[9] Muhammad Raza.A Methodology for quality-based Mashup of Data Sources[C]//IIWAS2008,2008.
[10] Cinzia Cappiello.A quality model for Mashup Components[C]//Web Engineering:2009.Web Engineering,Lecture Notes in Computer Science,2009:236-250.
[11] Picozzi M.Quality-based recommendations for Mashup composition[C]//ICWE,2010:360-371.
[12] Buqing Cao,Jianxun Liu,Mingdong Tang,et al.Mashup Service Recommendation based on Usage History and Service Network[J].International Journal of Web Service Research,2013,10(4):81-100.
[13] 马于涛,何克清,李兵,等.网络化软件的复杂网络特性实证[J].软件学报,2011,22(3):381-407.
中图分类号TP301
文献标识码A
DOI:10.3969/j.issn.1000-386x.2016.02.004
收稿日期:2014-06-12。国家自然科学基金项目(61272063,6140 2168);软件工程国家重点实验室开放基金(武汉大学)(SKLSE2014-10-10)。曹步清,讲师,主研领域:软件工程,服务计算与云计算。文一凭,讲师。王少伟,硕士生。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!