什么是mashup/widget/gadget?

来源:互联网 发布:淘宝手机怎么改评价 编辑:程序博客网 时间:2024/05/09 09:37

http://azhilin.spaces.live.com/blog/cns!363404581D2BCC35!645.entry

Widget/Gadget

Widget(微件)又称Software widget,是一个一个的小插件,或者小应用,是一种可重用的代码,通常暗含的意思是一种轻量级的相对简单好用的应用或用户界面。Widget名字的由来是“window gadget”的缩写[2]。Google确实称之为Gadget(小工具)。

依照Wikipedia Software widget的说法,widget分类很多[1],作为Internet用户而不是开发者,我们常用的有用于网页的Web Widget和用于操作系统的Desktop widget两种:

Web Widget是一种HTML代码,可以嵌入到网页上,举例Yahoo! widgetiGoogle Gadget豆瓣APIWikipedia web widget说又称为badge, module, webjit, capsule, snippet, mini and flake. DHTMLJavaScriptAdobe Flash。听起来绰号还不少呀。

Desktop widget是运行在PC 操作系统上的微件,例如Apple dashboard widgetWindows Sidebar and gadgets,Google desktop sidebar(Google桌面搜索侧栏)上的一个一个小应用,通常涉及到一个概念widget engine,即widget的运行环境。

从提供方(编程者)和消费者的角度看,Web widget分别如下:

提供方消费者HTML代码(如豆瓣API)拷贝HTML代码到自己的网页(例如博文),生成最终页面中的一个小插件。
在iGoogle和My Yahoo!中以图形小窗口显示,用户可拖拉。

贴一个iGoogle的界面,其中的一个一个应用即widget/gadget,如“搜索浑天仪”、“读书新闻-新书信息”、“Google飙升热搜”、“日历”。

image

另外,博客上侧边栏显示的也是Widget. 比如RSS订阅, 分类, Tag标签,日历,最新留言列表,最新文章列表等等。[6]

Mashup

Mashup维基译为“混搭”,指整合网络上多个资料来源或功能,以创造新服务的网络应用程式。“混搭”一词源自于流行音乐将两种不同风格的音乐混合,以产生新的趣味的作法。暗含的意思是简单、快速的合成,通常用开放的API和数据源来产生更丰富的应用效果,可能与数据提供商的原始意图无关。

为了能永远的接入其他业务的数据,通常mashup是客户端应用或者在线应用。在过去几年里,越来越多的网络应用提供商开放API供其他软件开发者很容易地集成他们的数据和功能,而不是自己再开发一遍。通常Mashup被视作是社区软件social software 和Web 2.0的一个鲜明的因素。

我们举例来看,美国的房屋租售网[3]将craigslist网站的数据标在Google Maps上,看起来让craigslist的表项数据有生气多了。

image

在Mashup这种开发方式中,角色为数据提供方(mashup data sources)和接收方(the recipient of a mashup),从提供方和接收方的角度看,Mashup分别如下:

提供方消费者数据格式标准化(web-accessible),例如遵守WSDL, REST,RSS标准获取多个数据提供方的数据,用自己的方法重新处理、呈现。

 

Mashup这种开发方式不仅仅可以用于网站开发(web mashups)[5],也可以用于企业IT系统的开发(enterprise mashups)[5],这时是一种潜力巨大的商机[4],也涉及IT系统开发架构的课题SOA(Service-oriented architecture ),例如把ERP系统和CRM数据库系统和LDAP用户帐户系统的数据组合起来。此时Mashup有一些独特处[4]:

• 协同性(Collaborative) - Mashups数据被标上标签、可搜索、可共享。用户标签,常被称作“平常话”(folksonomy),使得用户为自己和别人注明含义。

• 聚焦“小型团队”(Focused on the 'pack') – Mashups常见的是为一小部分互相关联的人所创、所用、所共享。知识型员工在小范围内协同,尽管他们可能是大公司的一部分,当他们传播信息时,他们通常以小型团队工作。

• 时间敏感(Time-sensitive) - 用户现在就需要数据。Mashups通常有近乎实时传递数据的需求。他们没有时间等待IT来“预合成”数据供他们获取。网站是事实的,商务用户现在成长成在公司内也期望实时。

• 不新加设备(Non-invasive) - 因为Mashups在企业内部运行,没有必要新建一个基础设施,既指mashup数据源(数据库,SOA服务等),又指mashup目的地(IT门户、博客、wikis、email、表格等)。

• 数据清理简洁(Limited cleansing) - 数据的清理和格式化要与Excel表的操作量那么大。假如更大,需要在mashup提供之处就同时向用户说明。

• 用户界面(Have a face) - Mashups 通常有一个用户界面(有一张脸)并且这个用户界面是widget。就如同mashups 是“微小”(micro)的,mashup的前端应用也是微小的,如果用户是mashup的接收者,很自然要提供给用户一个与数据交互的方法。

 

 

 

 

 

 

 

 

 

 

终于的我们看到Mashup和widget的关联——Mashup是一种组合多个数据源的应用开发方式,其呈现给用户的交互界面是widget,简单、短小、形式丰富。

我们想象一下iGoogle上的“读书新闻-新书信息”可以这样做:对于widget提供方来说可以用mashup的开发方式去各个书店网站或书评网搜集数据,最终用widget应用发布给用户,供其嵌在网页上显示。

至于企业已有软件——CRM/ERP/BI/SFA等支持SOA的软件——如何做数据管理(governance)、划分数据颗粒(granularity)、确定数据范围(scope)来适应mashup应用,IT架构如何设计,是另外一个话题。

 

缩写:

WSDL(Web Service Definition Language)
REST(REpresentational State Transfer)
RSS(Really Simple Syndication) 
CRM(Customer relationship management)
ERP(Enterprise resource planning )
BI(Business intelligence )
SFA(Sales Force Automation)

原创粉丝点击