服务于因特网的数据流技术(Data streaming technologies)已经流行了很多年,在Google中只要以Internet streaming关键词查询,你就会找到有关流音讯和视频(streaming audio和video)相关的成千上万的网页。流的基本概念是,站点能够为用户提供速度足够快的数据,以致用户感觉到程序似乎在当地机器上运行一样。
你如何才能接受有关流音讯和视频的概念并将这些概念运用到程序中?客户如何登录到你的Web站点,以及在不需要下载或安装任何软件的前提下能够运行你开发的具有全部特性的产品?虽然没有高度张扬名为音讯和视频流,但有关程序流的技术是存在的。现在让我们看看过去和一些新的有关程序流开发的概念。
要想查找程序流(除了音讯和视频之外)相关的网站还是比较困难的,但是,流程序并不是一个新概念。你可以想想一个主机是如何工作的?一个主机在运行同一时刻被成千上万终端用户使用的程序,而且主机必须将界面改变实时地传输到用户端。主机有可能位于千里之外,但用户终端在操作上感觉到主机程序似乎在本地机器上运行。虽然主机并不是在技术上称为流程序,但效果基本上是一样的。自从20世纪60年代这些技术已经出现。
有人会认为,除了一个图形用户界面,Windows终端服务(Windows Terminal Services)功能与一个主机很类似。在理论上,用户可以通过一个VPN连接到公共网络,然后启动一个终端服务器以运行一个远端程序。然而,对于服务于流程序的因特网,Windows终端服务只是一种比较差的解决方案。
运行一个终端服务器会议需要用户对登录到网络的验证。这一功能对于你的公司是有好处的,但对于访问你的Web站点的每个人,他都不可能具有通过验证的权限。另外的一个问题就是可检测性与性能。很少有人觉得终端服务可以检测,因为终端服务都是“被捆绑”。除此之外,如果你的Web站点有很多用户想进行终端服务会议时,由于不足够的网络带宽,站点可能会出现问题。
正如你所看到的,终端服务并不是设计为满足因特网上成千上万用户使用的流程序。幸运的是,当前已经出现一些专门为程序流而设计的新产品。来自EAppSoft的Z!Stream和来自Endeavors Technology的AppExpress都提供了因特网的程序流,但这两种产品以不同的方法实现。
Z!Stream允许你监控所有的Windows可执行文件。Z!Stream的最大优点是,无需重新编写或者更改代码就可以实现程序流,这也可能归结于一个名为分布式虚拟页面(DVP,Distributed Virtual Paging)的技术。DVP允许公司从一个标准的Web服务器实现流程序,而不需要下载,文件共享,或者要求部分用户重新启动机器。
这一技术同时支持拨号上网和带宽的用户。对于拨号上网的用户,Z!Stream只需要10%的带宽来运行一个比较程序。同样,一个单一Web服务器可以容纳400个同时进行的会议。如果一个区域想设置额外服务器,这一技术不需要执行负载均衡(load balancing),而只需添加另一服务器及其设置。
AppExpress使用一种稍微不同于Z!Stream的技术。AppExpress运行以决定程序运行的最小代码数量。例如,如果你想对一个字处理程序进行程序流化,程序核心务必被下载,但可以不下载拼写检查部分,直到用户对一个文档进行拼写检查。这就大大地减少了下载一个程序所需要的时间。与Z!Stream类似,使用AppExpress进行程序流也不需要重新编写或者更改代码。
从性能的角度看,AppExpress包含好与不好两面。好的方面是它能够适用于和宽带的用户。事实上,AppExpress提供了Endeavors Web站点上的一个程序,这个程序允许你对性能进行检测。例如,对于一般情况,通过T-1连接大约需要两分钟来下载一个15兆的软件,通过拨号连接需要44分钟来下载相同的软件。对于Endeavors Web站点,使用AppExpress通过T-1连接需要1分钟来下载以上提及的软件,而以拨号连接只需要9分钟。所以,拨号方式下载节省了35分钟。
AppExpress具有三个版本:enterprise,training ware,以及trialware。这些版本的缺点是,你必须购买附加使用许可权利,才能使用软件中的不同功能。
程序流技术在测试软件中非常有用。软件公司通常提供他们软件的测试版本(或者以下载或者以CD-ROM方式)。盗版产品通常不会包含所有的软件功能,并且需要很长的时间来下载。同样,30天测试CD以大规模数量寄出也需要昂贵的费用,而且也增大了软件被盗版的可能性。然而,在线测试版本能够使得用户不需要等待漫长的下载时间就可以即时测试,而且,也允许用户使用全部产品功能而不担心软件被盗版。