Anissa和Judy谈Glassfish的开发与测试

个人简介 Anissa,GlassFish管理控制台项目的负责人,也是GlassFish应用服务器产品的核心开发人员。她在Sun公司工作超过20年,8年前加入应用服务器团队。曾经参与开发许多GUI工具,包括J2EE 1.4参考实现中的部署工具,NetBeans IDE的插件,及正在负责的管理控制台。

Judy Tang,现任Sun Microsystems GlassFish测试团队经理。其管理的测试团队测试GlassFish 项目包括:Admin GUI、Admin CLI、Installer、NetBean Plugin等。Judy曾供职于IBM,Sybase 等公司,负责数据库软件的开发和测试。

QClub是由InfoQ中文站定期组织的一个线下技术交流活动,目的是让中高端技术人员有一个相对自由的交流思想和交友的平台。每次QClub只关注一个主题,邀请国内外在该主题领域有研究的技术专家分享其经验,但QClub更注重讨论,因为它认为讨论才是真理,从讨论中才能激发参与者的智慧和火花。

   

1. 今天我们在美丽的西湖边采访GlassFish团队的朋友们,Anissa你好。请先介绍一下你自己和你所关注的一些事情。

先跟大家打个招呼,我是Anissa,我自己在Sun Microsystem里头工作已经超过了20年,我大概七年到八年前,我加进了应用服务器的团队,一直以来都是做开发的工作。开始的时候,我是做那个Deploy Tool(部署工具)的。那个时候还没有开源,后来我也做一些我们现在很受欢迎的NetBeans的IDE的插件,把我们用过的服务器插进去的,这一个也是我已经做过的commit。后来我就转到了管理控制台,我现在是管理控制台的负责人。我带领我们的小组开发控制台,我很高兴有这一个应用,因为我觉得那个控制台,大家各方面的评价都是很好的,觉得这是我们服务器的一个优点。因为我那么多年来都是做软件的开发,所以我对Web 2.0的发展也是很关注的。因为不仅我们控制台就是Web Application,所以有什么新的技术,JSF出来的时候,我们就把控制台改到JSF了。那AJAX有出来之后,我们也把一个很多的AJAX应用用在那个控制台上面,所以我觉得我们一直都走在技术的尖端,就是尽我的所能把控制台弄好。

   

2. 你的开发经验还是非常丰富的,其实我们也知道GlassFish是一个非常好的应用服务器。那么其实在GlassFish之前TOMCAT已经得到很多人的认可,那么我们很多开发人员,想了解的是GlassFish和TOMCAT相比有哪些异同点?

我觉得差不多有以下几点。第一个,因为我们的是Java EE的Spec很多都是从SUN MICRO也就是我们的团队里出来的,所你用GlassFish的时候你就用到最尖端技术,比方说EJB 2.0,那个你用GlassFish你就会用得最新的技术,我们以前出的那个版本V2,就是第一个跟那个Java EE5兼容的应用服务器,我们是第一个出来的,所以我觉得这个就是我们的优势。另外刚才我说的,我是用那个我们有那个管理的平台——管理控制台。那个也是跟那个TOMCAT比较起来,大家都觉得我们控制台很好用,也很容易配置,配置你的服务器。另外一个又是因为我们用那个Gresty,在我们的HTTP的上头,所以你就,你也不需要那个Apache放在前头了,所以弄起来就简单了很多。还有就是通常性,我觉得一般来说都是用TOMCAT来开发的,开发完了之后,买一个企业级服务器来把它卷在那个服务器那头,这样就多了一个转折,你开发的时候可以没有问题,你要把他转到另外一个服务器就可能有问题出来了。可是因为我们GlassFish跟Netbean和Eclipse都有插件进去的,你开发也是用这一个,你以后部署的时候我们企业版就没有那个问题了。还有就是我们很多技术上的支持,还有我们的文档都是很齐全的,服务器那个支持,我们有一个很活跃的社区,还有Email里头有很多都是没有问题,我们都很大力的支持他们的,文档也是很齐全,这就是我们GlassFish的优点。

   

3. 就是有一个很好的技术社区、开发者社区?

对。

   

4. 那我们切入一个相对比较具体的一个GlassFish表现的功能,集群功能。其实这个功能在TOMCAT里面已经得到了很好应用,那么在GlassFish里面,它的表现怎么样?

GlassFish V2我们有那个Cluster,就是以Cluster,就是一个很容易把你的,你用我们的控制台很容易把它Cluster出来,前面你也可以再按照那个HADB,HADB就是让你的Application部位有那个down time,给你的99.999%永远是有的,不会说就不在这样。另外因为你不用那个HADB我们本身里头就已经有一个叫Memory Application,它就是把你的Session Data,把你的东西都把它传到另外一个Server Instance上头,这样你其中一个有什么问题,关掉后你所有的数据都是全在的,我觉得我们那个是一个很好的product。

   

5. 那么我们也了解到GlassFish他的一个新的版本,就是V3里面会有一个比较突出的特征是,也就是他的模块化特征,他在设计这个整体架构的时候采用了OSGi的技术,给我们介绍一下OSGi它的一个优势是什么?

就好像你说的,OSGi我们现在GlassFish V3出来的,我们就是支持OSGi的。总括来说,我自己看OSGi就是有三个特点,OSGi它有一个Core Framework,它里头第一点就是把那个Logical跟Physical的模块分开来,就是一个模块你是一个JAR文件,可惜你JAR文件里头你就有很多Class其他的都可以用,当你Runtime的时候,你不一定说你有进里头的话其他的就一定能用。因为那个模块它上头有那个Manefest文件里头就直接的写出来,哪一个是可以让其他人看到的,你不是用OSGi模块的话,你所有的Class你在那个JAR文件里头大家都看到了。我们现在把他那个Logical跟Physical分开,你放这里头也不一定能看到,或者是你要看人家的也不一定人家让你看到,这是第一个。第二个,我就写那个动态模块,你那个OSGi的模块你把它放进去,你不用再重开那个JVM,你可以把它关掉,Install,Upgrade都不需要把那个JVM再重新开启,这是第二个。第三点就是你把那个每一个Java Class你就在那个Instance上,还有Object,那个服务,他是用一个服务的,那服务是把它放在了一个Registry里头,所以你的模块,你的Bundle,人家其他的Request,你也可以说我有服务,把它放在Registry里头,以后你不要的话,你就可以把它那个服务里头就没有了,那其他人就看不到,就变成一个动态模块化。这样跟以前你们用的Class Path就有一点点分别了,就很难把那个东西除掉,你把它弄进来就很难除掉,现在因为它进到Registry,比较更模块化了,这是三点,这是OSGi的优点。

   

6. 那么GlassFish在OSGi引入了它整体架构的过程中,他所表现优势表现在哪里?

就是因为我们用了OSGi,所以我们在那个容器在我们GlassFish上头,你就知道你的模块很,就是我们GlassFish可以部署那个模块,有时候因为其实有很多时候,你以为你写出来的已经是蛮独立的跟其他的部位有什么关系,有什么影响。可是因为现在你放在OSGi上头,你开发的时候,你做的时候他就会按部署这一个。第二个我想就是V3里头,V3、JAVAEE SYSTEM,就是要自定义,你要的那块才要,你不要你不需要放在,可以定制,所以就是因为我们用OSGi上面,所以Glassfish也有这个好处,你不会说你不要的都全部摘下来,你用的Memory的ONETIME的时候也比较大,所以那个glassfish我们就可以,因为用了OSGi我们就可以这样。另外一个就是可插拔,你插进来的时候,因为这个OSGi你就可以基于我们的指导,告诉你,你是怎么样加其他的东西进来,就不会说影响其他的。比方说我们管理控制台上头,因为我们也是用OSGi的,所以其他的公司他也是一个工具,比方说你要一个模块工具放在上头,我们也是可以用这个OSGi 技术,你把那个Bundle放进我们的服务器上头,我们控制台就已经可以把你,就只当有那个把它加进去了,就是因为这样我们Glassfish现在就比较V3的时候就可以你们说的模块化。

   

7. 那就是说其他的开发人员如果说想开发一些插件也会比较容易?

对。

   

8. 刚才你也提到,花费了很多精力的一个地方就是管理控制台,那么这是一个什么样的产品?

管理控制台就是让你很轻松,很容易的配置那个你的Application,Application上头我们有很简单的界面,让你只要有你的Application没问题,你就可以很简单的用我们的控制台来配置你的Application,配置完了之后,你等一下,我们就已经把Application就露出来让你看,就是从前面到后头,end-to-end,你都可以用我们Console来做的,这是一个。另外,因为那个控制台,你就不用直接的就打开文件来EDIT,有很多的话,比方说那个Domain的XML里头都是有很多那个配置的信息,你用控制台,你就不用说专门跑去找编辑器来用手来改写,因为其中只是一个XML的Bug,一不小心可能就把它改错了,你就不能拿出来的。然后说到那个日志,我们有一个很好的日志的浏览器放在管理控制台里头,比方说你有什么warning,有什么error,或者奇怪的问题,你用我们的浏览器,你就很简单,很容易看到,问题出在哪里,什么时候出来的,就看得很仔细,很容易,另外,还有就是资源的配置跟资源的连接,那个JDBC还有资源那个连起来,连接池那个连起来的话也很简单,也很容易,我们就是让你很容易、很轻松的就把我们的应用服务器把他安装好、装置好。

   

9. 用一种所见及所得的形式去管理服务器?

对。

   

10. 这是一个非常好的形式,我们也知道在设计这个管理控制台的时候,你们也采用了一个JSF的这么一种技术,然后让他的观感、用户体验都非常不错,为何选择用JSF来实现这个管理控制台?

我想就有大概三个原因,第一个就是这个JSF这个标准,有很多公司都是用在那个标准上头,我们最主要就是让我们的产品都是用标准,其他的工具,因为他是一个标准,所以就有很多其他的支持,这是一个;另外最主要的,其实也是JSF最主要的,他把那个数据,它是一个MVC的MODEL,他的数据,他跟那个解析的组件两个分开,这样的话,我们也不要针对一些vendor,把他放在一个网页上,因为其实有很多那个已经写出来了,可以在不同的浏览器我们也不要,有看到那个浏览器有什么问题,就vendor那个程序它是把它已经弄好了,还有就是它也可以把,因为那个结构可以把很简单的全部连起来,给你一个很整体的显示,这样我们就觉得让人家来用,我们的网页用起来就比较好用,我想就是这个原因,我们采用了JSF的技术。

   

11. 非常感谢接受InfoQ中文站的采访。

谢谢!

   

12. 今天我们也非常容幸邀请到GlassFish品质方面的负责人Judy,给我们介绍一下你自己和你所关注的事情。

谢谢,这次非常高兴来到中国,有机会跟KEVIN,InfoQ的总编,有机会跟他一起合作,在中国宣传GlassFish,在这里真的要很好的感谢KEVIN,很希望我们将来有更好的机会,我觉得GlassFish在中国推广的话,真的离开不了InfoQ这种大力的宣传,再次感谢。除此之外,我想多介绍一下我自己,我是出生在中国,生长在中国,我上大学是在浙江大学,这下我们也是来到杭州,来到西湖边,来到中国的GlassFish用户的社区的关注当中,所以我非常希望,就是能够让大家知道这个GlassFish这件事情,所以这个就变成我现在的热情那就是宣传GlassFish在中国,那同时我自己在这个软件当中已经有了18年的经验,从刚刚开始我做得是IBM的DB2数据库,后来我又在SyBase工作了一段时间,也是搞的数据库,那8年前我参加了SUN公司,就一直在做这个服务器,所以后来刚刚开始,我是搞服务器的测试,后来我就走向服务器的管理,按照道理来说,应该是相当资深的,所以这次有机会能够让自己施展才智,在中国宣传GlassFish是件很开心的事。

   

13. 作为GlassFish品质方面的负责人,你是如何保证他的品质的?

SUN是个非常大的公司,所以我们都有一系列的品质测试的流程,在我们整个测试过程中,我们都是跟着这些流程走的,比如刚刚开始在开发队员设计这个产品的时候,我们的品质队员就参与整个GlassFish的设计过程,在同时参加的过程中,我们就会开始做如何测试的过程,所以好比说一个GlassFish,这是有个OSGi这个项目的话,那我们这个测试人员也是要学习这个OSGi是个怎么样的技术,我们就会先参加学习这个过程,当中呢,我们要怎么计划要怎么测试的过程,所以不是说随便测试的,而是跟一个很大的企业,我们Follow这个流程来这样子做,所以一个品质来说,对一个产品是非常非常的关键,所以开源的GlassFish产品它不是只是开源的测试,他其实是一个企业化的测试。

   

14. 我们也知道,在保证它品质的过程中有一个非常有意思的项目,那就是FishCat,我们也听很多人提到过这个项目,给我们简单介绍一下吧?

好的,很高兴有机会告诉大家这个FishCat是个什么东西,首先FishCat这个名字就很有意思,大家一听就是鱼和猫,很像是鱼和猫在做游戏,其实真的是一个非常好的游戏,Fishcat意思是GlassFish Community Acceptance Testing,所以每一个产品在发布之前,都要有那么一个就是BETA测试的过程,那我们就是利用这个开源的机会,让这个Community来帮助我们测试,所以就是在我们要发布这个GlassFish之前的五个星期,我们会让社区的人一起来帮我们找这个Glassfish里面的差错,那这一次就是我们刚刚发布的,GlassFish V3预览版,在这里面,在这之前,我们就有来自18个国家的36个社区队员,帮我们一起测试GlassFish,所以我们一起测试了五个星期,一共找到了125个 Bug,所以可想而知这些Bug如果在我们发布之后,用到企业上去才发现,那就太迟了,但是我们能够很好的在这之前,就把这125个BUG找到,这是一个非常好的Program,我们大家知道这个企业应用的品质是来自于大家的应用,用的人越多,品质也就会越好,所以Glassfish的开源,真的是让Glassfish的品质我们都能够感觉到是一个很大的提高。

   

15. 今后在发布另一个版本的时候,会继续采用FishCat这样的形式吗?

对,我们一直用下去,因为这次的反应和效果都非常好,所以SUN的整个高层领导都很开心,有那么好的一个Program,下次我们一定会推广,一定会坚持下去。这次我来中国也有另外一个目的,就是要让在中国GlassFish社区的人,知道有这么个Program,将来邀请他们一起参加。

   

16. 我们也知道GlassFish它是一个开源的服务器,然后它有一个版本社区版,另外他也有一个企业版,这两个版本之间有什么重大的区别?

这是个非常好的问题,应该是整个GlassFish的用户都关心的问题,大家都想知道GlassFish的社区版和企业版有什么区别?我可以告诉你这是有区别的,那主要的区别就是在于你用了GlassFish的企业版,你会得到特别的支持,好比说你会得到用户直接打电话来告诉我们你的问题是什么,我们会派专门的团队来支持你们,还有当你们出现什么问题的时候,我们也会有专门的人,好比说在中国,有Glassfish用户想买我们的这个SERVICES,那我们这里,中国就有很大的一个销售团队和那个SERVICES团队能够直接走到这个企业单位去为你们提供服务,这就是一个区别;除此之外,就是说整个BASE来说我们的CODE是一样的,社区版和企业版是一样的,但是我们现在还在设计很多插件,这些插件都是对于企业的应用很关注的,好比说监控是个企业需要的,好比说怎么样子看这个企业的HA的运用,这也是企业所需要的,这些我们都有很好的插件来帮助企业很好的应用,这就是为什么GlassFish的企业应用会有这么多人的关注,现在我们谈到了很多的客户,他们都非常对GlassFish很感兴趣,所以这次我们谈到的时候,他们都说这下好了,我们找到了一个GlassFish在中国的应用的最好的市场。

   

17. 非常好,感谢Judy接受我们采访。

谢谢。

你可能感兴趣的:(Anissa和Judy谈Glassfish的开发与测试)