JCA有什么好处?

时间:2009-04-02 17:53:07

标签: java java-ee backend connector jca

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

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

我们面临的困境之一是这种连接器最合适的技术。到目前为止,我们的连接器是实现常见Java接口的基本java类。由于我们通常在某些Java EE应用程序服务器中托管我们的应用程序,因此Java Connector Architecture似乎是最适合此软件的技术。但是,实现符合JCA标准的连接器似乎相对复杂。使用标准有什么明显的好处 - JCA并且有益于额外的努力吗?

5 个答案:

答案 0 :(得分:7)

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

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

此外,一些开发工具也广泛支持开发和测试JCA连接器。

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

但最终你必须根据项目的范围,未来的项目计划或者公司的政策,找到实施JCA的理由。

答案 1 :(得分:5)

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

答案很长:

我一直对这些Java EE标准持怀疑态度。我没有看到使用全功能Java EE服务器的令人信服的技术理由,因为提供的每个功能都有更好的开源实现。移动到“企业解决方案”时,我已经被实施不兼容性多次咬过。

JCA的想法现在正浮现在这里,我正在努力尝试apache camelspring integration。我全都是开源实现,你可以在任何地方使用。还有很多事情要发生。检查this list of components。当然,也许比JCA已经开发的更小,但每一点都是开源的,而且都在一个地方。此外,我相信文档更简单,更完整。对集成的渴望需要一个强大的SPI,它有大量的开源,真实的实例,以相同的方式开发,并且可以在同一个地方找到。

我讨厌消极情绪,但我不喜欢功能齐全的应用服务器。例如,我会选择tomcat和terracota 任何一天而不是其他“企业”产品,就像我在JCA之前使用camel一样,直到JCA的需求得到证实。我不喜欢Java委员会的想法,告诉我应该如何开发自己的应用程序,因为我不相信它们。我相信,当Java SE / RCP上的软件可以像在Java EE环境或纯Servlet容器中一样轻松工作时,这符合我的最佳利益。

答案 2 :(得分:4)

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

我最满意的是便携性。编写适配器后,您可以将rar(资源适配器存档)插入任何应用程序服务器,以便为已部署的应用程序提供与ra支持的eis通信的能力。或者你可以将rar捆绑到战争/耳中。

答案 3 :(得分:1)

这些优势主要针对那些希望将连接器销售到专有后端系统以供任何应用服务器使用的供应商,以便希望能够连接连接器而不必担心它是否仅适用于WebLogic而不是Websphere的客户,确实,这是Java EE的目标。

请注意,JBoss决定在JCA中添加几个内容,例如JDBC连接通过JCA。

您未来的客户端代码将具有标准化界面,一些池化和事务支持等,但重要的是要注意更大的图景;也就是说,这些好处不仅仅针对您和您的一个项目,而是针对由许多应用服务器,许多后端系统,许多连接器等组成的软件生态系统。

答案 4 :(得分:0)

对于带有绑定组件的JBI容器来说,它非常有用。 JCA与JBI的Discussion