BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

JFox主开发者杨泳解析3.0特性和设计架构

| 作者 肖桦 关注 1 他的粉丝 发布于 2007年6月21日. 估计阅读时间: 8 分钟 | QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!

亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的邮件和网页通知

JFox团队最近宣布正式发布JFox Application Server 3.0版本。新的3.0版本重新构建了IoC 微内核,支持EJB3、JPA,内置 MVC 框架等。InfoQ中文站的编辑肖桦(江南白衣)就此采访了JFox的主开发人员杨泳。

用户可以从设置于Google上的项目站点下载JFox 3.0JFox 3.0 参考指南,在JFox的官方站点上可以在线体验它的管理控制台Petstore演示。下面是针对JFox 3.0的具体采访内容:

InfoQ中文站:在已有的众多应用服务器中,我们看到了JFox3.0很特别的一点,就是可以部署到任意的Web应用容器上去。这是否代表了Java社区最近流行的“Spring is the new JavaEE Platform”式,不再受限于具体开发厂商的应用服务器的新一代轻量级JavaEE平台趋势?

杨泳:JFox 3.0的一个重要特性之一就是可以以Web Application的方式部署到任意的Web应用服务器中,从而将一个Web服务器增强为一个全功能的Java EE应用服务器。

这样做主要考虑的因素如下:

  1. 以Tomcat为代表的Java Web Server已经发展了很多年,在接入能力、线程并发能力等方面已经非常成熟,能够满足从一般到关键各种类型的企业应用的要求,采用Web Application集成Web Server的方式可以更好地利用已有的Web Server的发展成果,以及不用再考虑为Tomcat、Jetty或者Resin都去开发一套集成的代码了,看起来我们既偷了懒,又让JFox拥有了更好的兼容性和品质;
  2. Web Application部署方式是非常成熟的Java 企业应用部署方式,JFox采用以Web Application嵌入到Web Server的继承方式,不会改变现有Web应用的开发和部署模式,更有助于现有的纯Web项目向 EJB3迁移,而JFox会在自动发布该Web应用classpath中的EJB组件。

对于Spring,它的定位是Java EE Application Framework,也就是为快速化的Web应用开发提供基础的技术架构,我觉得这和Java EE Application Server是有区别的。当然,Spring可以通过不断集成第三方的服务和框架,甚至提供EJB容器,而成为Java EE Application Server,但那时,Rod Johnson的书也许应该改名了。关于EJB和Spring的更多比较请参照EJB3和Spring比较

至于应用服务器轻量化,确实是个值得关注的问题,老一代的应用服务器,WebSphere、WebLogic,甚至包括JBoss,都在离lightweight越来越远,而用户总是喜欢简单、轻量的东西,当前工业设计以追求“简约实用”为原则,软件的设计也应该如此。JFox确实在这方面做了很多的考虑,因为我们必须这么做,否则我们无法完成整个项目的开发,我们的目标就是“The most lightweight Java EE Application Server(最轻量级的JavaEE应用服务器)”。

InfoQ中文站:请问JFox 3.0的设计架构是什么?

杨泳:JFox的架构,简单来说,是以IoC为内核,通过提供EJB容器,JPA容器,JMS服务器,MVC框架等来实现整个应用服务器。可以参考JFox 3.0参考指南获得这方面的帮助。JFox内部并没有不可思议的地方,任何人都可以通过阅读代码掌握JFox的全部内容,这就是开源的精神,我们一直在尽量保持JFox结构清晰、代码简洁,以便于阅读、维护和改进。

JFox集成了必要的开源框架,重要的有:JOTM、XAPool、XFire等,在集成版中我们默认集成的Web Server是Tomcat。

对于EJB的分布式调用,JFox并没有基于RMI,而是采用SOAP,也就是说,如果需要远程EJB,那么就得使用Web服务。没错,JFox抛弃了RMI,因为大多数应用Web Container和EJB Container运行在一个JVM上,而且基本上都是Web应用,那么也就是说有了Local和SOAP,就能够满足几乎所有的需求了。我们总是在想尽可能满足80%需要的情况,将事情简单化。

InfoQ中文站:JFox 3.0目前支持哪些JavaEE规范,还存在那些局限?

杨泳:JFox支持主要的JavaEE 5规范,比如EJB3、JPA、JMS、JNDI、JTA、JAX-WS等。

如果在实用性和遵循规范发生冲突时,JFox往往选择前者,所以和规范存在一定的兼容性问题,比如:EJB容器只提供基于Web服务的远程调用,而JPA容器采用了SQLTemplate来实现,所以没有也没有必要实现JPA规范的所有内容。我们想提供的一个个性化的应用服务器,因为大而全且限制在规范之内的应用服务已经有了WebLogic、WebSphere、JBoss等众多选择,所以我们的想法是在尽可能满足规范的情况下,提供一个更贴近用户的应用服务器。

InfoQ中文站:请给我们简单介绍一下JFox项目的由来和它的开发团队。

杨泳:JFox在 2001年底立项,2002年开始组建团队,并陆续在Huihoo社区发布,前后参与不同模块贡献的人员超过30多人。JFox团队是一个开放的团队,任何人都可以参与并贡献,无论是代码、文档或是智慧。

选择开发应用服务器的初衷也很简单,是因为当时大家对中间件技术充满了好奇,想挑战一下Java最为深奥的技术领域,就好像一群狂热分子为了一个理想而给自己设定了一个看起来不可能的目标,也就是凭借着这股对技术研究的热情和兴趣,JFox项目才得以持续了整整5年,并且还在不断发展。

JFox共发布了3个版本,JFox 1.x支持EJB1.1,JFox 2.x支持EJB2.x,现在的JFox 3.0支持EJB3。从最初的模仿,到尝试创新,到完全自主研发,可以说5年来,JFox一直在应用服务器道路上不断探索着前进。现在,JFox团队开设了专门的网站博客,还有论坛,在这里可以获得更多的信息。

InfoQ中文站:JFox未来的开发计划是什么?

杨泳:随着JFox 3.0的发布,不断有人开始尝试使用JFox的新版本,也不断有新问题被发现。所以完善代码以及文档,提高规范的兼容性,还有提供更强大的管理控制台,都是接下来我们要做的事情。

当然,要想支持关键的大型的企业应用,我们还需要进一步提高JFox的服务质量,比如我们正在寻求方案解决集群的问题。也还会考虑实现更多的Java EE规范,比如JCA,但是这可能需要有更多的爱好者加入进来。

InfoQ中文站:感谢你接受我们的采访。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

J2EE 5.0规范,纳百家之长,成为java企业开发统一的标准规范。 by hua Hua

J2EE 5.0规范,最核心的是全面引入新的基于POJO和IOC技术的EJB3模型。海纳百川,有容乃大,J2EE 5规范成为java企业开发统一的标准规范。

主要的有点表现在:
> 实体Bean采用了POJO模型,一个简单的java bean就可以是一个Entity Bean。无需依赖容器运行和测试
> 全面采用O/R Mapping技术来实现数据库操作
> 实体Bean可以运用在所有需要持久化的应用,不管是客户端还是服务器端。从而真正实现面向构件的开发
> 实体 bean 现在支持继承和多态性
> 灵活丰富的EJB3查询语言
> SQL支持
> 使用元数据批注代替部署描述符,减少复杂配置和提高可维护性
> 将常规 Java 类用作 EJB 并将常规业务接口用于 EJB

Spring能够实现的,EJB都能实现,但是EJB3的最大的优点比如规范化,确是Spring无法相比的。使用Ejb3可以应用于各种需求环境,无论是小型站点还是企业级分布式架构,都可以支持。灵活配置的轻量级EJB3服务器必将成为java领域的最大热点。

不错。 by Leon Kennedy

不过我用其他web服务器发现速度有点慢,有时候甚至会停顿。但在Tomcat下没有这个问题,觉得很奇怪。
JFox 3.0的一个重要特性之一就是可以以Web Application的方式部署到任意的Web应用服务器中,从而将一个Web服务器增强为一个全功能的Java EE应用服务器。
spring也是这种想法的。

---------
袋鼠蛋开源动态web服务器,拥有完全自主知识产权
www.kangaroo-egg.com

Re: 不错。 by 杨 泳

Leon Kenny,你是在袋鼠蛋下做的测试吗?能否调试一下,是什么问题?

看上去很美 by lau larry

JFox 3.0的一个重要特性之一就是可以以Web Application的方式部署到任意的Web应用服务器中,从而将一个Web服务器增强为一个全功能的Java EE应用服务器。

似乎现在的java web server都有做application server的趋势。大概没有一个application server 愿意部署一个jfox吧。希望能看到更多的产品应用。另外webconsole功能太少啊。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT