前置机详细设计方案.docx
《前置机详细设计方案.docx》由会员分享,可在线阅读,更多相关《前置机详细设计方案.docx(26页珍藏版)》请在冰豆网上搜索。
![前置机详细设计方案.docx](https://file1.bdocx.com/fileroot1/2023-2/21/9be8dcd4-ef61-4440-97c2-d96325ead6e5/9be8dcd4-ef61-4440-97c2-d96325ead6e51.gif)
前置机详细设计方案
前置机系统详细设计方案
1.系统概述
前置机系统的主要功能是预处理、存储和转发来自金融端末设备(POS.),或者服务网点的交易请求,从而完成整个电子支付交易.
整个电子交易系统是一个三级的客户/服务器(CLIENT/SERVER)模式。
前置机处于整个系统的第二级,起到了承上启下的重要作用,它既是终端设备的SERVER,又是后台主机的CLIENT.
前置机具有复杂多变的接口,要求有较好的通用性、可靠性和高效率。
2.系统结构
整个前置机系统可以分为交易接口、交易处理核心、系统管理、监控系统四大部分。
结构框图如下:
3.处理模式和交易类型
处理模式
前置机与客户端之间,通过两次通讯完成一次交易,以减少通讯量。
首先由客户端发起请求,将相关数据(交易码,交易数据,MAC等)送往前置机,前置机预处理完毕,将结果返回客户.
交易类型
前置机处理的交易类型按终端设备可以分为:
银行网点的终端设备:
签到、签退、圈存、圈提、查询、转帐、下传黑名单和改密。
指定医疗机构的前端:
签到、签退、查询、转帐、批上送、下传黑名单和改密。
商户终端设备:
签到、签退、下传黑名单、查询、转帐、批上送和改密。
圈存机:
签到、签退、圈存、圈提、下传黑名单和查询。
业务流程
脱机业务流程
联机业务流程
4.交易接口
目前系统与客户端的交易接口支持TCP/IP(包括中间件模式)和串口两种模式。
TCP/IP方式
通过对套接字socket进行操作,或中间件模式完成数据的传输。
适用于客户端各种主机与前置机之间不同操作系统的通讯。
TCP/IP方式如下图所示:
Service_1Service_2。
..。
Service_N
Tcp_Server
TCP/IP中间件通讯方式
守护进程Tcp_Server通过fork()调用,复制自己来处理不同的请求,以达到并行处理的目的.考虑到fork()的调用在交易高峰期过多子进程的生成会导致系统在进程的切换和系统调用上占用过多资源,在监控模块中采取一定的措施控制其子进程的个数,这将在监控模块中详细讨论.
中间件模式采用固定的通讯格式完成数据的传递.
串口方式
主要针对销售终端、指定医疗机构(POS)上送的交易请求,对通讯端口进行读/写操作,完成交易。
销售终端一般是通过网控器(NAC)与主机的端口进行联结,它们之间的数据格式遵循ISO8583的标准。
这对磁卡和IC卡同样适用。
这种方式用于处理销售终端、指定医疗机构(POS)经网控器(NAC) 上送的交易.
串口方式如下图所示:
接收进程负责从端口读取上送的信息,发送进程将处理结果写到通讯端口,它们与守护进程之间通过消息队列进行数据交换。
网控器可以有多个上行与下行板,为达到并行处理的目的,对应于每个通信端口,各启动一对相互独立的读/写进程对其操作,提高了系统效率。
这对串口读/写守护进程和交易处理进程之间通过消息队列进
5.交易处理核心
IC卡的交易是一种脱机交易。
营业点、指定医疗机构将这些脱机交易批量地上送到前置机,经交易处理核心的预处理后,转发给后台主机;由主机修改相应的帐户资料,并进行汇总,统计和清算。
所以,交易处理子系统是整个IC卡系统的关键,它包含交易处理守护进程,安全认证,交易日志的管理和交易转发模块,与其它的相关子系统的关系如下:
交易处理守护进程与接口守护进程一般是通过消息队列进行通讯,或者两者融为一体。
前置机系统的主要任务是预处理和转发批量的脱机交易数据,在设计交易处理子系统时,必须具有较高的处理速度和能力。
以下的系统设计过程中,都以实现这个目标为前提。
交易处理模块
由于存在两种不同的通信接口方式,相应地,在前置机系统的交易处理模块分别采取了消息驱动与Fork()子进程的形式处理来自这两种接口的交易.
消息驱动
这种方式将传统意义上的应用(服务进程)根据不同的功能,相互独立起来,各个子服务进程(Services)之间读取消息队列中某一特定类型的交易消息,与不同的请求(客户端的消息源)建立有机的联结,处理交易后并将结果返回。
消息驱动的方式适用于不同操作系统之间的TCP/IP通信。
55
交易处理流程
(1)客户端发起请求。
(2)接口守护进程收到请求后,送往交易消息队列。
(3)应用进程从交易队列中读取交易信息,进行处理。
(4)应用进程将结果返回客户端。
(5)应用进程将结果送往监控消息队列。
(A)注释
(1)TCP接口守护进程接收到客户的请求后,将其交易请求,通讯端口标识与相应的交易数据送往交易消息队列。
然后继续新的监听。
(2)各相应的服务进程(如批上送接收Batch_Recieve,下传黑
名单Download_Blacklist,…等,以下称为服务Services)从交
易消息队列中读取请求进行处理,将结果返回客户。
同时,将交易
内容及其处理结果送往监控消息队列E。
(3)交易服务进程处理完交易,将结果送往实时交易监控消息队列.
实时交易监控进程从监控消息队列中读取信息,转换后写到实时交
易监控窗口。
(B)实现
BEA系统有限公司在企业中间件方面的产品在金融领域倍受青睐。
该公司的中间件产品Tuxedo具有联机交易能力,强大的消息处理功能以及面向对象的特点,能最大限度地利用系统资源,可以使用户快速地开发新的应用,同时保护原有的投资。
另外,Tuxedo自带的冲正功能,为客户/服务的交易模式提供了交易完整性的保证。
用户只需要编写相应的客户和服务端的应用,无需考虑通信过程。
Tuxedo可以支持现流行的各种不同的操作系统,为以后的业务扩展打下基础.
Fork子进程
交易处理守护进程接收到请求后,通过fork()调用,复制自己调用不同的服务来处理不同的请求,以达到并行处理的目的。
子进程处理完毕,将结果回送相应的通讯端口,并写监控消息队列。
这种方式用于处理销售终端(POS)经网控器(NAC) 上送的交易.
5
4
3
2
16
(A)交易处理流程
(1)销售终端(POS)经网控器发起请求。
(2)接口读守护进程通过通信端口从网控器收到请求后,解包后送往
交易消息队列。
然后继续新的监听
(3)交易处理守护进程从交易队列中读取交易信息,调用Fork()
复制自己,进行处理。
父进程继续新的监听.
(4)子进程处理后将结果写交易结果消息队列.
(5)子进程将处理结果写监控消息队列。
(6)接口写进程从结果消息队列中读取处理的结果,打包并写通信端
口.由网控器将信息返回销售终端。
(B)销售终端(POS)与接口读/写守护进程之间的交易数据格式遵循ISO8583标准。
(C)Fork()方式不易控制服务进程的数量,且每次复制自己时需占用较多的系统资源。
在实现时,应对此作了一些安全性(保护性)的控制.
批次号的管理
接收客户端批量上送的脱机交易,是前置机提供的主要服务.前置机通过对批次号的管理来保证接收到的数据的正确性。
批次号是此批上送数据的唯一标识,批上送接收服务进程接收到客户端的数据后,将先检查此批次号的数据是否已被处理过。
如果曾被处理,则直接将成功的结果返回.在前置机上建立一记录批上送信息的流水帐表,如有新的批上送业务,处理成功后保留其批次号和此批交易的总笔数与总金额等信息。
用流程图的方式表示此处理逻辑:
与此相对应,客户端进行批上送时,要保证以下几点:
(1)此批数据是未被上送或上送失败的;
(2)此批数据的批次号是唯一的;
(3)每批数据的内容是固定的。
也就是说,如果某批数据上送不成功,又有新的业务发生,此时新交易只能作为下一批.
安全认证模块
安全认证是交易的必不可少的部分,也是业务发展的要求。
每笔交易都需经安全认证系统的校验。
校验信息(MAC)的生成主要采取基于DES的X9.9标准算法。
如果在交易过程中出现“信息校验错”,前置机将产生一新的MAC_KEY和PIN_KEY,经黑盒子的加密后下传,同时更新数据库中的数据。
客户端(销售终端或商户PC)用保存的主密钥对其解密,作为计算下次通信MAC 的MAC_KEY。
有关“黑盒子”和密钥管理系统,在这里不作进一步的讨论。
交易转发模块
交易转发有实时转发(联机交易)和临界值转发(脱机交易)两种方式。
通过修改参数文件的配置或根据交易信息来实现两者之间的转换,兼容以前的磁卡交易。
可以流程图的方式表示如下:
是
否
从区域(全国)联网的角度出发,前置机应提供动态的路由寻址,可将不同区域的不同卡种的交易转发到目的地,由不同的台主机进行处理。
(区域标识,卡种)这一二元组决定交易的目的地址,作为系统的动态参数,可随时更改适应不同的需求。
对于脱机交易的批上送,需启动一批处理守护进程(Batch_Server)接收批上送接收服务进程发来的消息,判断已处理的交易笔数是否已达到临界值(每批上传到后台处理的交易笔数),以便搜索数据库,将未上送的脱机交易打包,送往后台中心。
交易处理子系统返回给客户端的结果并不是真正的实时记帐的处理结果。
考虑到批上送的并发性对数据库的影响,批处理守护进程(Batch_Server)只是将数据库中未处理或上送失败的脱机交易分段,找出这些记录的起止序号等信息送往批处理消息队列。
它只是一个分派任务的进程,对数据库不做任何修改。
上送服务进程(Batch_Send)从批处理消息队列中读到消息后,按起止顺序号查找流水帐并锁住这一批记录,按照约定的格式打包发送,并根据中心返回的结果修改流水帐或记录异常流水。
Batch_Server和Batch_Send之间的关系如下:
批处理守护进程(Batch_Server)每次启动时先查找流水帐,统计库中未处理的交易,防止由于上次(异常)退出时批处理消息队列中未处理的消息长时间未得到处理。
上送进程(Batch_Send)利用通信平台Tuxedo提供的函数,与IC卡后台主机的服务进程建立联结,完成批上送的任务.
交易日志
凡涉及更改数据库的交易,须写日志文件或者记录到交易流水帐中,以备以后的核对和查询统计。
如果在交易过程中出现错误,在日志文件有详细的记载。
交易冲正
由于系统的模式为客户/服务型,不可避免地遇到交易冲正的问题:
(1)客户方由于超时无法将交易发往服务方;
(2)服务方无法将结果回送给客户方。
对于前置机上述情况的交易冲正,由中间件Tuxedo内部机制完成,保证交易的完整性。
但对于串口的通信方式,只能由客户端(主要是POS)的超时控制来实现,重做此次交易.
6.监控子系统
作为一个完整的监控系统,应包括实时交易监控,系统资源和守护进程的监控三大部分,它们是相对独立的。
实时交易监控
实时交易监控从监控消息队列中读取信息,经过格式转换后,将其写到实时交易监控窗口上。
通过实时交易监控,可以查看当天的最后一批交易处理的时间及结果,相应的统计信息(如总笔数,总金额等)。
对交易进行时间段统计,管理人员根据高峰期和相对空闲期,调整日终处理,其它与实时交易关系小的服务(如下传黑名单)的时间,合理利用系统资源,提高系统的运行效率.
处理描述:
初始化监控屏和监控消息队列;fork()子进程去获得系统的状态;然后接收监控消息,将其转化为一定的格式写到监控屏。
系统资源监控
系统资源指运行整个IC卡前置机系统必需的相关硬件和软件运行环境。
系统资源监控是系统管理人员有力的维护工具.
1.CPU的忙闲
2.数据库的状态
3.文件系统的可用空间
4.后台进程运行状态
处理描述:
过一定时间间隔循环调用Check_Deamon(),Check_Filesys_Usage(),Check_Online(),Sum_CPU()查看当前系统各项状态,并按一定格式显示到系统资源监控屏上。
守护进程监控
对系统的守护进程进行监管,除了获得进程的运行状态(最后的活动时间,暂停,异常,死亡),还可以自动地重启死亡或僵死(zombie)的进程,以达到交易的连续性。
同样,可以让系统管理人员手工地关闭某些进程.
在系统的守护进程启动或退出时,需修改活动进程表的状态标志及时间,为进程监管提供依据。
进程监控还可以定期或在收到其它进程发来的消息后,对交易消息队列进行清理,比如,删除等待时间已超过某一上限的消息。
对交易进行时间段统计,管理人员根据高峰期和相对空闲期,调整日终处理,其它与实时交易关系小的服务(如下传黑名单)的时间,合理利用系统资源,提高系统的运行效率.
另外,Tuxedo提供了强有力的管理平台,可以配置Tuxedo的运行参数,修改各个服务(Services)的运行数目,最大限度地利用系统资源。
处理描述:
1。
控制子进程的启动。
启动之前,先申请,如果成功,则注册并允许启动,子进程运行结束,释放资源并注销。
2。
删除超时的子进程.通过父进程找到子进程,查看运行时间是否达到某一上限,并关掉超时的子进程,释放系统资源。
7.系统管理
标准数据的管理
前置机对以下的标准数据进行管理:
1.操作员(含商户、指定医疗机构和前置机的操作员)
2.收费单位(特约单位)编码表
3.POS类型与IC卡关系对照表
上述信息均存储于后台主机,前置机通过手工申请的方法,一次性下载这
些标准数据,作为检查交易合法性的依据。
除了操作员信息外,前置机不能修改上述标准数据,只能向主机申请。
主机的标准数据如有更新,自动下传。
系统参数配置
将系统运行参数化,是系统生命力强的表现之一。
在此为管理人员提供菜单式的易于使用的界面,对系统参数的进行配置:
1.批上送控制笔数
2.自动申请黑名单的时间间隔
3.可用的IC 卡卡号段
4.系统清理历史数据的时间
5.系统守护进程的启动数目
查询统计
在前置机系统为管理员提供界面,可对帐户明细,交易,各类登记簿和其
它信息进行查询统计。
每一项的查询都包含基本信息,详细信息,统计信息和
信息打印等功能。
数据维护
数据维护是系统安全运行的保障之一。
根据数据的冗余性,能及时地恢复损坏的数据.这就要求有多种手段( 硬盘,流带,磁盘等)对系统关键数据进行备份和恢复。
黑名单的管理
对于IC卡系统而言,黑名单的管理是交易可靠性和安全性的保证。
黑名单存放于
(1)后台主机
(2)前置机。
后者是前者的备份。
在前置机上另设立一黑名单动态库表,保存距现在一段时间内的最新的黑名单。
主机的黑名单如有更新,其版本号以当天的日期(或其它)作为最新版本号.主机以广播的形式下传黑名单到前置机.或者,前置机每隔一段时间,自动地向主机申请.前置机获得黑名单后,同时更新全部的黑名单和动态黑名单两个库表。
为减少数据传递量,客户端每次签到申请时,只传输最新的动态黑名单.客户端申请时须将本地的黑名单版本号上传。
而前置机比较收到的版本号与数据库中的最新版本号,决定下传与否。
8.帐务处理子系统
日终处理
根据不同的区域和卡种,生成的日终报表可为行内往来,异行往来提供较完善的清算报表,更进一步,基于通用的或协商的格式为清算中心提供清算数据,是IC卡联网发展的必然要求。
现有的系统只对本省内建行的IC卡交易进行清算。
前置机的清算日期设置由后台主机以广播的方式来完成,日终处理完毕,需备份清理当天的交易流水等相关数据库表.
报表处理
帐务处理子系统根据数据处理子系统所记录的交易(历史)流水帐或者后台主机(清算主机)下传的数据,生成并打印该市地行的各类表单和记帐凭证。
向本行下辖的机构和有关的商户提供相关数据,供其生成各类凭证.可提供的报表数据有:
(1)交易统计日报,月报和年报
(2)资金往来报表
(3)商户/POS/营业网点的对帐单
(4)其它报表
前置机在日终处理时向后台IC卡主机申请本地区的清分数据和有关的报表数据,然后将清算数据发送到各地市行的综合网主机,利用已有的综合网的清算功能,参与综合网结帐.它们之间的关系如下图所示:
1.前置机向IC卡主机申请清分数据和报表数据
2.前置机将清算数据发往综合网主机,参与综合网的结帐
3.前置机向客户端下传其所需的报表数据
银行与医保中心的数据传送
前置机与医保中心联网,每日定期将有关医保的交易数据组织后以文件的形式传送到医保中心,以便进行对帐和统计工作。
附A。
前置机网络结构实意图
附B前置机数据库表结构
1、黑名单(ichmd)
(1)卡号(kh)char(20)
(2)录入原因(lryy)char
(1)
2、黑名单动态表(ichmddt)
(1)序号(xh)int
(2)卡号(kh)char(20)
(3)日期(rq)date
(4)录入原因(lryy)char
(1)
(5)卡种(kzl)char
(1)
(6)增删标志(zsbz)char
(1)1:
增加;2:
删除
*该表应保存最近一版前N天的信息
3、POS交易类型对照表(icposjylxdz)
(1)交易类型(jylx)char(6)
(2)处理码(clm)char(6)
(3)交易名称(jymc)char(16)
(4)交易码(jym)char(6)
4、操作员管理表(icczygl)
(1)机构编码(jgbm)char(9)
(2)操作员编号(czyh)char(6)
(3)姓名(xm)char(8)
(4)密码(mm)char(6)
(5)权限(jb)char
(1)(1:
业务主管;2:
记帐员;
3:
系统管理员;)
(6)启用日期(qyrq)date
(7)终止日期(zzrq)date
(8)标志(bz)char
(1)
(9)上次改密日期(icscgmrq)date
(10)DACchar(16)
5、POS操作员表(icposczy)
(1)收费代码(sfdm)char(9)
(2)操作员号(czyh)char(6)
(3)密码(mm)char(6)
(4)状态标志char
(1)0:
签到;1:
异常
(5)DACchar(16)
6、POS编码表(icposbm)
(1)POS号(posbh)char(6)
(2)收费代码(sfdm)char(9)
(3)黑名单下传标记(xcbz)char
(1)(0:
全部下传;
1:
下传本地)
(4)POS类型(poslx)smallint
(5)优先级(yxj)char
(1)
7、POS类型和卡类型对照表(icposlxdz)
(1)POS类型(poslx)char
(1)
(2)卡种(kzl)smallint
(3)下传标志(xcbz)char
(1)(0;不下传;1;下传)
8、响应码表(icxym)
(1)响应代号(xydh)smallint
(2)代号名称(dhmc)char(16)
9、网点机构编码表(icwdjgbm)
(1)机构编码(jgbm)char(9)
(2)机构名称(jgmc)char(16)
(3)当前状态状态(dqzt)char
(1)
10、代收费管理表(icdsfglb)
(1)收费代码(sfdm)char(9)
(2)收费单位名称(fsdwmc)char(20)
(3)状态标志(ztbz)char
(1)(0:
正常;
1:
异常)
(4)IP地址(ipdz)char(12)
(5)发送标志(fsbz)char
(1)(0:
已发;
1:
未发)
(6)对帐方式(dzfs)char
(1)(0:
磁盘;
1:
主动下传;
2:
被动申请;
3:
不发送)
(7)上次申请日期(scsqrq)date
11、批上送表(icpssb)
(1)POS批上送标志(posbssbz)char
(1)(0:
成功;
1:
正在接收;
2:
手工补单;)
(2)前置机批上送标志(qzjpssbz)char
(1)(0:
成功;
1:
正在发送;
2:
待发;
3:
通信失败;
4:
文件发送成功)
(3)POS号(posh)char(6)
(4)POS批次号(pospch)int
(5)POS包号(posbh)smallint
(6)POS票据号(pospjh)smallint
(7)前置机批次号(qzjpch)int
(8)POS批上送笔数(posbssbs)smallint
(9)POS批上送金额(pospssje)dec(12,2)
(10)接收日期(jsrq)date
(11)接收时间(jssj)int
(12)清算日期(qsrq)date
(13)优先级(yxj)char
(1)
(14)POS所属机构(posrsjg)char(10)
12、系统参数表(icxtcs)
(1)清算日期(qsrq)date
(2)机构编码(jgbm)char(9)
(3)系统状态(xtzt)char
(1)(0:
运行;
1;后台轧帐;
2:
接收数据成功;)
(4)IP地址(ipdz)char(12)
(5)前置机批次号(qzjbch)int
(6)批上送控制笔数(pssczbs)smallint
(7)主机轧帐时间(zjzzsj)date
(8)轧帐前控制时间(zzqkzsj)smallint
(9)清理控制天数(qlczts)smallint
13、查询字典表:
(iccxzd)
(1)编号(bh)smallint;
(2)序号(xh)smallint;
(3)字典(zd)char(6);
(4)字典名称(zdmc)char(16);
(5)数据类型(sjlx)smallint;
(6)数据长度(sjcd)smallint;
(7)表名(bm)char(9);
14、查询条件表:
(iccxtj)
(1)代号(dh)char(5)
(2)编号(mh)smallint;
(3)序号(xh)smalllint;
(4)字典(zd)char(6);
(5)名称(mc