• 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>

  • 相关阅读:
    springEL单引号默认值
    vscode支持c99标准
    Error loading class 'solr.HMMChineseTokenizerFactory'
    spring security通过UserDetailsService方式当找不到用户时兼容i18n方法
    springboot普通类中获取i18对应的值
    docker-compose安装后执行报错
    springboot日志
    mysql登录报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
    springboot统一ajax返回数据格式,并且jquery ajax success函数修改
    spring security jquery ajax重定向问题解决
  • 原文地址:https://www.cnblogs.com/jpfss/p/9066394.html
Copyright © 2020-2023  润新知