新闻源(例如纽约时报、BBC 或路透社)已从 2002 年起使用 RSS 和 Atom 之类的联合技术来发布各个主题的新闻提要。以联合技术为基础的 mashup 可以聚集一名用户的提要,并将其通过 Web 呈现出来,创建个性化的报纸,从而满足读者独特的爱好。Diggdot.us 正是这样的一个例子,它合并了 Digg.com、Slashdot.org 和 Del.icio.us 上与技术有关的内容。
相关技术
本节概要介绍了可以促进 mashup 发展的技术。
架构
mashup 程序从架构上是由 3 个不同的部分组成的,它们在逻辑上和物理上都是相互脱离的(可能由网络和组织边界分隔):API/内容提供者、mashup 站点和客户机的 Web 浏览器。
mashup 站点。即 mashup 所在的地方。非常有趣的是,这不过是因为这里是 mashup 逻辑所在的地方,而不是执行这些逻辑的地方。从一方面来说,mashup 可以直接使用服务器端动态内容生成技术(例如 Java servlets、CGI、PHP 或 ASP)实现为类似传统 Web 应用程序。
另外,合并内容可以直接在客户机的浏览器中通过客户机端脚本(即 JavaScript)或 applet 生成。这种客户机端的逻辑通常都是直接在 mashup 的 Web 页面中嵌入的代码与这些 Web 页面引用的脚本 API 库或 applet(由内容提供者提供)的组合。mashup 使用的这种方法可以称为胖 Internet 应用程序(RIA),这意味着它们是以交互式用户体验为导向的。(胖 Internet 应用程序具有 “Web 2.0” 的一个特点,Web 2.0 是 WWW 的新一代服务。)客户机端进行数据集成的优点包括:对 mashup 服务器的所产生的负载较轻(数据可以直接从内容提供者那里传送过来)、具有更好无缝用户体验(页面可以请求对内容的一部分进行更新,而不用刷新整个页面)。Google Maps API 的设计就是为了通过浏览器端的 JavaScript 进行访问,这是客户机端技术的一个例子。
通常,mashup 都使用服务器和客户机端逻辑的组合来实现自己的数据集成。很多 mashup 应用程序都使用了直接由用户提供的数据,(至少)使一个数据集是本地的。另外,对多数据源的数据执行复杂查询(例如 “请显示在 Kevin Bacon 的电影中出演角色的男演员所购买的房产的平均价格”)所需要的计算是不可能在客户机的 Web 浏览器中执行的。
Ajax
关于 Ajax 究竟是否是一个缩写词(有人认为它表示 “Asynchronous JavaScript XML”)还存在争论。不论如何,Ajax 都是一个 Web 应用模型,而不是一种特定的技术。它包括几种眼球内容的异步加载和呈现的技术:
评论加载中…
![]() |