问答题
tourist.com是一家在线旅游信息服务公司,其主要业务是为了自助旅游者提供关于旅游线路及周边信息的服务。随着公司业务的不断发展,公司用户要求提供基于位置的增值旅游信息服务,即希望能够在给定位置(利用GPS全球定位系统获取)的情况下得到周边的地理位置、交通、住宿和餐饮等旅游相关信息。FT软件公司承接了tourist.com公司管理信息系统升级的开发任务。该软件公司的领域专家对需求进行深入分析,并结合需求对现有系统的架构和运行模式进行了认真分析,决定采用Mashup(一种基于因特网的内容聚合技术)集成来自其合作网站(假设为P、Q、R、S)的信息,满足用户的需求。具体实现方式是:
(1)利用P网站提供的地图信息,得到用户位置相关的周边地理信息。
(2)Q网站根据用户的位置信息向其提供周边的公交线路等信息。
(3)R网站根据用户的位置信息向其提供周边的住宿信息。
(4)S网站根据用户的位置信息向其提供周边的餐饮信息。
问答题
下图是tourist.com公司进行Mashup的流程示意图,请阅读并补充图中数字标出部分的内容。
[*]
图 Mashup的流程示意图
(1)用户向Tourist网站请求服务,请求页面提供用户的位置信息。
(2)______。
(3)______。
(4)P网站向Tourist网站返回用户所处位置周边的地图信息。
(5)______。
(6)Q网站向Tourist网站返回用户所处位置周边的交通信息。
·
·
·
(7)______。
(8)Tourist网站向用户返回用户所处位置周边整合的旅游信息。
【正确答案】(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)~(5)空缺的内容填写完整。
[*]
【正确答案】(1)仅需要使用现有Web应用程序公开的、基于Web的API(或Web服务)构建应用程序,集成过程相对简单。
(2)直接使用Mashup技术集成两个或者更多的Web API,创建新的特性与功能。
(3)大多采用静态展现技术,当客户端发送请求时,往往需要刷新整个网页。
(4)使用Ajax技术调用基于Web的API,浏览器客户端无须在每次与服务器通信时都重新加载整个页面,动态特性强。
(5)采用SOA思想集成底层系统,强调功能暴露与服务组合,以服务形式集成并暴露现有系统的能力。
【答案解析】本问题主要考查传统的应用集成方案和基于Web 2.0、Mashup技术的集成方式的比较和差异。传统的企业应用集成方案一般需要现有系统平台API层的支持,如Java平台、J2EE和.NET等,集成过程涉及面较广,相对复杂。而基于Web的应用与数据集成时,仅需要使用由现有Web应用程序(如Google Maps)公开的基于Web的API(或者Web服务)来构建应用程序,避免了复杂的集成过程。因此,(1)空缺处应该填写“仅需要使用现有Web应用程序公开的,基于Web的API(或Web服务)构建应用程序,集成过程相对简单”。
基于Web 2.0和Mashup技术,可以直接使用Mashup技术集成两个或者更多的Web API,以创建某种新的特性与功能,因此在(2)空缺处应该填写“直接使用Mashup技术集成两个或者更多的Web API,创建新的特性与功能”。
对于(3)空缺处,传统集成方式下的表现层大多采用静态展现技术,当客户端发送请求时,往往需要刷新整个网页。
对于(4)空缺处,使用Ajax技术调用基于Web的API,浏览器客户端无须在每次与服务器通信时都重新加载整个页面,动态特性强。
对于(5)空缺处,基于Web 2.0和Mashup技术的集成方案使用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、XMIL、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)充分利用客户端的动态特性和计算能力减轻服务端负载。