首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

今天我们所熟知的因特网与它刚刚起步的时候大不相同。虽然许多人发现在网上还可以购买最新的DVD或计划下一次旅行,但是在最初的日子里,因特网中只有文本;今天我们有视频播客(video podcast),还可以轻而易举地与世界上任何一个人分享宠物猫的照片。原本为了在研究领域内更好地聚积信息而发明的东西(即因特网)已经演变成了一条重要的销售渠道,不仅如此,它还成为了现代应用的主要传输机制之一。

1.1  Web应用的崛起

早期的网页都是简单的静态文本,这完全能够满足发布最新论文或课程计划的需求。然而,没过多久,人们就开始希望得到动态的体验。随着几乎所有操作系统都开始包含Web浏览器,人们开始开发基于Web的应用程序。考虑到早期浏览器提供的很差的用户体验,这也许看上去是一种偶然的选择,但是至少对开发人员来说,瘦客户程序(thin client)有三个主要的好处。

Web应用的使用门槛(barrier of entry)很低——用户无需安装任何软件。如果你觉得这并不要紧,那就去问问有多少人使用过Google Maps(一个基于Web的地图程序);很有可能每个人都会举手。再试试问同样一群人有多少使用过Google Earth(一个桌面程序,它对卫星图片和地图进行了整合,允许人们非常直观地游览地球)。很有可能前者的使用者更多(尤其是当问到Mac的使用者时——直到最近,Google Earth还只能在PC上使用)。要这样考虑这种现象:你更愿意使用一个只需鼠标点击的应用程序呢,还是需要下载安装并运行可执行文件的应用程序?

浏览器的普遍存在与低门槛有很紧密的联系。与大多数需要安装的应用程序不同,Web应用能够在操作系统上运行,只要系统中还有支持该Web应用的浏览器即可。虽然这个问题在Java领域得到了极大的缓解,但是你可以去问问维护SWT(Standard Widget Toolkit)的老兄们,与5个代码库打交道是一件多么“有趣”的事情。因此,基于浏览器的应用可以使开发人员获得极大的用户群。

与胖客户程序(thick client)相比,Web应用维护起来容易得多。如果你曾经开发过传统的胖应用(thick app),就会知道管理依赖性有多么讨厌。也许你的最新升级依赖于Spiffy Library的1.2.3版本,但是你的用户只有1.2版本。当然,你可以把这部分升级也做成安装程序的一部分,但是如果其他重要的应用依赖于1.2版本而且就是不能在1.2.3版本下正常工作的话,会发生什么事情呢?当然,你的用户从需要安装的应用程序中获得了丰富的体验,但是管理升级的开销可能是巨大的。对基于浏览器的应用程序而言,我们只控制服务器,因此修改起来(通常)是很容易的。如果我们需要一个更新的代码库,就只需要添加它,因为我们控制着应用程序的部署环境。这也允许我们更频繁地进行改动——只需要把新代码放到服务器中,客户就能得到最新的版本了。

尽管Web应用有这样或那样的优点,但作为一种应用媒介,它也有一个大的缺点。大家都知道一般的Web应用不如Word或Quicken方便好用。当然,如果你在使用浏览器之前使用的是大型机,可能不会在意,但是如果之前的程序拥有胖客户程序的所有能力,当把这些丰富的体验移除时,你可能就会感到一丝失望了。尽管如此,优点往往还是多于缺点,并且在过去的数年中,大量软件工程师已经开始了Web应用的开发。

尽管如此,用户还是不能对瘦客户程序完全满意。我们也许已经说服他们接受现状,但是事实上,与连接到大型机的傻乎乎的终端相比,普通Web应用的改进几乎只装装门面而已。在过去的这些年里,我们经历了从使用CGI脚本到JSP的演进,最近更是出现了许多基于XML的语言,如Mozilla的XUL和微软的XAML,它们都致力于提供与桌面程序类似的界面外观。当然,Flash已经创建出一些非常棒的界面了,但是它需要昂贵的开发工具以及浏览器插件。

但是为了获得最广泛的潜在用户,我们不得不紧紧锁定在浏览器上,这意味着我们的应用程序必须直接绑定在请求/响应的同步特性上,这是因特网的基础。虽然请求/响应对发布文章这样的需求很合适,但是在这种模式中,页面的一小部分修改也会引起整个页面的重绘,这显然不是最好用的(或高效的)做法。唉,如果我们能够异步发送一个请求并只更新需要改动的部分就好了……

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论