我最近使用了Java Web Start应用程序.我使用我正在查看的页面中的嵌入式jnlp链接从我的Web浏览器启动它.该应用程序已下载,启动并正常工作.它可以访问我的本地文件系统,并在重新启动它之间记住我的偏好.
我想知道的是,为什么Java Web Start应用程序不是Web上复杂应用程序的更流行的交付格式?为什么开发人员经常花费大量时间和精力在html/javascript中复制桌面功能,而使用Java和Java Web Start可以更轻松地提供桌面应用程序的强大功能?
我知道在某些企业环境中,例如银行业,它们是向客户提供复杂交易应用程序的相对流行的方式,但为什么它们不能在整个网络上普及?
(为了便于讨论,让我们假设一个世界:下载源是"可信的"和应用程序是"签名"(即没有安全问题),下载速度快(加载时间快)开发人员知道Java(数量上他们知道html/js/php)).
我认为原因不是应用程序的安全性或启动时间.在找出根本原因之前,让我们了解幕后的情况.
Java控制面板具有允许用户使用默认浏览器的代理设置或覆盖它们的设置.换句话说,基础架构团队能够自定义Windows或OS安装映像,以便使用企业代理设置预安装JVM.所以我认为这根本不是问题.
Java Web Start实际上使用Java控制面板中的可自定义设置缓存所有应用程序.应用程序缓存后,应用程序就像其他应用程序一样"安装".虽然第一次执行可能很慢,但由于JVM的智能内存分配技术,第二次执行速度很快.因此,启动时间可能是一个问题,但很多网站(甚至企业内部)现在都迁移到门户网站.Web门户通常包含许多未使用的库以用于开发目的,因为门户本身并不预期在特定页面上构建和部署哪种类型的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部署非常简单,稳定且安全.企业仍在使用它.但是,我认为JWS甚至比Citrix更好.JWS的想法是在客户端计算机上运行应用程序,而不是托管大量服务器场,其中客户端计算机能够自己运行这些应用程序.这为公司节省了很多钱!使用JWS,开发团队仍然可以在服务器端构建业务逻辑和数据.但是,如果没有Web处理单元并让客户端计算机执行渲染过程,则会大大减少网络消耗量和服务器处理能力.
另一个为什么JWS是一个惊人想法的例子是Blackberry MDS.Blackberry应用程序实际上是从Javascript翻译的Java应用程序.使用BB的MDS工作室,您可以使用GUI工具构建BB应用程序GUI,在Javascript中编写GUI逻辑.然后,应用程序将在BES服务器上进行翻译和部署.然后BES服务器将这些应用程序分发到BB.在每个BB上,它运行仅具有GUI呈现和网络功能的瘦Java应用程序.每当应用程序需要数据时,它通过Web服务与BES通信以使用来自其他服务器的服务.这不仅仅是JWS BB版吗?它非常成功.
最后,我认为JWS并不受欢迎,因为Sun如何做广告.BB从不宣传他们的BB Java应用程序有多好,他们认为客户甚至不关心它是什么.BB宣传使用MDS开发应用程序的好处:快速,节省成本,业务回报.
只是我的,有点长,2美分...... :)
Java Webstart的一个主要障碍可能是您仍然需要安装JVM才能尝试下载和启动应用程序.每个人都有一个浏览器.不是每个人都有JVM.
编辑: 我已经获得了一些动手的webstart经验,现在可以添加以下两点:
该部署工具包脚本和地方发布围绕Java模块化的JVM 1.6u10使JVM需要太大的问题,因为它可以自动下载一个JVM和API核心和启动程序下载诡计休息.
Web Start严重错误.即使在Java 1.6版本中,也有一个每次下载整个应用程序,另一个下载它然后失败并出现一个模糊的错误消息.总而言之,我真的不建议依赖这样一个脆弱的系统.
我认为这主要是由于缺乏意识.它工作得很好.相当无缝.应用程序仅在第一次下载,升级或最终用户已清除缓存时才下载.部署完整桌面应用程序的绝佳方式,用户无需担心手动升级!
Webstart的问题在于,即使使用快速连接,您实际上也必须"启动"一些不那么快的东西,而使用Web应用程序则输入URL并且应用程序就在那里.
webstart也会出现很多问题.也许目标用户没有所需的权限,或者webstart的代理配置错误,或者jre依赖项出现问题,或者首先没有安装java.所以对于互联网上的普通约翰·多伊来说,它根本不是那么令人愉快.
在像公司这样的受控环境中,在许多情况下,它是一种简单易用的解决方案.