新一代贷记卡P8发卡组件交易一致性事中处理方法的研究与实现毕业论文.docx
《新一代贷记卡P8发卡组件交易一致性事中处理方法的研究与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《新一代贷记卡P8发卡组件交易一致性事中处理方法的研究与实现毕业论文.docx(20页珍藏版)》请在冰豆网上搜索。
新一代贷记卡P8发卡组件交易一致性事中处理方法的研究与实现毕业论文
图书分类号:
密级:
毕业设计(论文)
题目:
新一代贷记卡P8发卡组件交易一致性(事中)处理方法的研究与实现
学生姓名
班级
学院名称
专业名称
指导教师
学位论文原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标注。
本人完全意识到本声明的法律结果由本人承担。
论文作者签名:
日期:
年 月 日
学位论文版权协议书
本人完全了解关于收集、保存、使用学位论文的规定,即:
本校学生在学习期间所完成的学位论文的知识产权归所拥有。
有权保留并向国家有关部门或机构送交学位论文的纸本复印件和电子文档拷贝,允许论文被查阅和借阅。
可以公布学位论文的全部或部分内容,可以将本学位论文的全部或部分内容提交至各类数据库进行发布和检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
论文作者签名:
导师签名:
日期:
年 月 日日期:
年 月 日
新一代贷记卡P8发卡组件交易一致性(事中)处理方法
的研究与实现
摘要
交易一致性是指,根据业务流程建模,跨组件的多个业务流程(例如同一个任务中的多个步骤)必须确保全部成功或者全部失败,而不允许出现部分成功部分失败的情况。
那么,这些流程具有业务(交易)一致性。
交易一致性的事中处理指的是当交易不一致场景发生后,能够第一时间通过自动及手动方法纠正不一致信息,保证交易前后一致。
交易一致性(事中)处理的关注重点包括:
由于技术原因导致的交易不一致;保证交易一致性的自动异常处理的技术设计能力;关注保证交易一致性的人工异常处理的业务设计能力。
交易一致性(事中)处理重点关注涉及多个组件、通过网络通讯方式调用的同步交易。
对于组件内部的一致性、以及业务异步的交易一致性保证方法不在本文做详细探讨。
本文对发卡P8组件中存在的交易一致性异常场景及处理方法进行分析介绍。
并以典型交易为例,介绍发卡P8组件授权类交易交易一致性处理。
最后对一年来的工作进行总结与展望。
关键词:
交易一致性事中处理冲正
目录
1绪论2
1.1研究背景2
1.2研究意义2
1.3研究内容3
1.4论文结构3
2交易一致性概述5
2.1交易一致性介绍5
2.1.1交易一致性的概念5
2.1.2交易中服务调用的分类5
2.1.3保证交易一致性的三种方式6
2.2交易不一致现象及成因分析6
2.3交易一致性场景处理分析7
2.3.1冲正中调用方/被调方能力要求7
2.3.2冲正场景下发现点处理方法分析8
3贷记卡交易一致性场景分析及处理手段9
3.1外部系统发起对P8系统的冲正交易9
3.1.1场景描述9
3.1.2处理方式11
3.2P8系统发起对P6系统的冲正交易12
3.2.1场景描述12
3.2.2处理方式13
3.3组合冲正交易15
3.3.1场景描述15
3.3.2处理方式17
4总结与展望18
1绪论
1.1研究背景
我行信用卡系统始建于2001年,以CARDLINK系统为核心构建了发卡体系,实现了进件、发卡、授权、客服以及国内外收单等信用卡业务功能。
随后我行推出了“以客户为中心”的服务理念,发行了双币种贷记卡、商务卡、龙卡汽车卡、东航龙卡、金融IC卡等,实现了龙卡信用卡系列产品的差异化、个性化,同时积极开发特色业务功能,包括国内外消费密码可选、分期付款、信用卡代收付等。
我行为了支持发卡量和交易量的逐渐增长,信用卡核心业务系统从功能和性能两方面进行过多次优化改造,包括授权交易7*24小时优化、账户资料和卡资料主档拆分、批量代收付业务资金自动清算等,打造了一个业务功能丰富、客户体验良好、技术先进、安全稳定的系统。
新一代核心系统建设是中国建设银行党委和董事会面对2008年以来异常复杂的经营形势,为加大改革创新力度、加快“综合性、多功能、集约化”战略转型而推进的重大信息技术工程项目。
新一代核心系统建设以企业级视野为出发点,以“优化、重构”为主线,通过建立以支持引领、自主研发和安全运营为核心的IT能力,建立起保障业务创新、流程再造、技术革新的长效机制,满足全行未来10-15年业务快速发展要求,助力实现“国内最佳、国际一流”商业银行的宏伟战略愿景。
新一代核心系统建设自2010年12月开始筹划,经过一年的企业级业务(流程、数据、产品和用户体验)建模、IT架构设计以及实施路线图编制等实施准备,于2012年正式进入实施阶段,路线图将整体实施工作分为三个阶段。
一期工作2012年3月启动,2013年9月已成功投产上线。
二期工作将于2014年10月、2015年5月分两次集中释放业务功能。
三期初步定于2016年年中完成。
新一代的实施过程,是建设银行新一代业务能力的逐步释放过程。
一次设计、分阶段释放。
目前,新一代核心系统建设工作正按计划、稳步有序推进。
1.2研究意义
P8在新一代七层架构中,与P6/P7一样处于产品服务层。
基于P8的应用组件所提供的联机服务注册发布在应用集成平台(P4)上。
其他平台都通过P4平台调用P8平台的服务,当存在组合点在P8的组合服务时,P8也通过P4平台调用其他平台(P6/P7)发布在P4上的服务。
发卡P8组件按照承载的业务功能,内部划分为三个相对独立的功能组件,分别是:
交易组合服务、客户服务、信息报告。
其中交易组合服务:
主要承担现金类的交易组合功能,例如还款和取现,由于涉及账务交易的组合,需要配套具备相关的交易一致性控制功能,并具备消息推送的能力。
日终还需要生成清算文件,上送P6发卡进行核心账务处理。
交易一致性是指为了完成一笔完整的联机交易,在行内各组件间发生服务调用,这些服务必须确保一起成功执行或者一起失败。
保证交易一致性是贷记卡P8发卡组件的一项重要功能,结合一年来参与的新一代三期贷记卡项目,本文对新一代贷记卡P8发卡组件交易一致性(事中)处理方法进行研究探讨。
1.3研究内容
保证交易一致性是贷记卡P8发卡组件的一项重要功能,本文对新一代贷记卡P8发卡组件交易一致性(事中)处理方法进行研究探讨。
事中一致性保证的要求:
1、当交易不一致场景发生后,能够第一时间通过自动及手动方法纠正不一致信息,保证交易前后一致。
2、提供自动保证方法,排除大部分偶发的不一致情况,减少手工处理工作量,时效性高。
3、提供手工处理方法,对自动方法进行补充,便于使用者手工查询交易目前状态,并根据规则进行手工处理。
1.4论文结构
本论文共分为四章。
第一章,绪论(即本章)。
介绍论文的研究背景、研究意义、研究内容以及论文的组织结构。
第二章,交易一致性概述。
介绍交易一致性的概念,交易不一致现象及成因分析,对交易不一致场景处理方法进行分析。
第三章,分析介绍发卡P8组件中存在的交易一致性异常场景。
包括外部系统发起对P8系统的冲正交易场景、P8系统发起对P6系统的冲正交易场景及组合冲正交易场景。
对异常场景的处理方法进行分析,介绍发卡P8组件授权类交易交易一致性处理。
第四章,总结与展望。
对一年以来的工作进行总结和展望。
2交易一致性概述
2.1交易一致性介绍
2.1.1交易一致性的概念
根据业务流程建模,跨组件的多个业务流程(例如同一个任务中的多个步骤)必须确保全部成功或者全部失败,而不允许出现部分成功部分失败的情况。
那么,这些流程具有业务(交易)一致性。
交易一致性的事中处理指的是当交易不一致场景发生后,能够第一时间通过自动及手动方法纠正不一致信息,保证交易前后一致。
2.1.2交易中服务调用的分类
交易不一致的根本原因是由于交易中出现了多个服务的相互调用,并且这些服务没有一次性确认,从而导致部分成功部分失败的情况。
交易中的服务调用可以分为以下三类:
1、组件间调用
•服务由组件提供,因此服务的调用也由组件自己负责完成(通过P4的代理模式或寻址模式)
•在这种情况下,交易一致性由组件负责保证
•本文主要针对此种调用方式进行分析
•同一平台实例内的组件可以通过构件方式相互调用,这种情况下的交易一致性由平台自身保证
2、平台间调用
•由平台提供统一的调用处理机制实现跨组件的服务调用,例如:
P6平台与CCBS间的调用
•在这种情况下,交易一致性由平台负责保证,组件只是调用平台提供的统一接口
3、P4整合模式下的调用
•整个交易服务的组合与调度由P4控制,各组件的服务不直接相互调用
•在这种情况下,交易一致性由P4负责保证
2.1.3保证交易一致性的三种方式
1、一次性确认
•一个交易的多个服务或者构件对于数据库的更新进行一次性确认
•这种方法可以从根本上保证交易的一致性
•对于同一平台实例内组件间相互调用的交易,应当采用此种方法
2、事中一致性保证
•当交易不一致场景发生后,能够第一时间通过自动及手动方法纠正不一致信息,保证交易前后一致
•提供自动保证方法,排除大部分偶发的不一致情况,减少手工处理工作量,时效性高
•提供手工处理方法,对自动方法进行补充,便于使用者手工查询交易目前状态,并根据规则进行手工处理
3、事后一致性核对
•通过事后核对的方法,发现事中交易不一致的情况,并进行调整
•在事中一致性保证不能完全确保交易一致性的情况下,必须进行事后一致性核对
2.2交易不一致现象及成因分析
联机交易有超时时间限制,调用方不能无限制等待被调方处理结果;因此在返回前端状态时,系统内部可能还存在信息不一致节点。
1、后端节点无响应,前端节点超时后返回超时信息
•网络故障导致发送报文或返回报文丢失。
•系统无响应,处理报文前或处理报文时系统故障。
2、后端节点明确报错
•处理报文前或处理报文时系统故障。
2.3交易一致性场景处理分析
根据《CCB-NIS-TG-AA-应用平台联机交易接口报文规范》,响应报文中“服务响应状态字段”SYS_TX_STATUS用于描述服务请求处理的结果。
场景
SYS_TX_STATUS
意义
正交易
响应
00
交易成功
01
交易失败,后端不需冲正或后端已经完成冲正动作,前端节点不需再向其发起冲正
02
交易状态不明,后端未能完成冲正/重发动作,需要统一冲正(自动/人工);后续需要传递该冲正/重发动作
03
交易疑似成功,说明后端可能出现不一致异常场景,后端会尽力通过重发手段来使交易成功,不需前端再重发
04
交易疑似失败,说明后端可能出现不一致异常场景,后端会尽力通过冲正手段来使交易失败,不需前端再冲正
冲正/重发交易响应
00
后端已经完成冲正/重发
02
后端未能完成冲正/重发,需要再次冲正/重发
2.3.1
冲正中调用方/被调方能力要求
1、A调用B时,B为被调方
B应该提供正交易及冲正交易能力,能够接收并处理A发起的冲正请求。
2、B调用C时,B为调用方
B应该具备两个能力:
(1)识别异常场景能力:
能够识别出超时、错误、C返回02等异常场景,作为后续处理依据;
(2)根据异常场景正确处理能力:
如果B认为自己可保证一致性,则发起一致性动作(同步或异步冲正等),并根据动作结果返回A(01或04状态);如果B认为自己不能保证一致性,则返回02状态给A,由调用方来进行一致性保证,如果A仍不能保证,则继续向发起方向传递02状态,直到有保证一致性设计节点。
2.3.2
冲正场景下发现点处理方法分析
对于B而言:
1、处理方法1:
同步冲正
B发现调用C异常后,会进行同步冲正,若同步冲正成功,则认为交易已经处理为失败,返回A节点状态01。
A收到B的反馈后,做失败处理。
2、处理方法2:
异步冲正
B发现调用C异常后,同步冲正失败或者不进行同步冲正,回退本地交易,将异常交易置于待冲正队列,后续进行异步冲正,然后返回A节点状态04。
A收到04反馈后,置本地交易失败,并了解后端已经有节点进行一致性保证,不再进行冲正,依次返回前端04。
3、处理方法3:
不做冲正处理
B调用C发现异常后,不进行任何冲正处理,将本地置为失败,将基于全局流水号的交易流水状态置为待冲正,返回A节点状态02。
A收到02后,判断是否进行一致性保证。
3贷记卡交易一致性场景分析及处理手段
3.1外部系统发起对P8系统的冲正交易
3.1.1场景描述
以预授权完成冲正流程为例,客户使用POS机执行预授权完成功能,未收到预授权完成应答,POS发送预授权完成冲正报文,P4系统调用P8预授权完成冲正接口(预授权完成交易线P1->P4(寻址模式)->P8发卡->P4(代理)->P6发卡A02818354密码验证)。
(1)信用卡返回报文中的交易状态为02时,前端可能会发起冲正。
1)冲正返回交易状态为00,冲正成功。
2)冲正返回交易状态为02,冲正状态不确定。
3)冲正无响应。
(2)前端调用信用卡服务无响应时,前端可能会发起冲正。
1)冲正返回交易状态为00,冲正成功。
2)冲正返回交易状态为02,冲正状态不确定。
3)冲正无响应。
3.1.2处理方式
该场景描述符合交易一致性要求中的发起点冲正的场景,目前确认此种模式下使用同步冲正的方式。
发起点冲正是指发现问题节点将全局冲正信息发回交易发起节点,由发起端统一发起冲正,依次反向冲正正交易涉及的各个环节,如下图。
同步冲正是指发现点在发现后端异常后(包括超时、明确报错)同步发起一笔冲正,根据冲正结果返回前端信息。
上述1,2的两种情况下,如果原报文冲正成功,那么服务端会返回交易状态为00的响应报文,表示冲正成功;如果服务端在执行冲正的过程中,又发生了不确定异常,那么需要返回交易状态为02的响应报文,示意前端冲正交易状态不确定,或者服务端又一次超时无响应,此时前端可能需要再次发起自动或手动冲正,服务端也需要公布查询交易,查询该交易的交易状态,究竟是成功还是失败。
当前端第一次发起冲正失败后(后端无响应或者返回交易状态02),前端就涉及到了事后交易一致性的保证问题,事后交易一致性主要包括3部分:
1、人工查询设计:
对于重要交易,需要设计对应的人工查询交易,可以人工查询确认交易结果,适用于P1、P2等。
2、人工冲正设计:
对于重要交易,需要设计对应的人工冲正交易,支持柜员手工发起冲正,适用于P2。
3、业务规则约束:
网点柜员应该有相应的规则约束,状态不明确或失败交易先查,再根据规则进行冲正,明确交易已失败才可重做交易。
3.2P8系统发起对P6系统的冲正交易
3.2.1场景描述
以预授权交易流程为例,客户使用POS机执行预授权功能,P4系统调用P8预授权接口,P8调用P6系统调额交易接口,未收到P6调额交易接口应答,P8调用P6系统调额冲正交易(预授权交易线P1->P4(寻址模式)->P8发卡->P4(代理)->P6发卡A02818300执行授权)。
1)冲正交易返回的响应报文中交易状态为00,表示冲正成功,此时不需要进行人工干预,该正交易失败,保证了交易一致性。
2)冲正交易返回的响应报文中交易状态为02,表示冲正状态不确定。
3)冲正交易无响应。
3.2.2处理方式
该场景描述属于发现问题的节点进行冲正操作。
该场景下,使用异步冲正的模式。
发现点冲正是指某节点发现异常后,按照规则将交易本地处理为失败,记录并发起一笔冲正交易进行冲正,可采用同步或异步冲正方式,如下图。
异步冲正是指发现点在发现后端异常后(包括超时、明确报错)直接返回前端错误,然后自己异步有规律发起自动冲正(一次或多次)。
使用异步冲正的原因是:
(1)单一服务故障冲正请求过多时,可以起到隔离保护作用,不会对正交易产生大范围影响;
(2)异步可以提高一些性能,通过参数配置可以多次重试,提高成功率;
(3)同步调用,在P8调用P6时,如果P6出现问题,不能持续冲正,会造成状态的不一致;
正交易无响应时,发起异步的原报文冲正,此时,P8发卡立即返回前端,响应报文中交易状态为04,表示后端可能出现不一致异常场景,后端会尽力通过冲正手段来使交易失败,不需前端再冲正。
P8发卡组件处理异步冲正的具体流程是:
1.在每次发起外呼时生成对应外呼的冲正任务,压入待冲正堆栈
2.发起外呼
3.交易异常结束,新建异步冲正任务
4.交易正常结束,清空待冲正堆栈
5.设置定时任务,定时扫描数据库冲正表,找到其中状态为待冲正的记录后,获取冲正表中存储的冲正请求报文(或者bean对象),将数据库中记录的冲正状态更新为冲正中
6.冲正交易执行成功后,将数据库中的记录状态修改为冲正成功;如果冲正失败,则将记录状态修改为冲正失败
3.3组合冲正交易
3.3.1场景描述
以预授权冲正流程为例,客户使用POS机执行预授权功能,未收到预授权应答,POS发送预授权冲正报文,P4系统调用P8预授权冲正接口,同时P8冲正交易逻辑调用P6冲正交易接口。
该场景是由前端发起冲正,并且还涉及到P8发卡对P6的冲正,使用同步冲P8+同步冲P6的模式来进行冲正。
1)请求端发起的正交易没有收到P8发卡的响应时,由请求端发起原报文冲正请求,P8发卡收到冲正请求后,进行同步冲正,执行冲正逻辑冲本地后(如果存在),需要冲P6,向P6发起同步的原报文冲正请求,P6冲正返回的响应报文交易状态为00,表示冲正成功,P8发卡执行完冲正逻辑后,返回给请求端的响应报文交易状态为00,表示冲正成功,前端不需要再次冲正。
2)请求端发起的正交易没有收到P8发卡的响应时,由请求端发起原报文冲正请求,P8发卡收到冲正请求后,进行同步冲正,执行冲正逻辑,需要冲P6,向P6发起同步的原报文冲正请求,P6冲正返回的响应报文交易状态为02。
3)请求端发起的正交易没有收到P8发卡的响应时,由请求端发起原报文冲正请求,P8发卡收到冲正请求后,进行同步冲正,执行冲正逻辑,需要冲P6,向P6发起同步的原报文冲正请求,P6无响应。
3.3.2处理方式
针对以上的情况2)和3),即当前端发起原报文冲正请求,P8发卡同步执行冲正逻辑,向P6发起原报文冲正时,得到的P6响应报文的交易状态为02,或者无响应时返回前端04,表示由P8发卡来保证交易一致性,不需要前端再次冲正。
P8发卡需要当第一次同步冲P6失败时,转成异步冲P6的方式,然后返回前端04。
P8发卡组件处理原报文冲正时,会通过全局事件跟踪号查询正交易外呼关系流水,调用原报文冲正。
4总结与展望
时间匆匆而逝,来到开发一处工作已经一年了。
在各位导师和老员工的帮助下,我学习到了很多知识,也锻炼了自己各方面的能力。
在工作之前,作为一名计算机专业的毕业生,对银行业务、企业级项目都只有一些概念上的认识。
所以在此期间,我首先深入学习了信用卡的相关业务知识。
之后通过学习新一代系统分析与设计工艺,掌握了新一代项目应用分析方法。
通过分析信用卡授权服务的业务功能、业务规则及业务流程,理解业务与组件设计的对接,为应用组件的设计与开发打下了良好的基础。
在这段时间,我参与了新一代贷记卡应用分析、组件设计、开发测试等工作。
这些都对我之后的工作有很大帮助,使我能够更好地了解在项目周期的各个阶段中业务需求、代码开发和测试的工作流程。
在这些工作中,我不仅锻炼了自己的需求分析、细化需求、编码能力等专业技能,更锻炼了自己与其他开发人员、业务人员交流沟通的能力。
参与建行新一代系统的建设,是一个很大的机遇和挑战。
我很荣幸能够获得这个难得的学习计划,轮岗更为我们提供了一个更广阔的学习环境。
作为刚工作一年的新员工,仍然需要继续努力,加深对知识和技能的掌握。
首先,继续加强基础理论和基本技能的学习。
加强理论知识的学习和扩展,提高自己的专业能力水平,拓宽知识面,将理论与实践紧密结合,是开发工作顺利开展的基本保障。
其次,通过参与项目加强实践。
实践出真知,实践是检验理论、快速掌握理论、深入理解理论的最好方式。
只有通过参与实践,才能检验自己对理论的理解是否正确,才可以将理论转换为技能,应用到实际工作中,解决工作中遇到的各种现实问题。
最后,要加强与同事的交流和沟通。
开发工作是一项团队工作,各位前辈的知识和经验是很好的榜样。
交流和沟通并不仅局限于学习知识方面,项目开发过程中,环境等往往需要跟其他同事进行协调,遇到技术问题时也需要向有经验的同事请教。
这时候,沟通就显得尤为重要。
我非常有幸的加入了一个友好的团队,遇到问题时,很多同事都愿意热情指导,给我帮助,使我更加快速的学习和成长。
希望在之后的工作中能够不断丰富自己的业务知识和专业能力,为新一代建设贡献力量。
致谢
时光飞逝,转眼入职已有一年时间。
一年以来,在领导和同事的指导与帮助下,我顺利完成了从学生到职业人的角色转换,找到了自己的定位,在技术和业务能力上都有了一定的进步与提高。
感谢我的领导朱晓光、周进光、周军,从入职初始就为我们制订了完整的培养计划,让我们参与到新一代的设计、开发和测试工作中去,使我们对信用卡业务和系统都有了更多的认识和理解。
感谢我的导师黄宋章,为我的论文选题和论文方向给予了详细认真的指导。
在我工作中碰到问题时,导师也耐心而及时地为我解答,让我受益良多,少走了很多弯路。
感谢P8发卡授权组组长钟锋,一直以来在信用卡系统上给我指导和帮助,在他的带领和指导下我正在一步步成长,同时他严谨认真的工作态度,精益求精的工作作风,一直在影响着我。
感谢P8发卡授权组的同事,李承文、张永康、李聪、于晨晖、钱陆。
他们在我入职的一年里,在各方面都给予过我很多帮助。
在与他们的共同工作中,学习很多,收获很多,进步很多。
感谢信用卡部门所有的领导和同事,感谢你们长期以来的关心和帮助。
最后,衷心感谢百忙之中抽出宝贵时间来参加论文审阅和答辩的各位领导和评委!
谢谢大家!
指导期论文开题报告登记表
学员姓名
所在处室
岗位
指导导师姓名
助教(辅导员)清单
论文(设计)题目
新一代贷记卡P8发卡组件交易一致性(事中)处理方法的研究与实现
一、选题背景及内容:
我行信用卡系统始建于2001年,以CARDLINK系统为核心构建了发卡体系,实现了进件、发卡、授权、客服以及国内外收单等信用卡业务功能。
随后我行推出了“以客户为中心”的服务理念,发行了双币种贷记卡、商务卡、龙卡汽车卡、东航龙卡、金融IC卡等,实现了龙卡信用卡系列产品的差异化、个性化,同时积极开发特色业务功能,包括国内外消费密码可选、分期付款、信用卡代收付等。
我行为了支持发卡量和交易量的逐渐增长,信用卡核心业务系统从功能和性能两方面进行过多次优化改造,包括授权交易7*24小时优化、账户资料和卡资料主档拆分、批量代收付业务资金自动清算等,打造了一个业务功能丰富、客户体验良好、技术先进、安全稳定的系统。
新一代核心系统建设是中国建设银行党委和董事会面对2008年以来异常复杂的经营形势,为加大改革创新力度、加快“综合性、多功能、集约化”战略转型而推进的重大信息技术工程项目。
新一代核心系统建设以企业级视野为出发点,以“优化、重构”为主线,通过建立以支持引领、自主研发和安全运营为核心的IT能力,建立起保障业务创新、流程再造、技术革新的长效机制,满足全行未来10-15年业务快速发展要求,助力实现“国