我读到 JCA 用于遗留 EIS 集成。该规范是否面向供应商而不是应用程序开发人员?我很想知道开发人员编写 JCA 适配器来解决他们的技术或业务问题的用例。
3 回答
我已经为各种终端系统(FTP、SFTP、文件、金融系统)编写了 JCA 连接器。
这主要是在投资银行业,我需要将交易和/或静态数据发送到银行内外的各种系统。从 RESTFul JSON/XML Web 服务到对大型机的套接字调用,任何事物都可能涉及到业务事务。
因此,JCA 非常方便,因为它提供了一个统一的编程模型,并且可以由应用程序服务器管理,从而帮助您处理事务性、池化等。
想要包含非常昂贵的交易的 FTP 文件到达(交易保证)?JCA 是一种可以用来解决这个问题的技术。
<blatant plug> 我要补充一点,我目前正在从事一个名为Ikasan的开源项目,该项目具有免费的 JCA 连接器</blatant plug>,其他几个项目(例如 Mule 和 Spring Integration)也是如此。因此,普通开发人员通常不必编写自己的代码。
JCA 代表 J2EE 连接器体系结构,它提供了将运行在 J2EE 应用服务器上的组件与外部世界、许多现有异构系统连接起来的方法。
在 J2EE 中,您可以编写在 web 容器中运行的表示层代码,在 EJB 容器中编写企业 bean,但是您的应用程序不是真空的,您需要访问其他系统,并且您的应用程序也需要被其他系统访问。JCA 只是提供了一个标准的 API 来访问外部系统,或者被外部系统访问。
如果您是 EIS 系统供应商,那没关系,因为您希望您的系统在 J2EE 服务器中被访问。
如果您是应用程序开发人员,您可能还需要 JCA,因为您的应用程序中可能需要在没有开箱即用的 JCA 资源适配器的情况下访问其他系统,只需为自己编写资源适配器即可。
JCA 是连接、线程、事务、安全和生命周期合约的集合。通过遵守这些合同,您可以将大部分连接管理、线程管理、事务管理、安全性、打包、部署、激活、停用等卸载到容器(符合 JCA 的应用程序服务器)。Jca 还提供了一个可选的 cci(通用客户端接口),允许应用程序访问适配器。
现在是否编写符合 jca 的连接器实际上取决于您的应用程序的要求。
人们通常编写 jca 适配器来访问文件系统、jms、数据库、ldap、电子邮件、大型机、打包应用程序以及几乎任何其他 EIS。确定是否需要编写一个确实是开发人员的特权,但编写一个本质上并非易事。