【IT168技术分析】自从Web在90年代早期诞生,到现在已经发展成为人们日常生活中重要的一部分了,它的出现立即改变人们联系,交流,获取知识的方式。在Web正在很大程度上影响着社会生活各个方面的同时,它也对商业的发展影响很大。
一个公司要想走在技术的前列,对Web技术的把握就是它们的目标。
先前的时候,Web主要是静态的,由基本的HTML页面组成。但是随着技术的发展,一些公司相继成立,发展很快,引发第一次推动作用,web很快就引入了通用网关接口(CGI),出现了基于Perl的应用程序,此期间还伴随着新的安全技术,一大批新的功能特点的出现,不过这些大多是商业的。
接着,当你的公司适应了那些技术,又出现了XML、SOAP和SOA新技术,这些技术完全改变了应用程序,系统和商业的连接方式,伴随blogs,、wikis、社区这些带有web 2.0色彩的产物出现。
现在,当你的公司正在适应这种2.0技术的时候,Web又开始向前发展了。
下一代的Web 应用程序以动态性,交互性,开放性和高度灵活性为特征,不仅仅是在性能上超过经典的web应用程序,同样也需要领先于桌面应用程序的特点。
简言之,下一代web应用程序就是让用户使用起来就像是使用操作系统。现在是时候让商业来接受新的web技术的变化了。
本文总结了下一代web应用程序的五个关键特点,希望能给那些正在准备甚至是构建和部署这些创新web应用程序的公司提供一些启发。
毕竟,当提到这些web技术的时候,如果停滞不前并不是一种明智的选择。
措施一:构建富客户端应用程序
当web或者说Internet应用程序说到“富”,通常就指它具有非常好的互动性,有一个直观的用户接口,和桌面应用程序的用户接口一样好,甚至还更好。另外,还具有很多的功能特点和很好的性能。
一个富web应用程序界面将会包括一些拖拽的能力,下拉式上下文和右键鼠标菜单,当有线图和报表时,应该要有交互式的,实时数据响应。
理解富web界面很重要的一条就是:并不一定要有很多的浮华的动画和flash图标。一个给服务器或者服务器应用程序使用的简单、普通的管理界面可以是非常丰富的,它可提供用户信息,允许他们定义、设置参数。
这个领域最为主要的技术之一就是AJAX ,一个基于标准的语言,有可能写出非常丰富,能在任何基于标准的web浏览器上运行。
非常有趣的是AJAX并不是一项真正的新技术。AJAX大多是基于JavaScript技术,但是它以一种很独特的方式创建交互式web应用程序。
AJAX最大的好处之一就是不用学习新的东西。AJAX应用程序可以在任何编辑和开发环境中构建,至于工具也有很多,从微软的Visual Studio到Adobe的Dreamweaver都提供了很多的工具,目的就是推动和运行AJAX。
另外的产品包括Adobe's Flex和Microsoft的Windows Presentation Foundation,他们设计的目标都是为了开发富web应用程序,这些应用程序能够脱离web浏览器运行。但是,你要记住的是这两个平台都要依靠非Web技术,Flex需要flash技术的支撑,而WPF需要微软的技术的支持,如WPF/Everywhere.
但是,你要注意的是太多的交互会毁掉一个web应用程序。因为你加了过多的、不必要的菜单,窗口和动画。
措施二:保持开放的思想
过去十年中最令人惹人注意的技术之一就是Web服务和SOA。如果你对此有所怀疑的话,只需要想想在90年代后期XML和Web服务出现之前,那些应用程序的状态和数据整合情况你就会明白。
在那个时候,开发一个应用程序和系统整合意味着处理用户数据包,API和所有连接系统的大杂烩。在许多的情况下,要想连接不同的业务系统是不可能的。
但是在短短的几年里,Web服务改变了这些状况。现在,每个现代的企业应用程序,数据库,框架都是使用标准的技术,很容易的进行复杂的,并且健壮的数据和应用程序整合。
这是如何完成的了?简言之,就是要有开放的思想。从一开始,SOA就宣布如果一个商业,开发者,或者软件开发商要想继续发展下去,你就不得不开放标准。即使那些曾经倾向于走所有权路线的开发商才是拥护标准了,他们很清楚的明白:如果不能和其它的标准整合的话,留给他们的出路只能是出局。
世界上下一代web应用程序,坚持开放的思想是至关重要的。一个站点,一个应用程序只是在一个web浏览器,一个操作系统上运行的年代已经过去了。
在很大的程度上,下一代web应用程序的核心就是让它非常地容易长期存在,并且形成web标准。像前面介绍的一样,AJAX本身就是基于共同的web标准,许多好的AJAX应用程序应该能够跨浏览器和跨平台。
另外,一些标准组织,像World Wide Web Consortium和OASIS正在筹划几个新的文档格式和标准规范,如复合文档格式,这就给下一代web应用程序注意了新的活力。目前出现了一些和下一代web技术竞争的对手,如Flex 和 WPF。但是既然它们都是基于开发商所提供的技术,那么它们就不可能和AJAX那么开放了。
我们推荐无论在何时何地商业上选择开放和基于标准的路线。一个应用程序如果开发的时候以一个私人拥有的方式开发出来后,是很难和其它应用程序整合,那么这个应用程序就不会有很好的前景了。如果一个应用程序的客户发现他们被规定必须这么做,不能那么做的时候,他们就很有可能停止使用了。坚持开放标准能够保证一个应用程序健壮的发展,符合新兴的趋势。
措施三:保持数据动态性
一些旧的Web应用程序,虽然能够存储数据,但是不能很好的控制数据。相反,下一代web应用程序增加了空闲时间对数据的处理,能够让用户实时的和数据交互,而不是一成不变的通过加载web应用程序来获得新的数据。
使用像JSON这样的技术,使得下一代web应用程序给了用户更多的对数据的控制,并且还提供了很强的故障容错能力,使得数据能够驻留在客户端。这与传统的c/s模式的应用程序形成了很大的反差,传统的应用程序一旦连接丢失的话,所有的数据就会丢失。在数据方面另外一个重要变化就是出现了语义web(Semantic Web),这涉及到相关的标准和技术。
语义web(Semantic Web)技术将会使得web应用程序能够查询和交互那些存在与站点和应用程序中的数据,使得形成一个新一代web应用程序成为可能。
下一代web应用程序不经能更好的处理数据,另外在创建和测试应用程序方面的能力也有所提高。另外还使得下面的状况成为可能:许多标准的web应用程序开发环境使用小的XML和其它的文件来调试、测试新的web应用程序。
改良后的数据管理程序使得像标准桌面应用程序中的本地数据存储、快速响应、离线能力,在web应用程序中也能实现。
措施四:具备离线访问能力
谈论到下一代web应用程序的离线特点可能有些可笑。毕竟,离线访问不就是老的桌面应用程序的特点吗?难道下一代web应用程序也需要这样吗?
然后,或许还真需要这样的版本,虽然现在在现实世界中是不存在的,但是某些时候,特别是在美国还真用得着。
对于下一代web应用程序来说,它们正在走向前台,最为传统桌面应用程序的替代品,真巧还可能会出现基于web的操作系统的存在,那么,下一代web应用程序不得不拥有看似很老旧的离线访问的能力。
考虑一下这个:你的公司已经给你的客户创建了一个很大的新的软件产品,当然这个软件也能给你的客户带来很大的价值。但是,如果你客户的员工不能在六个小时内使用这个产品,那么一个多面应用程序就开始对他们有很大的吸引力了。
在现实生活中,对离线访问功能的需求并没有消失。Google,作为下一代web应用程序的最大支持者之一,已经发了一个名为Gears产品,目前还是测试版,这个产品就使得离线访问Goolge应用程序成为可能。
另外,Adobe公司的AIR技术,将会在夏季结束的时候开始发布,用于构建富Internet应用程序,使得脱离浏览器运行和使用离线数据称为可能。另外,Mozilla基金会将计划在下一个Firefox浏览器中增加对离线功能的支持。