JAVA学习项目

 

                                                                                                        图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入队列,如果满则等待,直到消费线程消费。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值