JPos学习

基于JPos的消息交换系统


消息交换系统需求解读

消息交换系统不不是一个具体的业务系统,而是业务系统的运转的基础框架;
他的运转是体现在报文交换上的;
要定义一个可被不同业务系统使用的报文规范;

报文格式

报文内容参考ISO8583(87版),传输使用XML形式。为不和标准冲突,目前吧自定义域放在87版的自定义域里。
具体定义可参考schema.xls

系统运转机制

基于JPos的消息交换系统是一个自管理的服务框架。
JPos作为消息平台十分灵活,为统一流程我们将设计一套网银专用的消息交换机制。
系统将建立3个层次,接入层、业务层、收单链路层;
每个层都是一或多个平等的组件,相互间可以通过Socket调用;

  • 一个标准的组件由下列几个模块组成



  • 服务器的工作机制
    作为一个服务程序它在启动后将监控一个部署目录,不断扫描并发现所有的XML配置文件。如果发现有新增或改动,就会用XML生成组件并加载到注册机里。
  • 消息交换流程
    1. 客户端把消息发送到组件服务
    2. 服务监听将接收到的消息转给入口通道
    3. 入口通道顺序执行被配置在这里的处理器
    4. 经过入口通道后消息被转给路由器
    5. 路由器根据配置域的为消息匹配一个出口通道
    6. 消息被转给出口通道
    7. 出口通道顺序执行配置在这里的处理器
    8. 消息被发送出去


配置文件

?
<!-- 服务监听 -->
< server class = "org.jpos.q2.iso.QServer" logger = "Q2" name = "module" >
     < attr name = "port" type = "java.lang.Integer" >9031</ attr >
 
     <!-- 入口通道 -->
     < channel class = "org.jpos.iso.channel.XMLChannel" logger = "Q2"
         packager = "org.jpos.iso.packager.XMLPackager" >
         <!-- 入口通道内的处理器,如果不需要要也可以不配置 -->
         <!-- 方向incoming:匹配消息进入,outgoing:匹配消息返回-->
         < filter class = "com.example.jpos.client.TestFilter" direction = "incoming" >
             < property name = "fields" value = "0 2 3" />
         </ filter >
     </ channel >
 
     <!-- 路由器 -->
     <!-- 这里是根据32域匹配出口通道 -->
     < request-listener class = "org.jpos.apps.qsp.Q2Router" logger = "Q2" >
         < router switch = "${32}==01" type = "mux" bounce = "true" destination = "out1" timeout = "30000" />
         < router switch = "${32}==02" type = "mux" bounce = "true" destination = "out2" timeout = "30000" />
     </ request-listener >
</ server>
<!-- 出口通道需要用mux链接 -->
< mux class = "org.jpos.q2.iso.QMUX" logger = "Q2" name = "out1" >
     < in >receive</ in >
     < out >send</ out >
</ mux >
< channel-adaptor name = "channeladaptor"
     class = "org.jpos.q2.iso.ChannelAdaptor" logger = "Q2" >
     <!-- 出口通道 -->
     < channel name = "channel" class = "org.jpos.iso.channel.XMLChannel" logger = "Q2" packager = "org.jpos.iso.packager.XMLPackager" >
         < property name = "host" value = "localhost" />
         < property name = "port" value = "9051" />
     </ channel >
     < in >send</ in >
     < out >receive</ out >
     < reconnect-delay >1000</ reconnect-delay >
</ channel-adaptor >

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值