问答题
下图是tourist.com公司进行Mashup的流程示意图,请阅读并补充图中数字标出部分的内容。
【正确答案】(2)Tourist网站接收请求,将请求分解为对多个网站的数据请求调用,并为发起调用进行准备。
(3)调用P网站提供的Web编程接口,给出(提供)用户的位置信息,请求地图信息。
(5)调用Q网站的内容信息获取接口,给出(提供)用户地理信息,请求用户周边的交通信息。
(7)Tourist网站根据用户的请求信息进行数据内容聚合
【答案解析】[解析] Mashup程序从架构上是由客户机的Web浏览器、Mashup网站和API/内容提供者等3个不同的部分组成的,它们在逻辑上和物理上都是相互脱离的(可能由网络和组织边界分隔)。Mashup的主要工作流程是:当移动用户向Mashup网站发起一个请求时,通过GPS系统附带自身的位置信息;Mashup网站接收请求,并将请求分解为对多个服务网站的数据请求调用,并为发起调用进行准备:针对不同服务网站的调用接口,采用不同的调用方式;最终在Mashup站点将请求信息进行数据内容聚合,并将用户所处位置的整合信息返回。针对上图,具体而言tourist.com公司进行Mashup的工作流程如下。
(1)用户向Tourist网站请求服务,请求页面提供用户的位置信息。
(2)Tourist网站接收请求,将请求分解为对多个网站的数据请求调用,并为发起调用进行准备。
(3)调用P网站提供的Web编程接口,给出(提供)用户位置信息,请求地图信息。
(4)P网站向Tourist网站返回用户所处位置周边的地图信息。
(5)调用Q网站的内容信息获取接口,给出(提供)用户地理信息,请求用户周边的交通信息。
(6)Q网站向Tourist网站返回用户所处位置周边的交通信息。
(7)调用R网站的内容信息获取接口,给出(提供)用户地理信息,请求用户周边的住宿信息。
(8)R网站向Tourist网站返回用户所处位置周边的住宿信息。
(9)调用S网站的内容信息获取接口,给出(提供)用户地理信息,请求用户周边的餐饮信息。
(10)S网站向Tourist网站返回用户所处位置周边的餐饮信息。
(11)Tourist网站根据用户的请求信息对相关的地理位置、交通、住宿和餐饮等信息进行数据内容聚合。
(12)Tourist网站向用户返回用户所处位置周边整合的旅游信息。
问答题
在该项目建设过程中,tourist.com网站欲整合Google等网站提供的地图信息,为用户提供新的旅游信息增值服务。FT公司负责网站建设的工程师提出了两种解决方案,第一种方案拟采用传统的应用系统集成方法,集成来自不同源的数据。另外一种采用基于Web 2.0的Mashup技术,从不同的数据源抽取数据,聚合并转换数据,在不同的上下文中使用,具体如下表所示。请阅读并将表中空缺的内容填写完整。
【正确答案】(1)仅需要使用现有Web应用程序公开的、基于Web的API(或Web服务)构建应用程序,集成过程相对简单。
(2)直接使用Mashup技术集成两个或者更多的Web API,创建新的特性与功能。
(3)大多采用静态展现技术,当客户端发送请求时,往往需要刷新整个网页。
(4)使用Ajax技术调用基于Web的API,浏览器客户端无须在每次与服务器通信时都重新加载整个页面,动态特性强。
(5)采用SOA思想集成底层系统,强调功能暴露与服务组合,以服务形式集成并暴露现有系统的能力
【答案解析】
问答题
基于Web 2.0的Web应用十分强调用户的体验与感受,Ajax是目前广泛使用的表现层技术。请用300字以内的文字简要介绍Ajax的核心思想,并列举两个在使用Ajax时需要关注的效率问题。
【正确答案】核心思想是以下几种现有技术的组合。
(1)XHTML和CSS。
(2)使用文档对象模型(Document Object Model)进行动态显示和交互。
(3)使用XML和XSLT进行数据交互和操作。
(4)使用XMLHttp Request进行异步数据接收。
(5)使用JavaScript将它们绑定在一起。
需要关注的效率问题:
(1)替换部分而不是全部HTML网页。
(2)不要在没有必要的情况下使用轮询计时器。
(3)根据不同的情况,考虑传递不同格式的数据(JavaScript、XML、HTML和XHTML等)。
(4)充分利用客户端的动态特性和计算能力减轻服务端负载。
【答案解析】[解析] Web 2.0是目前Internet上Web应用的新模式,其概念由Tim O'Reilly于2003年首次提出。目前Internet上已经有很多基于Web 2.0的Web应用系统。基于Web 2.0的Web应用十分强调用户的体验与感受,Ajax是目前广泛使用的表现层技术。事实上,Ajax并不是一种全新的技术,而是以下几种现有技术的组合。
(1)XHTML和CSS。
(2)使用文档对象模型(Document Object Model)进行动态显示和交互。
(3)使用XML和XSLT进行数据交互和操作。
(4)使用XMLHttp Request进行异步数据接收。
(5)使用JavaScript将它们绑定在一起。
针对这些技术的特点,在使用Ajax时,从性能方面考虑,需要注意以下几个问题。
(1)替换部分而不是全部HTML网页(这是Ajax核心思想的体现)。
(2)不要在没有必要的情况下使用轮询计时器。由于JavaScript是单线程的语言,不恰当的使用轮询计时器会大大降低程序的运行效率。
(3)根据不同的情况,考虑传递不同格式的数据(JavaScript、XML、HTML和XHTML等)。
(4)充分利用客户端的动态特性和计算能力减轻服务端负载。