Mashup混聚技术及其教学应用案例_Leo’s E-World Observation(...

来源:百度文库 编辑:神马文学网 时间:2024/04/30 03:52:32
Mashup混聚技术及其教学应用案例2009-05-22 23:35 【摘要】混聚(Mashup)是一种基于Web Services、资源元数据规范等技术的网络应用开发技术,它可以将不同站点或应用程序的数据、资源、API加以混聚来构建新的业务流程,满足新的用户需求。本文介绍了混聚的技术原理、系统架构、主要的开发平台,并结合教学应用实例介绍了Mashup应用的开发方法与流程,并展望了其在教学中的应用。
【关键词】混聚、Mashup、Web Services、Yahoo Pipes、网络教育应用

1. 概念及技术原理
1.1混聚技术发展概况
混聚(Mashup)是近几年伴随着Web2.0和社会化网络的兴起而迅猛发展起来的一种网络应用开发模式,其设计思路是以特定的用户与业务需要为目标,将来自不同站点的数据源和Web服务(Web Services)加以混合与集成,以此构建一个新的应用。

混聚的思想最早启迪于艺术领域。早在20世纪早期,画家George Braque和Pablo Picasso就开创了称为“拼贴画”(collage)的艺术表现形式,这种拼贴的技艺在之后成了“现代派文艺运动”(Modern Art movement,约1850-1950)的重要流派(WikiPedia,2008),这可以视为混聚思想的发源。上世纪后半期,混聚在音乐、电视等流行艺术中开始盛行,音乐(或电视)混聚作品通常是以截取多则其它音乐(或电视)中的片断,加以混编而成(WikiPedia,2008)。

混聚最早作为一种网络应用开发模式为世人所熟知,始于Paul Rademacher开发的Housingmap.com,在这个站点中,他创造性地使用Google Maps地图服务的应用程序接口(API),将来自在线房屋租赁网站Craiglist.org的数据源依据位置信息标识于地图中,使用户可以依据地理位置可视化地选择合适的房源。混聚由此获得广泛认知,并引起业界追捧。众多的网站如Flickr.com、Amazon.com、Google Maps等纷纷以数据源(Feeds)、API、Web Services等方式提供可编程扩展,鼓励第三方开发者与用户以创新的方式重组这些已有资源,构建混聚作品。此外,一些公司如Google、Yahoo、Microsoft、IBM等纷纷推出针对不同技术层次用户的混聚开发工具。

业界的这些努力,为混聚的发展营造了一个良好的技术生态,推动了混聚开发与应用的迅速发展。据混聚技术观察网站programableweb.com的记录,自2007年5月至2008年8月,网络中公开的API由431个增加到907个,而混聚数量则由1900个增加到3328个(图像1)。

图像 1 混聚生态系统发展历程图(数据来源:http://www.programableweb.com)(略)
1.2混聚开发架构的技术原理与结构
混聚应用的系统结构包括数据提供站点、混聚站点与用户端三部分,如图2所示。

图像 2 混聚应用结构示意图(略) 数据提供站点:这是混聚作品开发的基础,它们通常以特定的Web程序接口(API)和元数据标准(如RDF、RSS/Atom)等方式提供用于混聚的应用服务与数据源,以方便开发者搭建新的逻辑与业务流程。目前,已有大量的站点开始提供WEB API,至于RSS/Atom形式,几乎已是所有主流站点的内容发布策略之一。甚至,对于那些没有提供现成API接口的站点,混聚开发者可以应用一种称为“屏幕抓取(Screen Scraping)”的技术,依据特点的应用需求,编写特定的页面内容分析程序进行捕获。

混聚站点:这是整个应用架构的核心,也是设计者整合多个数据来源,并进行特定的数据操作实现业务流程的关键部分。开发者既可以使用动态网络开发语言在服务器端进行混聚,也可以使用客户端脚本(如JavaScript)或Java Applet等在用户端运行环境(浏览器、Widget引擎等)中实现。目前,在浏览器中进行客户端集成是混聚开发的主流,借助AJAX等呈现技术,这类作品可以提供很好的用户体验;而服务器混聚在流程设计与内容处理上有更大的灵活性,因而前景一样非常吸引人。

用户端:用于呈现混聚应用的客户端运行环境,也是用户交互的界面,其核心是Web浏览器,但除了浏览器外,还可以Widget(如Yahoo Widget引擎)方式直接在操作系统中运行。

1.3混聚的分类

对混聚进行分类有助于厘清其发展脉络与应用现状,不同的研究者进行了不同的尝试。

Duane Merrill依据应用程序的外显特征,将目前的混聚作品分为地图类、视频和图像类、搜索和购物类和新闻类4种(Merrill, 2008)。由于混聚是一种对原始数据服务的创意拼接,其应用形式千姿百态,因而具体的混聚程序在形态上未必严格对应于以上分类,并且也有理由相信将来会有新的混聚形态出现。

根据Web程序中混聚技术的应用层次,则可以将混聚分为以下五种(Hinchcliffe,2008),显然这一分类对了解其应用形式与实现方法更有参考价值:

表现层混聚(Presentation Mashup): 这是最浅层的混聚形式,仅仅是将不同来源的数据和信息(甚至是简单的HTML内容)放置在一起。当前的很多Ajax应用和组织门户站点都采用了这一模式。

客户端数据混聚(Client-Side Data Mashup):将来自远程Web服务、数据源等混聚在一起,并对起进行客户端程序编写,使之按特定需求以特定的形式呈现,比如将信息发布者的地址信息转换为地理信息并在地图上显示。

客户端软件混聚(Client-Side Software Mashup):这种混聚方式是在浏览中通过客户端程序设计,使不同的Web应用程序组接(wire)到一起,构建成全新的基于浏览器的应用软件。

服务器端软件混聚(Server-Side Software Mashup):指那种在构建Web应用程序使用外部站点的Web服务的混聚方式。使用当前开放的大量公共API,开发者可以使用一些它们来构建一些外围应用,而将主要精力集中到核心业务设计上。

服务器端数据混聚(Server-Side Data Mashup):这一层次的混聚主要解决的是在来自不同厂商的数据库产品及不同站点间提供数据的混聚。在当前,使用语义Web技术(如RDF、RSS、Atom)用元数据对数据进行增强,从而使数据变得有意义,最终使数据变得适合进行自动化、集成、推理和重用,是一种很好的解决方式。

2. 常见混聚开发平台与开发流程

2.1混聚开发技术及常见开发平台

混聚应用开发的技术门槛较低,有经验的开发者可采用传统Web编程构建混聚程序。此外,还有一些专门的开发环境可以帮助开发者以更快捷、更简单的方式进行混聚程序的设计、开发、调试与发布,如Google Mashup Editor、Yahoo Pipes、Microsoft Popfly,此外,还有一些面向企业用户开发,用于构建组织内混聚生态系统的开发环境,如IBM Lotus的Mashups、Mashup Hub等。
Google Mashup Editor 是Google于2008年上半年推出的一款在线混聚开发软件。它提供了一个Ajax编程框架和混聚开发专用标记语言,此外还提供了在线测试与应用托管服务(阮高峰,2008)
Pipes是Yahoo推出的在线混聚开发平台,提供了可视化的混聚开发、测试与托管服务,并提供了开发者社区,因而用户可以自由地借鉴、学习优秀作品并与作者进行交流,正是如此,Pipes也是目前互联网上规模较大的混聚开发者社区与作品集散地之一。与GME相比,Yahoo Pipes对开发者更为友好,技术门槛更低,有关使用Yahoo Pipes进行混聚开发的实例,将在下文述及。

2.2开发流程

混聚程序的开发一般包括资源收集与逻辑流程设计、资源混聚与流程架构、调试与发布等三个步骤,以下结合具体案例进行介绍。
案例背景:2008年,我国四川地区发生了里氏8.0级地震,造成了人民群众生命与财产的巨大损失。G市某小学打算在这一事件背景下对在校学生开展一次地震知识与防护常识的专题教育,为配合这一活动,学校还制作了一个专题网站。其中某一专题内容要求向学生展示最近一周我国境内发生的里氏2.5级以上的地震区域,并在地图上显示相关信息。G校的教师经与指导课题开展的S高校专家讨论后,决定使用混聚的方式进行专题栏目的开发。
2.2.1资源收集与逻辑流程设计。考虑到本案例所需显示信息的动态性,显然不宜采用手工更新最新地震源信息的做法。为保证信息的时效性与准确性,经查询比较后,开发者采用了美国内务部地质勘测局网站提供的过去1周内2.5级以上地震的数据源,即http://earthquake.usgs.gov/eqcenter/catalogs/7day-M2.5.xml(USGS,2008)。
为将这一数据源中形如“Sichuan-Yunnan border region, China”的文本信息转为可标识于电子地图服务的位置(Location)信息,开发者又引用了Geonames.org网站提供的名为“RSS-to-geoRSS”的Web服务。
2.2.2. 资源混聚与流程架构。本例基于Yahoo Pipes进行混聚程序的开发。具体思路是将USGS的最新地震信息数据源经RSS-to-GeoRSS服务转换为包含位置信息的新源,并并Yahoo地图API解析与显示。其Pipe源码如图像3所示。


图像 3 最近一周中国境内地震源数据混聚作品(略) 2.2.3.调试与发布。利用Pipes提供的在线调试功能,设计完毕后运行(Run)当前作品,此时Pipes会依次调用外部资源,并将源文件“编译”为在浏览器中运行的Web程序。如果相关功能已经实现,就可以发布(Publish)作品了,此时系统会针对你的混聚作品提供一个URL和外部调用ID,本例生成的混聚作品地址是http://pipes.yahoo.com/ruangf/earthquakes,最终显示效果如图像4所示。

图像 4 最近一周中国境内地震数据混聚示意

3. 对混聚开发技术在教育教学中应用展望

3.1混聚技术用于网络教育应用开发的特点

互联网包含了海量教育资源,但资源的分散、无序、重复建设等分布特征又使得很难充分地挖掘其教育功用。混聚作为一种轻量、灵活、针对情境的设计开发模式,有助于教育资源开发者依据特定的需求,对零散的共享教育资源进行二次加工,系统整合,构建学习单元。相对于传统的网络教育应用开发技术,混聚具有以下优势。
内容的混合性和体验的汇聚性。混聚可以将来自不同来源的数据加以混合,并按一些的应用情境进行特定的编排、分类、地图化等操作,以创建具有良好交互性的富互联网应用(Rich Internet Application,RIA),有助于汇聚用户在不同站点的活动,营造连续、完整的网络学习体验。
面向业务,以用户为中心。混聚是一种面向特定的应用需求与业务流程,通过汇聚与特定用户需求相关的数据与应用,不但可以提升用户体验,还能大大提升用户的活动效率。
架构开放,适合快速开发。对开发者而言,采用混聚技术的教学应用可以直接引用丰富的外部资源与服务,并将主要精力放于核心流程的设计与实现,既可以节省宝贵的研发资源,又大大提高开发效率。而随着公共可编程扩展资源与开发工具的发展,其开发的技术门槛将进一步降低。
当然,混聚技术也有一些不足,表现在:(1)以外部数据源与API为基础,这样便受到其功能、版本、访问速度等因素所限;(2)以客户端脚本形式调用外部资源,会带来安全隐患,并且这种引用外部资源的设计也可能会被一些网络安全软件所拦截,影响功能的实现;(3)如果引用的Web服务不支持匿名访问,则会要求校验用户身份,多个此类服务同时调用时,多次的身份校验会影响用户体验,当然,这可由诸如OpenID之类的分布式身份认证方案来解决(阮高峰&徐晓东,2008)。

3.2混聚教育教学应用展望

混聚技术作为一种全新的Web应用开发架构,可以在Web教育资源开发与共享方面给予我们颇多启示。

3.2.1 混聚技术有利于教育资源的共享与充分利用。一方面,借助于已有的用于教育资源共享的软硬件基础设施,混聚技术可以创造性的方式整合已有的多种教育资源,促进与提高了网络教育资源的利用;另一方面,当混聚技术发展到足够高度,有关数据与服务共享的标准也会为更多的教育资源站点所推崇,也有助于资源建设标准化、开放性的发展。
3.2.2 混聚有助于发挥教育参与者群体智慧,并进而催生成熟的在线教育资源生态。混聚开发的技术要求相对较低,使得其潜在的开发者队伍十分庞大,随着诸如Pipes等优秀的混聚开发环境的发展与成熟,混聚很可能会走上全民化的发展趋势,发挥“长尾”的力量,催生出一个更为成熟,更具健康与活力的在线教育教学资源生态。
3.2.3、混聚有可能提高网络学习组织方式的灵活性,实现个体学习的个性化。混聚轻量化的技术特征使得其在设计思想上是传统的网络课程不一样,它比较关注于课程中具体知识内容的深度加工,通过对不同混聚应用的灵活组合,学习组织或个人可以依据个人的兴趣、爱好和已有的学习经验,灵活地设计学习内容与进路;此外,汇聚于混聚生态系统中的大量作品,也是个体进行深入的自主学习和非正式学习的重要资源。

4. 小结

混聚这一网络应用开发模式兼具系统架构的开放性、资源选取的灵活性和技术门槛的低要求性,随着数据共享技术及混聚技术本身的成熟,它在Web应用开发中也会占据更多的比重。对教育领域而言,混聚为我们提供了一种教育资源整合和二次开发的新技术,尽管目前国内外使用混聚技术开发教育应用的相关案例尚不太多,但随着这一技术生态的不断成熟,我们应该对其教育应用前景抱乐观态度。

参考文献
阮高峰(2008),Google Mashup Editor:RSS解析器示例[DB/OL]. http://rssreadertest.googlemashups.com/
阮高峰,徐晓东(2008). OpenID分布式身份认证系统及其教育应用展望[J].中国电化教育.2008(11).
Dion Hinchcliffe(2008). Is IBM making enterprise mashups respectable?[DB/OL] http://blogs.zdnet.com/Hinchcliffe/?p=49
Duane Merrill(2008).Mashups:Web 应用程序新成员.[DB/OL]. http://www.ibm.com/developerworks/cn/xml/x-mashups.html
U.S. Geological Survey(2008). Latest Earthquakes: Feeds & Data[DB/OL]. http://earthquake.usgs.gov/eqcenter/catalogs/
Wikipedia(2008). Mashup (web application hybrid) [DB/OL]. http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid).