【问题标题】:Migrating from JCA to OSGI Is it a good idea?从 JCA 迁移到 OSGI 是个好主意吗?
【发布时间】:2011-08-04 07:48:35
【问题描述】:

我有一个用于连接 EIS 的 JCA 适配器。 用 OSGI 模块替换适配器是个好主意吗?

我需要的功能是

  1. 从 ejb3 访问 OSGI 模块
  2. 从 CDI bean 访问 OSGI 模块
  3. 从 servlet 访问 OSGI 模块
  4. 支持声明式事务管理
  5. 将安全上下文从 ejb 传播到 osgi 模块

    • 我不使用连接池。
    • 我不使用通用客户端界面

从 JCA 迁移到 OSGI 模块的缺点是什么?

【问题讨论】:

    标签: java jakarta-ee osgi jboss7.x jca


    【解决方案1】:

    搬家的坏处是:

    • JCA 是 Java EE 标准 - 您可以在任何 Java EE 容器中使用正确编写的连接器。 Osgi 也是企业应用程序及其框架的标准,但(还不是)。
    • 您列出的所有“特性”(我称之为“要求”)都与 Java EE 紧密耦合:EJB3、CDI、Servlet、TXN 管理和安全性都由各种 Java EE 子系统完成或提供。您必须深入了解 Java EE 规范以提供适当的胶水代码。

    这归结为:很多容易出错的工作没有充分的理由。所以我的问题是:移动的优点是什么(当然是你的情况)?

    【讨论】:

    • JEE 对基于 RDBMS 的数据存储有很好的支持。集成 no-sql 或对象数据库是一个复杂的过程。即,编写一个 JCA 适配器,添加一个 ra.xml ,配置一个数据源。使用 OSGI,我希望集成过程会简单得多。只需将 osgi 包放在类路径中,然后开始使用 tx-mgt、声明性安全性和 JEE 的其他不错的特性。 API 可以像 @inject NOSQLPersistanceManager 一样简单
    • 当您需要像 XA 事务这样的高级 JCA 合约时,困难的部分 - 编写 JCA 代码与 OSGI 相当。 ra.xml 在工作量方面并不重要。 OSGI 也需要DS 的配置 - 或者您会将连接参数硬编码到您的OSGI-Bundle 中吗? OSGI 的缺点:使用 JEE/JCA,您可以免费获得很多基础设施 - 使用 OSGI,您将不得不重新发明一些轮子才能与之相提并论 - 特别是在您的情况下,因为您仍然希望访问 EJB3,.. .
    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2018-10-28
    • 2011-02-05
    相关资源
    最近更新 更多