APP下载

基于Socket通讯ECDS直连转换系统的仿真设计

2015-03-10王莉

湖南工业职业技术学院学报 2015年6期

王莉

(江苏建筑职业技术学院,江苏徐州,221116)



基于Socket通讯ECDS直连转换系统的仿真设计

王莉

(江苏建筑职业技术学院,江苏徐州,221116)

[摘要]本文设计的ECDS直连转换系统主要由业务层和通讯层两个部分组成。其中通讯层采用Socket通讯方式进行报文传输,并根据Socket通讯原理进行系统仿真设计。通过仿真实验结果,我们得出:该系统的业务层电子平台基本运行正常,能够满足城市商业银行现阶段对汇票业务的基本需求。

[关键词]Socket通讯;ECDS直连转换系统;仿真设计

Emulation Design Based on Socket-Communication ECDS Direct -Conversion System

WANG Li
(Jiangsu Jianzhu Institute, Xuzhou221116,Jiangsu)

[Abstract]ECDS direct-Conversion system designed by this paper includes two parts: business part and communication part, while Communication part transfers through socket-communication way, and its system is designed based on socket communication principle. According to the result of emulation experiment, we can draw a conclusion that this electron-level terrace on business part of this system operates normally, and it can satisfy the present basic demand on bank draft business in Commercial Bank.

[Key words]Socket Communication; ECDS direct-conversion System; emulation design

引言

近年来,随着我国金融电子化水平不断提高和金融基础设施的完善,在银行票据业务方面,都不同程度地实现了电子化。特别是在2009年10月28日电子商业汇票系统在全国范围内推广运行,更为整个金融市场带来了巨大宏观上的经济效益,同时也带动了国内金融电子化水平的不断提高。

与此同时,行内系统与人民银行的电子商业汇票系统(ECDS)的连接极为重要。前置机系统(MBFE)位于各个商业银行内部,是商业银行支付指令进出中国国家现代化支付系统(CNAPS)的唯一途径。各个银行在完成行内业务系统与前置机系统(MBFE)的接口开发后,将通过MBFE服务器接入中国国家现代化支付系统(CNAPS)。本文主要从行内主机与前置机系统(MBFE)之间的接口研究入手,设计并开发商业银行电子汇票直连转换系统,以实现与人行ECDS直通式业务连接。

1 Socket通讯方式简介

在金融业迅速发展的今天,由于中间件业务的广泛使用,很多数据需要进行跨平台跨系统传送。由于不同的操作系统其数据的传输格式不同,从而在很大程度上限制了业务量的发展。Socket,作为一种新兴的通讯模式,解决了不同系统间数据的传送问题。

通俗地讲,在网络环境下,两台计算机之间进行通信,它们之间必须具备通讯端口,实际上Socket就是它们之间的接口。网络上的各类应用程序,都要通过这个接口来实现交互。在应用程序开发中对Socket的应用,就像使用文件句柄一样,可以进行读、写操作。通常情况下可以将Socket翻译为套接字,各应用程序一般通过这个“套接字”向网络发出请求或者做出响应。可以把套接字划分为三种不同的类型[1]:

1.1字节流套接字

该类套接字接口,由于在数据报传输过程中,具备顺序发送信包,并无差错传输等特点,已成为TCP/IP中的TCP协议广泛使用的套接字类型。

1.2数据报套接字

在网络环境下,它以独立的数据包进行传输,并不关心数据包的发送顺序和数据的安全性,它只注重是否保存了记录边界。所以在数据传输可靠性要求不高的环境下多使用此接口。

1.3原始数据报套接字

该类套接字在网络环境下,由于来自于底层协议(如IP协议)的接口访问,所以一般客户端用户不能使用,而主要用于新协议的开发等。

在C/S网络环境模式下,程序之间要使用Socket套接字进行连接访问时,需根据客户端程序的连接目标及系统启动的方式,将整个C/S模式环境下的连接过程建立如下[2]:

客户端发出请求:客户端向服务器发出连接请求,首先它要得到目标服务器的套接字地址和连接端口号。然后由客户端的套接字根据其地址向目标服务器发送连接请求。

服务器处于监听:一般服务器在没有接到请求命令时,其服务程序是处于等待状态的,即随时监听来自于网络上的信号。

做出连接确认:当服务器端口在信道上监听有信号连接的请求,其服务程序被激活,通过建立一条新线程,对客户端作出响应。客户端通过确认服务器端套接字发来的信息描述,最后建立连接。

2 ECDS直连转换系统介绍

本文所介绍的“ECDS直连转换系统”,它是由业务层“商业银行电子商业汇票系统”和通讯层接口程序两部分组成。商业银行行内系统的报文如果要与总行的ECDS报文实施数据交换,必须要经过其前置机系统进行数据格式转换。而本文设计的接口程序就实现了行内系统的报文格式的转换等功能,从而达到了与前置机数据直接交换的目的。

2.1系统架构

对于ECDS直连转换系统通讯层的接口设计,其整体架构设计见图1所示。

图1 商业银行电子汇票直连系统总体架构图

人民银行电子汇票系统与商业银行行内系统交互数据的中间载体为队列。对于行内系统发往前置机系统的往包,行内系统按要求自动生成报文号,并以规定的顺序与格式把往包数据,通过商业银行电子汇票系统平台端API函数写入消息队列。在经直连转换系统处理时,该系统再以规定的格式与顺序把往包报文从该队列中读出并设计组包发送。对于从前置机发往行内系统的来包,直连转换系统以约定的格式和顺序将来包内容写入队列,然后再由商业银行的行内程序以规定的格式和顺序将其从队列中(通过API)读出并处理。

直连转换系统通过商业银行电子汇票系统平台端的API接口与ECDS单一前置机系统之间进行数据报的转发。而在商业银行电子汇票直连转换系统内部,通过SOCKET设置其应用程序端口,来实现行内系统与人行电子汇票系统平台之间的数据传输。若商业银行自身有MQ等消息中间件,则图1中的通讯模块可替换为消息中间件的方式实现行内系统与人行电子汇票系统平台之间的数据传输。

2.2系统功能

各商业银行要参与人行电子汇票系统业务信息的交换,必须要经过其前置机系统。因为前置机的各项功能,只适用于前置机到人行电子汇票系统之间的通讯层的报文转换。而行内系统到前置机之间通讯层的报文转换,必须由行内开发。为此我们设计的直连转换系统,除了具备前置机最基础的功能外,还提供了如下功能[3]:报文收发通讯、报文不同格式之间的转换、断点报文的重发机制、不同码制之间的转换、报文加密传输、进程的监控管理和日志管理等功能。

3 系统仿真研究

3.1实验环境选择

对于本文研究的ECDS直连转换系统的验证,由于实际操作的困难,以实验室作为测试环境进行验证。

3.1.1设备选型

(1)系统硬件

系统硬件设备包括数据库服务器、应用服务器、Web服务器、磁盘存储器、网络设备、PC机等,其中我们可以把数据库服务器、应用服务器、Web服务器集成到1台服务器。根据需要,在实验室中要配置2台这样的服务器设备、至少2台PC机。

(2)系统软件

服务器和客户机均采用Windows环境即可,数据库采用Oracle;IE6.0的WEB浏览器采用。

(3)网络环境

实验室内的小型局域网。

3.1.2网络结构

通过对行内系统的网络模拟,2台客户机分别以B/S的形式连接到2台Web服务器上,以便发起查询交易和接收查询回应。如图2所示。

图2 银行电子汇票直连转换系统虚拟网络架构图

其中客户机1和WEB服务器1模拟为本地行内系统,客户机2和WEB服务器2模拟为远程行内系统。分别在两台WEB服务器上安装商业银行电子汇票系统软件和数据库,以及该直连转换系统的接口程序。

客户机通过浏览器的方式访问WEB服务器,两台服务器之间的数据通信通过Socket连接。以下是基于Socket网络接口程序的设计[4-5]。

客户机1通过浏览器访问WEB服务器1,登录本地电子汇票系统,提出业务操作要求,如出票申请,此时处于行内系统1的WEB服务器1则向行内系统2 的WEB服务器2发出连接请求,要求报文传送,待WEB服务器2确认WEB服务器1的身份后建立一条链路。这条链路首先由WEB服务器2启动自身系统的套接字socket(),由于是网络环境,此时还需将该套接字与本地网络的IP地址通过bind()函数进行绑定,以确定WEB服务器2的具体连接位置。待一切就绪后,处于行内系统2的WEB服务器2就在链路的接口处,使用listen()函数进行等待和监听。一旦监听到WEB服务器1有信息发过来,它就可以通过函数accept()来接收。而accept()一旦收到了来自Clinet客户端的请求,它就会自动返回一个与连接该客户端通信的Socket对象。

这时作为请求方的客户机(这时的身份是“WEB服务器1”)在构建通信之前,必须先获得由“WEB服务器2”所提供的IP地址和对应的端口号,随后再调用socket()构建一个新的socket,这就可以进一步调用connect(),从而和“WEB服务器2”建立连接。连接建立后,“WEB服务器1”和“WEB服务器2”之间就可以通过调用函数read()和函数write()来进行“发送与接收”的数据传输。等到数据传送结束,两个WEB服务器就调用close()关闭socket,通话宣告结束。即“WEB服务器2”将响应结果返回给“WEB服务器1”,最终通过客户机1显示出来。

同理,作为异地的行内系统客户机2向WEB服务器1发出服务请求,其连接原理同上。

3.2运行情况及分析

平台端运行界面介绍:

3.2.1系统登录

用户在客户机1打开web浏览器,在地址栏中输入电子商业汇票直连转换系统的网址并确认,进入系统登陆界面,如图3所示。

图3 电子商业汇票系统登录界面

用户在对应的界面之中,先选择所对应的分支机构,接着输入用户代码和口令,再点击登录按钮,系统就会自动检测用户的合法性。如果通过检查,则登入系统,否则自动弹出“非法用户”对话框。

3.2.2用户管理

主要是行内各级操作员对电子商业汇票系统的用户进行操作,如用户信息的增加、修改、删除、密码管理等操作如图4所示。

图4 用户管理界面

3.2.3运行情况及分析

目前整个系统已经过接口连接测试,业务层电子汇票系统基本运行正常。该系统能够满足城市商业银行现阶段对汇票业务的基本需求。

当然,系统在测试过程中也出现了的一些问题,例如(1)用户进行B/S登陆后,进行业务登记模块查询时,如输入金额100,点击确定后,会自动添上小数位,符合格式需求,但是没有查询出数据。后经核实排查发现,确认为查询模块存在问题:即把所有查询均设为了模糊查询。考虑到金额不能模糊,修改查询模块后问题得到解决。(2)系统实现与客户需求出现较大的差异,有些功能模块不完善。例如在实际业务登记信息页面,未用退回日期默认为当天工作日期;需要在发送纸票承兑页面增加导出功能(导出excel)等,将在日后对业务系统加以改进。

4 结论

对于金融信息平台通讯层的报文传输方法有很多,选择使用Socket进行通讯,对比MQ中间件,我们可以看出,MQ中间件适用于较好的网络环境或者是实时通讯环境。而本文对报文的收发处理,既有同步处理模式又有异步处理模式,所以选择Socket通讯较为适合。当然在设计的过程中,还存在着很多不足,希望日后加以完善。最后,当我们欣慰地看到XML(Extensible Markup Language)技术和Socket、中间件等通讯方式广泛应用于银行系统中,我们更加期待银行将借助信息系统这个平台,推出更多快捷、新型的业务种类与服务手段,达到通过管理系统实现经济效益与业务创新长远发展的最终目标。

[参考文献]

[1]李德水.基于SOCKET编程接口的网络通信[J].渭南师范学院学报,2005,(3):69-71.

[2]程庭.应用Socket套接字技术实现文件远程传输[J].河南科学,2002,(10):597-599.

[3]张京,丁肠,盛换伸.银企直联系统接口的设计与实现[J].计算机工程,2007,(9):267-268.

[4]谢安明,邵美珍.使用Socket设计网络通讯程序[J].信息工程大学学报,2001,(3):68-70.

[5]黄久旭,张德纯.网络虚拟实验室系统中TCP/IP协议下Socket通讯[J].现代电子技术,2002,(10):5-7.

[作者简介]王莉(1979-),女,江苏徐州人,江苏建筑职业技术学院讲师、硕士,研究方向:计算机应用。

[收稿日期]2015-9-28

[中图分类号]TM743

[文献标识码]A

[文章编号]1671-5004(2015)06-0001-03