技术开发 频道

Nandini Ramani:Java战略发展方向探索

  【IT168 特别报道】北京,2010年12月13日——甲骨文全球大会(Oracle OpenWorld)在北京国家会议中心正式开幕。JavaOne和甲骨文开发者大会也将同期举行。下面这位嘉宾是甲骨文公司软件研发部高级总监Nandini Ramani女士,他分享了Oracle收购SUN后,Java未来的战略和发展方向。以下是他的精彩演讲:

Nandini Ramani:Java战略发展方向探索
▲甲骨文公司软件研发部高级总监Nandini Ramani女士

  大家好!欢迎大家来到我们第一次在北京召开的JavaOne大会,感谢大家到会。我个人能够成为JavaOne全球团队的一员我也感到十分的自豪,我个人背景给大家做个介绍,在收购之前我是在SUN公司工作了几年,原来是在SUN的硬件部做芯片,然后是Java1所以我个人的工作经历是和Java息息相关的,我对Java技术是充满热情和激情的,今天我到这儿给大家总体的介绍一下在Oracle的Java的推进的推进的情况,因为我过去在SUN工作的,我的角度实际上非常有意思的,因为我看到Java怎么样过渡到Oracle当中,我也会给大家介绍一下Java在Oracle发展的路线图,接下来有哪些举措。这张幻灯片简而言之谈到了Java的宽广,大家看右手,有智能卡然后往左一直到移动设备,然后企业级应用服务器一路过来,一个频谱是比较宽的,大家早些时候也看到一些数字,世界上有五十亿Java的智能卡,九千万台企业级的服务器。这些意味着什么呢?我们有一系列关键的EPR,大家看到有不同的平台,有Java1,JavaSE,还有Java新增的版本,待会儿我的同事会更多的介绍,很多人的手机上跑的是Java这是Java卡中最小的一种,所以作为一个开发者,像Java写应用或者为那么大企业级应用写程序的时候,事实上你是对于这样的个语言是非常熟悉的,不管是哪个平台,你Java的编码都是轻而易举的,这也是Java的优势之一。在接下来40分钟这些方面每方面我都会讲到,其他人也会做一些演示。

  我们先谈谈Java的平台,我们讲的这个Java平台也是讲Java1.0版是1990年交付的,接下来有一个固定的步骤,一直到04年是6.0。我们核心的设计的理念一直就是要搭建一个具有跨越性跨度的平台,现在这个原则仍然是我们恪守的一个原则,除此之外我们也是在融入越来越多的操作系统的能力和特性。在接下来几年当中我们主要的关注点将会是去在不同的平台上把这种硬件的性能给充分的加以追踪和反映。另外会进一步的提高效率,而且不光对JavaSE,在这讲中我们也会讲提高效益以及模块化,强大,严重这些特性,是在不断的推进,也成为我们的特色之一,在接下来几年当中我们会把单个产品外型尺寸,就是说推进更高程度的模块化。另外我个人喜欢讲的就是多语言支持,这是什么意思呢?在这儿这张幻灯片大家可以看到平台的能力在运行时方面有了很大的提升,在GDK7和8。接下来我们看看(14:13)对开发者效率提高来说有很大的帮助,Java是一种非常严密的语言,我们仍然希望保持这样的一种特色,但是与此同时会进一步的提高它的类型推断,让它变得更加高效,对它原来的类型我们不会去管,我们不会做M级的改变,不会引入新的词。项目会在GDK72001时变化中体现,还有一些变化会在GDK8中体现,这个会在2012年交付。

  下面我们看一下另外一个项目项目我们看到现在硬件的未来发展的趋势是并行计算,并行计算也就意味着软件必须在写软件的时候必须要能够实现很好的并行性,为了做到这一点我们这个项目正式要带来一个编程的环境,这个环境能够充分的通过增加必包来增加冰雹的能力。这个有两点,首先是它是一个模块化的系统,从框架上来说模块化。第二方面我们正在对SE进行模块化,我们现在很多IT从它的图形堆栈,到它的核心形成一个很大的在我早年写软件的时候,我们当时能够去掉这个已经非常重要了,然后在这种版本的进展,使我们的编程变得越来越容易,2012年问世的第八版上的出现。

  接下来我们还想进一步提高取得于虚拟机有关的增进。实际上在VM这块我们做的所有的事情都是前沿的,先进的,更多的是一种多年期的研发方面的投资,特别是考虑到我们的核数越来越多,这样我们要注意到一点,我也是我喜欢说,但是我虽然并没有完全理解,就是连接技术,是Exalogic运行的非常顺利,非常成功,我们希望在Java当中也能够支持在Java的API当中。

  另外就是多语言支持,多语言支持非常重要,我们希望使之成为现实。在Java平台上十五年当中我们第一次看到当时我们会支持和其他的语言,但是在这儿我要指出的是我们主要是针对Java是我们要去支持的一个主要的语言,这不光是针对JavaSE平台的,而且是在这一讲其他的各个讲演当中也会继续提到这一点。当然毫无疑问我们对开发者社群的支持是持续不断的,我们在GDK作为的所有的开发都是在环境当中来做的,来服务于开发者,而且在过去几周当中IBM也加入了我们的行列,在我们的项目当中,IBM和我们将会在核心库这块来合作。另外不久前苹果宣布将会和甲骨文合作宣布支持它们的操作系统我们先出GDK7,然后苹果会从我们GDK8开始往前推。当然就是长期以来支持它们将会继续的支持我们,贡献越多我们越欢迎。

  接下来我们来看一下GCP批准的四个GSR。像对于是334,对于是335,然后336、337这些都批了。对于我刚才讲的这些东西的路线图大家会在看到,也就是我们在2011年、2012年有什么新的推出,就是这些新的东西推出的计划。另外一点我想把JavaOne给大家讲的全面一点,SUN有自己的虚拟机,而且在市场上也取得了领先地位,这个我就不 需要多讲了,SUN当年的虚拟机做Java的人都知道。另外我们还有它是一种更加注重可服务性的虚拟机,它的服务性是领先的。两家公司合而为一之后,两个团队合而为一之后我们也做了很多工作,把我们的VM结合在一起,能够人我们的VM既有的优势,也有优势。但是一种是C++语言,一种是C语言,我们现在正在进一步的把它融合。所以我们现在推出了像这些设备的控制器,而且还有一些插件都是用户都可以使用到的。明年我们会推出一些新的会发布一些新的产品。下面就讲到这里,下面由我的同事给大家展示一下这个流程是怎么控制的。他是来自我们性能管理团队。

  嘉宾:我给大家介绍一下具体的工具,我们如何控制,如何发现问题,解决问题做一个简单的确实如果发现问题的时候你有什么原则呢?你有可以深入的去挖掘你应用软件,应用进程当中出现了什么问题,但是有时候这个副作用就是在整个开发研发环境下这个会影响整个进程的效率,会出现延迟,所以一旦发生问题需要很快的解决。确实我想给大家介绍就是这个虚拟机,那么这些虚拟机它是有一个非常强的能力,它是能够完全了解目前正在执行的应用软件的所有的信息,有了这样的信息,你就可以记录相关事件发生的日志,里面有一个功能叫就是可以记录的。有了这样一个功能你在任何时候就可以下载它内存当中所存储的这样的实施,实时就可以监控应用软件的进程,在问题发生之前就防患于未然。

  我们来给大家展示一下是怎么去操控它的,这个图形,这个操纵界面非常简单,这里我们是用一个标准化的MB,这是我们演示当中是这么来用的,我们可以看到,所以我们是五百微秒的响应速度,差不多是一个标准的,平均的响应速度,通常我们响应速度是0.5秒,我们不希望每一整天的时间去看这张图,看看是不是会出现任何问题,我们是希望能够自动化的进行控制。这里就有一个触发器,也了这个触发器我们就可以会聆听一下是不是我出现问题,那么这个触发值我就写上0.5或者是500微秒,0.5秒这样的数值填进去。好,我们激活了触发值之后,我们就想知道如果响应时间太高了,太慢了的话,我们想能够追踪到这个事件的发生,比方说我们是想把现在的信息能够下载下来,尝试一下,在这里这个触发器它是聆听目前的,在追踪目前实时发生的响应速度,好,我们把这个触发器现在激活一下,然后看看它在实时进程中是如何操作的。在最上面这个框框当中我们看到进程的数量,线程的数量上升了,使用的应用软件也上升了。所以用户越来越多的用户登录到这个应用当中,我们看到响应速度是延长了,但是还没有达到触发值。我们看到有少数几个用户在登录的时候我们会发现他们的响应速度是超过了我们触发值,超过了我们规定的响应时间,这个时候就会自动的把它记录下来。这里记录很多信息,包括用户的情况,具体是响应速度是多长时间,我们究竟这个应用软件在做些什么事情。我们就可以看到我们是在做这是我们应该做的事,在过去几秒当中我们可以看到究竟是什么问题,我们把它放大,究竟是哪里出现了响应时间延长的情况,我们这个时候就不用做我们就发现在同步的时候就是线程在做同步的时候出了问题,然后我们再进一步往深入的去挖掘问题的根源所在,然后我们还有一个完整的,整个流程都可以记录下来,所以有了这样的能力,这种功能已经是在这个工具当中具备了,所以用户也可以使用这个功能。确实,用户们就可以使用到这个这个新的功能。

  Nandini Ramani:谢谢。下面我再继续再讲。我们可以在这个数据当中看到自从六个月前收购之后,六个月以来我们看到用户数量是增长了20% 用户增长了,这也说明我们Oracle是全力以赴的要致力于开源的产品,开源的发展。这里我想指出的就是是支持Exalogic服务器还有Oracle的数据库,这些都支持。我们是会继续支持开源,还会支持GDK7.0这个版本。

  往下看,JavaFX这就是Java是一个新的我不知道有多少人是追了一下,了解了一下JavaFX,我们做了一些发展方向上的调整,对于Java所有的都可以用JavaAPI。也就是说我们把购买了,收购JavaFX的时候都全部保留了这些比较丰富的平台的能力,多媒体的能力,都已经保留下来了。我们所做的变化就是Java还不能实现,我们这个还要等一段时间。换句话说我们就可以利用像一些建模,还有工具的使用,都是可以保留下来的。

  还有一点就是JavaSE这边拿过来的一个东西,就是确实我们完全是能够支持JavaTML等等,这种互操作性,Java之间互操作性是非常好的。还有我们要挖掘硬件的功能,在未来我们还会看到这样的一个发展趋势。总的来看FX未来就是这样的情况,明年会推出一个新的版本,大家会到时候使用都是非常熟悉的句法,还有JavaAPI等等。然后右手边灰色的部分,就是用户可以使用的,未来是在融合的GBN上来运行。下一个层面就是我们是能够支持图形处理器的GPU的设备,有些设备,目前的设备它可能没有设备加速的功能,在未来我们会推出相关的功能,并且还能够支持二维,三维,视频,音频这些功能,所有帮助大家构建多媒体资料的都是支持的。这是一方面。在这里要做的部署的模型是完全相似的,可以你今天在部署的时候使用的在未来都可以使用,然后在蓝色这块,也就是说就是在一些设备当中它没办法运行Java虚拟机,然后我们会提供一个编译器。所以大家要随时关注我们还会推出一些新的东西。

  我们给大家详细介绍一下有哪些API可以使用的,大家对这里面比方说本地离线的存储等等大家都非常熟悉,这是Java常用的API,还有一些平台的服务,比方说有一些阴影,放大,缩小,还有一些功能,我还在跟一些银行家去聊天,那么大家都喜欢有一些视觉效果非常强的一些数据库的工具可以使用,那么这是今年的产品,明年我们还会有二维、三维的产品,并且还可以支持2D、3D的模型,还有一些动画的模型都可以支持,一会儿我会把这些功能给大家做一个演示。从这个角度来讲就跟我刚才讲的,开发人员的工作效率我们非常重视,所以我们就可以拿这些即开即用的工具做一些动画的操作,这样不用自己亲手写代码了,由Java功能,也就是说你不用自己去管理,你的线程等等这些东西,其实我们就把它要作为一个资源库,一个资料库拿到JavaFX这个工具当中,这样大家未来还可以继续使用。除此以外我们还要引入2D、3D的功能,Java现在实现的功能未来还继续保留。还有本身内置的互操作性还是会保留下来的。既然在虚拟机上运行,在上面这个层面我们是希望能够实现Java和之间互操作性,这是我们未来希望实现的,这样的话就能够实现一些有趣的应用的开发。当然了我们非常坚信开源这个理念,我们也是对JavaFX要推出开源的数据库,明年第一个季度我们会推出一些早期的试用版本,所以大家如果感兴趣的话可以参加我们合作伙伴计划,明年上半年可以退出试用版。下面我邀请我的同时给我们演示一下非常强大的平台和能力。

  嘉宾:好的,我们来尝试一下做这个演示。我们做一个简单的二维的演示,给大家演示一下JavaFX基本的API和一些高级的功能,我们要做几个演示,我会从头开始做,这里是一些基本的图形,我们是用JavaFX里面即开即用的API形成的图形,我们来形成非常好的效果,可以加在不同的层上面,把各个层混合在一起形成很酷的效果,我们可以有模糊的效果,下面还可以填充一些颜色,最后把这些所有层,这些效果合在一起,混合在一起,所以下面我们可以不同的颜色、图形混合在一起能够形成很好的,比方我们构建这个咖啡杯,这是一个复杂的图形,这不是一个标准的图形,我们是通过这个处理能够形成这样一个非常好的效果,就是杯子里面有阴影,外面也有阴影,而且咖啡热着喝比较好,所以我要弄点水蒸气的感觉,我再加上一些图形,再加上一些灯光的效果,还有有一些这个针,让咖啡的泡泡能够鼓起来,我们就是用了这些工具。

  Nandini Ramani:所以你加了一些图形,一些曲线,让这些图形能够沿着这些曲线形成动画的效果,你不需要自己写代码,你可以就自己加几行代码就可以让这些效果形成了。这个确实很不错,是一个很酷的演示。

  嘉宾:告诉大家这个是可以实现的。下面我们再做一个稍微复杂的2D的演示。

  Nandini Ramani:给大家展示一个我们怎么来做这个游戏,这是一个非常热门的冰球的游戏,背景不是PMG,四角也不是,那么这些球,这些冰球,冰壶好像把基本的图形构建起来的,而且所有的能力可以继续使用的,每秒钟是六帧,这是运行的速度。现在你给我们演示了2D,你有没有更多的东西展示一下。

  嘉宾:好,下面我们来看三维的,二维的讲完了,下面我们就用Java给大家展示一下二维的转换效果。这里是非常丰富的多媒体资料在不停的闪烁,它这些屏幕,这些三维的图形都是在同时的播放,同时的运行。

  Nandini Ramani:大家可能看不清楚,确实在这个媒体墙上它是进行了排列,就是把这种二维和三维之间进行转换,然后下面再有在下面还有一个搜索框可以搜索这个三维的资料。

  嘉宾:我们可以输入这个原数据,然后搜索一下,还有这个原数据的三维资料。我们来看一下其中的一个三维的图,这是一个高清的视频的资料你可以把这个图切成多种视图,大家都知道我们对于这个播放视频功能大家都非常熟悉了,然后我们把这个图把它切分成多个视图,多个视窗,我们可以看到在每个视窗当中,每个视频都还在播放。

  Nandini Ramani:好,到目前为止大家看的都是互动式的,动态的一些视频,但是还不是这种渗透式的,这种视频的效果,我觉得这个演示还可以加上一个物理的引擎,这样的话就可以让这个图形当中形成一定的重力,在这个,随着这个球如果砸到这个墙上的话,那就不光是一个视频的窗口了,而是有五万个节点在同时播放,这还就是大家常用的一个电脑的屏幕,那其实就是把CPU和GPU之间的工作进行了分工,然后能够提高每秒的播放的速度。谢谢。

  刚才介绍了JavaC的平台以及Java下面我们来看一下应用服务器。我们看一下设计目标,设计目标是一样的,也就是说我们所关注的主题是一样的。我们要关注的是提高生产率,扩大可延展性,以及扩大模式性。在这里我们有一个WEB的档案器,这是比较灵活的应用。所以了当然我们要进行一些服务器的模块化,通过依赖的注入,另外使得我们的应用更加容易,还有PGL,当然了我们还可以进一步的增加生产率,同时我们也提供了一些Web的服务。在可扩展性方面我们可以更加容易的去应用开放源的框架,但同时我们也有一些还有一些动态的语言。更加具体的来说一说之前的发布是在2009年12月,也就是一年之前,所以在这里大家所看到的一些特性在上次发布的时候已经提到过了,现在在2010年我们是通过在其他的一些,又并入了一些新的特性,这个标题就是2010新的特性。我们在到六月份的时候,也将会在发布一些新品,已经发布了一些新品,所以我们有这个微软的一个产品,这是在当中,现在已经应用到服务器当中,大家看到在以后的发布当中会看到。除此之外我们有一个Web的档案文件编辑器,可以让你去使用的东西,而不是用整个服务器的产品。在这里看一下集群,在这方面有靠可适用性的部署,也有比较稳定的服务器。也就是说如果一个机器发生了死机,你不会完全出现你这些应用的死机。当时我提到了CPU和GPU编程更加容易,更加安全,更加可靠,这些也增加了可实用性。在今天我们有一个模块式的框架,能够进一步的支持OSGI的模块,在以后我们也会使得这个系统能够更加的开放,可以吸收其他的模块式的系统。当然我们的开源故事还在继续,就是在09年有八百万次的下载,我们认为在以后还会有其他的特性,Java1在技术峰会上会给大家有关EE期的更加详细的内容,就是今天下午的四点钟,也在这个地方。

  刚才我跟大家提到了通过这两家公司融合之后,我们就获得了互补的技术,对于都是这样。我想跟大家重申,将会成为比较优先使用的技术,在今后都会是这样。另外在某种层面上我们看到两者之间也会有一定的整合性,特别是在API的层面上,在共同的架构方面,比如说像(14:43)交易,目前在当中有,而且已经是成为一个开放源的的程序。也就是说的社区也可以使用。当然在整个堆栈的更高层次,我们也会有一些商业的运用,比如说会更多的在有些方面关注可连贯性等等。

  嘉宾:在这里我展示一下JavaE6的应用,这是在容器当中,这里包括已经发布的版本,在这里我们用的是作为一个UI的技术,使你可以创造一些书,你可以选择书,把这些书放在自己的购物车里,然后再去收银台支付,我们来看一下这些应用程序是如何编辑的。大家知道Java关注的是减少Java的编码数字。所以在这里我们可以看到有三个很重要的等级,一个是GPN等级,这也是基于,这将会是和数据库保持一致的。然后给大家看一下EGB,EGB可能稍微复杂一点,是重量级的选手,在这里我们是通过单一文件的方式组成,做一个会进行分析,使得这个EGB的交易更加的安全。所以在这里我们有可以和数据库之间进行对话,同时可以比较容易和持续的方式做到,你可以直接和进行对话。除此之外我们还有一个分析的功能,也就是把同样的EGB作为一个资源库,当你想要获得资源库的时候,你将会得到一些指引。同样的我们还会有一个请求,我们认为这也是EGB的倡议之一。所以这是EGB。

  我们如何在先导行业来使用这些EGB?所以我们可以通过依赖性的注入的方式,大家可以看到在这里我们可以获得指引,让容器去做对于这个指引的初始化的工作,然后我们还有一个网页,在这里你会看到一些指引,包括还有一般的一些特性。我刚才提到了这些都是在当中运行的。在这里我给大家展示的的是3.0,3.1版本。至于轻量级我们启动是三分钟,比较低的内存,不仅是开发人员而且也是其他人希望获得的一些特性。

  下面我来换一个话题,给大家介绍一下目前团队所研究的工作,我们是3.1,这个版本实际上是补充了一个集中化的管理器以及集群化。所以通过这种方式你可以建立集群,在这儿我已经建立了一个叫做Java1,这里有两个事例,如屏幕所示,在此之外我可以直接创建一个资源,从这个集中的,从这个中心位置设计资源,我在这儿可以把应用部署在集群当中,而并不是部署在每个具体的事例当中。所以在这里你可以看到这是一个网页的应用。那么我希望能够获得比较高的可适用性,也就是说有一个团队的管理系统确保所有的节点都能够放在集群当中,不管是在HBB的会话还是其他的会话,这些都可以进行复制,如果有一些损失的话,我可以再利用其他的一些。

  最后我想给大家介绍一下我们是如何利用刚才你已经提到了我们有一个利用层,把这个层和这个是和Web类似的,但是在OAGI下面其实就是我们整个技术的基础,也是模块的基础,多数人不需要知道这一点,如果你想要利用OSGI这项技术的话你可以这么做。

  我们再回到应用。在这里我们可以看到很快的按一下你就可以获得这就是个服务,这可以和其他的应用结合在一起来进行部署。所以在这里你可以看到Window,你可以把和OSGI连在一起,把我们所有的模块列了出来,我们大概有两百多个模块作为的模块。最后就是付款服务的你可以看到这是221,你再回到浏览器那里想要退出,请大家注意看到我们这些节点的过程是在等待时间的结束,所以在这里的这些组件是不会消失的。看一下在代码层次上是怎么做到的,这是比较容易进行注入的,也是一样的,CTI,我们说这是一个OSGI的服务器,有两个特性,一个是动态性的,也就是说它是不断变化的,你也可以对它进行维护,另外这是的价值,也就是我所等待的十秒钟,现在我在往后退,启动这个,然后再回到应用程序。这样的话我就进行了我们可以看到这就使得Java1的发展更加的简单,开发的更加简单,没有这是可以理解的,这是可以选择的,我们看到这个档案,这是大小比较合适的。最后不管从可以支持企业,适用于企业的应用,同时也能够支持集群和相关的分享。

  Nandini Ramani:是的,这是值得我们期待的,谢谢。他将参加四点钟的Java技术主题演讲。

  最后我也承诺,我不会花太多的时间,我们想谈一谈Java在设备上的应用。下面我想给大家介绍一下中国本地市场的背景以及Java活动在中国的运行情况。具体的说我们和中国移动,3G的TTS,CDMA网络进行了密切的合作,我们也和两个片上芯片的供货商进行了合资,一个是我们所做的就是把事先集成的Oracle的虚拟机和芯片组有效的整合在一起。那么对于ISV这个开发人员来说这意味着什么?这是提供了一种比较好的优化之后持续一致的Java的解决方案,从而能够解决,减少复杂性。大家可以看到这是硬件和软件结合在一起的解决方案,也是Oracle的一个榜样,Oracle所做出的榜样。除此之外,我们还和中国移动的关键的附加值服务结合在一起,把这个服务有效的集成到平台中,比如像音乐,购物等等,一会儿我们还会给大家介绍。所有的这些服务都是附加在设备的闲置的屏幕上,所以实际上中国移动和OEM是通过这这个设备向3G的网络提供附加的价值。我觉得这实际上和我们在欠动式上空间做的事情类似。我们看到有25个上市的模型在屏幕上,是10个OEM提供的,我们在未来十年当中也会推出更多的产品。下面我请大家观看一段短片,短片当中介绍了一些服务及其应用,其中包括Java还有Oracle所提供的一些帮助。

  刚才就是举了一个例子,介绍了目前部署的产品,除了其他的技术会进行投资的产品以及设计的目标之外,大家可以看到实际上目前我们有非常通用的平台,我们将会继续的进行相关技术的投资,包括了HEM。还有一点大家可能会比较感兴趣,就是我们会更新JavaMV的这个平台将会在移动技术的分会上给大家介绍详细的内容,除此之外我们还将利用硬件的能力,同时我们还会更新大家看到的比较有趣的场所,服务等等。大家注意多的话我们的投资其实在方方面面,我们投资在移动,汽车,方方面面,我们现在也有了相关的路线图。在大家刚才看到的网站上有,再次强调一下很多刚才介绍的设备其实现在都是大家所使用的,很多人用但是并不知道这个用了JavaOne,只不过在外表之下用了Java这些非常有用的产品。

  以上就是我的发言,我想说我们希望JavaOne能够更多的推向全球市场,刚才跟大家说了上个星期我们在巴西召开了JavaOne的大会,现在又在北京,明年春天将会在印度以及俄罗斯召开,我个人是非常的兴奋,此外我们还有开发者的基地,我们还有网上的会议等等,谢谢。

0
相关文章