时间:2023-08-13|浏览:175
撰文:谷燕西,美国力研咨询公司创始人、区块链和加密数字资产行业的研究和从业者
互联网技术和区块链技术的应用发展正在使得未来的银行服务能够以更广泛的方式,由不同类型的提供者提供。银行服务会像通讯服务一样被镶嵌在很多的应用终端。这样的服务会是通过非银行机构,个人,甚至是通过程序自动执行。银行服务的这样的一个演变过程会非常类似于软件编程方法的改进。
软件编程方法的改进经历了几个主要发展阶段。从刚开始时的瀑布式编程方法,发展到后来的面向实体编程方法(Object Oriented Programming, OOP),发展到今天的以服务为主的架构(Service Oriented Architecture, SOA)。在计算机发展的初期,也就是IBM大型机为主的时期,编程方法主要是瀑布性质的。以这种方法编制的软件程序,软件行数巨多,非常难于修复和升级。随着VC++等编程更加灵活的语言出现,编程方法也转向了OOP的编程方法。这样编程方法的特点是把现实中的实体映射到程序中的组件。这些实体的属性和功能同样映射到程序组件当中。当一个新应用开发时,这样程序组件就可以直接被应用。新的应用就可以像Lego积木一样搭建起来。譬如银行组件就可以具有姓名和地址等静态属性,以及吸收存款,提供贷款和提供支付服务的功能。当一个新的商业应用开发时,这样的一个银行组件就可以直接应用到这个新程序当中。由于这些组件是模块化的,因此每个组件的维护和升级都可以在组件之内完成。这样的改变对软件的整体就影响比较小。新的应用因此可以更加快捷地开发出来。
当软件编程进一步发展时,OOP编程方法的局限性开始出现。在软件架构中,经常会只需要一种服务,但具体的服务提供方需要视情形而定,而不能事先就确定好。以贷款服务为例,如果一个个人用户需要贷款,对他的贷款服务可能由一个银行来提供,也可以由他的朋友提供。但是按照OOP的编程方式,贷款服务通常固定为由银行提供。但是在一些具体的应用当中,如果个人用户是向其它个人用户寻求贷款,那么这个银行组件就不适合于在这个新应用当中使用。这样的问题就促使了SOA编程模式的产生。
在基于SOA的软件架构中,体系的搭建是以各种服务为基础。服务的提供者会视具体的情形再确定。譬如贷款服务可以事先确定,贷款服务是软件系统中的一个基础服务。但是这个服务的提供者可以随着应用场景的不同由不同的服务提供方来提供。这样的一个设计就更加灵活,更加能满足现实应用的需求。在当前的软件工程中,SOA的编程方式已经成为主流的编程模式。这样的编程方能够更好地支持以API的方式向外提供服务的软件设计。
随着互联网技术以及区块链技术的应用发展,银行服务也在同银行机构出现松耦合。即银行服务不一定由银行机构来提供,它可以有更多类型的实体提供(见我的文章不需要银行的银行业务),譬如非银行机构,个人用户,甚至是互联网上的一个硬件。在互联网时期,这样的发展趋势已经众所周知。嵌入在社交应用中的支付服务迅速发展。此前只有能够通过银