HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

  • 2007-06-21
  • 本文字数:2390 字

    阅读完需:约 8 分钟

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

用户可以从设置于 Google 上的项目站点下载JFox 3.0 JFox 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 中文站:感谢你接受我们的采访。

2007-06-21 02:45873

评论

发布
暂无评论
发现更多内容

Explore WiFi 7: RF module chips QCN9274 and QCN9224 technical differences

wifi6-yiyi

探索虚拟线程:原理与实现

京东科技开发者

美丽搜索,MeiliSearch

为自己带盐

meilisearch

TDengine 签约精诚瑞宝,开拓更智能的 IT 服务和管理平台

TDengine

数据库 tdengine 时序数据库

Toco x Databend:Databend Cloud 如何满足 Web3 大数据服务的严苛考验?

Databend

人工智能 | 大模型之提示词工程:少样本提示

测试人

软件测试

Claude 3.5 Sonnet发布,比GPT-4o更智能;OpenAI CTO预测1年半“博士级智能”AI将出现|AI日报

可信AI进展

#人工智能

直播分享:企业级AI应用玩转全栈开发

XIAOJUSURVEY

开源 全栈 直播 LLM

【HDC 2024】探索、交流、成长,华为云助力开发者成就星辰大海梦想

华为云开发者联盟

软件开发 华为云 华为云开发者联盟 华为开发者大会2024 企业号2024年6月PK榜

小浣熊家族 X InfoQ 写作社区有奖征文大赛获奖名单公示

InfoQ写作社区官方

热门活动

【论文速读】|利用大语言模型实现现实世界代码的翻译:一项针对翻译到Rust语言的研究

云起无垠

mac鼠标自动点击工具:RapidClick for Mac 激活版

你的猪会飞吗

Mac 软件 mac破解软件下载 Mac电脑软件

实力出圈!赛博威荣获双项殊荣,数字化能力再获认可

赛博威科技

智能化改造助力企业高质量发展

天津汇柏科技有限公司

智能化 高质量发展

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

火山引擎边缘云

CDN 边缘计算 边缘容器 CDN技术 边缘计算平台

凤凰项目(Phoenix Project)精要 - 简介

Anliven

读书笔记 团队管理 DevOps 运维 团队效能

分库分表后复杂查询的应对之道:基于DTS实时性ES宽表构建技术实践

京东科技开发者

软件测试学习笔记丨Pytest - 测试框架介绍(setup / teardown)

测试人

软件测试

Moka Ascend 2024|势在·人为,技术创新,激发企业管理内在效能

科技汇

警告!恶意域名疯狂外联,原因竟然是……

权说安全

应急响应 安全服务

玩转Spring状态机

京东科技开发者

JFox主开发者杨泳解析3.0特性和设计架构_Java_肖桦_InfoQ精选文章