简体版  |  繁体版   推荐信息:
创新频道_比特网

Web2.0引爆开发技术变革

出处:软件世界 作者:齐书阳 2008-02-19 14:28 评论
字体大小: | |
与其说Web2.0是一种用户体验互联网方式的变革,不如说是由此引起的整个社会、经济和技术的全面变革。

  在2.0时代开发者与最终用户之间的三个层面:开发技术、开发方式、部署方式都有变化。

  作为人们使用互联网方式的巨大变革,Web2.0强调的参与、社群正在逐步地渗透到企业当中,同时它所表现出来的应用模式创新也正在催生新的技术,呼唤着新的软件架构的出现。当前,这种新的技术和架构已不再是停留在理论层面,它开始应用在具体的开发过程中,例如Rest、Ajax、Mashup、Rails、敏捷开发等。

  Web就是一台计算机

  与其说Web2.0是一种用户体验互联网方式的变革,不如说是由此引起的整个社会、经济和技术的全面变革。从社会角度,我们看到了用户的参与、社群的交互、丰富的体验;而从商业模式角度,我们看到的则是群众的智慧、长尾的力量。

  “我要快乐,并且马上就要。”IBM Web2.0项目主管毛新生在论坛上激情地解说着Web2.0。他认为,正是用户对于Web的这种需求,才催生了Web2.0下利用群众智慧的商业模式,蚂蚁雄兵,每个人做一点事情,积累起来就是一股巨大的力量。

  就像亚马逊网站一样,它把无数人不同时期买书的行为都纪录下来,然后找出共同的模式。所以在你买了一本书后,它会提示你买了这本书的人都买了其他什么书,你就会很乐意再买几本。实际上亚马逊没做什么,它就是把这些纪录下来,然后把分析结果呈现给你。它利用的还是每一个人的力量。

  “让我们把用户当作真正的上帝,让他们参与吧,让我们搭建一个平台,让他们玩去吧。”毛新生在倡导这种新型的模式的同时,也指出这种商业模式需要一种全新的底层架构,一方面是社会计算。“我们正在达成这样一个共识,在web2.0的浪潮中,软件一定要更深层次地考虑人的因素,人就是软件的一部分,所以社区的特性和参与的架构本身就是我们软件架构的应有一部分。”

  另一方面就是所有的数据、处理能力、甚至包括底层架构,他们体现出来的已不再是技术,而是服务,这种服务和开餐馆没有任何区别,软件的设计必须转入到这样一种思维中。就像Google map,它一出生出来就不仅仅是供Google自己用的,它生长在Web环境中,每个人都可以整合它、利用它,把它嵌入在自己的blog中,嵌入企业应用中。

  最终,Web好像变成了一个机器。“任何一个应用,就像蒲公英一样,在Web的世界里飘到各个地方供所有人使用。”毛新生描绘着Web2.0的未来。

  从技术角度来定义Web2.0,我们可以说它是把Web作为一切的平台,是智能化的协作,是把数据作为一切的基础,是快速的软件交付周期,是轻量的编程模型。而面对Web2.0,我们最大的挑战是如何建立一个稳定的社区并满足业务目的,如何正确地混合信息、资源和工具,如何支持巨大的网络流量。

  “Web已经变成可编程的平台。”C++的天才作家Andrie Alexandrescu说,可编程的意思是,在1.0时代,你在Google中输入关键词,点击搜索按钮来得到答案,而在2.0时代,你可以通过一个程序连上Google,让Google背后的后台把这个答案跟其他Web上扫到的很多东西结合来提供给你。

  在具体的技术方面,Web2.0最显著的就是Mashup,它是Web2.0世界的整合,它将各种各样的数据、服务整合在一起,形成新的应用。通过Mashup,使用者不需要再去从头构建所有的基础设施,他需要的只是一个创意,剩下的就是找到相应的服务,把他们整合起来。

  其次是Rest,它使Web2.0底层的IT架构彻底地简化,让他们变得异常简单,想用就用。在Rest的世界中,所有的东西都被看作资源,不管是文件还是图片,也不管是txt格式还是xml格式。而对资源的操作简化为4种,那就是创建、获取、更新、销毁,它认为所有的事情都可以通过这四种操作来实现。最后具体的使用协议只是最基础的、最简单的HTTP协议,没有SOAP等复杂的交互。

  通过Rest,所有的事情都被简化了,原来每个实体非常独特的操作和语义被统一起来。到处都是独立的、松散的、完全没有任何关系的实体,这就是资源,而资源不同的时态下表现出不同的状态,就可以展现出这个绚丽多彩的世界。这种状态非常适合大规模的分布式环境,因为在这样一个环境中,有一个基本的假设与以前截然相反,就是你根本不知道在这个分布式的世界里,会出现什么,会和谁合作,而这就要求最大幅度地简化。

  还有Ajax,通过它可以在浏览器中提供类似桌面的,绚丽多姿的效果,并且实现与服务器异步地交流。通过这些,Ajax真正带来的是:浏览器从过去完全隶属与服务器的亚终端,转变成一个独立的、应用、发布的平台。“浏览器已经不是那个孱弱的小弟弟,它已经长大了,独立的成为一个平台,你可以在这个平台上创建你的应用,运行你的应用,发布你的应用。”毛新生说,这种浏览器地位的转变带来的是整个互联网应用的变革。

  软件开发2.0时代

  软件技术发展到今天,Web已经成为唯一真正的统一软件平台,这对单个计算节点的计算能力、规模和节能提出了前所未有的要求,而这一点又由多核CPU、大规模服务器集群和新的并行程序设计予以满足。

  同时我们看到,在软件设计领域,UML力图成为表达软件设计的统一语言,而更高级的软件建模工具如MDA、DSL等技术也在积极进展当中,这将根本上改变人们表达软件设计的方式;与之相对,XML正在成为纵跨数据层、逻辑层和通信层的统一数据模型,根本上改变人们表达数据的方式;用户界面技术进入到新时期,RIA的出现则综合了浏览器与普通客户端应用程序的最佳特性;各主流语言都在积极加强自身的动态性,从而使数据与代码之间的界限变得越来越模糊;移动设备和无线网络技术的发展将计算能力满布在地球的各个角落,使得分布式计算成为常态;而多核CPU的主流化也给传统的串行化程序设计时代画上了句号。

  这些都在向我们表明,软件开发的方式也正在发生变革,2007年11月29日,由CSDN和美国CMP集团合办的“2007软件开发2.0大会”提出了软件2.0的概念。CSDN总裁蒋涛说:“软件2.0包含一个核心理念,两个基础、两个方向。核心理念就是以人为本,基础之一是计算的平台——多核、并行和移动计算,另一个是快速的开发工具和动态语言的发展,我们称为工具和语言的2.0。基于这两个基础,产生了两个方向的变革。一是新一代Web开发,随着Web 2.0概念的深入,新一代互联网模型己初步形成。另一个方向是Enterprise 2.0,包括SaaS软件服务。”

  在并行编程方面,Intel软件产品部市场总监James Reinders强调三点,首先是可伸缩性,程序要能适应CPU数的变化,如三核到四核的迁移;另外还有准确性,在并行的相互竞争的进程中不能出现死锁情况;最后就是可维护性。

  

  软件开发2.0下的技术路线图

  • 本文关键字:
  • 应用(2162)
  • 频道最新更新
    点击排行
    推荐专题
    更多
    论坛热贴
    更多
    博客精选
    更多
    视频推荐
    更多
      TMG

      Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络

      渝ICP证B2-20030003号 商务联系、网站内容、合作建议:010-82657868

      版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i

      经营性网站备案信息 网警备案 中国网站排名