1、xx前置分行培训1内容提要内容提要 设计思想及定位设计思想及定位 总体架构总体架构 重要模块介绍重要模块介绍xx银行前置项目组设计思想定位设计思想定位xx前置分行培训3行业背景行业背景 银行一般将核心业务逻辑和业务数据存放在核心业务系统或称主机系统银行一般将核心业务逻辑和业务数据存放在核心业务系统或称主机系统中。为保证业务系统的规范性,核心业务系统要求具有高度的稳定性;中。为保证业务系统的规范性,核心业务系统要求具有高度的稳定性;各种中间代理业务则存在不规范性和十分强的第三方依赖性。将要求稳各种中间代理业务则存在不规范性和十分强的第三方依赖性。将要求稳定性高的核心业务系统与规范性弱、第三方依赖
2、性强的中间代理业务系定性高的核心业务系统与规范性弱、第三方依赖性强的中间代理业务系统进行分离,是银行保持业务系统稳定发展,中间代理业务不断创新的统进行分离,是银行保持业务系统稳定发展,中间代理业务不断创新的有效途径。有效途径。南天南天OFP PreBranch+PreBranch+系统的研发,其基本出发点是建立在将核心业务系系统的研发,其基本出发点是建立在将核心业务系统与中间代理业务系统进行分离的基础之上,为银行提供服务渠道的统统与中间代理业务系统进行分离的基础之上,为银行提供服务渠道的统一接入平台,提供中间代理业务的生成平台,提供与银行核心业务系统一接入平台,提供中间代理业务的生成平台,提供
3、与银行核心业务系统和其它业务应用系统,银行代理业务合作单位(亦称:第三方),及银和其它业务应用系统,银行代理业务合作单位(亦称:第三方),及银行为客户提供的各种业务服务渠道在内的系统联结功能的综合前置平台。行为客户提供的各种业务服务渠道在内的系统联结功能的综合前置平台。xx前置分行培训4设计思想(一)设计思想(一)PreBranch+PreBranch+从最初的设计开始就采用了先进的面向构件的设计思想,其从最初的设计开始就采用了先进的面向构件的设计思想,其基本的组件是原子交易。所有的功能都可根据业务需求组装相应的原子基本的组件是原子交易。所有的功能都可根据业务需求组装相应的原子交易,并根据具体
4、的参数配置运行指定的功能,使应用设计人员可以将交易,并根据具体的参数配置运行指定的功能,使应用设计人员可以将大部分的精力用于关注业务功能而不是技术细节。大部分的精力用于关注业务功能而不是技术细节。从技术体系上,系统采用层次化设计思想,简化了系统的复杂度,同时从技术体系上,系统采用层次化设计思想,简化了系统的复杂度,同时提高了系统的各个层次之间的独立性,增强了系统的可维护性。提高了系统的各个层次之间的独立性,增强了系统的可维护性。xx前置分行培训5设计思想(二)设计思想(二)xx前置分行培训6产品定位产品定位开放式金融前置平台开放式金融前置平台-银行前端服务渠道及后端业务产品的整合平台银行前端服
5、务渠道及后端业务产品的整合平台xx银行前置项目组总体架构总体架构xx前置分行培训8产品系统逻辑结构产品系统逻辑结构参数化数据库定制管理核心处理系统接入适配器PB运行平台可视化定制定制数据部署用户、连接管理PB定制平台AE运行、监控参数管理PB监控、管理平台xx前置分行培训9系统技术结构图(一)系统技术结构图(一)xx前置分行培训10系统技术结构图(二)系统技术结构图(二)数据交换引擎:整个系统的核心,除基于中间件产品(数据交换引擎:整个系统的核心,除基于中间件产品(BEA TUXEDOBEA TUXEDO或或NANTIAN UNIBRIDGENANTIAN UNIBRIDGE)构建(网关进程除
6、外)构建(网关进程除外),数据交换引擎由以下四个数据交换引擎由以下四个部分组成部分组成4 流程控制(交易流程解释执行)4 数据交换(变量池)4 差错处理(异常流程和系统冲正)4 智能网关(PreGateway)二次开发平台二次开发平台 (AE)(AE)系统管理监控平台系统管理监控平台(硬件环境监控、软件系统资源监控、应用进程监控硬件环境监控、软件系统资源监控、应用进程监控)业务管理监控平台业务管理监控平台(交易监控、业务状态监控交易监控、业务状态监控)中间业务处理及外围应用插件中间业务处理及外围应用插件(费率管理、协议管理、权限管理)费率管理、协议管理、权限管理)xx前置分行培训11系统软件环
7、境系统软件环境 运行平台建立运行平台建立UNIXUNIX或或LINUXLINUX操作系统之上,采用了中间件技术和数据库技操作系统之上,采用了中间件技术和数据库技术,中间件主要支持术,中间件主要支持TUXEDOTUXEDO,数据库可支持,数据库可支持ORACLEORACLE、INFORMIXINFORMIX和和SYBASESYBASE,开发语言为开发语言为C C。xxxx前置平台系统软件环境为:前置平台系统软件环境为:AIX5.3 AIX5.3,TUXEDO9.1TUXEDO9.1和和ORACLE9iORACLE9i、ORACLE10g(ORACLE10g(分行前置分行前置)。AE2.0AE2.
8、0为为PB2.0PB2.0的二次开发平台,在设计上采用的二次开发平台,在设计上采用CSCS结构。开发工具为结构。开发工具为BCB6.0BCB6.0。运行环境为。运行环境为WIN9X/XP/2K/NTWIN9X/XP/2K/NT等,与数据库连接方式为等,与数据库连接方式为ADOADO方式,方式,目前支持目前支持ORACLE/DB2/SYBASE/INFORMIXORACLE/DB2/SYBASE/INFORMIX等主流数据库。等主流数据库。系统管理和监控平台采用系统管理和监控平台采用B/SB/S结构,基于结构,基于J2EEJ2EE架构,引入开源框架架构,引入开源框架StrutsStruts、Sp
9、ring Spring、Hibernate,iReportHibernate,iReport。开发语言为。开发语言为JAVAJAVA、JSPJSP。数据库支持:。数据库支持:ORACLEORACLE、mysqlmysql等,可部署在等,可部署在UNIXUNIX或或LINUXLINUX操作系统之上。操作系统之上。xx银行前置项目组重要模块介绍重要模块介绍xx前置分行培训13系统基本概念(一)系统基本概念(一)业务种类:业务种类:是一个具有相互关系的交易流程的集合,共同完成一类特定的功能,在业务层面可看作完成特定功能的金融服务产品。内部交易流程:内部交易流程:每个业务处理交易在运行平台表现为一个由
10、原子交易组成的的执行流程,对应于一个特定的内部交易码,对应的记录关键字叫内部交易码。原子交易:原子交易:交易流程的最小可执行单元,是对业务处理的细分和归纳,以软件复用为目的,以函数方式实现。渠道:渠道:与外部系统的一个通讯通道,并采用统一的报文格式进行信息的交换,在现实中,一个外部系统在PB中可以表现为一个或多个渠道。外部交易:外部交易:对于每个渠道,pb平台与外部系统进行交互时,从通讯接口层面上看到的另外一个系统提供的一个交易功能,在PB内部表现为关联一个请求报文和一个应答报文的外部交易记录。对应的记录关键字叫外部交易码。报文格式:报文格式:PB与系统之间的通讯信息实体,是由许多报文域组成的
11、集合,并按一定的格式组织成一段报文,对应的记录关键字叫做报文格式号。xx前置分行培训14系统基本概念(二)系统基本概念(二)其它的重要概念包括:数据字典、变量池、处理函数、流程模块、业务其它的重要概念包括:数据字典、变量池、处理函数、流程模块、业务组、响应码等。组、响应码等。交换引擎正是基于这些概念完成交换功能交换引擎正是基于这些概念完成交换功能,相互关系如下相互关系如下 :xx前置分行培训15系统模块接口系统模块接口 统通讯接口主要可分为内部通讯接口和外部通讯接口,内部通讯接口是指统通讯接口主要可分为内部通讯接口和外部通讯接口,内部通讯接口是指智能网管与交换引擎之间的接口,外部通讯接口分为请
12、求渠道与智能网管与交换引擎之间的接口,外部通讯接口分为请求渠道与PBPB系统之系统之间的接口和间的接口和PBPB系统与服务渠道之间的接口。系统与服务渠道之间的接口。xx前置分行培训16系统模块接口系统模块接口 内部通讯接口是指智能网管与交换引擎之间的接口,由于接入方式不同,内部通讯接口是指智能网管与交换引擎之间的接口,由于接入方式不同,系统设计了不同的网关:系统设计了不同的网关:TUXEDO TUXEDO 网关网关PBMIDGWPBMIDGW、TCP/IPTCP/IP网关和虚拟网关。网关和虚拟网关。三种网关与交换引擎的关系,都是激活与被激活的关系,即网关需要启三种网关与交换引擎的关系,都是激活
13、与被激活的关系,即网关需要启动作为动作为TUXEDO APPSERVERTUXEDO APPSERVER的交换引擎,启动方式如下:的交换引擎,启动方式如下:4 PBMIDGW:tpforward 方式启动交换引擎,通讯session直接交接给交换引擎,交换引擎通过tpreturn返回结果。4 虚拟网关:纯异步方式,通过tpacall方式启动交换引擎,虚拟网关不接收应答。xx前置分行培训17系统内部模块接口(二)系统内部模块接口(二)对于交换引擎与对于交换引擎与TCP/IPTCP/IP之间数据相对复杂,首先通讯是双向的,包括从之间数据相对复杂,首先通讯是双向的,包括从引擎发起的对外部系统的请求服
14、务和外部系统通过引擎发起的对外部系统的请求服务和外部系统通过TCP/IPTCP/IP网关接入,其网关接入,其次次TCP/IPTCP/IP网关的通讯模式是多种多样的,而且需要支持会话模式,允许网关的通讯模式是多种多样的,而且需要支持会话模式,允许一次会话双方多次交互。其机制如下:一次会话双方多次交互。其机制如下:4 交换引擎发起的对外请求和应答报文通过队列进行交互。4 TCP/IP网关接入时通过tpacall方式启动交换引擎,应答报文通过队列G2M(网关到主控队列,单工传输)返回到TCP/IP网关。4 由于队列的共享性,通讯实体通过跟踪码完成应答报文的识别。4 通过命令词完成会话功能的要求。xx
15、前置分行培训18请求渠道系统与接入网关之间接口请求渠道系统与接入网关之间接口 PBMIDGW PBMIDGW:接收:接收TUXEDOTUXEDO客户端发起的请求,按连接方式可以分为:客户端发起的请求,按连接方式可以分为:Tuxedo Client Tuxedo Client 和和 域方式两种,按服务名称直接访问域方式两种,按服务名称直接访问PBMIDGWPBMIDGW。虚拟网关:通过队列交换数据,采用纯异步的方案,一般运用于本地服虚拟网关:通过队列交换数据,采用纯异步的方案,一般运用于本地服务,比如:冲正。请求方把请求报文放入队列中即结束,虚拟网关服务务,比如:冲正。请求方把请求报文放入队列中
16、即结束,虚拟网关服务器从队列中读取消息,发送到交换引擎进行处理。器从队列中读取消息,发送到交换引擎进行处理。TCP/IPTCP/IP网关:网关:TCP/IPTCP/IP网关是网关是PBPB中最重要的网关,中最重要的网关,TCP/IPTCP/IP按通讯模式可分按通讯模式可分为五种,同步短连接、同步长连接、异步短连接、异步长连接单工双链、为五种,同步短连接、同步长连接、异步短连接、异步长连接单工双链、异步长连接双工单链。系统按渠道的方式进行组织,但对于同一个异步长连接双工单链。系统按渠道的方式进行组织,但对于同一个TCP/IPTCP/IP渠道,可分为独立的请求渠道、请求与服务共享的渠道。由于技渠道
17、,可分为独立的请求渠道、请求与服务共享的渠道。由于技术的限制和业务的不同需要,可以有如下两种组合情况。术的限制和业务的不同需要,可以有如下两种组合情况。4 同步短连接、同步长连接:对于同步通讯模式,请求渠道必须是独立的,不能与服务渠道共享,如果互联的双方是双向通讯(包括外部系统 PB,PB外部系统)。需要建立两个渠道,分别为请求渠道和服务渠道。4 异步短连接、异步长连接单工双链、异步长连接双工单链:对于异步通许模式,请求渠道和服务渠道可以共享,因此互联时一般只建立一个渠道,根据业务的需要既可以作为请求渠道也可以作为服务渠道。xx前置分行培训19服务网关与服务渠道系统之间接口服务网关与服务渠道系
18、统之间接口 目前目前PBPB系统支持的直接与服务渠道系统之间的通讯方式主要有两种系统支持的直接与服务渠道系统之间的通讯方式主要有两种TUXEDOTUXEDO域通讯方式和域通讯方式和TCP/IPTCP/IP方式,其他通讯方式通过与方式,其他通讯方式通过与TCP/IPTCP/IP网关中转网关中转完成,比如完成,比如MQMQ的通讯方式。的通讯方式。域通讯方式:利用中间件的特性,远程域服务引入到本地,系统通过域通讯方式:利用中间件的特性,远程域服务引入到本地,系统通过ServiceName ServiceName 访问系统,对应应用系统透明,就象访问本地服务一样。访问系统,对应应用系统透明,就象访问本
19、地服务一样。TCP/IPTCP/IP通讯方式:如上节所述,通讯方式:如上节所述,PBPB设计了单独的以操作系统进程实现的设计了单独的以操作系统进程实现的TCP/IPTCP/IP通讯网关,通讯网关系统按渠道的方式进行组织和管理,但对于通讯网关,通讯网关系统按渠道的方式进行组织和管理,但对于同一个同一个TCP/IPTCP/IP渠道,可分为独立的服务渠道、请求与服务共享的渠道。渠道,可分为独立的服务渠道、请求与服务共享的渠道。对应同步方式,服务渠道必须独立,对应异步方式可以根据需要独立或对应同步方式,服务渠道必须独立,对应异步方式可以根据需要独立或共享。共享。xx前置分行培训20数据交换引擎(一)数
20、据交换引擎(一)系统运行起来后,智能网关的物理形式有两种:系统运行起来后,智能网关的物理形式有两种:TUXEDOTUXEDO的的APPSERVERAPPSERVER和操和操作系统普通进程。系统所有的业务种类被分成不同的业务组,每个业务作系统普通进程。系统所有的业务种类被分成不同的业务组,每个业务组以一组组以一组TUXEDO APPSERVER TUXEDO APPSERVER 进行部署,共享服务资源。进行部署,共享服务资源。xx前置分行培训21数据交换引擎(二)数据交换引擎(二)主控主干模块:主控接受接入渠道的请求,进行系统运行环境的初始化,主控主干模块:主控接受接入渠道的请求,进行系统运行环
21、境的初始化,调用流程控制模块按定制数据执行相应的交易流程,最后记录交易信息,调用流程控制模块按定制数据执行相应的交易流程,最后记录交易信息,并释放资源。并释放资源。流程控制执行模块流程控制执行模块4 从共享内存获取到内部交易流程定制数据,解释执行相关的原子交易,并进行流程执行顺序的控制,目前支持的流程控制语句包括:IF ELSE ENDIF IFNOT ENDIFNOSwitch Case.Default ENDCASE.WHILE ENDWHILEDO DOWHILE RETURN EXIT.以及配置在原子交易错误处理参数中的直接跳转,相对于GOTO。4 同时还支持流程模块,即由原子交易集组
22、成的功能模块,相当于子流程,以加强流程复用。xx前置分行培训22数据交换引擎(三)数据交换引擎(三)变量池及全局变量变量池及全局变量4 当原子交易流程被执行时,相互之间以及与系统需要直接交换数据信息,PB平台提供了两种实体,变量池和全局变量。采用变量池的原因是传统的以数据结构为基础的程序已无法满足各种业务系统灵活多变的数据要求。把各种类型的数据抽象为内存变量池,数据在变量池中可以由控制文件控制数据的类型、长度。每种业务可以根据各自的数据要求灵活定制私有的变量池。4 另外一个原子交易可以互换数据信息的机制是全局变量,目前系统级的全局变量主要有:FrontBuff:存储从智能网关转发过来的交易请求
23、数据信息。PkgBuff:解包时获取原始报文的地方;打包时存储生产的最终报文。Logfile:当前交易日志文件名称。4 系统级的变量池主要包括两个结构:PBSYS、APSYS。其中在主控主干流程中已经初始化,并在后续的原子交易里都能够存取的包括在PBSYS中的变量池单元如下:AreaNo 区域号BusiType 业务种类TranCode 当前流程的内部交易码xx前置分行培训23数据交换引擎(四)数据交换引擎(四)RChnlNo 当前交易请求渠道号RTranCode 请求渠道的外部交易码SysErrNo 系统错误码,初始值为”0000”,表示状态正常。PbJourNo 交易流水号,目前为6位。P
24、bDate PB帐务日期SysDate 当前主机系统日期YYYYMMDDSysTime 当前主机系统时间hhmmssJourFlag 交易流水标志,说明是否记录流水RevTimes 内部交易的冲正次数RevLvl 内部交易的冲正级别4 APSYS中的变量池单元如下:SYear 系统时间年 YYYYSMonth 系统时间月 MMSDay 系统时间 天BankNo 第三方银行号(一般用于中间业务,业务种类信息)。xx前置分行培训24变量池定义及访问接口变量池定义及访问接口 变量池按业务种类进行定义,变量池定义的依据是系统数据字典和应用数变量池按业务种类进行定义,变量池定义的依据是系统数据字典和应用
25、数据字典据字典 在进行变量池访问时,系统按(通讯结构名,数据域序号,维数下标)进在进行变量池访问时,系统按(通讯结构名,数据域序号,维数下标)进行访问,便于管理和记忆行访问,便于管理和记忆xx前置分行培训25变量池存储和运行机制变量池存储和运行机制 当系统运行时,交换引擎收到交易请求后查找对应内部交易流程所属的当系统运行时,交换引擎收到交易请求后查找对应内部交易流程所属的业务种类,按本业务种类的变量池定义生成变量池(分配变量池存储空业务种类,按本业务种类的变量池定义生成变量池(分配变量池存储空间)。并在整个交易流程处理过程中保持不变,交易流程运行结束后释间)。并在整个交易流程处理过程中保持不变
26、,交易流程运行结束后释放变量池存储空间。放变量池存储空间。xx前置分行培训26报文解析(一)报文解析(一)对各种报文格式的打包和解包是交换引擎重要的功能之一:对各种报文格式的打包和解包是交换引擎重要的功能之一:xx前置分行培训27报文解析(二)报文解析(二)在在PBPB中报文被看着由多个数据域按某种方式组织的信息数据段,报文的中报文被看着由多个数据域按某种方式组织的信息数据段,报文的打包过程就是根据预先的定义从变量池中获取数据域值组织成数据信息打包过程就是根据预先的定义从变量池中获取数据域值组织成数据信息段的过程,解包过程就是根据报文定义,把信息数据段按定义的格式解段的过程,解包过程就是根据报
27、文定义,把信息数据段按定义的格式解析成数据域,并存放到变量池的过程。析成数据域,并存放到变量池的过程。在在PBPB中为了定义简单和便于理解,采取如上图的机制:中为了定义简单和便于理解,采取如上图的机制:4 根据渠道通讯协议,制定包含报文数据域的超集数据字典,同时定义报文的组织结构,比如:XML、SOP、8583等。4 从数据字典中,抽取数据域的子集定义数据报文。4 对应具体的业务,如果需要解析对应渠道报文,把此报文对应的数据字典作为变量池依据,生成变量池。4 系统接收到数据报文,按定制获取其报文格式定义。4 在定义报文格式的过程中,隐含定义了对应的变量池,解包的过程就是根据定义分解数据域存放到
28、变量池中。4 应用程序使用API存取变量池,进行报文信息的设置和获取。xx前置分行培训28报文解析(三)报文解析(三)为了增加报文解析过程中的灵活性,在解包和打包过程中,分别预留了为了增加报文解析过程中的灵活性,在解包和打包过程中,分别预留了报文打包解包前处理、打包解包后处理,数据域前处理处理函数,供开报文打包解包前处理、打包解包后处理,数据域前处理处理函数,供开发人员进行自定义功能。发人员进行自定义功能。目前系统支持的报文格式包括:目前系统支持的报文格式包括:4 8583、类85834 SOP4 XML4 定长字符串、变长分割符串、混合串4 类C语言结构xx前置分行培训29TCP/IP网关架
29、构网关架构 为了实现为了实现TCP/IPTCP/IP网关的统一管理,对于所有渠道的网关进程建立一个统网关的统一管理,对于所有渠道的网关进程建立一个统一的进程系,由网关管理进程负责。一的进程系,由网关管理进程负责。4 pbpb:网关管理客户端程序,负责发起网关的管理命令的工具,包括启动网关、停止网关和查看网关进程信息三种命令。4 PBBPBB:为网关进程系的父进程,接收pb客户端请求,负责网关进程的有管理和维护工作,包括启动网关各渠道主进程、维护网关进程信息、接收pb发送过来的命令执行相关管理工作。4 GWGWn:为各个网关进程(提供渠道服务)。xx前置分行培训30网关通讯进程逻辑结构(一)网关
30、通讯进程逻辑结构(一)当外部系统作为服务方当外部系统作为服务方:TCP/IP:TCP/IP网关从队列接收请求,根据命令字与外网关从队列接收请求,根据命令字与外部系统进行数据报交换。部系统进行数据报交换。当外部系统作为请求方:当外部系统作为请求方:TCP/IPTCP/IP网关接收外部请求,转换成内部通讯格网关接收外部请求,转换成内部通讯格式式FrontBuffFrontBuff,通过,通过tpacalltpacall方式触发交换引擎,交易引擎通过队列返回方式触发交换引擎,交易引擎通过队列返回应答报文。应答报文。xx前置分行培训31网关通讯进程逻辑结构(二)网关通讯进程逻辑结构(二)根据不同根据不
31、同TCP/IPTCP/IP网关执行体,按通讯模式同步短连接、同步长连接、异网关执行体,按通讯模式同步短连接、同步长连接、异步短连接、异步长连接单工双链、异步长连接双工单链和外部系统角色步短连接、异步长连接单工双链、异步长连接双工单链和外部系统角色可分为可分为1010中类型:中类型:同步短连接,外部系统作为请求方。同步短连接,外部系统作为服务方。同步长连接,外部系统作为请求方。同步长连接,外部系统作为服务方。异步短连接,外部系统作为请求方。异步短连接,外部系统作为服务方。异步长连接单工双链,外部系统作为请求方。异步长连接单工双链,外部系统作为服务方。异步长连接双工单链,外部系统作为请求方。异步长
32、连接双工单链,外部系统作为服务方 xx前置分行培训32同步短连接请求方同步短连接请求方通讯服务器通讯服务器 通讯服务器循环侦听通讯服务器循环侦听TCP/IPTCP/IP请求,当请求达到时请求,当请求达到时FORKFORK新进程,进行接收数新进程,进行接收数据、发送到交换引擎处理,从队列中接收处理应答,通过据、发送到交换引擎处理,从队列中接收处理应答,通过TCP/IPTCP/IP原链路返原链路返回外部通讯系统,最后关闭链路并回外部通讯系统,最后关闭链路并EXITEXIT。xx前置分行培训33同步短连接请求方同步短连接请求方队列服务器队列服务器 队列服务器循环从网关队列中,当请求达到时队列服务器循
33、环从网关队列中,当请求达到时FORKFORK新进程,新进程根据指新进程,新进程根据指令字,对于请求应答式通讯,指令字为令字,对于请求应答式通讯,指令字为912348912348,新进程将向外部系统建立,新进程将向外部系统建立链路、发送请求数据、接收应答数据、并断开链路,把数据通过队列返回链路、发送请求数据、接收应答数据、并断开链路,把数据通过队列返回给数据交换引擎,最后进程退出。给数据交换引擎,最后进程退出。xx前置分行培训34异步短连接请求方、服务方异步短连接请求方、服务方 异步短连接外部系统作为请求方或服务方,一般公用同样的渠道,并且异步短连接外部系统作为请求方或服务方,一般公用同样的渠道
34、,并且共享发送通道与接收通道。共享发送通道与接收通道。当当PBPB系统作为请求方,外部系统作为服务方式,数据交换引擎需要在发系统作为请求方,外部系统作为服务方式,数据交换引擎需要在发起端通过跟踪码匹配请求和应答报文。起端通过跟踪码匹配请求和应答报文。xx前置分行培训35长连接通讯方式长连接通讯方式 同步长连接与同步短连接内部结构基本一致,差别在于长连接在初始化同步长连接与同步短连接内部结构基本一致,差别在于长连接在初始化阶段就建立好链路,并一直使用。阶段就建立好链路,并一直使用。异步长连接单工和双工与异步短连接基本一致,差别在于长连接单工在异步长连接单工和双工与异步短连接基本一致,差别在于长连
35、接单工在初始化阶段需要建立好链路,并一直使用;对于长连接双工与外部系统初始化阶段需要建立好链路,并一直使用;对于长连接双工与外部系统的链路发送与接收在同一链路。的链路发送与接收在同一链路。xx前置分行培训36数据交换接口数据交换接口接口类型接口类型 请求渠道的应答报文请求渠道的应答报文4 通过PBMIDGW发起的请求应答:服务在交易流程结束时,从PkgBuff获取报文,通过tpreturn 方式返回应答报文。4 虚拟网关发起的请求没有应答,服务在交易流程结束时,tpreturn函数返回NULL报文。4 对于TCP/IP请求网关,应答通过原子交易Comm_RecvPkg()返回。具体描述见下节原
36、子交易接口。服务渠道请求应答报文服务渠道请求应答报文4 服务渠道分为两种通讯模式,如果是TUXEDO域方式,系统提供原子交易Comm_ExchTuxPkg进行,Comm_ExchTuxPkg原子交易同时完成请求报文的发送和应答报文的接收。4 对应TCP/IP服务渠道,请求报文和应答报文分为两个原子交易进行处理,Comm_SendPkg()发送请求,Comm_RecvPkg()接收应答,统一接口,系统设置了指令字。具体说明见下节原子交易接口。xx前置分行培训37数据交换接口数据交换接口原子交易(一)原子交易(一)Comm_SendPkg()Comm_SendPkg()4 参数参数:参数为定长,某
37、项位数不够则补空格3渠道号:渠道号为Q时表示请求渠道。6为命令词:含义见命令词一节4 说明说明:将指定Buffer的内容发送到队列,数据到队列后,网关会收取数据并向指定的渠道发送。调用前需要生成系统跟踪码,系统提供了两种方式,新生成一个跟踪码,调用Data_GetTraceCode,或者直接从PB流水号转换过来,相应的原子交易为Data_ConvTraceCode,作为Comm_RecvPkg()接收报文的匹配ID。xx前置分行培训38数据交换接口数据交换接口原子交易(二)原子交易(二)Comm_RecvPkg()Comm_RecvPkg()4 参数参数:参数为定长,某项位数不够则补空格接收渠
38、道号。4 说明说明:网关接收交易应答后,将数据发送到队列。接收函数从队列接收数据到指定Buffer。Comm_ExchTuxPkg(param)Comm_ExchTuxPkg(param)4 参数参数:渠道号|超时标志|服务名称渠道号:三位,目标渠道超时标志:0不处理;1服务超时后,不向请求渠道发送应答,让请求也渠道超时,一般使用于透明转发;A表示丢弃收到的应答包,主要为分行转发信管交易使用;服务名:主机服务名,缺省从SOP包头中取,如果服务名为PBMIDGW*,则系统自动增加PBF包头。4 说明说明:向Tuxedo服务方发送交易请求并接收交易应答;根据超时标志设置系统回应标识位。但调用总前提
39、供给分前的服务时(PBMIDGW或EBIPGW)系统会自动添加前置内部数据头xx前置分行培训39TCP/IP网关网关 命令词命令词 解释:指令由六位(指令由六位(6B6B)组成,第一位:是否应答标志,)组成,第一位:是否应答标志,0 0 不需回送应不需回送应答包主控答包主控 9 9 回送应答包给主控,二到六位:通讯指令组合。回送应答包给主控,二到六位:通讯指令组合。4 1:建立通讯连接4 2:发送数据4 3:接收数据4 4:断开通讯连接4 8:无后续指令 典型指令集典型指令集4 同步短连接交易指令 912348 4 异步长连接模式发送指令 928000 4 异步短连接模式发送指令 912480
40、 4 异步长连接模式发送指令 028000 4 异步短连接模式发送指令 012480 xx前置分行培训40系统日志系统日志日志机制日志机制 在在PBPB中,日志采用动态机制,系统运行时,可以设置一个日志级别,如中,日志采用动态机制,系统运行时,可以设置一个日志级别,如果应用程序中的日志级别低于当前日志级别则打印日志信息,否则不打果应用程序中的日志级别低于当前日志级别则打印日志信息,否则不打印日志信息。系统目前的日志级别以供设置为印日志信息。系统目前的日志级别以供设置为5 5级,分别定义了不同的宏。级,分别定义了不同的宏。系统运行的缺省级别设置为系统运行的缺省级别设置为3 3;如果系统运行稳定,
41、可以设置级别为;如果系统运行稳定,可以设置级别为0 0。日志级别的设置,可以按外部交易码进行设置。在开发环境中,另外在日志级别的设置,可以按外部交易码进行设置。在开发环境中,另外在测试环境中,一般把日志级别设置为测试环境中,一般把日志级别设置为 4 4。4#define ERR_LVL 0,_FILE_,_LINE_/*错误级*/4#define DATA_LVL 1,_FILE_,_LINE_/*数据级*/4#define DEBUG_LVL0 2,_FILE_,_LINE_ /*常用调试*/4#define DEBUG_LVL1 3,_FILE_,_LINE_ /*运行监控-大量信息*/4
42、#define DEBUG_TEST 4,_FILE_,_LINE_ /*详细调试-大量信息*/xx前置分行培训41系统日志系统日志日志存储日志存储 PBPB系统的应用日志,按文件的方式存储,存放文件的目录放在系统的应用日志,按文件的方式存储,存放文件的目录放在loglog目录下。目录下。4 交换引擎部分产生的日志文件:按外部交易码生成不同的日志文件,同时把文件按渠道存储在不同的目录中。4 TCP/IP网关产生的日志文件:存放在对应网关渠道目录下。4 TUXEDO网关产生的日志:存放在LOG目录下,以pbmidgw_渠道号命名。进行应用调试时,可按系统运行的先后次序查找日志,首先确定交易的进行
43、应用调试时,可按系统运行的先后次序查找日志,首先确定交易的发起渠道、网关类型、外部交易码。根据这些信息先查看网关日志,再发起渠道、网关类型、外部交易码。根据这些信息先查看网关日志,再查看交换引擎产生的日志,交易流程过程中如果要到服务方,还需要查查看交换引擎产生的日志,交易流程过程中如果要到服务方,还需要查看服务网关的日志,这样可以跟踪系统的执行,发现程序看服务网关的日志,这样可以跟踪系统的执行,发现程序BUGBUG。4 例如:要查看柜面系统发起的交易日志,柜面系统的渠道号110,假设外部交易码是0204,那么首先可以查看$HOME/log/pbmidgw_110.log查看智能网关是否收到请求
44、,然后查找$HOME/log/110/0204.log查看交换引擎运行交易流程时产生的交易日志。xx前置分行培训42系统日志系统日志日志格式日志格式 日志内容按行存储,普通格式如下:格式头日志内容按行存储,普通格式如下:格式头-格式内容。格式头由三部份组成:进格式内容。格式头由三部份组成:进程号程号|时分秒时分秒.毫秒毫秒|原程序名词:程序行数,格式内容由应用输出,格式类似原程序名词:程序行数,格式内容由应用输出,格式类似printf printf 4 例如:16355962|140031.444|PKG_sopunpack.c:231-10len 1nameEndFlagData304 下发
45、线是日志头,红色字体部分是日志内容。对应数据交换引擎的日志格式说明如下:对应数据交换引擎的日志格式说明如下:4 交易开始:16355962|140031.427|pbmain.c:342-=Tran 16355962|140031.427|pbmain.c:342-=Tran Begin=810810663231418017Begin=8108106632314180174 交易结束:16355962|140031.576|pbmain.c:669-=Tran 16355962|140031.576|pbmain.c:669-=Tran End=PBTRANusertime159.39400E
46、nd=PBTRANusertime159.394004 流程每步原子交易开始:8765718|140111.201|pbflowctl.c:991-Tran000100 8765718|140111.201|pbflowctl.c:991-Tran000100 Step2_Data_Unpack AtomFunc Begin!ParaO|R001Step2_Data_Unpack AtomFunc Begin!ParaO|R0014 原子交易执行结束:8765718|140111.204|pbflowctl.c:1008-Flow Step2 erc=0 8765718|140111.204|
47、pbflowctl.c:1008-Flow Step2 erc=0 Data_Unpack AtomFuncEnd!UseTime0.002695Data_Unpack AtomFuncEnd!UseTime0.002695xx前置分行培训43系统冲正系统冲正架构架构 为保证为保证PBPB系统与各渠道的流水保持一致,系统与各渠道的流水保持一致,PBPB提供可配置的冲正流程。它提供可配置的冲正流程。它完成冲正数据的组织并发送到冲正系统,同时记载冲正流水,为冲正流完成冲正数据的组织并发送到冲正系统,同时记载冲正流水,为冲正流程收集数据,并控制冲正次数程收集数据,并控制冲正次数 xx前置分行培训44
48、系统冲正系统冲正功能及技术特点功能及技术特点 冲正功能冲正功能4 当交易出现异常状态时,交易配置异常处理流程,把交易关键信息存储到数据库系统。4 系统定时服务器定时启动冲正控制进程,冲正控制进程从数据库中获取需要进行冲正的交易的关键信息,对冲正请求进行分析,并根据冲正策略组织冲正请求报文发送到交换引擎,交换引擎根据冲正请求启动相应定制冲正流程,进行冲正处理,保证系统交易的完整性。技术特点技术特点4 冲正流程可配置冲正流程可配置:冲正的最终执行提交给交换引擎完成,使得冲正的流程完全可配置,增强了其灵活性 4 基于时间的冲正策略基于时间的冲正策略:对于待冲正的交易,系统进行多次冲正,为了确保系统冲正成功,系统采用冲正延迟技术,以避免不必要的冲正。xx前置分行培训45问题与解答问题与解答Q&A