Mashup工具的分析与研究,本文主要内容关键词为:工具论文,Mashup论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
收修改稿日期:2009-10-27
[分类号]G250.7
1 引言
Mashup是指将不同来源的数据或服务进行组合,从而构建出一种具有新型功能的网络应用[1,2]。自2005年采用Mashup技术的Housingmaps.com[3]上线以来,Mashup引起了广泛的关注并得到迅速的发展,许多网站如Flicker、Amazon、Yahoo等将Mashup服务建设作为提升自身竞争力的重要策略。Mashup的主要特点是:支持用户对来自机构内或第三方已有资源和服务的集成重用,缩短服务系统构建周期;支持没有技术背景的科研用户自我构建个性化服务系统,使科研用户真正从单纯的网络信息消费者变成消费、生产以及网络服务构建等多重身份。在应用实践上,如果对Mashup用户有较高的技术要求,将严重影响Mashup技术和服务的推广,因此开发智能化工具成为当前Mashup研究与建设的重要内容。根据Forrester分析家G.Oliver Young的预测,到2013年企业级的Mashup技术应用市场规模将有望达到7亿美元[4],广泛的用户需求以及潜在的商业价值将不断推动Mashup工具的研究与建设。
2 Mashup工具研究现状
2.1 Mashup技术方法研究
当前,关于Mashup的技术研究主要集中在Mashup数据获取与呈现技术、数据融汇模型、Mashup组件规范、Mashup运行环境规范、信息安全管理与用户认证机制等方面。其中,MIT图书馆和MIT人工智能实验室项目SIMILE[5]主要研究屏幕抓取技术、语义融汇技术以及融汇信息可视化呈现技术,该项目提出的Timeline、Exhibit、Semantic Bank等技术被很多Mashup工具所采用。Open Ajax联盟则联合统领用户、相关开源工程、贡献Ajax技术工具的公司,积极推动基于Ajax技术的Mashup开发环境、Mashup组件Widget定义、运行环境以及跨平台交互机制、安全管理机制等方面的规范化建设,帮助用户提升Mashup能力,促进Ajax Ecosystem的建设,已经推出了Open Ajax Hub 2.0等标准规范[6]。日本神户大学、中国科学院计算所研究人员分别提出Mashup Tree[7]、嵌套表[8]等融汇数据模型,支持对Web服务连接、数据抽取、数据融合等过程控制以及对新生成综合数据对象的描述。由Blaine Cook、Chris Messina、Larry Halff 及David Recordon共同发起的OAuth[9]协议为Mashup的API认证提供了一种解决方案,目前包括Twitter、Google、MySpace以及中文豆瓣网等都采用了OAuth。文献[10]对Mashup关键技术作了比较详细的分析。
在Mashup工具研发方面,包括IBM、Microsoft、Google、Yahoo、Intel等在内的众多著名国际组织机构、软件公司纷纷加入,开发出了针对不同层次用户的产品。其中Yahoo Pipes是一个非常强大的互联网数据源聚合平台,覆盖了目前互联网上常见的全部数据源。Microsoft Popfly和Google Mashup Editor适合于普通用户,可以用来创建自己的小程序,也可以利用现有组件创建Mashup,并且与其他用户共享。Intel MashMaker提供Mashup网浏览器插件、组件创建工具、应用创建工具、Mashup引擎等。IBM、Xignite、Kapow、JackBe等推出了自己的企业级Mashup系统。欧盟FP7也设立了专门项目Romulus[11],推出了开源融汇工具DERI Pipes、My Cocktail以及支持融汇服务组合的新版本Liferay。
2.2 Mashup工具类型
(1)按获取方式分类
按获取方式不同,当前的Mashup工具可以分为以下三类:
①免费工具,这些工具一般都是支持在线免费使用,有的工具同时发行提供技术支持的商业版本。比较流行的产品有Yahoo Pipes、Microsoft Popfly、Intel Mash Maker、iGoogle、Netvibes、Dapper、Afrous等。
②开源工具,它们通过发布开放源码,支持社区用户在遵循相关策略下的自由使用以及根据个性需求进行二次开发。目前比较有影响的开源工具包括SnapLogic、Apatar、WSO2 Mashup Server、Jitterbit、Intalio | Mashup、Portaneo Posh等。有些工具文档齐全,并建立了比较完善的开源社区,提供代码维护、版本升级等服务。
③商业工具,这些产品需付费使用,主要面向企业用户,它们提供了比较全面的功能,包括安全管理控制功能,支持复杂的企业资源与服务整合需求。代表产品包括:IBM Mashup Center、Denodo、JackBe Presto、Kapow、Twinsoft Convertigo、Serena Mashup Composer等。
(2)按用户对象分类
不同用户群体对融汇工具的功能需求有所不同,按用户对象可以将Mashup工具分为两类:
①面向普通用户的Mashup工具(Consumer Mashups),提供简单易用功能,支持用户自我实现多数据源连接、数据获取与融合,支持基于可视化界面的服务组合、新应用系统构建、发布,支持用户个人资源、服务与社会网络之间的交互等。这类工具通常不具备身份认证、信息安全控制管理功能。
②面向企业级用户的Mashup工具(Enterprise Mashup),它除了具备第一类工具的基本功能外,还支持机构内开发人员灵活方便增加新的数据源,如机构内部自有数据源、遗留系统资源等;支持对第三方系统、平台中的融汇服务的导入以及将本地融汇服务导出到其他第三方平台上;封装信息安全控制与服务管理功能,支持基于授权的融汇服务调用。企业级融汇工具适合建立面向机构、区域用户的集成融汇服务支撑平台。
(3)按功能特点分类
根据功能的不同可以将集成融汇工具分为4类:
①资源适配器型工具(Adapter),即支持用户从各类资源中抽取信息并与自身的数据格式形成映射,以建立新的服务组件。
②数据仓储型工具(Repository),用于建立Mashup组件仓储系统,支持对融汇对象的注册、存储、发现、调用、管理,存储内容可能包括资源对象、组件(Widget)对象、自定义对象、特定格式文件等。用户可以浏览、调用这些对象,甚至可以对其进行评价、描述及推荐。
③服务组合型工具(Transformation/Aggregation),支持建立可视化交互界面,支持用户通过鼠标拖/拉等方式选择资源、服务及组件,并按一定流程进行编排,以构建新的服务系统。
④应用表现型工具(Presentation),支持各类融汇组件在一个统一的界面中进行显示、组合,以构建新的服务应用。
资源适配型及数据仓储型工具偏重于各类组件的生成、存储及管理,属于列表器(Catalogue)类别。服务组合型及应用表现型工具的主要功能采用Catalogue中的各类资源、服务生成新的应用,属于编辑器(Editor)类别。Hoyer等人建立了一个Mashup工具功能分类矩阵,如图1所示。
图1 Mashup工具分类矩阵[12]
3 Mashup工具分析
图1所示的分类模型虽然对Mashup工具进行了细致的划分,但不能绝对地把一个工具归为某个类别,如Yahoo Pipes既属于数据仓储型工具,又具有服务组合型工具的功能,这就导致了分类结果的不明确。本文从另一个角度按照工具的功能将其分为三个类别:数据层融汇工具(Data Mashup Tools)、表示层融汇工具(Presentation Mashup Tools)及企业级融汇工具(Enterprise Mashup Tools)。
3.1 数据层融汇工具
数据层融汇工具主要实现数据获取、数据融合及Mashup输出等功能[13]。利用数据层融汇工具,用户可从多种数据源中获取数据对象。有的工具只能从特定格式的数据源中获取数据,如DERI Pipes[11]只能对XML或RDF数据进行融汇。有的工具支持对多种数据源的访问,包括数据库、CSV、Excel表格等本地数据源,以及网络数据源Web Service(SOAP/REST)、RSS/Atom Feeds,同时支持多种数据描述规范,如XML、HTML、JSON、E-mail、文本文件等。连接不同的数据源采用不同数据获取技术,包括Web Feed技术、API调用技术及屏幕抓取技术[14]。获取数据后,Mashup工具需要对这些格式各异的数据进行相关处理,包括数据转换(Transform)、映射(Map)、过滤(Filter)、连接(Join)、排序(Order)等,最后构建出一个新的综合化的数据对象。为了更方便地实现数据融汇,大部分Mashup工具提供了简易的编辑环境。有些是拖曳式的图形编辑界面(如Popfly),有些则是嵌入到Eclipse等开发环境的插件,用户需通过编程来实现数据融汇操作,有些开源工具同时支持以上两种功能。经过前两步操作,Mashup工具生成一个综合数据对象,可以通过何种形式对它进行输出、保存、发布,不同工具之间存在一定差异。常见的输出形式有以下几种:
(1)输出融汇组件Widget,如表格组件(Data Grid Widget)、图形组件(Chart Widget)、地图组件(Map Widget)、时间轴组件(Timeline Widget)、展览馆组件(Exhibit Widget)等。
(2)输出为分配有ID的文件,如RSS/Atom、RDF、TXT、二进制文件等。
(3)输出为Web Service,如基于SOAP/WSDL的服务、基于REST/WADL的服务等,支持第三方开放调用。
典型的数据层融汇工具包括Yahoo Pipes、Microsoft Popfly、Denodo、SnapLogic、Intalio/Mashup、Apatar、Jitterbit、Talend Open Studio、WSO2 Mashup Server等。其中,Apatar[15]是一个开源的数据融汇工具,它提供了可视化的操作界面以及支持资源连接、数据处理等多种操作组件。Apatar支持对多种数据源的访问,包括数据库、HTML、XML、RSS、Excel、RDF,还提供Amazon、Flicker、Salesforce.com等API调用组件。在数据处理方面,提供的数据操作有Aggregate、Distinct、Filter、Join及Split等。与传统的ETL工具相类似,用户无需编码,只要选择合适的组件并进行配置就能完成数据流程的设计,执行数据流脚本完成数据融汇过程。Apatar的输出类型可保存为本地的数据,如数据库文件、XML等,但它没有提供Web Service发布功能。Apatar的优点是数据处理功能比较完善,可以嵌入到其他开发平台完成更复杂的应用。缺点是数据输出类型少、没有安全控制等功能。
3.2 表示层融汇工具
表示层融汇工具通过封装融汇组件Widget,支持用户以可视化方式选择多个融汇组件并进行个性化组合,从而实现用户自我构建新型服务系统的目标。表示层融汇工具主要包括两方面功能:
(1)支持Widget封装,即创建图形化融汇组件Widget。Widget是指完成特定功能的Web应用,用脚本语言描述,可以嵌入到网页中与其他Widget一起构成新的网页。选用Widget不仅可以融合来自多个系统的应用,还能以个性化的形式将其显示。在Web2.0环境下,Widget以其轻量级、个性化、容易制作、功能丰富、界面美观等特点取得了快速发展。
(2)支持Widget集成组合,包括Widget组件发现、组件向个人页面嵌入、组件外观属性定制、组件在页面中的布局调整、页面风格配置、页面访问控制以及页面发布共享管理等功能。同时,表示层工具还应具备组件Widgets的跨平台导入、导出以及用户评论、标签、分级等社会网络管理功能。
目前,比较流行的表示层组件工具有iGoogle、Netvibes、Afrous。其中,Netvibes[16]是一个基于Ajax技术创建的表示层融汇工具。它允许信息发布者及应用开发人员创建Widget,并保存在Netvibes生态系统中,支持用户持久对Widget的访问调用。Netvibes的目标是支持用户自我构建个人网络开始页面(Startpage),满足用户日常数字生活需要。Netvibes生态系统已经收集到17.5万个Widget,由来自115个国家的1.5万个用户贡献,每月提供的Widget调用服务超过5亿次[16]。在Netvibes网页上,用户可以将Widgets、Feeds、社交网络、E-mail、Video及Blog信息进行集成显示,形成个性化的个人首页。为了统一平台上Widget的标准,Netvibes推出了Widget协议UWA(Universal Widget API),该协议适用于多个Widget平台,包括Netvibes、iGoogle、Windows Vista及手机平台iPhone。
3.3 企业级融汇工具
企业级融汇工具的主要特点是功能非常完善,不但包含数据层、表示层工具的相关功能,而且可以根据企业需求增加一些新功能,如信息安全管理、授权使用控制等。对于企业级的融汇来说,一个完整开发过程要从资源的获取开始,经过数据融汇、Widget封装等一系列操作形成Widget,最后实现Mashup界面的显示[17]。关于企业级融汇工具的体系架构,Gartner提出一个8层模型[18],但其比较复杂,文献[18]提出的5层模型则更有代表性,如图2所示。
图2 企业级Mashup开发工具参考架构[19]
(1)资源访问层(Source Access Layer)实现与关系数据库、Web服务、RSS、网页等数据源的连接,每种数据源需要开发相应的适配器(Adaptor),经注册后支持上一层调用。
(2)数据融汇层(Data Mashup Layer)开发可视化操作界面,支持用户将多来源数据融合成新数据对象,数据融汇操作将依照针对特定需求而事先定义的工作流进行。
(3)Widget封装层(Widget Layer)负责将融汇后的数据与可视化呈现工具融合,生成规范的表示层融汇组件。
(4)Widget组合层(Widget Assembly Layer)支持对Widget聚合(Aggregation)构建个性化页面。
(5)管理控制层(Common Services)负责以上4个层次中的数据管理、操作控制,包括组件注册(Registry)、协作(Collaboration)及安全(Security)三大部分。注册是指对各种组件(数据源连接组件、数据操作组件、Widgets)的注册、检索及管理,此外还包含了版本控制及社区反馈的功能。协作指用户之间的Mashup共享及推荐。安全包含了对用户的登录管理及角色管理等内容。
目前,有代表性的企业级融汇工具主要有IBM Mashup Center、Kapow、JackBe Presto、Twinsoft Convertigo、Serena Mashup Composer等。其中,JackBe Presto[20]产品包括以下组件:Mashup服务器、Mashup设计器及连接器。Mashup服务器用于连接资源及发布服务,Mashup设计器提供创建Mashup组件的编辑环境,Presto连接器则是一个可以与Portal服务器集成、实现Mashup显示的工具。在管理控制方面,Presto使用了一个高可用的数据库(MySQL)来处理失败,还具备安全集成并实现了ActiveDirectory(AD)、LDAP及Computer Associate的Netegrity工具上的单点登录(SSO)。除此之外,JackBe 还通过其Mashup开发社区提供了免费的Mashup培训和支持,用户可以共享自己创建的Mashup。
4 结语
作为Web2.0环境下的新产品,Mashup工具尚处于探索发展阶段,随着相关技术的发展及标准规范的建立,新的Mashup工具在功能上日趋完善、兼容性更强、操作上也更简单,但仍有一些问题需要关注,包括:资源访问时的质量控制问题,既要避免对资源提供方造成知识产权侵犯,又要应对错误或恶意的数据进行过滤,以防其影响工具的融汇性能;用户登录时的安全认证问题,用户身份的确定是对系统的安全保障,也是用户享受个性化服务的基础;资源与服务的共享性问题,加强各组件的规范化建设,支持其他Mashup制造方的调用、组合,把计算机、手机等多类型终端作为服务的接入形式,真正形成一个Mashup生态系统。