活动首页
大会介绍
对话中间件精彩语录
媒体报导
精彩图片
 
大会精彩实录(请配合产品演示PPT观看。下载PPT>>>> <<返回首页
 

Apusic 5.0产品演示实录

  蔡军:实现高端的应用,为企业和政府提供稳定可靠的新的产品,一直是金蝶Apusic努力的方向。很多朋友们都问,“Apusic”这几个字怎么讲?APUS这是银河系的一个星座,代表敏捷、迅速。IC是Intenet Computing,代表互联网计算;整个的意思是推动互联网计算,自J2EE 1.4之后,J2EE发生了根本的转变,JCP组织正式推出了Java EE 5.0的规范,那么,Java EE 5.0出台的背景和主要的内容是什么?我们邀请Sun公司资深咨询顾问Gary给大家进行一个全面的介绍。

  Gary作为Sun公司的代表,我非常荣幸能参加这个盛会。首先,我给大家就J2EE体系做一个简要的回顾。在屏幕上,大家可以看到这个可爱的老人,他就是Java之父“James Gosling”,他在1955年创造了Java 语言。1999年Java 分出三个版本,分别是J2SE、J2ME和J2EE。蔡总介绍1999年的时候我们已经开始写J2EE的代码了,由此可见,金蝶中间件公司在Java方面的积累是非常深厚的。从1999年以后,J2EE经历了很多版本,功能日益强大。今年5月底,Java EE 5.0正式发布了,顺便提及一下,2006年还有一个重要的事情就是Sun公司对Java整个平台进行了开源。Java EE 5.0的功能非常强大,蔡总也介绍了,它既可以处理Web应用程序,同时可以创建Web Services,也可以进行分布式管理等。很多开发者觉得J2EE在越来越强大的同时,也带来了很多琐碎的事情。我们在座的有很多开发者,你们可能会切身体会到J2EE功能越来越强大,但同时使用起来越来越复杂,开发的代码越来越多,配置工作消耗了我们很多时间。尤其对于初学者,觉得J2EE的门槛很高,学起来很费劲,Java EE 5.0正是在这样的背景下诞生的。我们很重要的宗旨是使我们的开发变得简化、简单,使初学者也觉得很容易学。那么,Java EE 5.0是如何实现简化开发的特点呢?我们首先看到Java EE 5.0给我们引入了很多新的概念,其中,最主要的莫过于标注Annotation的使用。Annotation使得我们在部署和开发的时候工作量大大简化。EJB3.0使我们在性能上有很大的提高,尤其对广大开发者引入基于POJO的一个持久化的机制。还有一个,大家都知道,我们在做应用程序的时候一个组件会调用另外一个组件或者另外一个资源,我们发现写的代码非常复杂冗长。由于Java EE 5.0 依赖注入技术的引入,使我们在写代码的时候可以简单成一句话,也不必再去考虑任何的初始化。刚刚蔡总也提到,我们在Java EE 5.0里面针对Web Services的开发提出了更简化的模型,这个简化原自JAXB API的提出。还有最后一个就是JSF,包括金蝶中间件公司的operamasks.org社区也是在主推这个技术,JSF在Java EE 5.0里面有非常重要的作用,为我们Web应用程序开发提供一个新的Web开发框架,能够使我们的开发效率更高。我们说了这么多特点,最明显的一个词就是简化、简单。我们看一个小小的例子。有些后排的朋友想看清这个代码,我展示这个示例是想给大家描述一下,这是Web Services 的Hello World程序,这是在J2EE 1.4的示例性代码,需要两个类,以及一个非常长的配置文件,而在Java EE 5.0呢,只需要在十行以内就可以完成Hello World的开发。

  这是Java开发者杂志给大家提供的一个程序(指图)。第一个程序是用J2EE1.4写的,总共需要67个类,而在Java EE 5.0下面重新开发此程序,只需要43个类,可以减少36%。我看到很多开发者露出了满意的笑容。我只是简要介绍一下Java EE 5.0的特点,就是简单,为什么大家不开始尝试Java EE 5.0呢?我们有45%的客户已经开始应用Java EE 5.0了,为什么不用我们的Apusic 5.0呢?后面的议题交给蔡总。

  蔡总:让J2EE更轻松,Java EE 5.0的时即将来临,Apusic 3.0是全球第十四家通过J2EE 1.3认证的,4.0是全球第十一家通过J2EE 1.4认证的,到今天Java EE 5.0来临,金蝶提前撞线,我们在全球是第四家通过了Java EE 5.0的认证。包括SAP、还有TMAX和Sun。要通过Java EE 5.0,刚才徐总也介绍了,是需要通过严格的测试,在美国的Sun公司经过了两个多月的测试,其中27000多个测试点,凝结了金蝶上百个研发精英的心血。大家说你们的产品得到了认证,有什么新的功能和主要的特性呢?我们有请我们的开发部经理张勇介绍一下我们的Apusic 5.0的新特性和功能。

  张勇:我们刚才听了Sun公司的Gary介绍了Java EE 5.0强大的功能,那么,现在让我们通过几个示例,一同体会Java EE 5.0的巨大威力。首先,大家现在看到的这个图是Apusic 5.0的架构图(指图),其中,最核心的部分是我们凝聚了我们多年心血的微内核体系,往上延伸的是我们对Java EE 5.0最主要的几个规范的实现,包括跟Web相关的JSP、JSF,跟Web Services相关的规范以及EJB 3.0等。再向上,是我们对规范的扩展,包括基于JSF的组件库与Web开发框架,以及基于Eclipse的管理控制台等。最外围是我们的集成式开发环境:Apusic Studio。金蝶中间件不仅仅是一个引擎提供商,我们还提供了一个完整的集成式开发环境,Apusic Studio,在稍候的演示中,我会重点就Apusic Studio给大家做一些示例。

  下面我们看Apusic 应用服务器5.0的新功能。首先,Apusic 5.0的第一个新功能就是全面实现、全面兼容Java EE 5.0,而且我们的Apusic 5.0可以保持对J2EE1.4的兼容。这就意味着,我们的客户,可以把基于1.4的应用跑在5.0服务器之上。第二个新功能呢,我们刚才谈过说我们并不仅仅是一个应用服务器的引擎提供商,我们也提供了一个完整的针对Java EE 5.0集成式的开发环境。我们的Apusic Studio最大的特色是通过对应用服务器的紧密集成,可以将开发、配制、部署、监控等过程融为一体,让大家觉得使用起来可以变得轻松一些,效率更快、更好。这是我们的Apusic Studio的截图。那么,Apusic 5.0的主要的特点包括哪些方面呢?分三个期:运行期提供一个高效、稳定、可靠的基础引擎,开发期辅以快速、敏捷的集成式开发环境,扩展器通过对SOA的全面支持,获得随需应变的能力。下面,我们会结合一些案例进行一些展示。

  首先我们来看,Apusic 5.0如何提供稳定高效的引擎呢?这是我们和Sun公司在Sun的实验室进行的一个测试。从性能指标上来看呢,Apusic 应用服务器和国际上的同类产品各有胜负。但是,在系统资源消耗方面,我们占用的系统消耗是最少的,这就是轻量和敏捷的含义。所谓轻量级,除了包含我们开发期的敏捷,还有就是在运行期,完成相同的功能,我们消耗的系统资源最少。在这里为了阐明Apusic 的高效性,我把Apusic JSF引擎给大家作一个介绍。现在我们看到的是一个客户端浏览器和服务器之间产生的交互过程,在传统的交互模式下,客户端发送一个请求,不论是和Get还是Post。服务器会产生一个响应。这个响应首先是HTTP 200,下面他的内容,我们注意到,这个响应的类型是text/html,而内容的主体是一个HTML页面,那么,浏览器在接收到这样一个响应之后,浏览器会进行一个整个的渲染,将整个页面绘制出来。我们的用户所看到的是整个页面进行一次刷新的过程。这就是在传统的交会模式下的整个过程。那么,在Apusic JSF引擎下,会是怎样的交互呢?首先,客户端依然会产生这样一个请求,Apusic 服务器也会产生一个响应。但是,我们要注意到,响应类型不再是text./html,而是text/script,而内容主体也不再是一个HTML页面,而是一个脚本,浏览器在拿到这个脚本之后,也不需要对整个页面进行一个渲染,而只是执行这个脚本,并对页面的部分控件进行更新。通过这样的一种变化,整个系统会获得哪些特性呢?首先,数据的传输量明显减少。尤其是如果需要传输图片和大文件时,传输量会明显减少,其次,用户的体验明显增强,现在只需要把发生变化的控件的值进行变化即可,而不再对整个页面进行刷新。第三,整个系统保持高效敏捷的状态。但是,这都不是主要的。最主要的是,以上所有特性的获得,都不需要我们做任何事,我们只需要进行一个配置参数的更改而已。所以说,所谓Apusic JSF是从容器级别对AJAX进行支持,指的就是这个意思。

  下面,我给大家进行一个简单的示例。现在大家看到的就是Apusic Studio,我们转到工作台,这里已经有一个Apusic 5.0应用服务器,我们现在启动服务器,为什么说Apusic是敏捷高效的呢?从启动的速度就可以看出来。我们把服务器连接上,对应用服务器进行管理,我们可以看到服务器的一些基本信息。我们看我们谈到的Apusic JSF示例。这个CarStore是Sun公司官方网站对JSF的一个参考实现。我们看他的效果怎么样的. 我们打开浏览器(主讲人演示),首先进入首页选择一种语言。在这里我们看一个选择车型的页面,我们所需要做的事情就是,根据选择对你要买的车进行一个配置,我们需要观察在这个应用中,当你进行选择的时候,大家请注意我们这个标签。你每点一次,整个标签是刷新的,滚动条也回到初始位置。下面,我们再来看一下在Apusic JSF之上会具备什么特性。我们首行浏览到应用的安装目录,然后我们把face-config.xml这个文件进行更改,把其中的default-render-kit这个参数由原来的HTML_BASIC改成AJAX,然后存盘,应用重新启动一次。我们现在可以看到应用重新启动了,我们再次访问Web 应用。打开浏览器进行首页,选择一种语言。这个时候请大家注意,我们现在要对车的配件进行选择,我们点一下,大家可以观察到这些值依然是发生变化的。但是整个页面的效果根本不需要刷新,我们通过这样的一个简单实例可以发觉,我们原本没有考虑Ajax特性的,但是,如果将这样的jsf应用放到Apusic 的引擎之上,只是需要修改一个参数就可以让它具备Ajax的特性。否则,我们开发人员,他需要写大量的Java Script的代码才可以做到。这就是对Apusic JSF引擎进行的一个简单介绍。

  下面回到我们的主题。我们谈到运行期提供一个高效、敏捷、可靠的基础引擎,开发期辅以快速轻量敏捷的开发环境。在Java EE 5.0中,EJB3.0是一个变化非常大的规范。下面,让我们切身感受一下他是如何改变我们的开发状况的。我们打开Apusic Studio,首先需要建立一个Apusic 标准工程,这个工程是基于Java EE 5.0版本。然后我们需要建立一个EJB模块,假设叫EJB 3,点击完成,一个模块就完成了。下面就很简单了,我们建立一个会话Bean,起一个名字叫Simple。我们可以看到,EJB 3.0发生了一些根本性的变化,Remote和Home接口不再是必需的了,只有一个Simple和SimpleBean即可以了,而且,配置文件也不再是必需的,只需要一个Annotation即可。我们现在做一个简单的方法,这个业务逻辑方法在Simple中声明之后,我们会发现这个SimpleBean会报错。我们现在需要把这个业务逻辑方法体生成。我们在这里补充一段代码,我们也做一个sayHello方法。好,下面我们再新建一个web模块,我们还可以选择,它需要要支持哪一个框架,你可以选择JSF,我们还可以选择某个模板,点击完成,一个支持JSF的Web模块就OK了。这是JSF相关的配置。我们下面做一个简单的JSP页面,选择这个文件夹、新建、点击完成。我们在JSP中怎么调用刚才的EJB呢?我们只需要写几个代码,首先有一个Context。我们再不需要Home接口,一下子可以把Simple给找出来。下面输入一个参数,beijing,再把这个结果打印出来。至此这个JSP页面就好了,我们下面要做的就是通过右键在应用服器上运行(主讲人演示),可以看到,服务器自动启动了,并且,如果应用没有部署,就会自动部署。然后调用你所需要调试的页面,你也可以加入一些断点,进行断点调试。

  我们再谈一谈依赖注入。我们做一个非常简单的例子,在Web  模块里面建一个Servlet。我们写一个变量。以往我们需要对他初始化,但是在EJB 3.0里面就不需要。我们只需要说他是一个EJB。我们再不需要初始化了。我们重新启动应用一下,我们可以看到控制台上说应用已经启动了,我们仅仅需要打开浏览器访问这个Servlet,结果也是一样的,我们刚才做的实例就是EJB3.0的一个很重要特性就是依赖注入。你仅仅需要告诉容器这是一个EJB就可以了。我们再做EJB3.0拦截器的演示,拦截器在某种程度上解决了OO思想不能解决的问题,我们可以应用拦截器对已经上线运行的系统进行一个运行期的更改,我们现在做一个简单的拦截器。我们做一个类(主讲人演示),在类里面声明一个方法,假如说调用EJB之前要调用我们这样一个方法,还要抛出一个异常,我们首先判断调用的EJB是哪一个。我们判断这个就是我们刚才所说的Simple的话就要给他拦截住,然后把得到的结果进行更改,如何把垃截器告诉容器,现在仅仅需要标注一个Annotation就可以了。这个SimpleBean需要一个拦截器,现在就声明好了。这个方法调用之前要通知我,至此这个拦截器便配置完毕了,下面我们只需要把这个应用重新启动一次。我们可以看到应用启动了,如果再刷新这个页面,可以观察到我们并没有做任何修改,但是通过一个拦截器,可以看到运行结果发生变化,这就是拦截器AOP编程带给我们很有益的帮助。

  我们刚才和大家交流了运行期、开发期,最后就是扩展期对SOA的全面支持。我们知道SOA是和OO思想并列的两种层次的系统分析方法学。金蝶中间件公司在SOA上也在进行自己的理解和实践,我们知道Web  Services是SOA一个主要的支撑技术。我们对Web  Services进行了一个全面的支持,包括在开发期通过Apusic Studio进行Web Services的可视化开发,包括部署期可以非常轻松地把Web  Services部署到我们的应用服务器上面,我们甚至不需要写任何一个代码,就可以对Web  Services进行测试,甚至在Web  Services正式上线之后还可以通过我们的工具对Web  Services进行运行期的监控。

  蔡总:张勇介绍了Java EE 5.0的产品,其实我们不仅仅是一个Java EE 5.0标准的实现者,也是一个标准的制订者。之前和现在我们都在Java的标准规范中提出我们的建议,全世界都在使用我们的规范,所以讲金蝶不仅是一个标准的实现者,而且是标准的参与者。除了这些,在实现Java EE标准的情况下,每一个公司都有自己的实现方式,很多公司、很多同事和朋友都问我们,金蝶公司是否在开源的产品进行了一些修整,再变成的产品,我们负责任地讲,我们没有一行代码是抄别人的,我们借鉴了一些国外的思想,国外也有借鉴我们的一些思想,下面,我们也来介绍一下金蝶中间件的核心思想在哪里?

  张勇:刚才谈到,在Java领域,金蝶中间件公司有很多年的积累,那么,我们有哪些积累和突破?我们一起分享一下我们拥有的核心技术。首先我们探讨一下微内核体系。Apusic 的微内核体系更类似操作系统的微内核,它提供一些基础性的服务,所有的其它功能我们统一在微内核体系下控制。通过这样一个架构,我们可以保持产品的可扩展性。为什么我们可以非常快速地实现Java EE 5.0的规范,微内核体系是我们最重要的一部分。再往下我们分享一下Apusic独有的集群技术。集群所需要解决的问题无非是负载均衡和高容错性,目前在集群实现策略中,是最流行的技术是Session的内存复制与迁移技术。但是采用这样的技术很容易产生一个问题,就是随着集群节点的增多,节点之间需要复制的Session也会随着增多,最终导致网络通讯产生堵塞,就是我们常说的网络风暴,那么,我们的Apusic 有一个独有的技术就是客户端缓存,能够将Session缓存在客户端,从而有效地避免缓存很多信息,避免产生网络风暴。我们还有其它一些核心技术,包括在集群环境下的智能路由技术和抗抢夺算法等。再下面是我们自己的JSF引擎,我们有高效的引擎,有丰富的组件库,我们拥有这些技术,但同时我们还希望能够跟整个业界分享这些技术。我们希望把这些核心技术贡献出来,和业界分享,同时使JSF技术能够真正成为Web开发的主流技术。这也是金蝶公司出资成立了Operamasks.org的社区,并将JSF技术开源贡献出来的主要原因。

  蔡总:张勇说的JSF技术,我们软件开发都有一个痛苦。原来基于浏览器的应用非常好。但是开发起来非常麻烦。现在我们做的这个JSF和Ajax表现力很强,我认为它是一个非常有意义的技术。我们认为JSF与Ajax之间的结合会改变Web 开发的痛苦。我们不仅仅推出了JSF的引擎和组件,还希望能够推动JSF技术 的普及。软件光说不行,要真正有人用,大家愿意用的产品才是好产品,下面我会简单介绍一下金蝶中间件的案例。这是CCW在今年3月份做的一个应用服务器的市场调研,进行了一些海选。在基础领域我们突破了10%的占有率,其中在电子政务、电子商务的企业市场,现在增长非常快,这是我们的一些典型客户,高市长和中纪委的同志讲的非常好,他们都在使用我们的中间件服务器,国家质检总局都在用。国家民政部、国家信访局都在用我们的中间件。广东工商是我们第一个电子政务的客户,全省使用了我们300个中间件,有效保证了数字工商正常运行。现在到海南工商、辽宁工商,更多的工商系统都使用了我们的中间件产品,海南的电子政务都使用了我们的中间件产品,湖北、陕西电子政务都使用了我们的中间件。还有中国人民银行,这个案例很有意义,使用了四年时间。所有人民银行的人都要访问综合业务平台,12万人,每天有大量的在线用户,每天都要用,没有因为中间件的问题影响人民银行的应用。这是中国人民银行的业务架构。这是国家民政部的救助系统的案例,他是从省级到国家到市的三层架构,数据量也非常大,成绩也比较复杂,集中分布是一个典范。

  这是广东工商的架构图(指图),他是从国家省市县的三级结构。

  这个案例是中国移动(指图),和我们ERP产品一起给中国移动做服务。他总共22个省公司,采取集中式的方法,集中用中间件统一访问一个结点,数据量非常大,现在我们整个的实施已经正式上线了,充分体现了我们的稳定可靠。我们基础的业务平台和业务流程,同时对生命周期进有效地管理,这是我们的业务基础。这是我们给客户实施的主要功能。包括我们的软件系统和客户关系,除了我们在政府以外,大量的企业在使用我们的中间件,包括联想集团、华为、万科、海尔、南科、通化钢铁、大冶钢铁、山东海化、浙江传化、香港TOM集团、香港的亨达。这是香港最大的证券公司之一。还有我们大的集团,我们不能一一罗列,这是我们有代表性的一些客户。金蝶中间件我们这次发布我们新的产品,也希望我们的合作伙伴,我们的技术人员去尝试我们新的技术,我们的程序在网上都有下载,我们的京剧脸谱源代码都在网上,希望大家一起开发。我们形容金蝶就是沙漠中行走,我们勇于挑战,感谢大家关注我们支持我们。

  主持:听了精彩的产品介绍演示之后,请徐少春先生,高建华主任,倪光南先生,吴泉源教授一起发布Java EE 5.0。

 

   
 
深圳市金蝶中间件有限公司版权所有 © 2001-2006