InfoQ

InfoQ

技术访谈

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

录制于:
Recorded at

Anissa和Judy谈Glassfish的开发与测试

受访人 Anissa, Judy 采访人 霍泰稳 发布于 2009年7月31日 长度 00:25:14

领域
语言 & 开发,
架构 & 设计,
运维 & 基础架构,
过程 & 实践
主题
团队协作 ,
Java ,
开放源代码 ,
应用服务器 ,
发布 ,
架构 ,
Web服务器
标签
测试 ,
Glassfish ,
OSGi ,
QClub
 
概要
InfoQ中文站有幸在美丽的西湖畔采访GlassFish管理控制台项目的负责人Anissa及其测试团队经理Judy,探讨了关于Glassfish的特点、OSGi的优势、管理控制台、如何保证测试品质等话题。

个人简介
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更注重讨论,因为它认为讨论才是真理,从讨论中才能激发参与者的智慧和火花。
今天我们在美丽的西湖边采访GlassFish团队的朋友们,Anissa你好。请先介绍一下你自己和你所关注的一些事情。
先跟大家打个招呼,我是Anissa,我自己在Sun Microsystem里头工作已经超过了20年,我大概七年到八年前,我加进了应用服务器的团队,一直以来都是做开发的工作。开始的时候,我是做那个Deploy Tool(部署工具)的。那个时候还没有开源,后来我也做一些我们现在很受欢迎的NetBeans的IDE的插件,把我们用过的服务器插进去的,这一个也是我已经做过的commit。后来我就转到了管理控制台,我现在是管理控制台的负责人。我带领我们的小组开发控制台,我很高兴有这一个应用,因为我觉得那个控制台,大家各方面的评价都是很好的,觉得这是我们服务器的一个优点。因为我那么多年来都是做软件的开发,所以我对Web 2.0的发展也是很关注的。因为不仅我们控制台就是Web Application,所以有什么新的技术,JSF出来的时候,我们就把控制台改到JSF了。那AJAX有出来之后,我们也把一个很多的AJAX应用用在那个控制台上面,所以我觉得我们一直都走在技术的尖端,就是尽我的所能把控制台弄好。
你的开发经验还是非常丰富的,其实我们也知道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的优点。
就是有一个很好的技术社区、开发者社区?
对。
那我们切入一个相对比较具体的一个GlassFish表现的功能,集群功能。其实这个功能在TOMCAT里面已经得到了很好应用,那么在GlassFish里面,它的表现怎么样?
GlassFish V2我们有那个Cluster,就是以Cluster,就是一个很容易把你的,你用我们的控制台很容易把它Cluster出来,前面你也可以再按照那个HADB,HADB就是让你的Application部位有那个down time,给你的99.999%永远是有的,不会说就不在这样。另外因为你不用那个HADB我们本身里头就已经有一个叫Memory Application,它就是把你的Session Data,把你的东西都把它传到另外一个Server Instance上头,这样你其中一个有什么问题,关掉后你所有的数据都是全在的,我觉得我们那个是一个很好的product。
那么我们也了解到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的优点。
那么GlassFish在OSGi引入了它整体架构的过程中,他所表现优势表现在哪里?
就是因为我们用了OSGi,所以我们在那个容器在我们GlassFish上头,你就知道你的模块很,就是我们GlassFish可以部署那个模块,有时候因为其实有很多时候,你以为你写出来的已经是蛮独立的跟其他的部位有什么关系,有什么影响。可是因为现在你放在OSGi上头,你开发的时候,你做的时候他就会按部署这一个。第二个我想就是V3里头,V3、JAVAEE SYSTEM,就是要自定义,你要的那块才要,你不要你不需要放在,可以定制,所以就是因为我们用OSGi上面,所以Glassfish也有这个好处,你不会说你不要的都全部摘下来,你用的Memory的ONETIME的时候也比较大,所以那个glassfish我们就可以,因为用了OSGi我们就可以这样。另外一个就是可插拔,你插进来的时候,因为这个OSGi你就可以基于我们的指导,告诉你,你是怎么样加其他的东西进来,就不会说影响其他的。比方说我们管理控制台上头,因为我们也是用OSGi的,所以其他的公司他也是一个工具,比方说你要一个模块工具放在上头,我们也是可以用这个OSGi 技术,你把那个Bundle放进我们的服务器上头,我们控制台就已经可以把你,就只当有那个把它加进去了,就是因为这样我们Glassfish现在就比较V3的时候就可以你们说的模块化。
那就是说其他的开发人员如果说想开发一些插件也会比较容易?
对。
刚才你也提到,花费了很多精力的一个地方就是管理控制台,那么这是一个什么样的产品?
管理控制台就是让你很轻松,很容易的配置那个你的Application,Application上头我们有很简单的界面,让你只要有你的Application没问题,你就可以很简单的用我们的控制台来配置你的Application,配置完了之后,你等一下,我们就已经把Application就露出来让你看,就是从前面到后头,end-to-end,你都可以用我们Console来做的,这是一个。另外,因为那个控制台,你就不用直接的就打开文件来EDIT,有很多的话,比方说那个Domain的XML里头都是有很多那个配置的信息,你用控制台,你就不用说专门跑去找编辑器来用手来改写,因为其中只是一个XML的Bug,一不小心可能就把它改错了,你就不能拿出来的。然后说到那个日志,我们有一个很好的日志的浏览器放在管理控制台里头,比方说你有什么warning,有什么error,或者奇怪的问题,你用我们的浏览器,你就很简单,很容易看到,问题出在哪里,什么时候出来的,就看得很仔细,很容易,另外,还有就是资源的配置跟资源的连接,那个JDBC还有资源那个连起来,连接池那个连起来的话也很简单,也很容易,我们就是让你很容易、很轻松的就把我们的应用服务器把他安装好、装置好。
用一种所见及所得的形式去管理服务器?
对。
这是一个非常好的形式,我们也知道在设计这个管理控制台的时候,你们也采用了一个JSF的这么一种技术,然后让他的观感、用户体验都非常不错,为何选择用JSF来实现这个管理控制台?
我想就有大概三个原因,第一个就是这个JSF这个标准,有很多公司都是用在那个标准上头,我们最主要就是让我们的产品都是用标准,其他的工具,因为他是一个标准,所以就有很多其他的支持,这是一个;另外最主要的,其实也是JSF最主要的,他把那个数据,它是一个MVC的MODEL,他的数据,他跟那个解析的组件两个分开,这样的话,我们也不要针对一些vendor,把他放在一个网页上,因为其实有很多那个已经写出来了,可以在不同的浏览器我们也不要,有看到那个浏览器有什么问题,就vendor那个程序它是把它已经弄好了,还有就是它也可以把,因为那个结构可以把很简单的全部连起来,给你一个很整体的显示,这样我们就觉得让人家来用,我们的网页用起来就比较好用,我想就是这个原因,我们采用了JSF的技术。
非常感谢接受InfoQ中文站的采访。
谢谢!
今天我们也非常容幸邀请到GlassFish品质方面的负责人Judy,给我们介绍一下你自己和你所关注的事情。
谢谢,这次非常高兴来到中国,有机会跟KEVIN,InfoQ的总编,有机会跟他一起合作,在中国宣传GlassFish,在这里真的要很好的感谢KEVIN,很希望我们将来有更好的机会,我觉得GlassFish在中国推广的话,真的离开不了InfoQ这种大力的宣传,再次感谢。除此之外,我想多介绍一下我自己,我是出生在中国,生长在中国,我上大学是在浙江大学,这下我们也是来到杭州,来到西湖边,来到中国的GlassFish用户的社区的关注当中,所以我非常希望,就是能够让大家知道这个GlassFish这件事情,所以这个就变成我现在的热情那就是宣传GlassFish在中国,那同时我自己在这个软件当中已经有了18年的经验,从刚刚开始我做得是IBM的DB2数据库,后来我又在SyBase工作了一段时间,也是搞的数据库,那8年前我参加了SUN公司,就一直在做这个服务器,所以后来刚刚开始,我是搞服务器的测试,后来我就走向服务器的管理,按照道理来说,应该是相当资深的,所以这次有机会能够让自己施展才智,在中国宣传GlassFish是件很开心的事。
作为GlassFish品质方面的负责人,你是如何保证他的品质的?
SUN是个非常大的公司,所以我们都有一系列的品质测试的流程,在我们整个测试过程中,我们都是跟着这些流程走的,比如刚刚开始在开发队员设计这个产品的时候,我们的品质队员就参与整个GlassFish的设计过程,在同时参加的过程中,我们就会开始做如何测试的过程,所以好比说一个GlassFish,这是有个OSGi这个项目的话,那我们这个测试人员也是要学习这个OSGi是个怎么样的技术,我们就会先参加学习这个过程,当中呢,我们要怎么计划要怎么测试的过程,所以不是说随便测试的,而是跟一个很大的企业,我们Follow这个流程来这样子做,所以一个品质来说,对一个产品是非常非常的关键,所以开源的GlassFish产品它不是只是开源的测试,他其实是一个企业化的测试。
我们也知道,在保证它品质的过程中有一个非常有意思的项目,那就是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的品质我们都能够感觉到是一个很大的提高。
今后在发布另一个版本的时候,会继续采用FishCat这样的形式吗?
对,我们一直用下去,因为这次的反应和效果都非常好,所以SUN的整个高层领导都很开心,有那么好的一个Program,下次我们一定会推广,一定会坚持下去。这次我来中国也有另外一个目的,就是要让在中国GlassFish社区的人,知道有这么个Program,将来邀请他们一起参加。
我们也知道GlassFish它是一个开源的服务器,然后它有一个版本社区版,另外他也有一个企业版,这两个版本之间有什么重大的区别?
这是个非常好的问题,应该是整个GlassFish的用户都关心的问题,大家都想知道GlassFish的社区版和企业版有什么区别?我可以告诉你这是有区别的,那主要的区别就是在于你用了GlassFish的企业版,你会得到特别的支持,好比说你会得到用户直接打电话来告诉我们你的问题是什么,我们会派专门的团队来支持你们,还有当你们出现什么问题的时候,我们也会有专门的人,好比说在中国,有Glassfish用户想买我们的这个SERVICES,那我们这里,中国就有很大的一个销售团队和那个SERVICES团队能够直接走到这个企业单位去为你们提供服务,这就是一个区别;除此之外,就是说整个BASE来说我们的CODE是一样的,社区版和企业版是一样的,但是我们现在还在设计很多插件,这些插件都是对于企业的应用很关注的,好比说监控是个企业需要的,好比说怎么样子看这个企业的HA的运用,这也是企业所需要的,这些我们都有很好的插件来帮助企业很好的应用,这就是为什么GlassFish的企业应用会有这么多人的关注,现在我们谈到了很多的客户,他们都非常对GlassFish很感兴趣,所以这次我们谈到的时候,他们都说这下好了,我们找到了一个GlassFish在中国的应用的最好的市场。
非常好,感谢Judy接受我们采访。
谢谢。
show all  show all show all

采访人 霍泰稳 是InfoQ中文站的联合创始人兼总编辑,有多年的软件开发经验和媒体从业经历。

第一个人是个香港人吧 发表人 Zhang Gavin 发表于
Re: 第一个人是个香港人吧 发表人 Anissa Lam 发表于
Re: 第一个人是个香港人吧 发表人 Zhang Gavin 发表于
很好, 发表人 Poon Eric 发表于
相当 相当惊人的测试 发表人 E. H. 发表于
这些人现在不知道有没有被Oracle给裁掉. 发表人 Liu Xing 发表于
软件的问题并不多 发表人 qian qian 发表于
  1. 返回顶部

    第一个人是个香港人吧

    发表人 Zhang Gavin

    还不如让她说英语了

  2. 返回顶部

    Re: 第一个人是个香港人吧

    发表人 Anissa Lam

    对不起,你的猜测就像我的普通话, 不太正确 :)

    年前,我开始练习普通话,自知不足. 就像产品开发,我会继续努力,达到目标.

    希望未来再有机会回国时,能够获得认同.

    现在,就请大家多多包容吧 !!


    谢谢

    Anissa

  3. 返回顶部

    Re: 第一个人是个香港人吧

    发表人 Zhang Gavin

    你好,绝无冒犯之意,请勿介意

  4. 返回顶部

    很好,

    发表人 Poon Eric

    两位都说得很好,虽然偶尔有使用GF来做JSP测试,可是并没想到GF有如此强大的功能及丰富的内容。以后希望能更多关注GF的发展。

  5. 返回顶部

    相当 相当惊人的测试

    发表人 E. H.

    在同一台机器上,同样的一个web工程,执行3个SQL语句查询语句,最后用action调用Service里面的SQL语句

    采用apache ab工具 测试 tomcat 1000个并发请求 做100次,

    采用apache ab工具 测试 glassfish 1000个并发请求 做100次,

    效率相差3倍
    tomcat 下测试执行3边,分别是: 6627 4344 6562 5469 毫秒
    glassfish下测试执行3边,分别是: 1719 1954 2391 1875 毫秒

    为什么会有这样的测试结果?

    我想在大型应用下,tomcat的多线程处理机制不如 glassfish 那么强大,所以导致有如此明显的差异。

    我使用的是sun网站下最新的 glassfish 版本

  6. 返回顶部

    这些人现在不知道有没有被Oracle给裁掉.

    发表人 Liu Xing

    估计早就不在杭州了吧.

  7. 返回顶部

    软件的问题并不多

    发表人 qian qian

    125个bug对于一个比较大的产品并不算多。软件做得不错。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。