JPos学习
基于JPos的消息交换系统
消息交换系统需求解读
消息交换系统不不是一个具体的业务系统,而是业务系统的运转的基础框架;
他的运转是体现在报文交换上的;
要定义一个可被不同业务系统使用的报文规范;
报文格式
报文内容参考ISO8583(87版),传输使用XML形式。为不和标准冲突,目前吧自定义域放在87版的自定义域里。
具体定义可参考schema.xls。
系统运转机制
基于JPos的消息交换系统是一个自管理的服务框架。
JPos作为消息平台十分灵活,为统一流程我们将设计一套网银专用的消息交换机制。
系统将建立3个层次,接入层、业务层、收单链路层;
每个层都是一或多个平等的组件,相互间可以通过Socket调用;
一个标准的组件由下列几个模块组成
- 服务器的工作机制
作为一个服务程序它在启动后将监控一个部署目录,不断扫描并发现所有的XML配置文件。如果发现有新增或改动,就会用XML生成组件并加载到注册机里。 - 消息交换流程
- 客户端把消息发送到组件服务
- 服务监听将接收到的消息转给入口通道
- 入口通道顺序执行被配置在这里的处理器
- 经过入口通道后消息被转给路由器
- 路由器根据配置域的为消息匹配一个出口通道
- 消息被转给出口通道
- 出口通道顺序执行配置在这里的处理器
- 消息被发送出去
配置文件
<!-- 服务监听 --> < 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 > |
JPos学习的更多相关文章
- Atitit.收银系统模块架构attilax 总结
Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2. ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Unity3d学习 制作地形
这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
随机推荐
- Properties没有被注意的地方
源起: 今天阅读源码时发现一个地方不理解: 为什么以下代码第10行 get() 之后value为null时还去 getProperty() 呢? org.springframework.util.Co ...
- Java开发笔记(九十五)NIO配套的文件工具Files
NIO不但引进了高效的文件通道,而且新增了更加好用的文件工具家族,包括路径组工具Paths.路径工具Path.文件组工具Files.先看路径组工具Paths,该工具提供了静态方法get,输入某个文件的 ...
- 小程序setData,视图层没有跟新
如果你完全符合微信介绍的setData使用说明的情况下,发现视图层没有更新,你可以看看我的这种情况. 使用setData的时候,修改的是data中一个对象的值,然后这个对象里面第一层不能含有 numb ...
- MSComDlg.CommonDialog服务器不能创建对象错误的解决
作者:朱金灿 来源:http://blog.csdn.net/clever101 在JavaScript中弹出打开文件对话框,代码如下: var fileOpenDlg = new ActiveXOb ...
- Oracle | Java日期处理
public class Test{ public static void main (String args []){ j ...
- CATransaction 知识
CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务. 区分隐式动画和隐式事务:隐式动画通过隐式事务实现动画 . 区分显式动画和显式事务:显式动画有多种 ...
- 原创:Nginx反向代理实战部署
均衡负载服务器 10.0.0.9 [root@web03 conf]# vim nginx.conf worker_processes 1; events { worker_connections ...
- 三星系列NXP系列核心板设计研发-迅为嵌入式ARM方案提供商
多种核心板平台,从硬件原型设计.layout.硬件驱动,操作系统移植.中间到上层应用等方面. 三星系列核心板: 1. SCP-4412核心板 三星Exynos4412 四核 Cortex-A9 主频为 ...
- react开启一个项目 webpack版本出错
npx create-react-app my-app cd my-app npm start 在命令行里执行以上语句就可(前两天刚刚发现,最新版的react对webpack的版本要了新要求,大概是他 ...
- Linux-RedHat7.2 安装nginx托管.net core2.0
1.安装依赖包 yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel 2.下载安装包 wge ...