信息化 频道

情景导购:人民银行网间互联系统建设

1  引言


    人民银行网间互联综合前置系统就是向商业银行接入本系统提供网络接入渠道,担负着数据格式转换、连接管理、业务流管理、外围调度、外围处理,并把业务数据交后台应用服务系统处理等任务,并实现7*24小时不间断工作,本系统用户是中国人民银行总行、区域分行、省地级中支。

    系统具有如下应用功能:

◆ B/S(HTTP和HTTPS)系统代理
◆ FTP反向代理
◆ Email代理
◆固定格式(XML和非WebServices的SOAP)报文的转发
◆端口转发
◆ WebServices代理

    系统具有如下控制管理功能:

◆ IP访问控制
◆ 访问前置连接数控制
◆ 访问前置连接超时控制
◆ 应用系统访问日志
◆ 系统流量监控
◆ 用户管理
◆ 对外服务端口管理

    其中B/S代理、固定格式报文转发、端口转发的设计实现,采用基于SEDA(Staged Event-Driven Architecture )即阶段事件驱动架构,利用架构能够极大地提高系统的处理能力,其核心思想是把一个请求处理过程分成几个Stag,不同资源消耗的Stag使用不同数量的线程来处理,Stag间使用事件驱动的异步通信模式,下面给出一个SEDA处理模型。
 

 

 
 

    而且每个stag是按如下方式进行处理,即每个stag都有一个线程池来管理控制,如下图所示:

 

    从以上描述,明确了前置系统功能和核心设计思想,下面将重点描述系统是如何被构造。

2 系统构架

系统采用基于J2EE架构,支持当前几乎所有的平台,如Windows系列、Unix、Linux等,系统由于自身不保留大量数据,都采用XML保存系统的基础数据和配置管理数据,系统管理和维护都非常方便,当前系统用在Linux操作系统上,并支持RPM的安装方式,支持多种服务器,如WebLogic、WebSphere和Tomcat等,其结构示意图如下所示:


 

 

     上图展现了系统在结构上是如何设计而成,由于本系统是一个前置系统,其主要的系统功能集中在B/S代理、固定格式报文代理和端口转发代理,而这三部分的实现都是基于SEDA之上,从而较高提升了系统事务处理能力,增强了系统吞吐率。

     前置系统处于商业银行和后台服务之间的一种系统,是商业银行和后台系统的一座桥梁,下面将给出系统在整个网络环境中的拓扑图,如下所示:
 

 

     从此图可以明确,系统所起到的作用和系统需要完成的任务,其作用是实现商业银行和后台系统的桥接,其任务是完成数据转发和控制,为商业银行访问后台提供一个统一的访问端口,从而屏蔽了后台应用系统的相关信息,从而起到了保护后台系统的目的。

3 功能设计&实现

    下面将以系统的B/S代理模块来说明系统的设计与实现,从而进一步了解此系统。我们知道,B/S模式的应用系统采用基于HTTP或HTTPS的协议,商业银行发出HTTP协议请求,后台应用收到后,给出HTTP响应。如果经过前置系统的B/S代理功能来访问后台,该如何实现呢?实现过程大致如下:

◆ 在前置系统配置好后台应用,如后台系统应用名称:app
◆ app系统对应的后台系统IP和端口
◆ 前置系统对外(商业银行)服务端口为 80

    由于商业银行是不能直接访问到后台应用而前置系统的IP对商业银行来说是可视的,那么商业银行就可以通过URL:http://前置IP/app就可以访问到后台的应用。

    配置好应用后,一旦商业银行进行访问,那么前置系统就会在80端口监控到相关连接请求,然后根据上面的配置信息,将商业银行的请求信息转发给后台,然后后台给出相应的响应,并反馈给前置系统,前置系统根据响应信息后,屏蔽后台的一些标记,置换成前置的标记,然后反馈给商业银行,这样就像商业银行表明,此信息是来自于前置系统而不是后台系统。但是这个过程是基于上文提到的SEDA来实现,具体实现如下示意图:
 

 

    把一个http请求分为以下几个处理单元:接受http连接/响应,解析http请求/响应,发送http请求/响应,连接后端的应用服务器和相应前端的商业银行。在每个处理单元使用多线程,用来处理各个阶段的报文,每个处理阶段处理完成后,把请求交给下一个处理单元。分为多个阶段后,避免了网络资源的等待,加快了cpu处理速度和线程切换,提高了系统的性能。

4 系统安全设计


    系统设计的安全遵循《金融业网间互联安全规范》,具体见下面示意图所示的安全保障体系框架:
 

 

 

    除此之外,对前置系统本身还加入了新的安全要素:

◆配置文件加密存储:在前置系统V2.0版本中,前置系统对系统的一些敏感数据譬如用户密码等信息加密保存在文件中,以防止非法用户通过文件来修改或者使用。

◆商业银行控制访问:在前置系统V2.0版本中,前置系统为每个应用加入了访问控制表,当某个应用使用该功能时,前置系统会对商业银行的访问进行控制,前置系统登记过的应用则允许访问前置系统,否则前置系统拒绝访问后台的应用系统。

◆系统用户分为三级superadmin,admin,user三级,super用户可以使用所有的功能并且可以创建新的用户,admin用户可以进行系统管理,而普通用户只能进行系统监控和日志访问。
 

5 总结

    从前置系统的特点上分析得出以下结论:

◆ 系统结构清晰
◆ 可扩展性强
◆ 与银行的具体业务无关
◆ 数据处理能力强
◆ 安全稳定
◆ 方便管理维护

    系统主要创新点:

◆ 采用基于SEDA作为系统事务处理的核心,极大的提高了系统处理事务的能力。
◆ 对多种应用协议进行转发
◆ 同时支持B/S和C/S的应用系统
 

0
相关文章