记者就Kodo源代码的开放、这对EJB 3.0开发人员的意义以及其它框架(如Spring)如何利用它等问题采访了Neelan。
关于开源
我想先问一个重要问题:Kodo打算加入开源行列吗?
Neelan Choksi:是的。这个项目叫做Open JPA。Open JPA将包含Kodo代码库中将被开源化的重要部分,具体来说就是Kodo核心以及EJB 3 Persistence规范。一旦EJB 3被批准了,Open JPA就将成为Apache软件许可下的EJB 3 Persistence标准的开源实现。
Kodo是一个广受欢迎的软件。为什么你们会决定将其开源化呢?
Neelan Choksi:多方面的原因促生了Open JPA项目的产生。我想首要的原因就是使大部分开发人员能够有一个优秀的工具。我们认为,大多数开发人员都不得不满足于“合格即可”的工具,而我们希望让他们有更好的选择。
您提到了对内核以及EJB 3组件的开源化。你们还准备对其他组件进行开源化吗?
Neelan Choksi:是Kodo内核引擎与EJB 3 Persistence API。我们还将转变针对Workshop团队的GUI工具(Kodo Workbench、Kodo Query Editor、Kodo Management Console以及Kodo Profiler),以便让Workshop Studio产品对客户更有吸引力。
该产品何时会被开源化?
Neelan Choksi:在今年上半年就可看到Open JPA可用了。我们还有许多工作要做,例如,为Open JPA找一个容身之处,使要被开源化的代码获得合法的批准,等等,但是我们既然承诺要将其开源化就会做到。此外,在接下来的几个月中,我们将与其他团体的领导联系,以获取他们对Open JPA的支持。接下来的一个很重要的工作就是扩展Kodo和Open JPA的社区。
混合开发以及与Open JPA的集成
这与BEA的混合开发模式(在一个解决方案中部分使用开源产品,部分使用不开放源码的商业产品)有什么关系?
Neelan Choksi:这个开源化决策正是迎合BEA的混合开发和部署模式而生的。为什么要从不开放源码的BEA Kodo产品的代码库中创建Open JPA?BEA放弃利润就是因为考虑到混合模式。
BEA将围绕Open JPA建立一个社区,而这个社区包含的将不只是Weblogic Server的用户。我们欢迎所有从WebSphere和JBoss等商业产品到Tomcat和Spring等开源框架的用户。这很容易做到,因为Open JPA的核心是一个开放的行业标准。
这对开发人员来说有何意义?在它被开源化之后,开发人员能够立刻使用它吗?比如说,如何将它与应用服务器相集成?
Neelan Choksi:这意味着开发人员将有一个免费的、经过Apache认证的EJB 3 Persistence规范实现。同样不可忽视的是,客户将可以获得BEA长期以来为客户提供的品牌支持服务,如果需要的话,还可以通过BEA Workshop Studio产品获得工具支持。
我们非常欢迎开发人员在Open JPA可用之后立即试用它,因为EJB 3规范还没有最终确定。EJB 3规范团队需要来自社区的更多反馈,以便确保他们实现了使企业Java更易于使用的承诺。
能否在没有完整的应用服务器的情况下运行它?
Neelan Choksi:可以。正如EJB 3规范的规定,Open JPA在应用服务器中或应用服务器之外都可以运行。
我了解到JDO 2.0和EJB 3的持久性部分有一些重叠部分。这对你们的开源化过程有什么影响?
Neelan Choksi:我们将开放与EJB 3 Persistence预览版相关的代码。我们不打算开放与JDO和JDO 2相关的代码,客户仍然可以从BEA Systems购买获得。
在Dev2Dev上有很多关于Spring Framework的话题。Spring提供了一些相当不错的与持久性引擎交互的机制。你们是否有将其与Spring进行集成的计划,还是它可以开箱即用地运行?
Neelan Choksi:目前,Kodo中的Spring Sample包括一个将Spring Framework与Kodo JDO一起使用的最佳实践示例,以及由Kodo和Spring开发人员协同开发的新增Spring JDO绑定。虽然Spring和Open JPA可以开箱即用地一起运行,但是可以预见,随着时间的推移,必然会出现与Spring Framework的更紧密集成以及更多的最佳实践。