Mashup的英文定义为:“ web application hybrid, a website or web application that combines content from more than one source.” 其中文翻译为“web应用的聚合,将来自一个或多个信息源的内容进行聚合的web站点或web应用。”
Mashup是web2.0技术的典型代表。在web1.0时代,每个web站点是相互隔离的,用户访问web站点仅能得到来自本站点的信息;采用mashup技术,来自不同站点的信息通过统一的结构化数据接口实现了聚合,从而实现了更加便捷、直观且丰富的用户体验。
Mashup是一种轻量级的web开发技术,它大大降低了web开发门槛。采用mashup,即使是没有任何编程经验的普通网民也可以轻松开发自己的web应用。这充分体现了web2.0的理念:通过向用户提供统一的platform,充分调动用户的创造力,用户是web2.0的核心。
对于mashup来说,platform便是各种各样的API。目前越来越多的公司开放了自己的API,这已经成为一种趋势。当普通用户通过这些API构造自己的mashup的同时,新的API又被创造出来,从而形成一个生态系统,由于拥有最广泛的用户群和较低的门槛,这个生态系统比现存任何一个生态系统生长的都要快。
AJAX是mashup与生俱来的伙伴,现有的很多API,都是通过AJAX的方式提供出来的,例如Google MAP API。而且为大多数mashup项目,都是要求不能刷新页面的,所以实际开发中经常要使用到AJAX技术。
2. 项目简介
天气与人们的生活息息相关,该项目通过mashup技术融合了地图和天气信息,给用户提供一种便捷的天气查询方式。项目结合了地图的直观性和天气数据的实时性,用户可以方便的点击地图上任何地点,获取当前的天气状况。
项目中的地图采用的是Google地图中文版,天气数据来自国外的一个专业天气预报站点(http://weather.weatherbug.com/)。从天气预报站点获取RSS2.0格式的数据,通过后台处理转换成JSON格式的数据,然后利用Google 地图提供的API将天气信息呈现在地图上,方便用户直观查看。
页面截图
3. 实现方法
本项目采用MVC架构,模式层获取天气数据并转换成JSON格式,表示层利用Google地图提供的API获取地理信息并显示天气数据,控制层通过Servlet实现模式层和表示层的连接。
在模式层中,数据主要通过http://A5338764333.api.wxbug.net/ 这个地址获取,获取的数据是一个扩展的RSS2.0格式的xml文档,格式参见附录。如下图所示:页面由Google地图和天气信息两部分构成,通过点击地图上的任何位置可获得该位置的经纬度信息,并将此信息以AJAX的形式传输到服务器,服务器获取扩展的RSS2.0格式天气预报数据,通过解析RSS2.0获得需要天气数据,并将其转化为JSON格式,提供给表示层显示,该层主要用java实现,详见源代码中的RSSReader.java。控制层获取页面的信息,并传给模式层,然后再取得模式层的数据传回给页面显示,代码参见DataProcess.java.
表示层完成地理位置信息的获取和天气信息的显示这两个功能。当输入页面URL时,load()函数完成Google地图的加载,并把地图的click事件的关联关联到getData()函数。当点击具体地理位置时getData()函数响应click事件,获得经纬度数据,通过控制层将数据传给服务器,获取天气数据,数据由showData()函数处理后显示到页面。该过程主要使用AJAX技术,异步访问后台获取数据。
系统三层架构,实现了表示与模式的分离,底层主要用java实现,表现层主要用Javascript实现,数据结构为JSON,结构化较强,便于实现和灵活扩充。
4. 运行环境
服务器需求:JDK1.5+Tomcat5.5
客户端:IE或者FireFox
由于该项目需要Sevlet容器Tomcat的支持,目前没有找到相关的可以使用的空间,项目只能提供war格式的发布包weather.war(附件),通过将该包置于Tomcat的webapps目录下,就可以启用该服务。在浏览器中输入http://<%IP地址%>/weather即可访问该网页。
<script type="text/javascript"></script>
分享到:
相关推荐
#### Mashup简介 Mashup是一种结合来自不同来源的数据和服务创建的新应用程序或Web服务的方式。它利用RESTful API来组合不同的数据源,创建出新的、有价值的信息产品或服务。Mashup可以简单地将两个不同的数据集合...
1.1 Mashup简介 Mashup起源于互联网早期,其特点是开发者不需要具备高超的编程技巧,只需理解API和网络服务的工作原理,即可进行开发。各大科技公司如Yahoo和Google等提供开放API,鼓励开发者创造Mashup应用。例如,...
#### 服务器端Mashup简介 Mashup是一种应用程序或Web应用,它通过结合来自多个来源的数据或功能来创建新的在线服务。传统的客户端Mashup通过JavaScript的XMLHttpRequest (XHR)等API发送请求到不同的服务提供商,...
#### 一、iWidget与Lotus Mashup简介 - **Lotus Mashup**:一种图形化的、基于浏览器的工具,支持轻松地在浏览器上组装mashup(混合应用)。其核心特点在于轻量级集成各种应用通过小部件(widgets)实现。 - **功能...
- **PHP简介**:PHP是一种广泛使用的开源脚本语言,特别适合于Web开发并可嵌入HTML中。PHP易于学习且功能强大,支持多种数据库连接。 - **Web 2.0概述**:Web 2.0是指互联网发展到第二代阶段的概念,强调用户参与...
- **PHP简介**:PHP是一种广泛使用的开源脚本语言,特别适用于Web开发并可嵌入HTML中。PHP支持多种数据库,如MySQL、Oracle等。 - **Web 2.0概述**:Web 2.0是指互联网的一个发展阶段,强调用户参与、互动和协作,而...
火龙果软件工程技术中心 本文中将使用工具轻松构建终极的HelloWorldmashup:Google地图mashup……...简介所谓Mashup,就是在将一些数据源和服务组合到一起创建一种新功能或以某种方式添加新值的时候创建的。本教程将介
Windows mashup上基于Qlik Sense的JWT身份验证 作者:Giacomo Brioschi 团队:Qlik OEM Emea 1.简介 这是一个资料库,展示了它如何与Windows上的Qlik Sense Enterprise(QSEoW)上的JWT进行简单的混搭。 1.1 JWT简介...
这篇简介性的文章对 mashup 是什么、目前流行的不同种类的 mashup 以及 mashup 开发人员用于创建自己的应用程序的支持技术进行了探索。另外,您还将看到 mashup 开发人员面临的一些新的技术和社会挑战。
- **Secure工具包简介**:Dojo.secure是Dojo库的一部分,专注于提升Widget和应用的安全性。它包含一系列接口和机制,用于限制脚本执行权限,防止跨站脚本攻击(XSS)和其他网络攻击。 - **Capability接口**:这个...
**Google Mapplets API简介** - **定义**:Google Mapplets是一种在Google Maps中集成自定义功能的方法。通过Mapplets,开发者可以轻松地将地图数据与外部服务或数据源结合起来。 - **基础操作**: - **标注...
项目简介 使用 SpringBoot 处理搜索请求,通过读取 API 关系数据分别建立加权图(权重为两 API 同时调用的频率的倒数)和无权图,并通过一定方式根据前端输入的多个关键词检索 API,最后通过前端页面展示出来。 ...
- **功能简介**: Mashup是一种将来自多个数据源的信息和服务集成到单一视图中的技术。 - **应用场景**: 创建动态的数据视图,提高决策效率。 - **特点**: - 动态性:实时展示多源数据的变化。 - 易用性:简化了...
第一章 Ajax简介 第二章 JavaScript相关要点 第三章 Ajax和服务器端技术 第四章 Ajax技术 第五章 XML要点 第六章 调试与错误处理 第七章 Web服务、API和Mashup 第八章 XSLT和XPath 第九章 常见问题解决模式 第十章 ...
10.2 几个视觉效果库简介 10.3 视觉盛宴 10.3.1 Moo式的CSS属性修改 10.3.2 通过Script.aculo.us实现视觉效果 10.3.3 通过Moo.fx实现逼真的运动效果 10.3.4 圆角效果 10.3.5 其他库 10.4 行为增强 10.5 小...
10.2 几个视觉效果库简介 10.3 视觉盛宴 10.3.1 Moo式的CSS属性修改 10.3.2 通过Script.aculo.us实现视觉效果 10.3.3 通过Moo.fx实现逼真的运动效果 10.3.4 圆角效果 10.3.5 其他库 10.4 行为增强 10.5 小...
#### UCSB Geography 176B课程简介 该课程涵盖了GIS领域的多个核心主题,旨在为学生提供全面的GIS理论和实践教育。课程内容包括但不限于: 1. **目标和基础概念**:介绍GIS的基本原理和概念,以及数据表示的方法。...
10.2 几个视觉效果库简介 10.3 视觉盛宴 10.3.1 MOO式的CSS属性修改 10.3.2 通过Script.aculo.us实现视觉效果 10.3.3 通过Moo.fx实现逼真的运动效果 10.3.4 圆角效果 10.3.5 其他...