曹步清 文一憑 王少偉
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)。曹步清,講師,主研領域:軟件工程,服務計算與云計算。文一憑,講師。王少偉,碩士生。