图2 PMS系统架构图

处理流程为:接收pos上送的报文数据,检查,判断是否是IC卡交易,如果不是就直接组织64域报文,发送到pos,否则就走UL流程,将报文转化成128域数据发送给UL主机,接收主机返回数据,组织64域报文下发到pos机。

                                      

                                                                 3  pos 通信进程处理流程图

                                                                   

                                                              4 主机通信流程 

                                   

                                                                  图 5  8583 打包解包类静态UML图 

                                              图6 package com.pax.pms.pospacker UML 图

                                     

                                                图7  PosDataProcess处理的处理流程 

                                                     

                                                                          8  HostDataProcess的处理流程

                                                 

数据存储 package com.pax.pms.database

DbManager

功能:数据库管理相关操作,调用JDBC API与数据库建立连接、操作数据库的语句并返回处理结果。

对外接口:

/**

 * 获取DbManager对象

 * @return DbManager object

 **/

public static DbManager getInstance();

 

/**

 * 取得一个Connection

 **/

public static Connection getConnection();

/**

     * 释放Connection

     * @param con

 */

public static void freeConnection(Connection con);

依赖接口:无

 AidBean

功能:提供PMS项目中aid相关参数的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无

​​​​​​​ CapkBean

功能:提供PMS项目中公钥信息需要存储的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无

​​​​​​​ ParamBean

功能:提供PMS项目中UL和Pos通信需要存储的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无

​​​​​​​CardBean

功能:提供PMS项目中IC卡信息需要存储的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无

​​​​​​​RecordBean

功能:提供PMS项目中交易记录需要存储的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无

 

​​​​​​​TerminalBean

功能:提供PMS项目中终端信息需要存储的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无​​​​​​​

 TransBean

功能:提供PMS项目中传输数据需要存储的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无

​​​​​​​ UserBean

功能:提供PMS项目中用户登入信息需要存储的数据结构提供数据库相关操作

对外接口:各种参数的set,get方法提供update,insert,query等操作

依赖接口:无

界面展示

UI界面采用Web网页的方式进行展示,采用轻量Servlet容器(Tomcat)和开源pushlet来实现。

Tomcat作为Servlet容器,负责处理客户请求,把请求传送给Servlet并把结果返回给客户。Servlet容器与Servlet接口是由Java Servlet API定义。

                                                        图 9  一个页面请求流程

 

采用Pushlet 来展示交易记录信息,当有交易信息时就立即展示在web界面。Pushlet 是pushlet是comet的一个实现框架,在Servlet机制下,数据从server端的java对象直接推送(push)到html页面。Pushlet中的EventPullSource类实现了EventSource及runnable这两个接口,通过继承EventPullSource类,重写getSleepTime和 pullEvent方法可实现交易记录信息的推送,当产生了新的交易,即产生了一个event,在EventPullSource类的run()接口中调用 Dispatcher.getInstance().multicast(event)实现消息推送,其工作原理如下所示;

                                                图 10  Pushlet 工作原理

大致流程:

1、browser发送join命令到server,server产生唯一的ID给client端,用于标识这次会话的唯一性,Pushlet是用java.rmi.server.UID产生的唯一的标志会话的标志,此时server会把sessionID作为key,session对象作为value,存放到HashMap里面,然后通过response.getWriter().println()回调给browser

2、browser拿到sessionID,并发送listen命令,listen命令,有subject,提交给server,server首先验证Session HashMap里面有没有这个sessionID,验证通过后,回调给客户端listen_ack消息,同时开始从eventQueue取出数据,并update给客户端,这里的queue符合生产消费模式,eventsource是生产线程,它负责把数据enqueue入队列,如果满则等待,直到消费线程消费。

 

 

Logo

开源、云原生的融合云平台

更多推荐