正文
随着SOA的兴起,出现了总线型架构,它是目前国内银行中使用最多、最广泛的一种应用集成架构模式。
在总线型架构中,银行的主要应用都通过总线连接和交互,总线不处理或很少处理银行业务逻辑,它主要负责应用之间的互联互通等功能,即中介代理。
换句话说,
总线型架构就是在渠道系统与核心、及外围系统间建立一座桥梁
。各系统的接口都注册发布到ESB总线上,由总线发布统一的、标准的接口,不同应用只需要按照总线的规范与总线进行互联。
因此对服务使用者而言,无需关心服务提供者是基于什么开发技术或平台提供的服务,不仅避免了因服务提供者接口的变化而需要同步修改此服务调用者的资源,而且也降低了系统间耦合,更方便、高效地实现了对新系统的集成,为服务负载均衡、服务管控提供了更专业的能力。
从而简化了银行信息系统的复杂性,提高了系统架构的灵活性,降低了行内信息共享的成本。但随着系统功能的追加,总线程序逐渐成为一个复杂的庞然大物,导致存在隐性风险。
例如,逻辑耦合严重,代码难以理解,开发人员职责不清,系统部署困难,回归测试、总线的扩容升级、或是在网络设备上的资源投入成本巨大,以及ESB这种“中心化”服务可能带来灾难性的雪崩效应。
加上互联网时代的海量用户与数据,对系统可扩展、高并发及业务响应速度等方面都提出了更高的要求。所以,为了进一步提高银行整体科技能力,需要通过适当的分布式架构转型,来降低开发和运维的成本,有效的实现业务创新和技术变革。
分布式架构是利用网络计算机设备,将计算任务和数据分解,充分利用各计算机的计算能力,彼此协调、共同完成一项业务功能的技术架构。
在2016年,人行发布了《金融业信息化“十三五”发展规划》,明确提出“以安全、可靠、高效、弹性为重点目标实施架构转型、探索分布式架构和成熟开源技术应用,逐步减少或摆脱对单一技术产品的依赖”。
所以无论从技术发展还是监管要求来看,
银行核心系统朝着分布式架构、云计算方向发展已是必然趋势
。
如果将此前的银行系统比作煮鸡蛋,那蛋壳是渠道系统(如营业厅),蛋清是前置服务(如人行前置),蛋黄就是银行核心系统。
那现在银行IT系统采用了分布式架构,从煮鸡蛋变成了摊鸡蛋饼,底座鸡蛋饼的接触面更大了,里面可以掺着各种各样的蔬菜、各种各样的佐料。
就如同银行不能再像以前一样,保守地将技术应用限制在自己的体内,需要逐步从封闭走向开放。
所以为突破对单一资源依赖、促进分布式系统发展、避免单点故障提高可用性、提高复用性等方面原因。在应用集成的过程中,核心和基础组建被抽取出来作为单独的系统对外提供服务,形成API平台。
银行通过API快速开放核心能力,并对API提供安全运行和高效管理的成熟软件,通过API包装成符合互联网模式的产品或服务,积极输出给自身的业务场景、或合作伙伴,实现共赢,加快银行数字化转型的速度。
API平台对传统银行互联网化可分为三大能力,分别是服务访问、管理组织和运维管控。
服务访问用于提供稳定高效且可线性扩展的服务能力,可细分为协议转换、认证鉴权、服务控制;管理组织包括API的发布和管理、服务授权与消费;运维管控具有多样的运维管理工具,包括日志监控、平台配置等。
构建API平台是一项颇具挑战性的任务,受制于过去银行内部系统间报文结构的惯性,业务和技术部门的分隔也是巨大障碍。国内的先行者,有浦发银行的API开放平台和招商银行的企业开放平台,可以通过官网了解到。
随着银行业信息化的快速发展,各银行都认识到云平台对银行架构转型的重要性,纷纷大力建设云平台。就来说说能帮助银行实现行内系统之间、与合作伙伴或第三方系统间服务互通的CSB。
云服务总线 CSB(Cloud Service Bus)提供平台化的应用集成和服务开放能力,通过统一的服务管理,可以适配多种常见服务协议。
CBS支持跨环境服务互通,主要用于专有云、混合云
。
CSB可以把企业内外应用提供的服务发布成API,供消费方订阅调用,并提供审批授权、服务管控和计量监控等能力。不仅是内部服务开放到外部,还可以是内到内、内到外、外到内、外到外的灵活开放模式。
上图来源于阿里云,这块还不太了解,就不再展开,感兴趣的朋友可以自行深入。接下来进入第二部分~
不同的应用场景选用不同的集成技术,下面就从系统间集成需求的角度来对系统集成技术进行分类,好让大家对集成技术有更为深入的认识和思考。
应用功能交互是指系统间互相调用对方提供的功能或服务
;数据交互是指系统间以获取对方数据为目的的交互或数据传输,又可细分为轻量、批量(大量)。对联机/实时查询交易来说,也作为轻量的数据交互类型选择合适的集成技术。
关于集成技术的简述如下:
-
WebService(SOAP/HTTP)
使用于快速与ESB平台对接,是连接异构系统或语言的首选协议。它不依赖于语言和平台,便可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互,多用于同步通信模式;
-
JMS
是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持;