Web 2.0是近来很热的一个词语,也是一个比较模糊的概念,人们有着各种不同的理解。在这个新启动的“Web 2.0与SOA”系列专栏的第一篇中,Web 2.0&SOA专家毛新生将梳理Web的发展脉络,介绍什么是Web 2.0,Web 2.0的重点,Web 2.0与SOA的关系,以及如何在企业中应用Web 2.0。在本系列后续的文章中,他还将重点介绍和讨论Web 2.0以及SOA相关的各种技术和方法。
关于Web
Web是一个生长着的、开放的、动态的分布式系统。
Web始于1989年,当时英国科学家Tim Berners-Lee和比利时人Robert Cailliau在欧洲粒子物理研究所(European Organization for Nuclear Research,简称CERN)共同提议和构造了在因特网(Internet)上使用超文本来发布、分享和管理信息。Web是World Wide Web,即互联网的简称,是一个相互链接在一起、通过Web浏览器来访问的超文本文档系统。浏览器里看到的网页,可能包含文本、图像以及其它的多媒体,通过文档之间的超链接,可以从一个网页浏览到其它网页。
Web逐渐在科研和大学中流行起来,然后走向大众,变成人们生活、娱乐和工作中的基本工具。在这个发展过程中,Web拥有了最大量的用户,人们随时在使用它,把它变成了最大的分布式计算系统,基于最广为接受的开放标准,时时新、日日新,成为一个动态生长着的开放系统。
Web 2.0趋势
Web 2.0,是由O’Reilly公司在2003年造的一个词,2004年召开Web 2.0大会之后,这个词就流行起来,意指基于Web的下一代社区和托管服务,比如社会网络、维基百科、大众分类等等,帮助Web用户协作和分享。
虽然,2.0似乎在暗示Web的升级换代,实际上是指软件开发人员和最终用户使用互联网平台的方式的变化。而在商业上,关于如何才能在这样的一个新平台上获得成功的探索,也从来没有停止过。
那么,这些变化都是什么?核心推动力是什么?
这种使用互联网的方式的变化,与过去多年来快速发展的宽带化、Web用户规模的快速增长、用户的参与热情,都密不可分。大规模的普通用户需要更好用、更个性化、更加以他们为中心、更多样的内容、服务和 应用,这就是互联网发展的第一推动力。而对于开发者而言,如何在Web平台上快速、便宜地满足这样的需求,推动着他们探索和实践更好的用户体验、更加轻量级的编程模式、软件如何作为服务来运营并提供给用户;与此同时,围绕着如何利用这样大规模的用户群体自己来创造、贡献和共享价值,开发者们又开始思考和探索激活网络效应、群众智慧的参与架构和社会计算模式。商家在经历了上一次互联网泡沫之后,也不断的尝试新的、成功的商业模式,即如何让相互协作和分享的用户口碑相传来病毒式地营销,如何利用这种用户社区的传播和推荐能力来开拓大规模的个性化服务,从大规模单一市场转向选择性极大并丰富的多样化市场,即长尾经济。
技术、商业和社会三种因素融合式地共同发展,相互推动,经过几年全球范围的尝试和实践,新的技术范型、商业模式和生活方式不断涌现,Web变得更加开放、动态,社区也更加去中心化,人们却又能够更加紧密地协作和分享,内容、服务和应用更加的多样化和个性化,商业模式也逐渐走向如何满足大规模的小众需求。
Web 2.0成功的核心模式
Web 2.0和过去的Web 1.0之间有什么不同?讨论这个话题,最权威的莫过于Tim O’Reilly所写的“什么是Web 2.0?”,我在这里拾人牙慧,概述一下我的理解。
Web的演变是持续进行的,Web就像是有生命的实体,在不断生长,所以当我们说Web 2.0和Web 1.0之间的差别时,是一个相对静态的阶段性观点,而不是绝对的。
如前所述,Web 2.0是指互联网泡沫之后,人们使用Web的方式的巨大变化,开发人员、最终用户和商家,都在不断地实践新的方法。几年过去,他们取得了很多了不起的成果,缔造了很多成功的Web 2.0公司,从Google、Salesforce、MySpace、Flickr、Delicious、YouTube、Linkedin到今天十分火爆的Facebook,具有Web 2.0特征的公司,风起云涌。如何定义Web 2.0不重要,重要的是Web 2.0 背后的模式和原则,这些模式对于Web 2.0的成功至关重要。
Web 2.0具有八个核心模式,它们分别是:
·群众智慧(Collective Intelligence)
建立一个参与架构,借助网络效应和算法,使得软件随着使用的人越来越多而变得越来越好。
·数据,下一个“Intel Inside”
利用独特、难以复制的数据源,成为这个时代的“Intel Inside”,其中,数据变得跟功能一样重要,成为核心竞争能力。
·“复合”创新
建立一个平台,通过数据和服务的组合,来创造新的市场和机会。
·丰富用户体验
超越传统的Web页面模式,让在线应用拥有桌面应用一样的丰富用户体验。
·支持多种设备
支持各种连接到因特网的设备,为用户提供无所不在、无缝的在线体验。
·软件即服务(Software as a Services,SaaS),和永久试验版(Perpetual Beta)
改变了传统软件开发和使用的模式,转向永久在线、持续更新、软件即服务的模式。
·利用长尾
借助因特网带来的接触极大规模客户的能力以及极低成本的营销方式,来获得细分的“利基”(niche)市场的利润。
·轻量级模型和低成本优势的可扩充能力
利用轻量级的商业模型和软件开发模式,来快速、廉价地构造产品和服务。
以上几个模式,分别关注不同方面,但是它们由如下几个Web 2.0的特质而相互关联起来:
·大规模互连
今天我们从过去一对多的发布和通信,转向多对多的连接,网络效应使得边际同核心一样重要,颠覆着旧的通信、发布、分发和聚合模式。
·去中心化
这种大规模互联,也颠覆着传统的控制和权力结构,带来更大程度的去中心化。从全球信息流动,营销,到新产品设计,这种发自底层的草根力量, 都在“叫板”来自权力阶层的声音。系统更多地从通过边沿的拉动来生长,而不是借助核心的推动向外生长。
·以用户为中心
网络效应给予用户前所未有的力量,他们参与、对话、协作,最终产生巨大的影响。消费者可以说话、交流和讨论他们的经验,他们拥有控制权,积极主动地影响着产品的方向,同时也对那些积极应对的公司报以忠诚和口口相传的口碑营销。
·开放
这种开放性,是以因特网的开放技术标准为基础的,但很快地演进到一个由开放应用所构成的生态系统,这些应用建构在开放数据、开放API和可重用的组件之上。开放,还意味着超越技术层次的更大程度的透明性,如公司对外沟通,共享知识产权、产品的开发过程等。
·轻量级
软件由小团队使用敏捷方法设计和开发,使用简单数据格式和协议,采用运行开销小的平台和框架,应用和服务部署简易,商业上力图保持低的投资和成本,营销上利用简单的消费者之间的口口相传来形成病毒式传播。
·自然浮现
不是依靠预先完整定义好的应用结构,而是让应用的结构和行为随着用户的实际使用而灵活适应和自然演变;成功来自合作,而不是控制。
这些特质,Web 2.0的应用体现得越来越多,由这样的应用所构成的应用生态系统,具备了将大规模个性化的信息和服务带给极大规模普通人的潜力。
Web Oriented Architecture:Web 2.0的设计原则和编程模型
Web 2.0的发展,对软件的重要影响,集中在下面几个方面:
图1. Web 2.0对软件的影响
首先,Web 2.0带来了“简单性”,也就是软件容易使用、易于组合和混用、易于扩展。这对传统软件,尤其是企业软件来说是很不简单的一个改变,因为企业软件过去高高在上,往往需要花很大的力气来集成,需要专业人员来维护和扩展,用户也需要经过训练才能很好地使用软件。
其次,Web 2.0带来了“软件即服务”的观念,用户付费即用,无需操心开发、安装、部署和运营维护,开发的过程也极大程度地由用户驱动,用户需求的反馈非常及时。
还有就是社区和用户增值,也就是用户不只是纯粹的消费者,他们还是生产者,系统利用他们贡献的数据(比如 标签、意见)和行为,通过网络效应和算法,获得“群众智慧”,利用它们构成的社会网络,获得口碑相传。
这些设计原则和模式,被人们总结为Web Oriented Architecture,简称WOA。WOA与时下企业软件正流行的SOA,采用同样的设计哲学和理念,也是以服务为中心的架构模式,只是它主要采用来自Web的概念和技术来构建服务架构:
·使用REST来表示和访问服务,每个网络资源(或者说实体)可以用一个URL来唯一地表示和确定,其上只有GET、POST、PUT和DELETE四个操作;
·数据被编码成XML文档或者ATOM Feed以用来交换数据,在服务器和浏览器之间,也可以使用JSON编码的文档;
·基于AJAX的丰富用户体验;
Web 2.0的编程模型正在形成,它包括下面几个重要部分。
·一个轻量级的编程模型,就是使用REST和Feed,有时也考虑SOAP,比如Amazon既提供REST也提供SOAP,社区里使用REST的比例要更高一些。
·数据服务,数据服务将不同来源的数据结合、过滤、转换、消除不一致性,提供必要的质量保证,比如数据一致性、安全、访问控制和数据管理。
·提供丰富用户体验的因特网和Web应用,结合使用AJAX、HTML、XHTML、CSS、DOM、XML和XSLT,利用XMLHttpRequest和JavaScript将一切绑定在一起,使得在线应用提供如同桌面一样的丰富用户体验。
·可“混用”(Mash-able)的资产,将内容和IT资产变成可以灵活重组的资产,利用互联网轻量级的内容聚合方法来建立复合Web应用。
·企业Mashup平台,让那些需要内容和信息的人们,可以轻松的聚合和重组来自不同地方的内容和数据,快速满足他们因情景而不断变化的需求。
Global SOA
WOA将企业SOA的服务,带给更多的人,带给那些对IT不是太了解的普通用户和业务部门的雇员(Line of business persons)。
首先,WOA将企业SOA提供的服务提供到Web上,将企业的服务延伸到了全球范围,并且简化了:
·开发
·服务组和
·部署和可访问能力
·质量保证:性能、可伸缩性和安全性
反过来,企业在将自己的SOA服务扩展到Web的同时,也在使用来自Web的服务和Feeds。但是二者不能相互取代,很多企业内部的核心流程和数据资产,所要求的企业级安全性、可靠性、可管理能力等,是WOA所不能提供的。所以我们说,Web 2.0是SOA的扩展,二者相辅相成,但并非竞争和取代的关系。Web 2.0提供的丰富用户体验,极度的简单性和易用性,让SOA所提供的核心业务服务和数据,能够被更多的普通用户和业务人员,以更简单、更富于个性化的新的方式使用和组合。
图2. Web 2.0和Global SOA
在一个企业中,业务活动有很多种。一些是非常核心的业务流程和信息资产,它们相对稳定,有着明确的业务定义、规则和评价指标,通过明确定义的业务活动来完成。这些活动强调可管理能力、可靠性和高度的安全性,是企业SOA的好目标。也有一些活动,更多地依靠业务人员、顾客和合作伙伴,通过大量的信息交互和沟通来完成,这种活动虽然有其目标,但执行过程通常无一定之规,需要因场景变化而变化,这种非常柔性的、面向多人、依靠大量信息交流的活动,我们称之为边沿性的活动,这些活动是Web 2.0的好目标,通过将企业SOA中的核心服务和信息资产,扩展到这些活动中来,Web 2.0提升了SOA的价值。
小结Web 2.0
Web 2.0是一个新事物吗?不是,它是Web连续演变过程中的一环而已,是一个用来表示人们使用Web的方式所发生的重要变化的符号。这些变化背后,是一系列设计原则和模式,是一组基本特征,是支持这些设计原则和特征的技术选择和编程模型。它们以简单性、易用性、社区与参与架构所支持的网络效应和用户增值带来的群众智慧,以及软件即服务的交付模式为基本指向,奠定了一个基于Web实现的SOA架构风格,即Web Oriented Architecture。WOA跟SOA相辅相成,各自适用不同的情景,WOA将SOA扩展到Web,又将Web引入SOA,使得SOA的服务和数据资产,可以被更多的人,以更加简单、易用的方式使用起来。
向前,向前,再向前:从Web 2.0到Web 3.0
Web 2.0只是Web的一个发展阶段,它还在成熟的过程中,不过Web的发展是连续的,人们已经开始在谈论Web 3.0,也就是如何将因特网转化为一个以3D为基础的虚拟世界,如何利用人工智能,如何将互联网转化为真正的语义网。这些发展都是非常激动人心的,它们的发展成果将像Web 2.0一样,给我们的商业、社会和技术带来深远的影响。让我们拭目以待,积极参与和推动吧。
关于作者
毛新生先生现任IBM中国开发中心Web 2.0首席架构师。此前他曾任IBM软件集团企业解决方案部大中华区和北亚地区首席架构师与IBM SOA中国设计中心技术主管,在企业级软件方面拥有广泛、扎实、深厚的理论功底和丰富的设计与项目实施经验。2006年,毛新生先生被授予“IBM资深技术主管”称号(STSM,Senior Technical Staff Member),成为中国内地第一位获此殊荣的IBM技术人员,在全球也仅有1000多位IBM员工享有这样的荣誉。毛新生先生于2000年加入IBM,曾先后在北京大学和IBM中国研究院从事研发工作,以研究人员,开发经理和架构师的身份从事过信息检索,语音技术及其中间件,门户,普及计算,Linux,网格计算,Web Service和SOA等领域的很多工作。毛新生先生毕业于北京大学,拥有计算机专业硕士学位。如果您想找到更多关于毛新生先生的文章,您可以搜索毛新生的BLOG。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
docker当作web环境好吗?
-
为什么Web会成为承载云计算的核心?
-
如何满足软件开发的非功能性需求?
第一次使用已经过证明的模式和听起来的最佳,适当地时行软件开发的好处之一是,在软件中解决核心需求时,许多非功能性的需求也得到了初步解决。
-
IBM欲携手合作伙伴将网络分析洞察新服务推向中国市场
今日,IBM(NYSE: IBM)宣布合作意向,将携手国内两大实力合作伙伴,依托于领先市场的Coremetrics技术服务,在本地市场推出数字营销优化套件。