【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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

评论

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

HVEC安装与卸载

林建

HVEC DISM++

在线JSON转PHP Array工具

入门小站

工具

PageHelper原理深度剖析(集成+源码)

阿Q说代码

ThreadLocal 分页 PageHelper 8月日更 mybatis的拦截器

阿里新产!Spring+SpringBoot+SpringCloud Alibaba全系列高阶笔记

Java~~~

Java spring 架构 面试 Spring Cloud

懵逼!阿里一面就被虐了,幸获内推华为技术四面,成功拿到offer

编程susu

Java 编程 程序员 面试 计算机

NodeJs深入浅出之旅:异步I/O (上)🐋

空城机

JavaScript 大前端 Node 8月日更

百度地图开发-引入地图SDK并配置 02

Andy阿辉

android Android 小菜鸟 8月日更

ShardingSphere JDBC 分库分表 读写分离 数据加密

Java 源码 ShardingSphere

纯CSS实现beautiful按钮

执鸢者

CSS 大前端 按钮

CSS 数学函数之calc、clamp、min、max

devpoint

CSS css3 8月日更

iOS开发:Mac电脑Xcode里面添加导入真机调试包的步骤

三掌柜

8月日更 8月

手撸二叉树之二叉树的坡度

HelloWorld杰少

8月日更

网络攻防学习笔记 Day114

穿过生命散发芬芳

网络安全 8月日更

Linux之export命令

入门小站

Linux

架构实战营作业--模块一

冬瓜茶

暴力美学,拒绝平庸,Alibab开源内部神仙级“K8S核心笔记”下载

Java~~~

Java 架构 面试 微服务 k8s

智能运维系列直播间开讲啦,就在今天!

浪潮云

教你一招疯狂拿Offer!用微服务设计一个超大型分布式电商平台

Java~~~

Java 架构 面试 Spring Cloud 架构师

牛逼Git,豆瓣评分高达9.3神著“Pro Git”电子版国内首次开源

Java~~~

Java git 架构 面试 架构师

脉脉转发3W次的字节内部首发“数据结构算法”手册!惨大厂被封杀

Java~~~

Java 架构 面试 算法 架构师

架构师实战训练营|课后作业| 1

Frode

#架构实战营

面试重灾区:请说说mybatis的一级缓存和二级缓存

小鲍侃java

8月日更

不少同学想要放弃秋招了........

今晚早点睡

程序员 秋招

获取 NodeJS 程序退出码

编程三昧

node.js Node 8月日更

Alibaba史上最牛的分布式核心原理解析全彩手册开源!称霸GitHub

Java~~~

Java 架构 面试 分布式 微服务

【漏洞分析】远程命令执行漏洞总结

网络安全学海

网络安全 信息安全 网络 渗透测试 安全漏洞

架构实战营 模块一作业

💤 ZZzz💤

架构实战营

Vue进阶(六十三):如何使浏览器打开时,默认的文档模式就是标准模式

No Silver Bullet

Vue 8月日更

聊聊 Linux 登陆提示信息 motd 文件

耳东@Erdong

Linux 8月日更 motd

MySQL大版本间的区别

4ye

MySQL 后端 innodb 版本 8月日更

最小二乘法,了解一下?

华为云开发者联盟

数据 数据处理 计算 最小二乘法 数学工具

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