Web 2.0 与 SOA: Web 2.0 介绍

转载 2007年09月25日 17:08:00

关于 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?

今天的 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 具有八个核心模式,它们分别是:

  1. 群众智慧(Collective Intelligence)

    建立一个参与架构,借助网络效应和算法,使得软件随着使用的人越来越多而变得越来越好。

  2. 数据,下一个“Intel Inside”

    利用独特、难以复制的数据源,成为这个时代的“Intel Inside”,其中,数据变得跟功能一样重要,成为核心竞争能力。

  3. “复合”创新

    建立一个平台,通过数据和服务的组合,来创造新的市场和机会。

  4. 丰富用户体验

    超越传统的 Web 页面模式,让在线应用拥有桌面应用一样的丰富用户体验。

  5. 支持多种设备

    支持各种连接到因特网的设备,为用户提供无所不在、无缝的在线体验。

  6. 软件即服务(Software as a Services,SaaS),和永久试验版(Perpetual Beta)

    改变了传统软件开发和使用的模式,转向永久在线、持续更新、软件即服务的模式。

  7. 利用长尾

    借助因特网带来的接触极大规模客户的能力以及极低成本的营销方式,来获得细分的“利基”(niche)市场的利润。

  8. 轻量级模型和低成本优势的可扩充能力

    利用轻量级的商业模型和软件开发模式,来快速、廉价地构造产品和服务。

以上几个模式,分别关注不同方面,但是它们由如下几个 Web 2.0 的特质而相互关联起来:

  1. 大规模互连

    今天我们从过去一对多的发布和通信,转向多对多的连接,网络效应使得边际同核心一样重要,颠覆着旧的通信、发布、分发和聚合模式。

  2. 去中心化

    这种大规模互联,也颠覆着传统的控制和权力结构,带来更大程度的去中心化。从全球信息流动,营销,到新产品设计,这种发自底层的草根力量, 都在“叫板”来自权力阶层的声音。系统更多地从通过边沿的拉动来生长,而不是借助核心的推动向外生长。

  3. 以用户为中心

    网络效应给予用户前所未有的力量,他们参与、对话、协作,最终产生巨大的影响。消费者可以说话、交流和讨论他们的经验,他们拥有控制权,积极主动地影响着产品的方向,同时也对那些积极应对的公司报以忠诚和口口相传的口碑营销。

  4. 开放

    这种开放性,是以因特网的开放技术标准为基础的,但很快地演进到一个由开放应用所构成的生态系统,这些应用建构在开放数据、开放 API 和可重用的组件之上。开放,还意味着超越技术层次的更大程度的透明性,如公司对外沟通,共享知识产权、产品的开发过程等。

  5. 轻量级

    软件由小团队使用敏捷方法设计和开发,使用简单数据格式和协议,采用运行开销小的平台和框架,应用和服务部署简易,商业上力图保持低的投资和成本,营销上利用简单的消费者之间的口口相传来形成病毒式传播。

  6. 自然浮现

    不是依靠预先完整定义好的应用结构,而是让应用的结构和行为随着用户的实际使用而灵活适应和自然演变;成功来自合作,而不是控制。

这些特质,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 的概念和技术来构建服务架构:

  1. 使用 REST 来表示和访问服务,每个网络资源(或者说实体)可以用一个 URL 来唯一地表示和确定,其上只有 GETPOSTPUTDELETE 四个操作;

  2. 数据被编码成 XML 文档或者 ATOM Feed 以用来交换数据,在服务器和浏览器之间,也可以使用 JSON 编码的文档;

  3. 基于 AJAX 的丰富用户体验;

Web 2.0 的编程模型正在形成,它包括下面几个重要部分。

  1. 一个轻量级的编程模型,就是使用 REST 和 Feed,有时也考虑 SOAP,比如 Amazon 既提供 REST 也提供 SOAP,社区里使用 REST 的比例要更高一些。

  2. 数据服务,数据服务将不同来源的数据结合、过滤、转换、消除不一致性,提供必要的质量保证,比如数据一致性、安全、访问控制和数据管理。

  3. 提供丰富用户体验的因特网和 Web 应用,结合使用 AJAX、HTML、XHTML、CSS、DOM、XML 和 XSLT,利用 XMLHttpRequest 和 JavaScript 将一切绑定在一起,使得在线应用提供如同桌面一样的丰富用户体验。

  4. 可“混用”(Mash-able)的资产,将内容和 IT 资产变成可以灵活重组的资产,利用互联网轻量级的内容聚合方法来建立复合 Web 应用。

  5. 企业 Mashup 平台,让那些需要内容和信息的人们,可以轻松的聚合和重组来自不同地方的内容和数据,快速满足他们因情景而不断变化的需求。

Global SOA

什么是 Global SOA?

WOA 是企业 SOA 的扩展,与之相辅相成,因此又称为 Global SOA。

WOA 将企业 SOA 的服务,带给更多的人,带给那些对 IT 不是太了解的普通用户和业务部门的雇员(Line of business persons)。

首先,WOA 将企业 SOA 提供的服务提供到 Web 上,将企业的服务延伸到了全球范围,并且简化了:

  1. 开发
  2. 服务组和
  3. 部署和可访问能力
  4. 质量保证:性能、可伸缩性和安全性

反过来,企业在将自己的 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 一样,给我们的商业、社会和技术带来深远的影响。让我们拭目以待,积极参与和推动吧。

参考资料

学习

  • What Is Web 2.0”,来自 O'Reilly 的关于 Web 2.0 的介绍。

  • Wikipedia 中关于 Web 2.0 的定义

  • Enterprise 2.0: The Dawn of Emergent Collaboration”,管理学副教授 Andrew P. McAfee 在这篇论文中首次提出了 Enterprise 2.0 的概念。

  • developerWorks 系列专栏“ 真正的 Web 2.0 ”深入地研究实际的 Web 2.0 站点,并演示 Web 架构师如何将 Web 中的最佳内容引入他们自己的网站。

  • developerWorks 文章“Web 2.0 用户界面技术”讨论一系列 Web 2.0 用户界面技术,让您构建的应用程序具有比浏览器更好的用户体验。

  • developerWorks 文章“Geronimo 叛逆者: Web 2.0 评估报告”本文着眼于 Apache Geronimo 项目,从 Web 2.0 应用程序的构建程序和 Web 2.0 应用程序本身的角度加以分析。

  • developerWorks 文章“Ajax 和 REST”这个分为两部分的文章介绍了 Ajax 技术是如何与 REST 架构风格相互协调的。

  • developerWorks 文章“跨越边界: REST on Rails”这篇文章介绍 Rails 中的 Web 服务,而重点则放在了 Representational State Transfer (REST) 的策略上。

  • developerWorks 文章“Rich Internet Applications 的技术选项”本文是对 Rich Internet Applications(RIA) 的概述,将学习如何将其应用于用户界面 (UI) 层。

  • developerWorks“Ajax 技术资源中心”汇集了大量与 Ajax 技术相关的文章和教程,帮助大家学习这个 Web 2.0 中的关键技术。

  • 通过 developerWorks Web 开发专区 中的专注于 Web 技术的文章和教程扩展您的 Web 开发技能。

  • 通过 developerWorks SOA 与 Web 服务专区 中的专注于 SOA 技术的文章和教程学习更多关于构建企业 SOA 的知识。

  • 随时关注 developerWorks 技术事件和网络广播。 
     

介绍Web 2.0 编程思想:16条法则

1、在你开始之前,先定一个简单的目标。   无论你是一个Web 2.0应用的创建者还是用户,请清晰的构思你的目标。就像“我需要保存一个书签”或者“我准备帮助人们创建可编辑的、共享的页面”这样的目标,...

外电综述:旧金山Web 2.0峰会IT大佬精彩观点

【TechWeb报道】11月17日消息,一年一度的Web2.0峰会在美国当地时间11月15日在旧金山拉开帷幕,全球IT巨头展开对话,各大公 司CEO发表了精彩演讲,或幽默或深刻,以下是部分精彩观点:百...

新型 Web 2.0 应用:XPage 与传统 Servlet 的完美结合

概述 IBM Lotus Notes/Domino 8.5 为 Lotus Domino Web 2.0 应用程序开发人员提供了一种新的开发技术 — XPage,可以利用它创建 Web 2.0 ...
  • hanle18
  • hanle18
  • 2011年10月17日 14:28
  • 354

什么是Web 2.0

2001年秋天互联网公司(dot-com)泡沫的破灭标志着互联网的一个转折点。许多人断定互联网被过分炒作,事实上网络泡沫和相继而来的股市大衰退看起来像是所有技术革命的共同特征。股市大衰退通常标志着蒸蒸...

Web 2.0 峰会2011评选出的八大创新公司

Web 2.0 峰会正在如火如荼地进行。在今年的Web 2.0 峰会上评选出了一批创新公司,这里挑选其中八家进行简单介绍: Box.net Box成立于2005年,旨在方便用户随时随地轻松访问...

Web 2.0简介

Web2.0 是相对Web1.0 的新的一类互联网应用的统称。Web1.0 的主要特点在于用户通过浏览器获取信息。Web2.0 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。...
  • fsz521
  • fsz521
  • 2012年04月22日 14:15
  • 739

Web 2.0 编程思想:16 条法则

1、在你开始之前,先定一个简单的目标。无论你是一个Web 2.0应用的创建者还是用户 ,请清晰的构思你的目标。就像“我需要保存一个书签”或者“我准备帮助人们创建可 编辑的、共享的页面”这样的...

Actuate 10把企业报表带进WEB 2.0 时代

Actuate 10把企业报表带进WEB 2.0 时代 2008-12-25 13:40:41【作者】畅享网 畅享网消息:Actuate (安讯) 公司近日宣布,即将于中国市场推出安讯最新一...

硅谷Web 2.0时代即将结束? 实用型公司更受关注

北京时间9月17日消息,据国外媒体报道,自2005年上线以来,科技博客TechCrunch便与Web 2.0时代的兴起休戚相关。作为见证Facebook、Yelp、YouTube、Twitter等社交...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Web 2.0 与 SOA: Web 2.0 介绍
举报原因:
原因补充:

(最多只允许输入30个字)