作为插件技术,大家恐怕最熟悉的莫过于Activex,但是其仅与IE平台绑定,不具有跨平台跨浏览器性能。而对于flash,Silverlight,java plug in而言,它们的调用过程其实本身都是调用各自的跨平台、浏览器的插件,但是这些插件又是一个完整的平台。
作为10年前发明了RIA的公司,Sun 的 Java 并没有在RIA开发领域成为最具统治力的技术。根据互联网上某位大牛kaka_nil的说法,Java插件的失败有以下几个原因:
1,插件和小程序是在大多数人使用拨号连接网络的时代被公众认识的,下载一个插件或小程序所耗费的时间超出了普通开发者的耐心;
2,比较起一个用图形技术设计的HTML语言,一个Swing的UI看起来巨傻;
3,平台和浏览器的兼容也是个问题;
4,插件不太好安装,非开发者操作有难度;5,web自身还很年轻,RIA的理念还不普及,因此已经有了HTML。
但是同样,他对Java插件能更具竞争力表示乐观,原因如下:
1, 根据我读到的最新数据,86%的美国网络用户现在使用的是宽带,因而JAR文件和其他资源的下载时间可以忽略不计;
2, Sun终于决定重写插件使之易于检测、下载、安装和升级。而且在需要插件的页面,浏览器会用常规的方式提示用户下载;
3, 有Java插件的新的操作系统和电脑即将来临,我知道Dell的Windows Vista如此,Apple的Mini-Mac如此;
4, 对用户来说安装插件已不是什么麻烦事。根据2008年6月的调查,99%的可上网的台式机/笔记本已经安装了Flash插件,85%安装了Java;
现在的Java又有了进一步成长。Java SE 6对Java桌面应用进行较大的升级,并启动了Java SE 6 Update N计划,该计划旨在简化JRE的大小,增进用户的安装体验,并提供了一个新的Applet浏览器插件,该插件将会随Java SE 6 Update 10发布。
为了在网络中传递你的程序,是时候再次考虑Java Applet技术了。下一代Java插件技术以一种不同的,比过去更高效、更可靠的途径来运行Applet。可以获得如下好处:
增强的可靠性
改进的用户体验
在后台启动Applet
内建的JNLP支持
针对每个Applet的命令行参数
堆内存大小,Java 2D API加速选项
改进的Java/JavaScript程序设计语言集成
改进的Windows Vista支持
签名的Applet现在可以在Internet Explorer的保护模式中正常运行
Java SE 6 Update 10中,该插件为运行在网络浏览器中的Applet提供了强大的新功能,它以向后兼容的方式改进了整个Applet的可靠性及功能。
下一代Java插件最有意义的新特性是它内建支持通过JNLP文件启动Applet。使用JNLP文件格式作为Applet的描述符就能允许Applet马上复用之前为Java Web Start应用所写的JNLP扩展。
执行Applet的新途径
执行Applet的新途径在结构上与Java Web Start技术相似,但与浏览器整合的更为紧密。 Applet不在运行于网络浏览器内的JVM中,而是会启动一个独立的JVM进程去运行Applet。默认地,只有一个JVM将被启动,但你也能启动多个JVM,并且可以为每个Applet都设置命令行参数,所以你能影响堆内存的大小或其它的要求。
重点是JNLP和类似Web Start的执行方式,对java plug in带来了很大的提升。
其中,JNLP客户端是一个应用程序或者说服务,它可以从宿主于网络的资源中加载应用程序。如果你使用JNLP打包一个应用程序,那么一个JNLP客户端能够:
o 为该应用探测,安装并且使用正确版本的JRE(java运行时环境)
o 从浏览器或者桌面加载应用程序
o 当新版本的应用出现时自动下载最新的版本。
o 为了加速启动速度在本机缓存应用程序需要的类
o 可以作为applet或者应用程序运行
o 在必要的情况下下载原始的库
o 以安全的方式使用诸如文件系统这样的本机资源
o 自动定位和加载外部依赖资源