使用 Jpos 而不使用 Q2

问题描述 投票:0回答:2

使用 Jpos 仅创建 IsoMsg 对象并使用通道、连接、发送和接收方法而不是部署 Q2 有什么缺点?

我在 Spring 应用程序中使用 Jpos 来处理从 pos 终端到不同交易处理器的金融交易。
我当前的设置只涉及创建一个 IsoMsg 对象,设置所需的字段,然后创建适当的通道,调用通道发送和接收方法来处理事务。
下面是我发送网络管理请求的示例:

ISOMsg m = new ISOMsg ();
  m.setMTI ("0800");
  m.set (3, "000000");
  m.set (41, "00000001");
  m.set (70, "301");
  .......................................
  .......................................
 (other parts of iso message omitted)

ISOChannel channel = new ASCIIChannel ("<processor_ip>", <processor_port>, new GenericPackager());
channel.connect();
channel.send(m);

IsoMsg response = channel.receieve();

   

然而jpos程序员指南建议使用Q2而不是上述方法,但我发现Q2部署相当复杂且配置繁重。
阅读程序员指南的 Q2 部分,快速介绍了很多复杂的组件,其名称不太容易理解,例如通道适配器、参与者、空间、过滤器、查询主机等。

我更喜欢创建 IsoMsg 对象、通过通道打开连接、发送 IsoMsg 并接收响应的简单实现。

我的问题是,使用比 Q2 更简单的实现有哪些缺点,Q2 部署比仅通过普通通道进行通信有哪些优势

java spring kotlin point-of-sale jpos
2个回答
1
投票

第一个缺点是处理时间。通过

ChannelAdaptor
中的
Q2
,您可以始终连接通道,因此您无需建立 TCP/IP 连接的开销,这会在每个请求中执行一些额外的步骤。

此外,如果没有

Q2
和事务管理器,您必须实现所有超时逻辑。例如,在您的代码片段中,如果另一端没有响应,您不会处理超时。您的代码将被冻结,直到通过其他方式重置连接。

您的代码很快就会变得足够复杂,试图克服 jPOS 团队收集的数十年 ISO8583 事务处理实施经验中已经解决的挑战。


0
投票

我建议您尝试此处描述的网关教程,您会发现使用 Q2 一切都变得更加容易。

http://jpos.org/tutorials

顺便说一句,您只需几行代码就可以从 SB 应用程序运行 Q2,看看这个要点:

https://gist.github.com/ar/86a4a24384d029c35f784079007393b0#file-q2boot-java

© www.soinside.com 2019 - 2024. All rights reserved.