我们的应用程序通常通过web服务、MQ、JDBC、专有(直接通过套接字)和其他类型的传输连接到不同类型的后端。我们已经有许多实现可以让我们从我们的应用程序连接到这些后端,虽然所有这些实现都实现了公共的java接口,但它们不共享任何其他东西。
我们已经意识到,对于所有这些特定的连接器实现,都有一些重要的代码部分是通用的,我们决定通过一个通用连接器来简化未来连接器的开发。此连接器将能够将消息格式化为后端期望的格式,并使用可用的传输机制发送它们。例如,MQ或套接字上的固定长度消息格式。
我们面临的一个难题是最适合这种连接器的技术。到目前为止,我们的连接器是实现公共java接口的基本java类。由于我们通常将应用程序托管在某个Java应用服务器中,因此Java Connector Architecture似乎是最适合该软件的技术。然而,实现符合JCA的连接器似乎相对复杂。使用标准JCA的明显好处是什么?这些好处是否证明了额外的努力是合理的?
发布于 2009-04-09 13:01:37
事实上,JCA 似乎是最适合您的技术。已经有了很好的论据,即可移植性、标准化接口、连接池和事务支持。别忘了安全措施。
使用service server,适配器可以作为WebSphere服务公开,这可以带来很多好处,如果这对您很重要。
此外,一些开发工具为开发和测试JCA连接器提供了广泛的支持。
另一个好处是(有经验的) Java管理员和Java开发人员(应该)了解该标准,因此管理和开发应该很容易简化。
但最终,你应该根据你的项目范围,你对项目的未来计划,或者在你公司的政策范围内,找到实施JCA的理由。
发布于 2009-04-12 14:15:08
简而言之:相对于其他技术,我看不出选择JCA有什么好处,我认为这是一个缺点,因为您需要Java EE容器。
长长的答案:
一段时间以来,我一直对这些Java标准持怀疑态度。我再也看不到使用全功能Java服务器的令人信服的技术理由了,因为提供的每个功能都有更好的开源实现。在迁移到“企业解决方案”或从“企业解决方案”迁移到“企业解决方案”时,我曾多次被实现不兼容问题所困扰。
JCA的想法现在正在浮出水面,我正在推动尝试apache camel或spring integration。我完全支持你在任何地方都可以使用的开源实现。而且还有很多事情正在发生。检查this list of components。诚然,也许比已经用JCA开发的更小,但每一位都是开源的,而且都在一个位置上。此外,我认为文档更简单、更完整。对集成的渴望需要一个强大的SPI,它具有大量开源的、真实的示例,以相同的方式开发,并且可以在相同的位置找到。
我讨厌这些负面的东西,但我不喜欢全功能的应用服务器。例如,我会在任何一天选择tomcat和terracota,而不是其他“企业”产品,就像我在JCA之前选择camel一样,直到对JCA的需求得到证明。我不喜欢Java委员会告诉我应该如何开发我自己的应用程序的想法,因为我不信任它们。我相信,当该软件在Java /RCP上能够像在Java环境或纯Servlet容器中一样容易地工作时,我最感兴趣。
发布于 2009-04-04 02:55:03
我刚刚为gps设备开发了一个通过专有协议进行通信的入站资源适配器。这并不是那么麻烦,尽管我的印象是开发一个出站应用程序可能需要更多的工作。JCA最糟糕的事情是缺乏文档。所有的书和文章似乎都有相同的愚蠢的例子。
我最满意的是它的可移植性。一旦您编写了适配器,您就可以将rar (资源适配器归档)插入到任何应用服务器中,从而为部署的应用程序提供与您的ra支持的eis通信的能力。或者您可以将rar捆绑到war/ear中。
https://stackoverflow.com/questions/710859
复制相似问题