写点什么

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:45946

评论

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

软件测试 | Java接口的实际应用—制定标准

测吧(北京)科技有限公司

测试

在langchain中使用自定义example selector

程序那些事

程序那些事 大语言模型 langchain

AI概念引爆ChinaJoy,聆心智能助力数字娱乐产业新应用

硬科技星球

使用TransBigData快速高效地处理、分析、挖掘出租车GPS数据

TiAmo

数据可视化 交互式可视化工具 TransBigData

实时入库不用愁,HStore帮分忧

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

利用uplugin对比Webpack和Rollup插件系统

OpenTiny社区

前端

以数驱动 | 智能分析云助力流程制造行业绿色高效运营

用友BIP

智能分析

C4D软件都应用在影视后期什么领域?

Finovy Cloud

速度提升10倍,腾讯基于Iceberg的数据治理与优化实践

腾讯云大数据

数据湖

搭载KaihongOS的工业平板、机器人、无人机等产品通过OpenHarmony3.2 Release版本兼容性测评

Geek_2d6073

5 小时玩转阿里云 Flink 实时湖仓,速速报名!

Apache Flink

大数据 flink 实时计算

10分钟了解Flink Watermark水印

程序员半支烟

Java 大数据 flink 程序员

融云荣登36氪WISE2023「全球化最佳基础设施」榜单

融云 RongCloud

全球化 通信 运营 融云 wise

解锁Spring组件扫描的新视角

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

仅使用 CSS 创建打字机动画效果

互联网工科生

CSS JavaScript 前端

关于ANCE OS兼容性评估 & Linux智能全栈调优KeenTune介绍 | 第 93-94 期

OpenAnolis小助手

QA sig 龙蜥大讲堂 KeenTune ANCE

一条SQL如何被MySQL架构中的各个组件操作执行的?

砖业洋__

MySQL MySQL架构 MySQL优化器 MySQL执行器 MySQL存储引擎

杭钢集团:以一体化管控赋能为引领提升五大能力

用友BIP

数智化转型

直播源码硬核技术分析:主播PK功能

山东布谷网络科技

直播源码

Hybrid App 性能优化的一些技术探讨

Onegun

性能 Hybrid

常见的CAE软件有哪些?

思茂信息

仿真软件 仿真技术 abaqus有限元仿真 CAE软件 结构分析软件

软件测试 | Java抽象类的实际应用——模版设计

测吧(北京)科技有限公司

测试

Downie 4 for Mac(视频下载软件) 4.6.24中文直装版

mac

视频下载工具 苹果mac Windows软件 Downie

DFS算法解析

数新网络官方账号

算法 DFS 深度优先搜索

什么是数字化管理,对企业价值几何?

优秀

数字化转型 数字经济 数字化管理

《这就是ChatGPT》读后感

叶轩子

人工智能 深度学习 ChatGPT

堡垒机-企业最好的家人,信息安全的守门人

行云管家

互联网 网络安全 信息安全 堡垒机

软件测试 | 设计模式——代理设计

测吧(北京)科技有限公司

测试

啾啾火箭队 宇宙 ChuChu Rocket Universe for Mac(益智解谜游戏)v1.3.0中文版

mac

mac游戏 苹果mac ChuChu Rocket Universe 益智游戏

亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证,联合方案带来约20%性能提升

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 8 月 PK 榜

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