有新人问我什么是交易,该怎么定义?
是一个程序?
是处理各种数据的一个方法?
是完成输入和输出结果的过程?
是有操作页面的?
是没有操作页面的?
是对应着银行某业务功能?
......
这些的确是银行核心系统中“交易”能表现出的特质,没错也不全对,在不同的角度对它的定义都不一样。有位前辈的回答,觉得总结的非常好,分享给大家:交易是一笔业务完整流程中的某一个环节在计算机处理中的体现。
我们再说说交易的分类。从表现形式上,可以分为有操作页面的交易和没操作页面的交易;从处理方式上,可以分为联机交易和批量交易;从业务类型上,可以分为金融交易和非金融交易。
以处理方式分类为例:
(1)联机交易
联机交易是指银行工作日和非工作日期间,在柜台或由自助设备发起及各渠道接入,处理类型单一且需要响应速度快的交易。这类交易通常涉及前置、ESB、自助设备、渠道等,且都有操作页面,讲究操作页面内容尽量简洁并含义明确,如柜台存取款、atm存取款、网银转账、贷款、余额查询等。
该类交易具有可回滚性、实时性和并发性。
①.可回滚性:交易流程中某一步产生异常,则整个交易回退。若做取款交易,涉及余额查询(可能出现余额不足)及更新、交易流水的生成、账户明细的生成、会计凭证的生成、存款及现金科目总账的登记等,需要一次完成。
②.实时性:交易有生命周期,无论是前端还是后台,都有超时机制等。
③.并发性:同一类甚至同一个交易可同时被多个线程调用,相互间有锁处理机制。
(2)批量交易
批量交易又可以分为日间(联机)批处理业务和联机后批处理业务,主要是为了提高联机交易的响应时间、减少柜员工作量、减少高峰时期资源争夺的交易、及产生总账进行总分核对。
日间(联机)批处理业务,比如中间业务(各种代收付)的入账,回单等等;联机后批处理业务,一般都是在后台在夜间调用一组程序来完成的。如行内行外业务清分清算,定期储蓄到期的自动转存,账户计结息,贷款扣款日自动扣划,总分核对,因统计和管理而需要的生成的报表等。这里提一提批量交易中的对账。
对账的先决条件为上一日的处理已经全部结束,系统需要的是对上一日处理结果的验证,验证的方式是设定一些筛选规则,检查是否有不符合规则的数据,如果有,将其自身及相关数据生成对账差错日志,供运营人员查询及处理,如果对账结果完全无误,则交易通过,进行下一个批量程序(比如生成日增量数据文件,发送给下游系统)。
说完交易的分类,那交易的设计原则又有哪些呢?目前我了解的如下:
1.交易输入字段尽量简化,字段之间的逻辑关系由系统控制,减少操作人员的思考;
2.避免功能重复的交易,一个交易能完成的业务不必分成多个交易;
3.建立合理的权限管理机制,便于一个交易可以由不同用户、不用部门人员操作;
4.交易接口要遵循接口规范,合理的使用数据字典。
不知道大家还有什么有效的设计原则?