Mashup之我见

前段时间去参加了Dev2Dev的TechDays,这次TechDays的主题是企业Mashup。

在去参加会议之前,先到网上了解了一下什么是Mashup,因为从来没听说过嘛,可是Google了半天,没什么收获,介绍一般都是比较含糊,不是非常明白。而且还错误的认为Mashup可能是类似于AJAX的技术,准备用来跟AJAX,FLEX等技术进行竞争的,后来发现错的很离谱。

这次会议先是由BEA的两名技术顾问介绍Mashup的概念以及一些演示,然后还有BEA的合作伙伴Adobe的人介绍了FLEX。下面还是说说我在听完演讲之后对Mashup的认识吧。逻辑不是很清晰,只是想到什么写什么,毕竟已经比较长时间了。

Mashup简述

Mashup的定义:整合不同来源的内容以提供统一完整体验的Web站点或应用程序,已经成为了快速组装新的应用程序的一种趋势。这些应用程序被称为Mashup。从这个定义看来Mashup应该是一类应用程序,但很多情况下,我们都把它当作一个动词来用,类似于“组装”的意思。还有,我们可以从这个定义中提取出三个特征:整合不同来源的内容、统一完整的Web站点或应用程序、快速组装。其实Mashup并不是什么新的技术,它只是一个概念,从这个三个特征里面可以知道,只是将一些内容组装在一起。

Mashup演示

都太文字了,来看看一个示例吧:美联社的新闻:http://www.81nassau.com/apnews/ 从网站的最下面一可以看到,“News provided by AP • Geocoding provided by Yahoo! • Mapping provided by Google Maps. ”这样一张完整的页面内容是由三个公司提供的,新闻由AP获得,坐标计算来自Yahoo,地图有Google Maps提供。

你点击右边的某条新闻,左边的地图上会马上把该新闻发生的地点标注出来,这个过程实际上是这样完成的:当你点击某条新闻之后,引擎将会把新闻的地址(AP提供)送给Yahoo去计算,从而得到这个地址的经纬度,然后引擎又将这个经纬度送给Google Map,最后Google Map在地图上标注。

这就是Mashup一个已经在使用的示例,它将三个公司提供的功能组装在一起,而且协调好他们之间的操作,最后给用户一个非常完美的体验。而如此强大的一个Web应用,你几乎不用写多少代码,大部分功能都由其他人做好提供给你,这就体现了Mashup的快速组装特性。

这里推荐还有另外一个Mashup的示例:iGoogle:http://www.google.com/ig?hl=zh-CN 你可以将所看到的内容都删除,然后点击右上角的“添加内容”来添加你自己喜欢的内容,而事实上那些内容很多都是由第三方提供的,这也是一个Mashup。

Mashup的实现

Mashup的实现有很多方式,比如最简单的iframe标签,可能你已经在用了,但这确实也可以说是一个Mashup,还有AJAX、Flex,这些方式都能够实现Mashup。(知道跟AJAX的关系了,不是“竞争”而是“合作”)

MarshUP结构图

从这张图片我们看到,Mashup可以分成5个层次(服务器数据层,Web服务层,功能函数层,客户端数据层,表示层),而各个层次都有多种实现方法,所以说Mashup的实现方式是多样的。

小结

    东西差不多就介绍到这里了,可能你看到这也有我当时听完之后的疑惑,感觉Mashup很依赖于别人的东西,如果万一第三方不再提供我们所用的内容之后,我们的产品就不对了。当时我就问了一个演讲者,原话也记不得了,大概的意思是,我们要需要Mashup的内容不一定都是第三方的,比如一个门户网站,有很多内容需要展示,我们就可以把每个内容独立起来,然后提供用户一种途径,让他们“组装”自己喜欢的内容,就跟前面发的iGoogle一样,这对于用户来说是一个非常好的体验,而且,你把每个内容独立出来,既利于维护,也利于重用,简直完美啊!

    Mashup就介绍到这里了,讲了很多,希望对你有所帮助,有什么想法可以留个评论跟我讨论讨论,也可以直接联系我,非常欢迎。



Jul24