14

我们的应用程序经常通过 Web 服务、MQ、JDBC、专有(直接通过套接字)和其他类型的传输连接到不同类型的后端。我们已经有许多实现可以让我们从应用程序连接到这些后端,虽然所有这些实现都实现了通用的 java 接口,但它们不共享任何其他内容。

我们已经意识到,对于所有这些特定的连接器实现来说,存在一些通用的代码部分,我们决定通过一个通用连接器来简化未来连接器的开发。此连接器将能够将消息格式化为后端预期的格式,并使用可用的传输机制发送它们。例如,通过 MQ 或通过套接字的固定长度消息格式。

我们面临的困境之一是最适合这种连接器的技术。到目前为止,我们的连接器是实现通用 java 接口的基本 java 类。由于我们通常将我们的应用程序托管在一些 Java EE 应用程序服务器中,因此 Java 连接器架构似乎是最适合该软件的技术。但是,实现符合 JCA 的连接器似乎相对复杂。采用标准 - JCA 有哪些明显的好处,这些好处是否证明了额外努力的合理性?

4

5 回答 5

7

事实上,JCA似乎是最适合您的技术。已经提出了很好的论据,即可移植性、标准化接口、连接池和事务支持。不要忘记安全。

使用 WebSphere Process 服务器,适配器可以作为 SCA 服务公开,如果这对您很重要,它会带来很多好处。

此外,一些开发工具为开发和测试 JCA 连接器提供了广泛的支持。

另一个好处是(经验丰富的)Java EE 管理员和 Java EE 开发人员(应该)了解标准,因此管理和开发应该很容易简化。

但最终你应该根据你的项目范围、你对项目的未来计划或者可能在你公司的政策范围内找到实施 JCA 的理由。

于 2009-04-09T13:01:36.950 回答
5

简短回答:我认为选择 JCA 与其他技术相比没有任何好处,我认为这是一个缺点,因为您需要 Java EE 容器。

长答案:

一段时间以来,我一直对这些 Java EE 标准持怀疑态度。我不再认为使用全功能 Java EE 服务器有令人信服的技术理由,因为提供的每个功能都有更好的开源实现。在进出“企业解决方案”时,我曾多次被实施不兼容所困扰。

JCA 的想法现在在这里浮出水面,我正在努力尝试apache camelspring 集成。我完全支持你可以在任何地方使用的开源实现。并且发生了很多事情。检查此组件列表。诚然,可能比已经使用 JCA 开发的要小,但每一点都是开源的,而且都在一个位置。另外,我相信文档更简单、更完整。集成的需求需要一个强大的 SPI,其中包含大量开源、真实的示例,以相同的方式开发,并且可以在同一个地方找到。

I am hating the negativity, but I don't like full featured application servers. For instance, I would go for tomcat and terracota any day over other "enterprisey" products, just as I would go with camel before JCA, until the need for JCA gets proven. I don't like the idea of the Java Committee to tell how I should develop my own applications because I don't trust them. I believe it is in my best interest when the piece of software can work just as easily on Java SE/RCP as in a Java EE environments or in a pure Servlet container.

于 2009-04-12T14:15:07.673 回答
4

我刚刚为通过专有协议进行通信的 gps 设备开发了一个入站资源适配器。这并没有那么麻烦,尽管我的印象是开发出站可能需要更多的工作。JCA 最糟糕的事情是缺乏文档。所有书籍和文章似乎都有相同的愚蠢示例。

我最满意的是便携性。编写完适配器后,您可以将 rar(资源适配器存档)插入任何应用程序服务器,以使部署的应用程序能够与您的 ra 支持的 eis 进行通信。或者您可以将 rar 捆绑到 war/ear 中。

于 2009-04-04T02:55:03.360 回答
1

这些好处主要适用于希望将连接器出售给专有后端系统以与任何应用程序服务器一起使用的供应商,以及希望能够插入连接器而不担心它是否仅适用于 WebLogic 而不是 Websphere 等的客户。确实这是 Java EE 的总体目标。

请注意,JBoss 已决定将几件事放入 JCA,例如 JDBC 连接通过 JCA。

您未来的客户端代码将具有标准化的接口、一些池和事务支持等,但重要的是要着眼大局;也就是说,好处不是专门针对您和您的一个项目,而是针对由许多应用程序服务器、许多后端系统、许多连接器等组成的软件生态系统。

于 2009-04-07T20:06:35.993 回答
0

听起来对带有绑定组件 的JBI容器很有用。JCA 与 JBI 的讨论

于 2009-04-02T21:17:20.717 回答