MushUp综述

Mashup研究综述

1摘要

Mashup的出现使得开发更加方便,随着越来越多的信息提供者公开自己的API,用户变成开发者加入到开发Mashup的队列中各种新型的Mashup应用在网络上出现。Mashup作为Web2.0的特性能够对数据资源进行整合与利用提升数据价值。

2 引言

Mashup一词起源于音乐,即把来自两种或两种以上歌曲的音乐片段组合成一首新歌。在计算机领域,Mashup是一种新型的基于Web的资源集成应用程序,指整合网络上两个及以上外部资料来源或功能,以创造新服务的网页或者应用[2]。总体来说Mashup是一种集成方案,与传统资源集成方案不同,Mashup提供了一种基于Web的轻量级的内容集成方法,而且由于组成Mashup的服务和应用本来就是面向最终用户的,所以即使没有任何编程技能,用户也可以根据需要组装出自己的Mashup应用程序[1]。Mashup的出现使得开发更加方便,随着越来越多的信息提供者公开自己的API,用户变成开发者加入到开发Mashup的队列中,各种新型的Mashup应用在网络上出现。

3 国内外研究现状

Mashup应用发展迅速,来自名为programmablwb网站的数据显示,截至2009年8月22日,全球在网站上注册的API数1430个,基于API开发的Mashup应用达到4261个,平均每天增长约3个,开放API的出现促进了用户进行Mashup开发的热情,使之在各领域得到迅速发展,其典型应用领域有[3]:

①地图Mashup,地图是Mashup最主要的应用领域,约占其所有应用的35.9%。人们搜集大量有关事物和行为的数据,而这两类数据常具有位置注释信息,所有这些包含位置数据的不同数据集均可利用地图通过图形化方式呈现出来。②图片和视频Mashup,内容提供者拥有与其保存的图像相关的元数据,Mashup的设计者可以将这些照片和其他与元数据相关的信息进行关联。③搜索和购物Mashup,在Mashup这个术语出现之前,搜索和购物Mashup就已经存在很长时间了。在WebAPI出现之前,有相当多的购物工具,都使用了B2B技术或屏幕抓取的方式来累计相关的价格数据。

为了促进Mashup和其他web应用程序的发展,诸如eBay和Amazon之类的消费网站已经发布了自己的API以供开发者调用。文献资料显示,学者们探究的Mashup应用研究方向却大相径庭,涉及的主要领域有:

企业:Mashup与企业结合是国外学者研究的热点之一。由于移动运营商可以借助Mashup拓展产业链、全面进入信息领域,mashup在移动互联网上的应用是学者研究的重中之重,并取得了一定成果:我国学者郭靖和郭晨峰对Mashup.应用于移动互联网的应用前景、关键问题、实现平台及主要的应用方向等做了介绍;芬兰与德国学者提出了一个TELARMashup平台,该平台基于客户端服务器的解决方案,有利于为移动设备建立一个基于位置信息的Mashup系统;日本学者提出了一个应用于移动互联网的Mashup工具,目的是为移动用户提供一个个性化的显示方式,同时整合了一些其他的服务。然而,Mashup在企业中的应用并不仅仅局限于移动互联网行业,学者同样研究了适用于广大企业的Mashup平台,代表性的有美国学者提出的企业Mashup应用平台(EMAP),详细探讨了EMAP的模型及架构,分析了企业Mashup取得成功的关键因素。实践证明通过这个灵活的平台,Mashup应用开发商能够迅速地编写企业级质量的应用,用户则可以简便地创建高度个性化的应用。

生物医学:生物医学领域中庞大的数据信息以不同的存储格式分布在不同网络环境的数据库中,急需一种网络技术或工具把它整合起来以便于应用。加拿大学者详细介绍了Bio2RDFMashup系统,开发了整合帕金森症四个转录因子基因相关信息的Mashup系统;耶鲁大学学者探讨用Mashup来整合医疗卫生和生命科学信息。

其他:包括Mashup在图书馆、教育、音乐等领域的应用。Mashup在图书馆主要用于图书馆书目信息服务,教育界则主要是网络学习方面。互联网中各类信息的海量增长,必将促使Mashup在更多领域得到更广泛的应用。

4 Mashup关键技术

4.1 Mashup体系架构

信息服务Mashup的产生是受用户交互及第三方资源集成发展的影响,资源和API的开放是其产生的前提,所以一个Mashup应用是一个三元模型,即包括API/内容提供者、Mashup服务器和Mashup应用者,如下图[4]所示:

其中,API/内容提供者负责提供Mashup集成的信息内容。Mashup服务器负责把所获得的或者是自己的资源和服务封装成标准组件,并管理这些组件,同时响应应用程序对于资源、服务的开放调用。Mashup应用者选择相关资源将其融合到自己的门户或其他应用系统中,并通过客户端浏览器以图形化的方式呈现出Mashup应用结果。

在Mashup三元模型的基础之上,创建一个Mashup应用的基本流程是:首先,Mashup服务器提供各种服务(如WebService)的列表,由于资源及服务提供者所提供服务的差异性,需要由Mashup组件创建者选择相关的服务,并封装成标准的组件接口;其次,Mashup服务器建立Mashup组件库,并发布和管理这些组件;最后,Mashup应用者从Mashup服务器中选择相关的标准组件,创建出一个Mashup应用。

4.2 Mashup资源获取技术

Mashup在Web上的广泛应用,其中一个推动力是许多公司公布了自己的API,自从Google公司公布了GoogleMapsAPI开始,Web开发人员可以在任何的场合包含地图数据。紧随其后,更多的信息提供商以及消费服务网站相继公开了自己的API,使得Web开发人员可以方便地调用所需要的资源,进行服务创新。当然,Mashup资源获取技术不止这一种,笔者认为可分为如下几种。

(1)WebFeed方式

在Mashup中,有大量关于内容的集成,以RSS为代表的简单内容联合,使得应用程序开发人员不用花费时间开发自己的文件格式、传输协议和软件来实现内容的联合,只需使用RSS即可。这些联合技术对于集成基于事件或更新驱动内容的Mashup来说都非常有用,例如新闻和Weblog聚集程序。

(2)公共接口API方式

这种Mashup资源获取技术是指内容提供者发布自己的公共接口API,Mashup服务器通过SOAP或者XML-RPC协议与内容提供者进行请求与响应的通信,把数据传递到Mashup服务器端。API需要用户传递相关的参数,返回用户的内容取决于这个参数。如Amazon,eBay,Flickr,Google,Microsoft,Yahoo,You-Tube等都发布了自己的公共接口API。由于调用API需要通过SOAP协议,而这一协议要求调用者熟悉服务描述与发现机制(WSDL、UDDI),所以比较适合用户已知、共用一个数据模型的闭合应用环境中[5]。SOAP接口过于复杂,对接口方法调用顺序、参数类型等有一定约束,不能完全适应Mashup开放的、分布式的、可伸缩的Web需求。

(3)REST协议方式

针对使用API调用资源的复杂性,一种新的资源获取方式正在逐渐兴起。它不需要内容提供者提供自己的公共接口API,服务请求者(Mashup服务器或者是客户端浏览器)只需要了解REST协议,就可以访问内容提供者的资源。REST(RepresentationalStateTransfer)是一种只使用HTTP和XML进行基于Web通信的技术。实质上,REST也是一种实现WebService的架构风格。它直接工作在HTTP协议之上。REST从根本上来说只支持几个操作(即Post、Get、Put、Delete),这些操作适用于所有的消息。REST强调信息本身,称为资源。在基于REST的WebService中,每一种资源由一个唯一的URI来标识,当服务接到请求时,它根据URI来知道要如何响应。REST协议不但接口简单,而且具有可伸缩、可信赖等优点[6]。越来越多的服务供应商都提供对REST的支持,如Amazon、Google、Yahoo等。SOAP支持者也开始分享REST经验。越来越多的Web服务工具(如ApacheAxis2与CXF)开始提供对REST的支持。

4)屏幕抓取(ScreenScraping)方式[7]

大部分公共领域的数据是没有提供API的,Mashup创建者所需要的内容或资源可能需要直接从网上获取,屏幕抓取是使用软件工具从HTTPResponse的HTML页面中提取出可以通过编程进行使用和操作的信息及其语义结构[9]。

4.3 Mashup服务器技术

Mashup服务器负责Mashup组件的注册、发布、服务代理等功能,同时支持第三方组件调用。它可以是每个信息服务机构(如图书馆、Google等)内部自己的服务器,也可以是公共服务器。Mashup组件在服务器上发布后,其他应用系统才能开放调用。

KapowMashupServer是一个开放的Mashup服务器软件,支持用户连接、获取、融合来自Web上的任何资源。它的MashupService由一个Robot的制作工具以及一个HostingServiceSite所组成。使用者下载以及安装该工具之后,可以在本机开发出MashupRobot,再把Robot发布到ServiceSite上分享给大家使用。一个Robot可以当作一个小的程序,它与网络进行交互或者从网络中抽取数据。非程序员可以使用一套可视化的创建工具编写Robots,并进行维护。通过在一个内置的浏览器中浏览目标网页,用户就可以定义一个Robot的行为。

在KapowMashupServer中执行集成的中心应用程序是RoboServer,RoboServer响应应用程序的请求,然后执行Robot[8]。

5 Mashup存在的问题

数据源的品质与语义不高,虽然已经有很多工作关注如何提高数据的品质,但是离真正目标还有段距离。在企业内部可控的环境里,有很多传统的方法清洗整理数据并保证数据源的可靠性,但是需要大量的人力。开放给Internet用户的数据源情况则更糟糕,一个Mashup程序需要两个甚至更多的数据源,一旦某个数据源变得不可用或者输入输出格式改变,则会带来整个Mashup应用的失效。很多研究者提出语义是提高数据互操作性的良方,同时也做了很多研究工作。但现在还没有一个正式的产品支持语义,如何将其变得实用,也是Mashup领域重要的研究课题。

基于表现层的集成研究不足,多数研究还是集中在基于数据的混合上。Widget是一个具有代表性的可被Mashup的组件,因为它带有可视的界面,所以更易于被用户接受和使用。但现有的使用Widget产品中,Widgets之间只是通过数据连接在一起,在UI层面上还是属于单独的网页块。有关UI如何集成以及组合后UI的相应变化的研究比较少,赵祺等人提出将UI和业务逻辑分离组合的思想,其中提到UI组合时需要调整一些界面元素,但需要用户能懂得HTML、CSS等知识。

安全性、可信性与版权问题,若要Mashup得到真正的商业应用,安全性、可信性和版权问题必须得到解决。J.Warner等人为政府Mashup应用提出了一个隐私保护模型,其中公民可以为他的数据加以单独的隐私策略以限制或授权对这些数据的访问。另外Mashup作为Web上的一种应用,也具有传统Web应用上的安全问题。在多个来源的内容运行在同一个浏览器环境的情况下,安全问题甚至变得更加严重。安全问题已经得到研究界的重视,而且有了一些提议,主要措施有两种:对网页及脚本进行检查和重写,或使用模块化方法使不同源的内容相互隔离并通过接口提供可控制的通信。这些措施在一定程度上改善了Mashup应用环境,同时促使我们设计出更安全的网页语言和更安全的浏览器,以进一步解决安全问题。

6 Mashup推荐

随着服务计算技术的快速发展,功能单一的Web服务很难满足一些复杂多变的业务需求,由它们组合而成的网络化软件也已经成为了重要的发展趋势,为了解决这一问题,一种服务组合模式Mashup被提出。Mashup通过集成多种服务具有易于开发、扩展,方便组合等特点,用户可以根据自身的需求调用Web API来创建Mashup,是实现面向服务概念的有效途径。

网络科技的不断发展,使得各行各业对于服务的需求与日俱增,由服务构成的应用逐渐普及,在线Web服务和API的种类和数量急剧地增加。在此情境下,面对数量庞大的服务群,如何快速地从海量的、功能广泛且不断变化的候选软件服务集中有效的发现、选择和使用适合业务需求的Web API或Mashup,给服务计算等领域带来了巨大的挑战。

推荐技术是解决信息过载问题的有效方式之一,已经有人提出了几种推荐mashup服务的方法,如基于语义的、基于QoS的和基于社交网络的。但用户可能更希望系统为自己推荐感兴趣的Web服务,因此如何挖掘用户的潜在兴趣,是推荐系统需要解决的关键问题之一;对于Web服务来说,原子服务通常不会单独被使用,而是以组合的形式服务于用户,因此应该考虑如何融合Web服务的组合信息为目标用户生成推荐;同时,还应考虑到Web API以及Mashup的加入与退出,系统需要对外部变化进行及时感知,这也是当前软件服务推荐系统需要解决的又一问题。

7 未来的展望

根据业界的Mashup研究应用情况,可以得到一个未来的发展路线图。首先,Mashup正在变得标准化,比如其中的Widget标准、数据源的格式、安全标准等。其次,Mashup将有越来越多的实际应用,以满足用户带有个性化和协作性的需求。最后,由于语义网的发展,Mashup将能真正地使用语义来实现数据的互操作和集成,从而Mashup开发会变得更加简单和自动化,最终达到“每个用户成为开发者”的目标。

8 结语

Mashup是一种新一代的软件开发模式,涉及了Web2.0、SaaS、SOA、Webservices、Wikis等多种技术和应用的融合,它利用了从不同渠道获取的外部数据源检索到的内容来创建全新的创新服务,提供统一体验的互联网应用。

Mashup是基于互联网的内容和应用的聚合。Mashup通过互联网上的开放应用编程接口(API),可以轻松地建立一个新的应用。这就是Mashup最有魅力的地方。Mashup是聚合和重用互联网数据应用的创新模式。由于Mashup对信息和数据进行了聚合,按照用户的输入(包括信息组合模式、信息取舍过滤、信息更新频率等定制信息),最终给出符合用户需要的信息和应用组合,因此根本改变了用户获取信息的方式并形成了新的应用服务。

目前,在互联网上Mashup模式正在得到广泛的使用。Mashup技术的出现极大促进了互联网业务应用的创新,Mashup技术将不同的应用与内容进行聚合,产生新的应用,并促使更多的人参与业务创新和快速服务提供。同时Mashup技术促进服务提供的流程分工更加细化,使互联网应用提供从封闭的应用开发领域走向了服务集成平台,任何人都只做自己最擅长的一部分,基于互联网这个巨大的平台,通过内容和应用聚合,最终使得分工更加细化,产业链的效率极大提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值