我认为原因不在于应用程序的安全性或启动时间。在找到根本原因之前,让我们先了解一下背后的情况。
Java控制面板具有设置,允许用户使用默认浏览器的代理设置或覆盖它们。换句话说,基础设施团队能够自定义Windows或OS安装映像,预安装带有企业代理设置的JVM。所以我认为这根本不是问题。
Java Web Start实际上会缓存所有具有可定制设置的应用程序在Java控制面板中。一旦应用程序被缓存,该应用程序就像其他应用程序一样“安装”了。虽然第一次执行可能会很慢,但由于JVM的智能内存分配技术,第二次将会很快。因此,启动时间可能是一个问题,但现在很多网站(甚至是企业内部)都已经迁移到门户网站。门户网站通常包含许多未使用的开发库,因为门户本身无法预测在特定页面上构建和部署哪些Portlet。因此,下载单个门户页面可能会消耗高达MB,并且需要超过5秒才能完成一个页面;这只是一个页面,缓存可以提高30%,但仍然需要每次下载许多HTML / JavaScript / CSS组件。因此,我相信Java Web Start在这里是一个优势。
Java Web Start只要服务器副本没有升级,就不会再次下载缓存。因此,例如使用SmartClient(类似于JWS)完成的项目管理软件如MS Project,客户端和服务器之间的信息交换将纯粹是数据,而没有像浏览器的完整页面刷新那样的演示。即使借助Ajax的帮助,也不能完全消除完整页面下载。此外,许多公司仍然认为Ajax不成熟且不安全。这就是为什么Ajax在开发人员圈子中是热门话题,但在企业软件领域内却不是。考虑到这一点,JWS应用程序绝对具有更多优势,例如JWS应用程序在沙盒中部署和执行、签名以及拥有更加交互式的GUI。
其他优点包括更快的开发速度(易于调试代码和性能)、响应迅速的用户界面(不需要Comet服务器提供PUSH功能)以及执行速度更快(因为客户端计算机呈现GUI时不需要像HTML/Javascript/CSS那样进行翻译,且数据处理量较少)。
经过所有这些,我还没有触及问题,为什么JWS不那么出名?
我的看法是与Brian Knoblauch的评论相同,它缺乏知名度。
IT人员太过于被Web技术、Ajax PUSH、GWT等流行词所吸引,这些词汇让他们偏向于使用不同的技术或解决技术挑战的乐趣,而不是真正为客户工作。
看看Citrix。我认为Citrix实际上是一个很好的想法。Citrix允许您在幕后构建自己的应用程序集群。有大量的升级和实施策略可供选择,而不会影响客户体验。Citrix部署非常容易、稳定和安全。企业仍在使用它。然而,我认为JWS比Citrix更好。JWS的想法是在客户机器上运行应用程序,而不是托管大量服务器集群,客户机器本身就能够运行这些应用程序。这可以为公司节省大量资金!通过JWS,开发团队仍然可以在服务器端构建业务逻辑和数据。但是,没有了Web处理单元,让客户计算机进行渲染处理,大大减少了网络消耗和服务器处理能力。
另一个展示JWS惊人理念的例子是Blackberry MDS。Blackberry应用实际上是从Javascript翻译成Java应用程序。使用BB的MDS studio,您可以使用GUI工具构建BB应用程序GUI,在Javascript中编写GUI逻辑。然后将应用程序翻译并部署在BES服务器上。然后BES服务器将这些应用程序分发到BB上。在每个BB上,它运行一个仅具有GUI渲染和网络功能的轻量级Java应用程序。每当应用程序需要数据时,它通过Web服务与BES通信,以从其他服务器消耗服务。这不就是JWS BB版本吗?它已经非常成功了。
最后,我认为JWS不流行是因为Sun的广告方式。BB从不宣传他们的BB Java应用程序有多好,他们认为客户甚至不关心是什么。BB宣传使用MDS开发应用程序的好处:快速、节省成本、商业回报。
以上仅是我的一点看法,略长,请见谅... :)