5.4 支付的技术架构
架构即未来,只有建立在技术架构设计良好的体系上,支付机构才能有美好的未来。如果支付的技术体系在架构上存在问题,那么就没有办法实现高可用性、高安全性、高效率和水平可扩展性。
总结多年来在海内外支付机构主持和参与过的技术架构设计经验,发现基于参考架构的分层架构设计方法,是一个行之有效的支付技术架构设计方法。本节将介绍如何利用分层架构设计的思想方法来构建支付的技术体系架构。
5.4.1 参考架构
所谓参考架构是一个或一组文档,为集成产品和服务形成解决方案而提供的参考性和建议性的架构。参考架构通过分层次,让不同的团队和架构师,分别聚焦自己负责层次的功能抽象和架构设计。
如果认真观察一下就可以发现,互联网技术行业一直采用的就是这种分层次的架构设计思路。例如,大家熟悉的互联网网络协议TCP/IP,就是以ISO OSI的分层次模型为基础发展起来的。大型的集成电路设计其实也是一层一层地分别进行设计,然后集成起来提供计算或者存储的能力。参考架构体现了行业通用的最佳实践,在最佳实践的基础上发展架构设计,可以最大程度地吸收成熟的经验和经过验证的模式。
今天的互联网已经遍布世界,但是在上个世纪的八十年代,不同的计算机网络之间开放互联还是一个战国时代。国际电信联盟和国际标准化组织为了能推动世界范围内的计算机网络开放互联,于1984年公布了ISO/IEC 7498-1标准[1],这个ISO OSI标准为后来的互联网发展奠定了基础。
OSI的七层模型是一种框架性的设计方法。建立七层模型的主要目的是为解决异构网络互联的时候所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开,通过七个层次化的结构模型使不同系统、不同网络之间实现可靠的通讯。从做高层的分布式应用程序到跨越通信介质传输数据的物理实现,共分作七层定义,从上到下逐层依赖[2]:
第七层 应用层:
为了实现不同应用软件之间相互通信而设计的接口,例如HTTP、HTTPS、FTP、SSH、Telnet、SMTP、POP3等。
第六层 表示层:
对接受的数据进行加密、解密、解析等活动。表示层处理流经该结点的数据编码的表示方式问题,以保证一个系统的应用层发出的信息可以被另外一个系统的应用层读出。简而言之,就是把存在于计算机系统的不同格式的数据转化成网络通用的标准表示方式。
第五层 会话层:
通过传输层,即端口,建立数据传输的通路。会话层的主要功能是管理和协调不同主机上各种进程之间的通信或会话,及负责建立、管理和终止应用程序之间的会话。
第四层 传输层:
为上层协议提供端到端的可靠的、透明的数据传输服务,包括处理差错控制和流量控制等问题。
第三层 网络层:
解决如何使数据包通过各结点传送的问题。
第二层 链路层:
数据链路的建立、维护、拆除、指定拓扑结构并提供硬件寻址。
第一层 物理层:
提供传输数据的物理通路,传输数据。
这个开放网络互联的协议,实际上就是定义了一个参考架构,让所有试图连接网络的计算机有一个参考的标准框架。因为参考架构的分层,让每一层都能够聚焦解决一部分问题,实际上也降低了整个体系的复杂性。层和层之间的明确接口定义,也有效地避免了相互之间非必要的干扰。支付技术的架构设计也可以做类似的参考性架构,以此为基础做更详细的分层设计。
5.4.2 支付的参考架构
和上面讨论的ISO OSI开放互联参考架构一样,支付系统的参考架构也把复杂的支付应用分解成支付的前端应用、接入网关、业务应用、通用服务和基础设施五个层次。每个层次分别聚焦在某个特定的方向上,