混搭应用

来自术语
跳转至: 导航搜索

    将多个资源和服务所提供的功能、数据、内容以及人机界面重新组合后形成的网络应用。

英文名 mashups

报告称2013年企业Mashup市场规模将达7亿美元[编辑]

    北京时间2008年5月7日消息,据国外媒体报道,美国知名市场研究公司Forrester Research今天发布预测报告称,到2013年时,企业级别的Mashup技术应用市场规模有望达到7亿美元。

  简而言之,Mashup是指把多个来源信息加以组合的网络技术。Forrester对Mashup技术的定义也是如此:“Mashup是指把多种、散乱数据加以组合的定制化应用软件,并能提供新型和独特的功能。”换句话说,Mashup的变革性意义在于:即使商业用户的IT技术水平并不高,他们照样也可创建符合自身需求的Mashup;把这些Mashup加以组合后,各企业用户的IT安全性将随之大幅提高。

  Forrester分析师奥立佛杨(Oliver Young)表示,随着Mashup技术的发展,Mashup平台将逐渐进入到企业用户应用领域,“Mashup平台技术提供商已作好进入企业用户市场的准备。”他指出,事实上,诸如Presto Wires等企业级Mashup平台已经得到了市场认可。

  Forrester报告称,企业Mashup平台应用主要将体现在以下三个方面:

  1、外层Mashup。外层Mashup应用最为简单,它能把多种信息来源聚合到一起,并以统一外观方式显示出来。Netvibes个性化主页服务就可视为外层Mashup应用的典型。

  2、数据Mashup。数据Mashup应用相对要复杂一些,它将把杂乱的数据加以组合、操纵和捆绑,然后再以统一外观方式显示出来。Twittervision地图查看技术就可视为数据Mashup应用的典型。

  3、商业流程Mashup。商业流程Mashup应用最为复杂,它不仅需要把多个数据来源进行组合,而且还必须对商业流程本身加以综合处理,从而为企业用户打造各类定制化软件。

  Forrester最后指出,Mashup应用将在2009年~2010年之间逐渐起步,并有望于2013年正式进入企业用户的IT应用和管理。该报告写道:“我们预计,对IBM、微软和其他传统协作技术开发商来说,他们将积极进入企业Mashup平台领域。”(编译/中涛)

企业混搭应用Mashup有待成熟[编辑]

企业混搭应用既可能成为SOA创新中的下一次重大运动,也可能是解救灾难的良药。

人人都在谈论要根据业务目标调整IT策略,但这目标通常都很遥远。因为即使目标一致,IT和业务部门仍然各自为政。企业混搭应用(Enterprise Mashup)的倡导者希望使非技术人员也有能力开发自己的应用,从而拉近这两大阵营的距离,消除分歧。

但IT专家们有足够理由对此表示怀疑。

混搭应用仍然是由消费者而非商业主导的创新。谷歌(Google) gadgets、雅虎(Yahoo) Pipes和众多网站已经把互联网变成一个开放的平台。上百万业余开发人员正把各种网络服务组合成无数新应用,速度远比基于服务导向架构(SOA)的开发来得迅猛,而SOA可算是企业架构里最接近混搭应用的模式了。

但混搭应用与企业里曾流行过的消费者应用热潮不同,它并不等同于安全威胁、员工满意度的提升途径、或者是廉价获取技术的手段。就商业创新而言,那些积极接受混搭站点和工具的员工本身就是个未开发的丰富宝库。

当然并不是每个IT部门都想让自己的员工强大至此。在我们为本文所做的在线读者调查中,只有不足一半的受访者表示,会考虑让非IT员工创建自己的混搭应用。但是,也别因此立即否定这项技术:因为即使在桌面应用软件安装受到严格管制的工作环境里,混搭仍然能够发挥效力。它能通过单一的前端整合不同的应用和数据源,籍此提升生产效率,简化工作流程,让企业应用得以从公共互联网上的Web服务中获益。

说到谁会去创建混搭应用,可以即时通讯(IM)为例加以说明。即时通讯软件在工作场合得到广泛应用,完全有赖于一群极度依赖互联网的用户,这些人认为电子邮件太落伍,而宁可选择网站上的RSS或Widget。目前,有能力建立复杂混搭应用的员工仍然数量有限。使用应用编程接口(API)需要具备一定的JavaScript 知识,甚至由软件厂商提供的无需编程技巧的开发工具也并不适合所有人。

要创建真正有用的混搭,用户必须理解底层的业务流程;例如,Serena软件公司(Serena Software)的目标用户就是使用业务流程管理软件或写Excel宏的人。

第一批用谷歌地图(Google Maps)和谷歌Ajax API开发出来的Web 混搭应用,直到现在仍然广受欢迎。如今,微软公司(Microsoft)和雅虎也提供类似的服务,而雅虎还提供Flash版以供选择。

在企业里,网络管理软件已经能为IT部门提供在地图上叠加数据的功能。例如,无线网状网(Wireless Mesh)开发商Tropos网络公司(Tropos Networks)就把谷歌地图的数据引入其基于浏览器的控制台中,为网络管理员实时显示每个无线节点的覆盖范围和活动状况,其未来版本将具备跟踪单个用户和客户端设备的功能。他的竞争对手SkyPilot公司和 STRIX系统公司(Strix Systems)则使用谷歌地球(Google Earth)在非浏览器环境里实现类似的功能。

而在企业内部,常规搜索非常实用:超过半数的调查受访者表示,在他们开发的混搭应用中,都可直接使用谷歌搜索。难道这是谷歌大受欢迎的原因?他相对简单的API能让开发人员仅仅写上几行代码,就能将谷歌搜索结果包含在内。例如,浏览或点击显示销售预期目标列表的网页或应用,它们即可自动根据人员或公司名称,到网络上去搜索更多的信息。当然通过手工方式实现该功能也不难,但混搭应用避免了剪切、粘贴和在多个浏览器窗口里切换等操作,从而大幅提高了效率。

与业务合作伙伴的系统集成目前还不太成熟,但包裹货运业在提供混搭API方面是确定无疑的先行者。超过四分之一的受访者表示,他们用联邦快递公司(FedEx)的服务创建混搭应用,选择UPS公司混搭API的人比此略少。利用这两家货运商提供的Web服务,可访问其内部计费和包裹跟踪应用。

电子商务站点如亚马逊公司(Amazon.com)和电子港湾公司(eBay)提供的服务,在小公司中很受欢迎;而在企业应用中,尽管规模不大,他们也占有一席之地。有些企业将自己的混搭应用与美国在线集团(AOL)的服务进行了整合,以通过该公司的可扩展标记语言(XML)API,获得AOL即时通讯用户的在线状态。

混搭公共互联网的服务,在实现企业混搭之路上只完成了一半。在部署混搭应用方面,企业通常都落后于本就根植于互联网的公共站点。

SOA的“最后一公里”

对大公司来说,最大价值往往来自内部企业应用的整合,但是这一任务令人望而生畏。大多数公共网站能提供通过XML或JavaScript方式访问的API,而在企业里却要挨个改造自己的应用,以使他们能对外提供服务。即使只在企业内部使用,要开放内部应用使用户更便捷地访问数据,也要面临安全和管理控制等问题。

这就是SOA的切入点。越来越多的大型SOA软件厂商摇身一变为专业企业混搭服务供应商,他们中的大多数人都认为混搭应用是SOA的“最后一公里”,而使最终用户能够访问SOA架构。不同的是,SOA中的Web服务往往只用于不同服务器之间的通信,而混搭应用通常还涉及到客户端。

显然,这些新事物也会带来一些成长的烦恼。大多数SOA套件均针对简单对象访问协议(SOAP)而设计,但大多数浏览器及Java和Flash等客户端实时程序,都不支持Soap协议。所以,公共互联网上的混搭应用一般都以RSS为数据格式,而对复杂的API则提供自定义的数据格式,这通常由网络服务提供商根据实际情况而定。

SOA主要关注服务器端,而往往忽略了存储在客户端的文件;这主要是由于企业IT部门创建SOA应用时,并未着重于理解或解释财务报表或销售演示中的数据。而许多混搭服务厂商则刚好相反,他们把这些文件看成可混搭数据的丰富来源,因为最终用户更愿意以服务的方式访问重要文件。这些厂商的做法是,在其混搭应用中采用Ajax技术或XML API,这样用户就可以通过Web服务访问客户端的数据了。采用这种方式,用户可以更容易地和其他人共享文件,企业电子邮件服务器也不致被体积庞大的邮件附件堵塞住,更无需转而使用类似SharePoint风格的协同软件。

要使文件访问能支持服务方式,并且能管理这些服务,就需要一个与SOA类似的系统,此系统采用的是RSS格式,而不是SOAP协议。Attensa公司、 serendipity软件公司(Serendipity Software)和/n 软件公司(/n Software)都提供类似于SOA中的企业服务总线(ESB)的产品,其目的是创建、路由和管理后台的RSS输出,而不是设计前端的混搭应用。某些混搭套装软件也具备把文件转化为RSS输出的功能,其中较为人知的是国际商业机器公司(IBM)和Kapow科技公司 (Kapow Technologies)的产品,而Denodo科技公司(Denodo Technologies)的数据混搭套件则通过为数据库和老式服务器提供支持服务的方式和ESB竞争。

大多数支持RSS的工具还可以通过解析屏幕输出内容获取RSS输出,使原本不提供RSS输出或网络服务API的站点数据,也能被用于混搭中。这对支持服务的内部网来说是很方便的做法,但需要注意第三方网站的版权问题。另外这里也存在一个常见的混搭风险:就是站点布局格式的改变会影响RSS输出,并可能使基于它的应用无法正常工作。

即使对内部网站或内部应用而言,内容变更也是个问题,因为混搭往往会包含并非为混搭而设计的服务或应用。这总的来说是件好事,因为这正是创新的意义所在,但这同时也意味着升级可能会导致不兼容。

避免出现这种后果的唯一办法是采用久经考验的软件质量保证体系。确保服务都由经过认真设计和严格测试的API提供;这其实也是SOAP协议和WS-*系列标准的理念。不幸的是,测试会延缓开发进度,这也是为什么SOA系统的开发往往步履维艰且充满官僚主义味道的原因,相比之下混搭方式和Web 2.0的效率则快得多。所以凡事总有利弊两面。

自助式 IT

共有3种类型的混搭应用:表现型、数据型和逻辑型。表现型混搭最简单,网络门户就是最好的例子;数据型混搭收集来自多个数据源的信息,为方便比较而把他们都聚合在一起;而逻辑性混搭通常最复杂,这往往需要进行与2个或更多应用交互的编程工作。

低门槛意味着不需要使用定制的企业混搭产品。混搭可以放在任何网页服务器上,使用的开发工具也与其他众多基于网页的应用相同。多数受访者实际也是这么做的。最受欢迎的平台是微软的ASP.Net、奥多比系统公司(Adobe)的Flex、以及谷歌的免费网页开发工具包(Web Toolkit),开源Ajax框架ruby on rails 的排名也很高。其他的选择还包括Curl语言和Nexaweb公司的开发框架,后者可集成Java、 Flash和Ajax技术。

然而,专用混搭平台也有其优势,特别是在推崇普通用户即开发人员这一理念的企业里。他们的主要价值体现在易用性和安全性上:由非IT人员使用的平台与常见的网站设计和Office应用非常相似,而IT部门则可以监控这些混搭和他们的Web服务组件,以避免数据泄漏。集中式管理也有助于对组件的再利用。

企业级混搭软件厂商Coghead公司、JackBe公司和Kapow公司都提供针对企业用户的拖放式开发环境。Coghead和JackBe提供全部3种混搭类型的产品,从最简单的表象层门户到包括业务逻辑的全面应用。Kapow是数据混搭网站Dapper的企业版,在他的OpenKapow网站上,提供了大量开源内置混搭应用。

毕益辉公司(BEA)、IBM和甲骨文公司(Oracle)等大公司进入这一市场较晚,BEA的AquaLogic Pages和Ensemble工具是目前为止这3家唯一正式发布的产品。预计,IBM的Mashup Hub和甲骨文的 WebCenter Composer都会在今年年底发布。这几款产品都强调集中化管理以及与其他SOA工具的整合,而且,IBM还特别注重与Lotus Domino等自身其他产品线的整合。

BEA专注于通过内建Widget和网页地址设置的方式实现表现型的混搭功能,所有操作都符合安全合规要求并可以进行集中式监控跟踪。甲骨文的WebCenter在三者中野心最大,该软件允许用户直接编辑JSF(Java Server Faces)文件,并能分别存储每个用户所做的修改,确保底层应用不被破坏。微软也有Beta版的混搭工具Popfly,适用于互联网和企业内部应用。

对于那些不愿意自行维护混搭服务器的机构,一些厂商也提供混搭托管服务。在这方面,Salesforce公司(Salesforce.com)走在了前面,这一方面归功于他身为软件作为服务(SaaS)厂商的历史;另一方面也得益于其建立AppExchange平台的经验,AppExchange是为其他SaaS厂商提供在线交易的平台,这些厂商的应用也可以和Salesforce的产品整合到一起。自2006年1月上线以来,从小型独立软件开发商到大型IT公司,AppExchange现在拥有来自200余家公司的300多个应用。可以肯定,由于Salesforce公司原有的客户关系管理(CRM)应用背景,AppExchange上的许多服务也都和销售与管理有关,但该网站也提供其他各种商业应用,从会计到项目管理到办公套件,无所不包。

AppExchange非常看重托管混搭应用固有的安全和隐私问题,因为这些应用需要在多个服务之间共享内部数据。尽管许多客户信任Salesforce,愿意把敏感数据提供给他,但AppExchange平台上的其他厂商就未必如此为人所知了。托管的应用数据被暴露得越多,发生数据泄露的风险就越大。

置于企业内部的混搭应用受到的威胁相对较小,但是在经历搜索引擎的查询时,他们还是可能对后者暴露隐私信息。例如,调用地图API时,就有可能向地图服务提供商暴露客户的地址。甚至更糟的是,如果链接明文不加密,数据在互联网上传输时就可能被随意截获。并不是所有的平台都支持加密传输:尽管大多数使用账号的网络服务都支持加密,但仍有许多免费的网页服务API不支持,因为他们并不需要进行用户授权。

还政于民

尽管AppExchange上的多数应用都由SaaS 厂商和软件厂商创建,有的站点却将目标客户群明确地锁定在开发人员。例如,Salesforce的竞争对手longjump公司就在研发一套产品,该产品目前尚处于内部测试阶段,可为非程序员提供应用开发的平台。和微软的Popfly有些类似,LongJump并不仅用于内部网:在该平台上运行的应用可供公开访问或销售。

Serena公司比大多数SaaS厂商的步子迈得更大,他的目标是和Coghead、IBM以及Kapow竞争。他的Vail服务可以通过安全加密连接,与企业SOA应用或其他Web服务全面整合。Serena还为最终用户提供免费下载的混搭开发环境。

要使用外来软件整合位于企业内部的服务器,这听起来似乎有点多此一举,但Serena认为,大部分现有运行在企业内部的服务器迟早都会被托管服务所取代。无论你是否同意此观点,但SOA和混搭的确能简化托管服务和内部应用之间的交互,因此对某些机构而言,混搭服务器采用外来产品完全合情合理。

即使没有服务器或服务,也能创建混搭应用;但由于混搭应用的本质特点——基于互联网,因此大部分混搭是与网页相关的。例如,OpenSpan提供的一个混搭工具就可以在运行视窗(Windows)操作系统的PC上运行,也就是说,他可以直接和微软自己的Windows应用程序进行交互。该工具不把文件转换成RSS输出,而是监控应用程序与Windows API的交互,拦截过滤这种交互,并实现对程序的用户界面、输入/输出和共享系统资源使用的完全控制。

准备在前

在接纳混搭技术之前,关于谁来开发这类应用的问题,你需要对以下问题做出重要决策。

• IT部门需要确定哪些数据源属于开放授权,是可以被混搭的。很明显,可以选择谷歌地图等公共网站和API,在企业里只有把这些数据源与内部和外部网络服务整合在一起,才能获取真正的价值。

• 下一步,有关混搭应用的使用环境。尽管混搭应用往往和基于浏览器的应用有关,但部署了SOA的企业,也可以考虑采用各种基于服务器的工具或以桌面为中心的集成软件。

• 如果采用基于浏览器的混搭应用,需要确定:是在现有网站服务器上提供新应用,再购买一个新的专用混搭平台,还是把整个任务外包出去。

• 最后,现在已有大量开发平台和工具,其中很多是免费的。Ajax与浏览器的广泛兼容,使之成为大多数互联网应用的必然选择;但对内部网开发人员来说,客户平台并不局限于浏览器,这也就不成其为问题了。

企业Mashup将成为SOA杀手?[编辑]

作者:Rich Seeley 译:TT中国 Shirley 

    为什么企业Mashup比面向服务架构(SOA)更具吸引力?

    因为一个引起了业务人士的共鸣,另一个没有。John Crupi这样回答。Crupi曾任职Sun Microsystems的CTO,负责SOA。他现在是JackBe公司CTO,负责企业Mashup。       “我从事了多年SOA方面的工作,我可能是第一个告诉你业务方面不在乎SOA的人。”他说,“对他们而言,SOA没有什么实质性的内容。他们听到的只是一大堆承诺。”

    Mashup远比SOA容易销售,因为厂商能够很快地演示其商业价值,例如分散的企业数据能够集合为一个Mashup提供具有商业价值的信息。”Crupi指出。

    ZapThink的高级分析师Jason Bloomberg说,他对Crupi分析为什么Mashup是一个如此具有吸引力的概念表示赞同,不过,Mashup不会取代SOA,而是在SOA之上。

    “我们已经预言了很久,随着SOA的最佳实践方案被广泛接纳为IT和业务的最佳实践方案,SOA将从人们视野中逐渐消失。这也是我们目前正看到的发展趋势,”Bloomberg说,“进一步来说,企业Mashup正日渐成为SOA应用案例的杀手。从业务的角度来讲,应用案例是采用SOA的表面理由。所以,SOA比以前都要强大,成为产品的一部分。企业Mashup是展示产品的那一部分。”

    Crupi说,拿数据服务提供商举例,相对而言,Mashup工具厂商容易演示如何将他们已有的信息重新打包到一个Web浏览器,提供新的收入流。

    “所有的数据服务提供商用几种方式打包数据提供给用户,”Crupi说,“无论是一个文件夹,还是每几周上传的FTP,或者你做一份定制报告,他们如何将数据提供给客户的方式受到限制。“

    使用Mashup,房地产业务的数据服务提供商就可以创建一个应用,让房地产代理商只访问他们出售房子所在地区的数据。这类似Apple iTunes卖单曲而不是专辑的商业模式,房地产代理只需要为所显示的房子所在地区的数据付费。

    “它是一个小包装,”Crupi说,“就像我喝酒是按杯付费的。”

    房地产数据服务就是按杯销售的。酒吧赚钱并不是通过向客人买一整瓶杜松子酒,而是一杯马丁尼就有钱可赚。所以,采用Mashup ,一种新的商业模式应运而生。

    “业务部门能够获得以前无法获得的数据,利用该数据创造收入,”Crupi说,“我们对企业Mashup所做的事情就是演示某种业务并进行提供。这能够对数据加以利用,进行访问,加以表现,甚至提供新的收入渠道,因为他们可以访问以前没有的数据。这是为业务部门而设计的。这是他们可以销售的东西。“

    拿消费类电子产品打个比方,HDTV显示器内的电路可能提供了高清晰度图片,但是,对顾客而言,他们感兴趣的只是球赛的清晰度。

    “SOA是一个标准的获取数据的方式,可以实现某种价值,” Crupi说,“但我认为企业Mashup会使SOA黯然失色。”

    多数HDTV购买者不会走进商店,询问电路。他们只在乎图像。

    “有件事情很有意思,”Crupi说,“我们会接到客户的电话询问:‘给我们讲讲Mashup。’这是来自业务部门。但是我参加过的客户会议中从来没有业务人员说:‘给我们讲讲SOA。’”

    但是,他并不认为SOA没有前途或已经过时,而是SOA可能最终成为幕后技术,而不是主流技术。

    “我认为SOA将在今年长足发展,”Crupi预测道,“只是不会被讨论得太多。”

Mashup:SOA的发展之路第1部分[编辑]

-- Web 2.0和基础概念 作者:IBM DW:Stephen Watt 

本系列文章共分三个部分,本文作为其中的第1部分,针对与术语Web 2.0相关的一些特征和技术提供总体的概述,并具体说明它们与面向服务的体系结构(SOA)开发之间的关系。本系列文章的第2部分将研究企业中IT和SOA的当前状态,并介绍环境应用程序和mashup生态系统提供的功能。本系列文章的第3部分将介绍IBM Mashup Starter Kit(IBMMSK),以及您应该如何使用它来开发环境应用程序。

引言

    Web 2.0是一个非常广泛的主题,为了简单起见,本文综合了各种不同组件,以便为在本系列文章的第2部分和第3部分中更详细地讨论SOA、环境应用程序和IBMMSK设置一个平台。有关Web 2.0的更广泛、更详细的描述,请参阅Tim O'Reilly撰写的文章,在本文最后的参考资料部分提供了该文章的链接。

什么是Web 2.0呢?

    可以将Web 2.0描述为一组核心的模式,在属于Web 2.0范畴的应用程序中,可以观察到这些核心模式。这些模式分别是服务、简单性和社区(请参见图1中对它们的表示)。本文在介绍这些模式之后,还探讨了一些支持它们的技术。

 

图1 Web 2.0应用程序展示了这三个模式

     服务     要想真正地为Web社区(这也是Web使用和应用程序开发的新阶段的基础承租者)授权,社区首先必须能够共享对给定应用程序的公共访问方法。为促进这项工作的完成,应用程序正逐步过渡一种服务模型,其中所有的用户都可以对一个实例进行访问。而不是每个用户必须分别下载并安装应用程序。此外,这个共享的服务模型提供了单一沙箱,以保证社区机制的有效性。

    简单性     面向开发人员的简单性:对于某些应用程序来说,软件变得越来越容易使用和开发,这得益于开放的行业标准和功能强大的技术的门槛降低。从而增加了开发人员的数量以及可用的Web应用程序。从创建社区 的角度而言,这个方面单独就可以发挥很大的作用。     面向用户的简单性:您还可能注意到,现在的Web应用程序提供了丰富的内容和用户体验,并且随着Asynchronous JavaScript+XML(Ajax)的出现,传统的独立客户端或者瘦客户端与Web应用程序之间的界线现在已经变得模糊不清,甚至完全消失了。当前的Web应用程序不再需要像Web 1.0那样重新加载页面以浏览新的内容,就可以提供丰富的、交互式的用户体验。     由于feed相关技术的成功(将在本文后面的内容中对其进行描述),用户现在可以订阅聚合的内容,这些内容提供了他们希望通过行业标准技术和协议得到的特定信息。现在,feed 允许采用特定的格式来包装并交付信息,这使得可以很容易地对信息进行使用和重新混合。有时,软件需要独立于信息而存在,以便信息能够实现它的最大价值,而上述的功能正好可以满足这种趋势(因此,我们将重点关注于信息,而不是功能)。其结果是,服务所有者将会发现,他们所提供的信息正以完全出乎他们预料的方式被高效地使用。

    社区机制     对于我们组织、访问和使用信息的方式,Web已经创造了巨大的社会变革。Wikipedia(有关其链接,请参见参考资料)就是其中的一个例子,它允许人们一起工作、以协同的方式捕获并管理信息,并且速度远远超过单个个体完成同一任务所能达到的速度。它允许快速地添加信息,但是会大大地增加可用信息的总量,所以这一点既有好的一面,也有不好的一面。这使得您在查找所需的信息时非常困难,因而需要使用附加的社区机制来帮助筛选相关的信息,以便用户能够使用有意义的、易于搜索的元数据对信息进行标记。del.icio.us(有关其链接,请参见参考资料)就是其中的一个例子,它允许用户联机存储并标记他们的书签。这允许其他用户通过标记来搜索书签列表,从而提供一种在已经由该社区进行了书签标记的(经过筛选的)数据中查找相关结果的方式。     社区数据的完整性:另一个紧迫的问题是,需要检查社区所提供的数据的完整性。可以使用同一个社区来提供有价值的信息。用户可以添加、编辑相关的注释以及建议,并且可以对这些注释和建议进行聚合,以便为给定的资源提供社区的集体观点,从而真实地创建一个既可以读取、又可以写入的Web。这种模型还可以用于在提供者和使用者之间创建紧密的反馈环节;例如eBay(有关其链接,请参见参考资料)上买家和卖家的等级系统。您可以利用社区的这种紧密反馈环节来改进软件的开发过程。现在,用户社区可以参与到软件的开发工作中,从而将软件作为一种不断更新的服务(随着越来越多的使用,不断地进行改进)来提供。     实现人与人之间的连接:可以更进一步利用社会网络的特性,以定位和管理不同种类的资源,即相关的人员。对于定位共享公共主题的人员来说,社会网络是一种功能很强大的方式。例如,这些网络允许参加了某个特定中学的人或者属于某个特定行业社团的人,在他们自己的Web“空间”中实现共享、联网、甚至协作。此外,在这些网络中可以实现相当程度的自治,网络中的用户可以添加并邀请其他用户登录到该网络中,从而不断增加它的价值。这与Web 1.0是完全不同的,Web 1.0重点关注计算机之间的连接,而不是人与人之间的连接。     长尾和更宽松的许可协议:关于Web 2.0应用程序,还有其他一些值得注意的方面,它们更关注于提供长尾(The Long Tail)(有关更多的信息,请参见参考资料)而不仅仅只是服务于受众,它们通过使用相关的技术服务更多的受众,并为他们提供高度个性化的产品或服务。此外,因为Web 1.0重点关注于可下载的应用程序,所以对于如何使用该应用程序,其许可协议是非常严格的(即“保留所有权利”);而对于Web 2.0,它们通常鼓励与其他技术、内容和应用程序进行集成(即“保留某些权利”)。     我们可以在一些常见的Web 2.0旗舰网站中看到这些模式,如Digg,它使用社区机制对信息进行添加、分类和注释;YouTube,它允许用户采用对他们来说有意义的,并且其他用户可以很容易地进行搜索的方式,对多媒体信息进行标记;Facebook,它允许用户构建社会网络,并在其中进行交互。(有关这些站点的链接,请参见参考资料。)

是什么技术促进了Web 2.0的模式和概念呢?

    向基于服务的模型的过渡,暗示了Web 2.0应用程序现在的发展程度。现在,Web基础设施被看作应用程序开发堆栈的最底层(相对于可下载应用程序的服务器)。然后,利用可编程的Web作为用于构建Web 2.0应用程序的API。这些API的示例都是公开可访问的Web服务,如Flickr、Google Maps和Digg。     对于创建Web应用程序来说,Linux、Apache、MySQL和PHP(LAMP)应用程序开发堆栈是一种流行的、免费的、快速的并且容易的方法。该方法有助于降低创建有价值的Web应用程序的门槛,从而为Web开发人员提供了一个更广阔的基础。LAMP堆栈是当前的新一代技术,它始终运行于大部分Internet中。     Web就是您的新平台,这个概念建立在一个前提条件的基础之上,即大部分基础设施已经建立,并且当前存在于Web中。新的Web 2.0应用程序仅需要利用现有的可用宿主,而无需使用传统的API层,如Java平台、Enterprise Edition(Java EE)或者 Microsoft .NET,您现在可以使用由现有Web应用程序(如Flickr和Google Map)公开的基于Web的API(或者Web服务)来构建应用程序。这些Web API的流行使您避免了创建某些特性的工作,从而减轻了您的工作负担,所以您可以更快地构建您的应用程序。     此外,您可以集成两个或者更多的Web API,以创建某种新的或者独特的特性,这被称为mashup。例如,您可以使用www.housingmap.com在地图(由Google Maps提供的)中显示房地产信息(由Craigslist提供的)的方式,以便进行可视化导航,并筛选给定位置的房地产信息。     图2和图3对Web 2.0的基础设施进行了分解。

图2 Web 2.0堆栈中的关键技术

图3 传统的应用程序开发堆栈与可编程Web的对比  

    然后,可以使用某些技术(如Ajax)来调用这些基于Web的API,这些技术为浏览器客户端通过JavaScript(包括同步方式或者异步方式)与服务器进行通信提供了相应的方法。这意味着,应用程序并不需要在客户端每次与服务器通信的时候都重新加载整个页面。     您可以使用JavaScript Object Notation(JSON)实现对象的序列化和反序列化,使得能够在浏览器客户端和服务器之间,通过Ajax来发送它们。与Ajax非常相似,您还可以使用 SOAP 规范和代表性状态传输(representational State Transfer,REST)方法来提供在应用程序之间传输数据的行业标准方式。经常可以看到,现有的服务提供了SOAP、Ajax和REST接口。REST是一种设计服务的风格,它使用了针对URL可编址实体的简单HTTP操作。     一些其他的技术,如Dojo(它是一个可以节约时间的、开放源代码的、跨浏览器的动态HTML/DHTML工具包)和浏览器扩展,如GreaseMonkey和Firebug(允许您编写扩展浏览器、定制Web页面外观或功能的脚本),现在都可以利用Ajax,并提供丰富的用户界面。例如,您可以为Facebook安装一个Greasemonkey脚本,当您将鼠标指针移动到缩略图上时,完整的图片将自动地出现在浏览器窗口的左侧。这使得查看图像既快速又方便,并且丰富了用户的体验。     Microformat允许您使用XHTML在(X)HTML、Atom、RSS或者任意XML文档中表达语义信息。microformat是一种机器和人类都可读的应用程序,比如,浏览器可以自动地发现它们,并对它们所描述的信息进行操作。例如,如果您希望在文档中嵌入一张名片,那么您可以使用hcard microformat(有关更多的信息,请参见参考资料),它将使用XHTML来描述您的名片(请参见图4)。

图4 hcard microformat的示例  

    最后,RSS和Atom feed现在已经不仅仅用于订阅Blog和新闻feed,我们还将其作为一种潜在的方法,用以简化特定的、以内容为中心的应用程序体系结构。Atom规范是一种最新的发展(其思想最初来自于RSS),并且提供了一些有价值的特性,如Atom Publishing Protocol(APP),它允许您发布要添加到feed的信息。如果事件驱动的体系结构现在是SOA框架中的组成部分,那么可以将feed看作是服务范例中的部分,并对其进行充分利用。

结束语

    在本文中,您了解了Web 2.0应用程序中包含的核心模式、概念和关键技术。在第2部分中,您将了解企业中的IT,并研究mashup生态系统如何允许您构建环境应用程序,以改进当前技术水平。

参考资料

    What is Web 2.0,作者Tim O'Reilly。     访问在本文中提到的下面几个站点:         del.icio.us         Digg         YouTube         Facebook         Flickr         Google Maps         Craigslist     了解更多关于hcard microformat的信息。     了解更多关于The Long Tail的信息。

Mashup:SOA的发展之路第2部分[编辑]

-- 环境应用程序和Mashup生态系统 作者:IBM DW Stephen Watt 

本系列共包括三个部分,本文是其中的第2部分,将讨论环境应用程序、Mashup生态系统以及它们如何与IT行业和面向服务的体系结构(SOA)中的当前软件开发状态相关。本系列的第一篇文章定义了Web 2.0所具有的特征和技术。本系列文章的最后一部分将介绍IBM Mashup Starter Kit,以及您应该如何使用它来开发环境应用程序。

环境应用程序和社会网络

    社会网络是具有特定的共同特征的个人组成的团队的关系模型。个人还可能属于多个社会网络。例如,Joe Soap属于得克萨斯大学毕业生的社会网络、奥斯汀山地自行车爱好者组成的社会网络、专门在Whole Foods购物的个人组成的社会网络,如此等等。Joe Soap属于各种社会网络。     关于特定社会网络特征的知识是一个非常有价值的工具,可供应用程序开发人员用于仔细研究社会网络的需要和要求,并恰当地定制应用程序。例如,您可以添加有用的功能,而删除无用的功能。这就使得应用程序更加适合于其特定的目标社区。此外,您还可以通过寻求反馈并在应用程序的多个修订版本中包含这些反馈来与这些社区紧密合作。在第一篇文章中提到的社区具有紧密反馈循环。此方法与设计针对更广泛受众的软件相对,受众广泛的软件要求添加各种功能,而这些功能有可能会使用,也有可能不使用。     Clay Shirky所撰写的文章(请参见参考资料中提供的链接)给出了几个非常有说服力的示例,说明了纽约大学的学生如何针对特定的目标受众设计有用且受欢迎的应用程序。他还指出这些应该程序在定位为针对更多受众的情况下,在价值和受欢迎程度方面降低的情况。因此,总的说来,环境应用程序 是针对特定环境需求创建的应用程序,是在与特定社会网络协作的情况下设计和开发的。     要注意的另一个有意义的因素是,由于市场变化很快,大量的业务协作时间都短于12个月。由于平均应用程序集成工作需要三到六个月,因此没有太多的时间获得投资回报(Return On Investment,ROI)。行业需要能快速构建而且成本合理(考虑到整个协作时间)的解决方案,以解决直接而具体、但同时也认为可以解决(随着市场的发展)的业务问题。由于环境需求经常导致应用程序仅在短暂时间内使用,因此环境应用程序还有另一个特征,即最终结果可以为非正式且足够好 就可以,因为并不需要具有产品级别质量的功能和特征。

如何创建环境软件?

    如果SOA可以发展和进行改进,以让用户更为方便地释放信息和提高可访问性,则可以建立一个Mashup生态系统,以便用户能够快速地创建环境软件。虽然这很有意思,这些实际上是非常难于实现的目标。以下部分将对此方法进行更为详细的说明。

    SOA发展     IT行业正在大刀阔斧地将IT基础设施分解为模块、可重用服务。虽然这已经在其他领域体现了其价值,但仍然需要开发人员具有相关的技能才能使用这些服务集成和构建应用程序。由于IT存在的目的是为了满足业务的需求,因此SOA的下一个发展就是将这些服务送到用户(非开发人员)手中,以便他们构建解决方案,从而克服前面描述的关于ROI的问题。     而且,要实现环境应用程序的需求,需要让开发的成本大幅度降低,同时还能提高其应急能力。您需要新的方式访问和利用SOA中当前的服务,让最终用户或业务用户能够快速地将这些服务集成到一起。此方法将允许他们快速地创建满足其环境需求的应用程序。     为了使此类模型生效,服务需要具有对应的可视元素。每个服务的“脸”(即可视表示形式)可以提供对该服务的属性和功能的访问,并能反映服务之间的关系(连接)。实现了这一点后,可以创建服务类别来包括服务的可视表示形式和可以从选择面板上拖放并在画布上使用的内容。如果能够以可视的方式提供对服务属性的访问,则可以不用编程就能完成连接阶段的工作。在业务用户已经熟悉了新服务的功能和内容的情况下,就能通过这样非常快地创建应用程序。     如果业务用户是使用服务的用户,则可以提供关于服务所提供的信息的粒度的有用反馈。在这之前,服务中提供的信息粒度经常由性能和保持旧的遗留接口的现状等因素决定。如果业务用户能够使用这些服务构建应用程序,则可以根据其在应用程序中的实际使用 情况来提供关于信息粒度的宝贵反馈信息。     图1显示了如何将SOA作为环境应用程序的基础架构使用的框架。

图1 SOA上的可视表示形式

    一个比Shiry的论文中提供的示例更为广泛的社会网络,即现代业务最终用户或超级用户组成的社会网络。这种由个人组成的特殊网络的特点是,这些人对Web、系统中所使用的特定技术以及基本编程技能(如创建Microsoft PowerPoint自动化和Microsoft Excel宏的能力)都有很好的理解。这些用户与其受众有较为密切的关系(通常是一个小得多的社会网络),能够使用此知识来避免将时间浪费在明确不需要的功能上。为了向这些用户提供所需的能力,需要使用这些技能来利用用户关于内容源(企业内和网络上)、工具、产品和服务的知识,以便构建可为其业务部分起到推动作用的环境应用程序。可以通过采用 Mashup 生态系统实现此目标,如图2中所示。

图2 支持用户构建环境应用程序的目标  

    Mashup生态系统     图3中的关系图显示了Mashup生态系统垂直堆栈。每个元素都基于其下方的元素构建,最终得到的就是能够创建的Mashup。Mashup位于生态系统顶部,但只有在生态系统的其他元素均已就位的情况下才能获得。

图3 垂直Mashup生态系统堆栈  

    Mashup     Mashup是一种环境应用程序,由进行了连接以创建集成体验的两个或更多独立组件组成。这方面的一个例子是zillow.com(请参见参考资料部分提供的链接),此网站将给定位置的房地产的地方税收信息(组件A)与相同位置的地图(组件B)集成,以便查看地图上特定区域内的所有房地产估算税值(新集成体验)。最初的环境应用程序主要是shell和Perl脚本,供开发人员用于在出现环境需求时以低成本方式快速地处理这些需求。不过,这些技术需要开发人员技能,不能满足利用业务用户技能的需求。不过,既然有办法发展 SOA 和让服务拥有外观,就为采用Mashup生态系统打好了基础,以便支持用户以可视的方式采用Mashup的形式开发环境应用程序。Mashup只是环境应用程序的一种形式,就像SOAP Web服务只是一种实现SOA的方式一样。由于Mashup目前在Web上的广泛应用,因此这个方法是目前最流行的创建环境应用程序的方法。     Mashup marker     mashup maker是用于运行和创建Mashup的组装环境。用户可通过其将公开提供的信息和服务与公司的内部私有信息和服务组合在一起,从而高效地以可视方式组装Mashup。然后用户可以采用可视的方式操作和集成该内容,这些内容可以为静态内容(如网页)或动态内容(如SOAP或代表性状态传输(Representational State Transfer,REST)服务或RSS Feed)。QEDWiki是IBM Mashup Starter Kit(请参见参考资料部分提供的用于下载此工具包的链接)内包含的一个Mashup marker。     Mashup maker允许快速地以可视方式组装Mashup,因为其中提供了小部件集合,小部件是提供对一个或多个服务或内容的访问(通常为粗粒度)的软件组件(在本文中,内容与信息等效)。小部件的设计趋向于关注使用和自定义,以确保具有非常好的灵活性,因为Web 2.0的基本原则之一就是不能对内容以后的使用方式进行预计。小部件可以为可视的(呈现可视内容,如图标)或非可视的(提供某种形式的功能或对服务的访问)。通过Mashup maker,可以将小部件从选择面板拖动到画布上,而小部件属性可以采用可视方式进行访问,并用于将各个小部件之间的输入和输出联系起来,从而最终创建Mashup。     为了有足够的小部件来实现Mashup的组装,需要有可用性较广的数据服务接口来让小部件表示。数据服务接口是一个通用术语,用于描述服务提供者提供的对其内容(希望在Mashup中使用或提供的信息)的访问的技术方法——通常通过Feed、REST、SOAP/Web服务描述语言(Web Services Description Language,WSDL)、Asynchronous JavaScript+XML(Ajax)或XML远程过程调用(XML Remote Procedure Calls,XML-RPC)。Mashup Hub是一个Feed管理服务器,提供很多强大的方式来向Mashup提供内容访问。Mashup Hub包含在IBM Mashup Starter Kit中(请参见参考资料提供的用于下载此工具包的链接)。

    在Mashup生态系统中构建环境应用程序     Mashup生态系统就位后,可以使用组装、连接与共享(assemble, wire, and share)模型来通过Mashup marker构建环境应用程序。下面让我们详细讨论一下每个操作:     组装:企业可以创建Mashup maker可访问的小部件目录。此目录包括所有内部创建的小部件和可能在给定业务领域使用的外部提供的小部件。这样用户就能够在构建Mashup的过程中快速查找和使用所需的服务和内容了。     连接:组装人员使用服务目录中可用的服务并通过Mashup maker将其连接在一起,从而以可视化方式快速地构建Mashup。例如,表单小部件可以放在页面上,以便用户输入数据。输入的这个数据可以连接到提供Web服务调用的小部件的输入,而此Web服务响应的输出可以连接到呈现可视显示的小部件。     共享:组装人员随后共享Mashup,将其公开提供,以供知识员工(knowledge worker)使用,从而就可以采用社区机制了。     此过程中有三个不同的角色:     Mashup支持人员:Mashup支持人员编写小部件并将其添加到目录。他们与组装人员沟通,以对其需求进行预计并主动或根据反馈添加恰当的服务。通常由IT部门的个人或具有编写软件所需的足够技术技能的人员担任此角色。     Mashup组装人员:通常为不是非编程人员的业务部门用户或主题专家。Mashup组装人员通过将Mashup支持人员创建的Mashup可使用的内容连接在一起构建 Mashup。     知识员工:这是将应用程序用于其预期用途的社区,还将在应用程序上应用社区机制(如评分和评论),以提供反馈,以便在下个迭代改进应用程序。     各个角色在模型各个阶段的责任如下图中所示。

图4 组装、连接与共享模型

是什么让Mashup生态系统如此有效?

    首先,由于行业在关键技术标准化(如SOAP、REST和Ajax)方面有长足进步,我们看到了SOA采用的大幅度增加(网络上和企业内)。这就让相应的技术达到了临界量,使得通过一个URL就可以得到的基于Web的可重用API和Mashup大幅度增加。由于这样,希望使用这个模型开发应用程序的人员可以使用的内容、数据和服务的数量以前所未有的速度猛增。时机已经成熟。     其次,这是极为易于使用的编程模型。其进入壁垒非常低,因为业务用户和高级用户中的大部分人都已经熟悉基于Internet的应用程序(和PHP之类的简单脚本语言),能够进行编写Excel宏之类的任务。     最后,今天在Internet上已经广泛流行的协作机制对使用此模型进行快速应用程序开发起到了促进作用。

结束语

    在本文中,我们了解到,由于业务协作的短时性本质,使用现有应用程序开发流程和方法会导致较低的ROI。而且,我们还了解到,通过在Mashup生态系统内利用业务用户和高级用户的领域特定的与技术相关的技能,可以让用户以可视的方式快速地组装环境应用程序,从而提供更好的ROI。本系列的下一篇文章将讨论IBM Mashup Starter Kit以及可以如何使用它来构建Mashup。



链接[编辑]

Wikipedia https://en.wikipedia.org/wiki/mashups
Zhishi.me http://zhishi.me/hudongbaike/resource/混搭应用