2011-08-04 72 views
1

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

我需要的功能是

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

    • 我不使用连接池。
    • 我不使用公共客户端接口

什么是从JCA移动到OSGI模块的利弊?

回答

1

移动的缺点是:

  • JCA是一个Java EE标准 - 你可以在任何Java EE容器使用正确编写连接器。 Osgi也是一个标准,但对于企业应用程序及其框架来说还没有。所有列出的“功能”(我称之为“需求”)都与Java EE紧密结合:EJB3,CDI,Servlet,TXN管理和安全性均由各种Java EE子系统完成或提供。您将必须深入深入到Java EE规格,以提供适当的胶水代码。

归结为:很多容易出错的工作,没有很好的理由。所以我的问题是:什么是专业移动(在你的情况当然)?

+0

JEE对基于RDBMS的数据存储具有非常好的支持。整合no-sql或对象数据库是一个涉及的过程。即编写JCA适配器,添加ra.xml,配置数据源。使用OSGI我期望整合过程会更简单。只需在类路径中放入osgi包,并开始使用tx-mgt,声明式安全性和JEE的其他好用功能。 API可以像@inject NOSQLPersistanceManager一样简单 –

+1

当您需要像XA事务这样的高级JCA合同时,难以完成的部分 - 编写JCA代码与OSGI相当。 ra.xml在努力方面无关紧要。 OS的_configuration_也是OSGI所必需的 - 或者你会将连接参数硬编码为OSGI-Bundle?对于OSGI来说:使用JEE/JCA可以免费获得大量的基础设施 - 对于OSGI,您必须重新创建一些轮子才能与之相媲美 - 特别是在您的情况下,因为您还想访问EJB3 .. 。 –

相关问题