我们刚才讲Java工程语言的一些挑战,和应对。现在我们讲了一个实例。大家都知道JVM已经是6.0了,6.0就是一个编辑者,不管是Windows还是Linux,AIIX,91%的机器已经装了Java的JVM,因为世界上头十个PC制造商和Java有协议,一装系统的时候就把JVM6.0装进去了,另外我们通过网站的JRE的下载量,每个月有5000万到6000万的下载量,如果有一半安装也是一个非常大的数字。这是通过第三方的网站,做的调查,现在大家用的机器里面百分之一做了这个JVM,所以JRE是一个很大的编辑者。
但是JRE存在很大的问题,它很大。我们预见一些顾客问我们,他们开发的软件,比如说即时聊天用Java开发的,它是在1.6上开发出来的,它要部署出去的时候不知道终端用户的版本,虽然我们说91%已经装了,但是他担心那9%。所以他把JRE也打包进去了,导致他程序只有2M,JRE有60多M。
另外你需要某种版本的JRE,你怎么知道客户装的哪个版本的JRE,而且你第一次运行JRE的时候,非常慢,怎么办,这也是一个问题。所以它还是存在很多的问题。
为了解决这些问题,我们现在准备要推出一个JRE的版本,叫Java SE6,Update N,带着一个新的特征,就是比以前的界面,当然这是很好的改进。而且你部署的时候,可以帮助你把程序部署到客户端。以前JRE下来很大,现在只有2M。你第一次运行JRE的时候很慢,怎么提高速度呢?新版本里面有一个程序帮助你。还有一些比较细节的东西。而且把它模块化了,最初的安装文件是2M,可以让你运行最简单的成型,然后你可以拿去安装了,安装完了,你需要别的库怎么办?有两个方式,你安装的时候,它会起一个后台的线程,在你不知道的情况,把你需要的东西下载下来。还有你运行程序的时候,发现需要很多数据库,怎么办?它可以下载,可以上我们提供的下载网站去下载,也可以下载之后放在内部共享。这个优点,就是如果你现在做一个程序2M, 再分发的时候,不需要再打包JRE。
这个是运行时间,最简单的程序是2M,很复杂的才3M,只有你完完全全需要的JRE,才能达到11M,这样会很好的解决某些问题。
因为它里面带着一个Toolkit,你做一个Java程序通过U盘拷贝给别人,但你并不知道终端用户使用的是什么版本,这个Toolkit帮助你测试你的终端用户用的是哪个Java的版本。在你分发程序的时候,可以运行这里拿到版本。当然这只是对新的JRE版本有效,比如说JRE1.4的话,其需要更新一下。
Java Quick Start Service,JRE第一次读进来很慢,需要十多秒,所以新版JRE,在你支持的情况下,把很多东西放在缓冲区上,跟你的内存冲突不是很大,你运行起来就会发现第一次也不是很慢。把它的内容放在磁盘缓冲区上,达到加快速度的目的。
刚才提到了今年上半年将会推出的JRE6.0的概况。
下面讲一下Java EE,Java是12年了,Java EE是11年了,然后它每个版本有不同的侧重点,Java EE5功能非常强大,可以做企业级的开发,安全性很高,但是功能强大并不意味着好开发,它能做,并不表明你能做的成。我们知道Java EE太复杂了,所以Java EE5的要求就是简化开发,同时引进了四个方面:
首先是引入了Ease of development,假如你需要拿到一个环境的变量,这个可以帮助你减少复杂度。
其次是引入了JPA。我记得有一个咨询公司的人跟我说,其实咨询公司的特点是在不同的公司做不同的项目,经常会过独立日,公司做一个庆典,招回来聊一些东西。当时有一个中国人是Entity Bean刚刚推出的时候,然后用Entity Bean为公司做了一个项目,后来说以后打死也不用Entity Bean了,太复杂了。说实话我以后真的不用了,而且我对Entity Bean不太熟悉。
再一个就是引入了JSF,它是基于Service的AC架构。
第四,它用了新的JAX-WS和JAXB2.0,代替了以前Java Service的RPC,现在叫Web Service,这也是仿造PC的编程模式,你做一个PL,里面有方法,如果你把CLASS变成Web Service,只需要加一个JAX就可以了,增加了简易性。
Java EE6的特点主要就四个方面:
第一个,Java EE6比Java EE5要小一些,只有几M。
第二个,简易程度方面,Java EE6也比Java EE5简单了。如果你做一个企业级的应用,你需要两个包,现在不需要两个包。 第三个,现在是开放平台了,提供一些接口,用的很多开放源代码,可以很容易融入到平台当中来。
现在有人观察Java EE6是十年以来最成功的一个版本。
刚才介绍这些东西已经是我今天要讲的所有内容,大家有什么问题吗?互相交流一下。
主持人:
看有什么问题,可以跟李涛交流一下吗?
提问:
刚才你谈到了很多Java EE6的特性,我看到Java下一步要实现跨语言,会对JVM做一些修改,这个计划有没有时间表?
李涛:
现在是这样的,语言有很多,有动态,有PL,我记得对RB有一定的支持,之外据我所知,因为现在Java是开源了,不是 什么都要我们公司去做了,其实这是一个方向,谁有兴趣谁去做,可能社区有一些这方面去做的人。
提问:
就是这部分的功能会依赖社区来完成是吗?
李涛:
对,现在不光是这样,像J2EE,对它真的是开源,Java是真正开源的模式,全部是放在网上,你只要参与,全是社区的成员。
1