和 SOA 一样,mashup 也不是一个新的概念,但现在它却得到越来越多厂商的支持,包括 IBM、BEA 等。在 Uche Ogbuji 撰写的真实世界中的 Web 2.0:了解 digg.com 和 Reddit 这两个 Slashdot 的后继者文章中,对 digg.com 和 Reddit 两个典型的 Web 2.0 网站进行了剖析,并指出 mashup 的价值。
mashup 是一个 Web 2.0 站点的数据与另一个站点数据的综合,对这种新风格举足轻重,因为它们展示了这类站点是如何将灵活性赋予网站用户及网站所有者的,而且它们也消除了引入那些立足于成型的想法之上的新思路的障碍。mashup 是一种综合了多种资源的 Web 站点。有时,这些资源的数据类别不同;mashup 可以将来自一个站点的当前的运动比赛分数叠加在来自与之相匹配的 Web 服务的运动事件的地图之上。Web 2.0 站点的特点之一就是它们试图充当类似美联社或路透社的角色,旨在为其他网站或信息服务商提供信息来源。
mashup 与 Portal 的最明显区别就是,Portal 是将原有的数据简单地组合在一起,相互之间并没有更多的交互。而 mashup 最突出地方就是它能够充分利用从外部检索到的内容来创建全新的服务。在 IBM developerWorks 中国网站较早的审视Ajax 的系列文章中,用图形很好地表达了这一观点:
目前比较常见的mashup 应用类型主要包括地图mashup 如Google Maps、微软的Virtual Earth,视频和图像mashup 如Flickr,搜索和购物mashup 如eBay 和Amazon,和新闻mashup 如Diggdot.us 等。但与其他很多数据集成领域一样,mashup 开发也面临着严峻的技术挑战, Duane Merrill 对此做了比较深入的讨论:
除了缺少数据和映射不完整之外,mashup 设计者可能会发现他们希望集成的数据并不适合进行机器自动化处理;……mashup 开发人员可能还必须面对 IT 集成管理人员不需要面对的一些问题,其中一个问题是数据污染。……mashup 开发人员需要面对的另外一种集成问题是由于获取数据必须采用屏幕抓取技术而引起的。
除了技术挑战之外,随着 mashup 的逐渐普及,相应的一些社会问题也会越发凸显。
现在 mashup 开发人员需要面对的一个最严重的社会问题就是:如何在知识产权的保护和消费者的私密性,以及信息的自由流动之间达成一种平衡。因为内容提供者、提供 API 帮助数据检索的内容提供者都可能需要确定其内容是否正在被他人在未获得自己批准的情况下使用。
评论