农业金融服务终端系统的设计与实现 Design and Implementation of Farmers Financial Self-Service Terminal System
为更好地为农村地区的客户提供服务,降低柜员核算业务的劳动强度,逐步 树立“以客户为中心”的经营理念,提升网点营销和服务能力,提高金融服务水 平等需求,柜台交易向自助设备分流将成为必然趋势。而作为偏远落后的农村, 受农民对自助设备操作能力和社会治安等因素影响,布放自动取款机、自动存款 机等高端自助设备存在成本高、使用率低、易遭受人为破坏等突出问题。安装价 格便宜、安全可靠、操作简便的自助设备是解决农村金融服务电子化水平低的最 佳途径。于是,适合农村地区使用的农民金融自助服务终端项目被提上日程。 通过在偏远农村地区布放农民特有的农民金融自助服务终端,农民朋友不再 需要跑十几里路到镇上经过漫长的等待到柜台办理业务,而是直接通过农民金融 自助服务终端完成查询、存款、取款、转帐、补登、缴费等业务,这样既节省了 农民朋友的时间,改善了农村金融支付环境,也提高了信用社的服务水平,进一 步增强了农村信用社的市场竞争力,提高了农村信用社的社会形象。 本文以农民金融自助服务终端的设计与实现为背景,对农民金融自助服务终 端需求进行了详细分析,明确了业务需求,采用三层C/S模式架构,对系统软件 在处理流程、功能分配、数据结构、运行等方面进行了设计,最终通过银行中间 业务数据处理平台,利用格式报文转换技术,实现了系统功能。
关键词:农民,农村,金融,三层C/S架构,自助服务
I Abstract Along with growing business of rural credit cooperatives,especially acting grain subsidy, new agricultural insurance and other types of business, the business volume increases rapidly, business outlets of counter pressure facing a severe test; and as the assistant of the progressively withdrawn, rural credit cooperatives in the rural market competitiveness weakening, part of the rural areas due to the remoteness, there have been the rural credit cooperatives service vacuum. For the better for the rural areas to provide services, reduce the labor intensity of teller accounting business, and gradually establish a "customer-centric" business philosophy, promotion network marketing and service capacity, improve the level of financial services needs, over-the-counter trading to shunt will become the inevitable trend of self-service equipment. But the rural credit cooperative service with petty cash transactions, the bank self-service equipment can not meet the petty cash transactions, and farmers on the bank self-service equipment operating ability. In order to solve these problems, suitable for use in rural areas farmers financial self-service terminal project has been put on the agenda. In remote rural areas of cloth peculiar farmer farmer financial self-service terminals, farmers no longer need to run ten miles to the town after a long wait to counter business, but directly by farmer financial self-service terminal to complete inquiry, deposit, withdrawal, transfer, board, such as the payment business, which saves a farmer friends of the time, but also improve the credit level of service, to further enhance the market competitiveness of rural credit cooperatives, improve the social image of rural credit cooperatives. Based on the farmers' financial self-service terminal design and Implementation for the background, first of all on the farmers' financial self-service terminal demand were analyzed in detail, the business needs, and then uses three layer C/S model, the system software in the process, function allocation, data structure, operation and other aspects of the design, the use of bank middle business data processing platform for the realization of system functions, key in the system, data communication system, system implementation of the code were discussed. Key words: farmer,village, finance, three layer C/S architectur,self-service.
第一章 1.1 项目开发背景 近年来,随着农村信用社业务的不断壮大,尤其是代理粮食补贴、新农保等 各类业务后,业务量迅速增加,营业网点柜台的压力面临严峻的考验;并且随着 协理员的逐步撤销,农村信用社在农村的市场竞争力开始弱化,部分农村地区由 于地处偏远,已经出现了农村信用社服务真空。 2009年10月16日,在贵州省召开的全国金融机构空白乡镇金融服务工作推 进会上,中国银行业监督管理委员会主席刘明康要求:“要着力推进金融机构空白 乡镇金融服务创新,力争用三年左右时间实现全国各乡镇基础性金融服务全覆 盖,……通过设立简易营业网点、开展定时定点服务、布设物理机具等灵活方式, 积极提供存、贷、汇以及代收代付等基础性金融服务。”认真贯彻落实银监会指示 精神,创新农村金融服务模式,扩大农村金融服务覆盖面,实现农村金融服务的 可得性,是我们义不容辞的责任。 银行的竞争是服务的竞争,如何更好地为农村地区的客户提供服务是农村信 用社要解决的问题,经过信用社需求管理员的多次深入基层调查研究,认为,商 业银行营业网点个人业务服务模式正逐步从传统的交易核算型向营销服务型转 型,由此大量小额现金交易向自助设备分流将成为必然趋势。而作为偏远落后的 农村,受农民自助设备操作能力和社会治安等因素影响,布放自动取款机(ATM)、 自动存款机(CDM)等高端自助设备存在成本高、使用率低、易遭受人为破坏等突 出问题。安装价格便宜、安全可靠、操作简便的自助设备是解决农村金融服务电 子化水平低的最佳途径。于是,农民金融自助服务终端项目被提上议程。 在银行工作人员有限、目前农民都具备一定的文化的情况下,可以在偏远农 村地区布放农民特有的金融自助设备,并引导广大农民朋友应用先进的科技金融 产品,让农民朋友也能享受方便、快捷的金融服务。农民朋友不再需要跑十几里 路到镇上经过漫长的等待到柜台办理业务,而是直接通过农民金融自助服务终端 完成查询、存款、取款、转帐、补登、缴费等业务,这样既节省了农民朋友的时 间,也提高了信用社的服务水平,进一步增强了农村信用社的市场竞争力,提高 了农村信用社的社会形象。 1.2 国内外研究现状 目前,国内外对农民金融自助服务终端的研究尚少。从应用上看,农民金融 自助服务终端可以看做是特殊的自助金融服务终端。它满足自助金融服务终端的1 第一章 绪 论 查询、存取款、转账、代收代付等功能,不仅仅支持银行卡交易,而且支持存折 交易,支持小额现金交易,选址范围在偏远农村。 自助金融设备的运行除了有可靠的硬件设备外,一套稳定易用的软件系统必 不可少。本文主要探讨农民金融自助服务终端系统物理设备之上的软件系统的设 计与实现的关键技术。 国内外在金融自助服务系统的构建中,采用的架构模式一般分为传统的两层 C/S(Client/Server)结构、即客户端/服务器模式,基于Web的B/S(Browser/Server) 结构、即浏览器/服务器结构。 (一)20世纪90年代初,人们提出了建立分布式系统的C/S ( Clinet/Server ) 模型,即,客户机/服务器模型,该模型能够减少冗余数据的网络传输,使得网络 设备充分发挥主观能动性,对网络运算产生了深远的影响[1]。图 1-1 为C/S的结构 模型。 图1-1 C/S结构模型 1996年,David S.Linthicum给C/S结构模型做出了精辟的定义:C/S结构模型将 一个应用程序分成两个不同的进程,客户端进程和服务器进程,两个进程之间通 过网络连接方式交换信息,可以运行在同一机器上,也可以运行在不同的机器上, 信息交换请求由客户端进程提出,服务器进程负责响应信息及传送回复结果[2]。 在C/S结构模型中,服务器使用数据库管理方式控制管理数据的能力,使系统 的性能相对于集中式系统有了质的飞跃[3],一方面,充分发挥了高档微机组成的数 据库服务器的效率;另一方面,很大的降低了网络的流通量[4]。 但两层C/S结构模型毕竟仅是分布式计算模型的初步应用,随着生产规模的不 断扩大以及应用研究的深入,应用程序日趋复杂,C/S结构模型也暴露出了许多问 题。如:大多只提供静态调用接口进行远程过程调用[5];远程过程调用呈不对称状 态; 虽然存在可以利用的大量服务,但缺乏对服务及服务之间关系的管理等[6]。 基于Client/Server模式,目前银行自助终端系统的架构方式[7]如图 1-2。 2 第一章 绪 论 图1-2 自助终端系统C/S结构 (二)Browser/Server(浏览器/服务器)结构,即B/S模式,它是随着Internet技术的 兴起,对C/S模式应用的扩展。在这种结构下,通过IE浏览器来实现用户工作界面, B/S模型把C/S模型的服务器端进一步深化,分解成一个应用服务器和一个或多个 数据库服务器[8]。 B/S模型如图1-3所示。 图1-3 B/S模型 Browser/Server(浏览器/服务器)模式系统是一种多层结构的系统[9],包括: (l) 第一层,即表示层,由类似于图形用户界面的部分组成; (2) 第二层,即业务层,由应用逻辑和业务逻辑等构成; (3) 第三层,即数据层,由应用程序所需要的数据构成[10]。 在B/S结构下,用户界面可通过浏览器方式实现,其中一部分事务逻辑在表示 层实现,但是主要事务逻辑在数据层实现[11]。 B/S结构计算模式虽然拥有分布性、业务扩展简单、共享性强等优点,但它3 第一章 绪 论 还是有较多的局限性,主要在于,基于Web技术的计算模式需要超文本传输协议和 Web服务器作为传输介质进行协调服务器和客户机之间的通信,这必然在Web服务 器处存在“瓶颈”[12]。 本人认为,一个项目或任何一种方案,都要分析一下它要实现的功能是什么, 它将要面对的最终用户是什么性质。农民金融自助服务终端系统将要实现的是在 自动查询机的基础上实现存、取款、转账等功能,在一个局域网内并且只针对农 民用户的系统,如果使用B/S模式,仍会出现“肥服务器”问题[13],并不能带来什 么优势,反而会增加工作人员的工作量与维护量。而采用两层C/S模式,又会出现 前面分析的问题。根据农民金融自助服务终端项目的实际情况,本文决定采用三 层C/S模型进行开发实现。 三层C/S模式结构,在农民金融自助服务终端系统中,表现在以下三个方面: (1) 客户机层,用于显示界面,进行数据采集,设备驱动、数据交换等,实现 与用户、服务器的交互; (2) 应用服务器层,用于数据校验,数据处理等,该层将前端对后端操作的公 共部分提出并集中处理,接受客户层的请求,并与数据服务器进行交互,把结果 返回给客户层; (3) 数据库服务器层,负责存储数据并对应用服务器提出的数据请求进行数据 库操作[14],用于后台数据交换、数据处理等。 三层C/S模型如图1-4所示。 图1-4 三层C/S模型 基于三层Client/Server模式,农民金融自助服务终端系统的架构方式,如图 1-5。 4 第一章 绪 论 图1-5 农民金融自助服务终端系统架构 为此,在跟踪国内外相关领域的研究成果的基础上,并结合项目本身的特点, 本系统决定采用基于三层C/S(客户机/服务器)模型的分布式应用体系结构,建立一 个用户界面友好、操作简单、可扩展性强、安全性高的农民金融自助服务终端系 统。 1.3 研究目的及意义 农民金融自助服务终端项目的研究,一方面,贯彻落实了国家高度重视“三 农”工作的方针政策,是支持“三农”经济发展的重要措施。农民金融自助服务 终端系统的实现有利于改善农村支付服务环境,让广大农民获得更多更完善的支 付服务,切实维护农民的根本利益,能够缩小城乡金融服务差距,提升农村信用 社盈利能力和外在形象。另一方面,稳定广大农民客户群,站稳农村市场,降低 柜员核算业务的劳动强度,树立“以客户为中心”的经营理念,提升市场营销和 服务能力,驱动农村信用社顺应现代银行发展趋势,不断加快服务模式创新。 一是农民金融自助终端深受农民欢迎,得到当地政府的高度认可,解决了农 民粮补、新农保资金兑付难,小额现金存、取难,农副产品交易结算难等重大民 生问题。 二是农民金融自助终端具有成本低、风险小、服务便捷等特点,其管理难度 和风险大大低于管理薄弱的乡镇信用分社(储蓄所),是替代乡镇信用分社(储蓄 所)的新型金融服务模式,并且完全符合将电子金融服务延伸至农村的政策导向。 5 第一章 绪 论 1.4 本文主要工作 农民金融自助服务终端借助于银行现有的自助查询终端环境,通过定制的农 民自助终端应用程序,提供给农民用户美观并易于操作的界面,引导农民用户完 成自助类交易,如存、取款交易、存折补登、余额查询、明细查询、各类中间业 务的缴费等。用户无需银行工作人员的协作,可以轻松交易。 农民服务终端系统将由三部分组成:一是农民金融自助服务系统的前台客户 程序,二是中间业务数据处理平台,三是后台核心处理系统。前台程序由自助设 备合作公司负责开发完成,后台核心处理系统使用原有系统,本文主要介绍在中 间业务平台的实现处理。 本文的主要工作如下: 1、研究农民金融自助服务终端需求,进行详细的需求分析,明确系统需求。 2、对农民金融自助服务终端项目进行系统软件设计,详细设计处理流程、功 能分配、数据结构、运行等。 3、实现系统功能。本文重点阐述了系统的通讯实现、数据实现、代码实现等。 系统较好的实现了农民金融自助服务终端项目存、取款、转账、统计等功能,运 行速度快,性能稳定。 1.5 论文内容组织 本文的内容组织如下: 第1章为引言,介绍了农民金融自助服务终端项目的开发背景,详细阐述了 自助银行的发展历史及架构模式研究,提出了使用三层C/S架构模式开发农民金 融自助服务终端项目。并对农民金融自助服务终端项目、研究目的及研究意义进 行了详细介绍。 第2章对本文用到的相关技术进行了研究。 第3章研究了农民金融自助服务终端需求,进行了详细的需求分析,明确了 系统需求。 第4章对农民金融自助服务终端项目进行了系统软件设计,详细设计了处理 流程、功能分配、数据结构设计、运行设计等。 第5章是系统功能实现部分。该部分对开发平台的系统参数、开发语言与工 具进行了介绍,并重点介绍了系统的通讯实现、数据实现、代码实现等。系统较 好的实现了农民金融自助服务终端项目存、取款、转账、统计等功能,运行速度 快,性能稳定。但是存在一定的问题,如软件功能扩充不能实现参数化定制,在 一定程度上限制了新业务功能的快速开发,如中间业务在农民自助服务终端上应6 第一章 绪 论 7 用的快速推广对厂家依赖性大,这在后面的工作中需要改进。 第6章对本论文的内容进行了总结,并对下一步的工作进行了展望。 第二章 相关技术 第二章 相关技术 2.1 基于UNIX的通讯服务 1969年,由美国的Bell实验室开发完成的UNIX,是一个多用户、多任务的分 时操作系统[15]。现在 UNIX已成为使用普遍、影响深远的主流操作系统,版本主要 有IBM公司的AIX、HP公司的HP-UX、SCO公司的SCO UNIX及XENIX、LINUX 等。UNIX早期版本全部用汇编语言编写,通用性差,不易移植,后经Bell实验室 使用C语言对大多数内核程序和其它实用程序重新编写,大大提高了其通用性和可 移植性。UNIX系统主要优点包括[16]: 1、以UNIX为基础的相同软件能在微型机、小型机和巨型机上运行,在不同 厂家的UNIX系统下开发的软件几乎不用修改即可运行。 2、UNIX系统不仅有可执行代码,而且提供源程序代码。 3、UNIX系统向用户提供了许多实用工具,用户可借此完成各种工作。 4、UNIX系统是多用户操作系统,同时还是一个多任务操作系统。 5、UNIX系统提供了一个良好的网络运行环境。 2.1.1 多进程编程 进程是UNIX环境中的一个基本成分,UNIX操作系统中完成的工作几乎都通 过进程来控制和体现。UNIX系统中所有进程都有一个唯一的、被称为进程标识的 正整数与之相关联,该整数称为进程ID或简称PID[17]。 UNIX系统是分时多用户的系统,表面上CPU是按时间片分配给各个用户使 用,而实质上, CPU是按时间片分配给各个进程使用,每个进程拥有自己的运行 环境,称为进程的上下文[18],以使得在 CPU做进程调度时能做到无缝切换。UNIX 的多进程编程为本系统所要求的通讯集中处理提供了良好的开发接口。 UNIX下产生多进程的常用函数是fork(),该函数创建一新进程,该新进程称为 调用进程的子进程,调用fork的进程称为父进程[19]。由于 fork创建的子进程基本上 是父进程的克隆,故它所创建的子进程继承了父进程的许多特征,这些特征包括[20]: (l) 实际用户ID,实际组ID。 (2) 有效用户ID。 (3) 附加组ID。 (4) 会晤期ID。 (5) 控制终端。 8 第二章 相关技术 (6) 调整用户ID标志和调整组ID标志。 (7) 当前工作组目录。 (8) 根目录。 (9) 文件方式创建屏蔽。 (10) 环境变量。 (11) 资源限制。 不过,子进程也具有父进程不同的一些特殊属性,如:子进程有它自己的唯 一进程ID等[21]。 下面是fork调用的原型,如图2-1。 图2-1 fork原型 2.1.2 套接字编程技术 套接字是管道概念的一种扩充[22],理解为文件描述字,可以使用类似管道的 方法读写套接字,但套接字比管道更为通用,套接字不仅支持本地两个无关联进 程之间的点对点双向通信,而且支持跨网络的、运行于不同机器的两个进程之间 的通信[23]。套接字提供了强大、灵活的功能,是进程之间及系统之间进行通信的 主要方式。 Socket函数用于创建一个套接字,该函数在指定的通信域domain中创建一个指 定类型type、指定使用协议protoco的套接字,并返回一个描述字,此描述字称为套 接字描述字,它可用于其他套接字操作函数[24]。 Sockct通讯程序分为客户程序和服务程序,其中,客户程序主动启动,向远程 服务程序发出通讯连接请求,服务程序被动等待连接,服务程序一启动,初始化 完毕就进入等待连接状态,当服务程序收到客户程序请求后,按照一定的规则建 立连接,连接完成后,两个程序之间就建立了一个虚拟的数据通讯链路[25],这些 程序就可以直接从自己建立的套接口读入和写出数据,而不必关心实际的数据链 路。 Socket的通信使用bind函数绑定套接口[26],为程序分配一个供使用的通信端9 第二章 相关技术 口。调用listen函数后套接口进入监听状态,然后调用accept函数接受连接请求,如 果没有连接请求,accept函数将使程序进入睡眠状态,直到被远程客户程序的连接 请求唤醒。连接一旦建立即可以在socket描述符上进行读写。服务程序一般在设置 为监听模式后处于不断的接受请求、处理请求的循环中。 2.2 报文格式转换 报文(message)是网络中交换与传输的数据单元,传输过程中会不断的封装 成分组、包、帧来传输,封装的方式就是添加一些信息段,就是所谓的包头,以 一定格式组织起来的数据就是包体[28]。 在实际应用中,渠道和提供子服务的服务器之间以及服务器和服务器之间使 用的报文格式不可能完全一致。为解决报文格式不一致的问题,本文使用Field Storage Structure (FSS)技术实现报文转换设计。FSS 是自定义报文的存储容器,主 要提供一种简单且快速的数据存取方法。 假设渠道使用的报文格式是 A,提供子服务的服务器使用的报文格式分别是 B,B2。报文转换过程[29]如图 2-2。首先根据 A 的报文格式转换成中间信息链表, 然后将中间信息链表转换为 B的报文格式,或将中间信息链表转换为 B2的报文 格式。 图2-2 报文转换过程 这种技术,将所有的报文格式首先转换为中间信息链表,然后将中间信息链 表转换为需要的报文格式,能够有效的降低报文转化的复杂度和配置过程。 10 第二章 相关技术 11 2.3 本章小结 本章对农民金融自助服务终端系统涉及到的主要相关技术:基于UNIX的通 讯服务、报文格式转换等进行了研究,为后面的系统实现提供了理论支持。第三章 系统需求分析 第三章 系统需求分析 为满足农村信用社日益增多的业务需求,缓解营业网点办理业务的压力;引 导广大农民朋友应用先进的科技金融产品,让农民朋友能享受方便、快捷的金融 服务,进一步增强农村信用社的市场竞争力,提高农村信用社的社会形象。经过 深入调查研究,计划在现有自助查询终端的基础上研发操作简单、方便快捷、功 能多样的农民金融自助服务终端。 3.1 总体业务描述 近年来,随着农村信用社业务的不断壮大,尤其是代理粮食补贴、新农保等 各类业务后,业务量迅速增加,营业网点柜台的压力面临严峻的考验;并且随着 协理员的逐步撤销,农村信用社在农村的市场竞争力开始弱化,部分农村地区由 于地处偏远,已经出现了农村信用社服务真空。 银行的竞争是服务的竞争,如何更好地为农村地区的客户提供服务是农村信 用社要解决的问题,经过信用社需求管理员的多次深入基层调查研究,认为,商 业银行营业网点个人业务服务模式正逐步从传统的交易核算型向营销服务型转 型,由此大量小额现金交易向自助设备分流将成为必然趋势。而作为偏远落后的 农村,受农民自助设备操作能力和社会治安等因素影响,布放自动取款机(ATM)、 自动存款机(CDM)等高端自助设备存在成本高、使用率低、易遭受人为破坏等突 出问题。安装价格便宜、安全可靠、操作简便的自助设备是解决农村金融服务电 子化水平低的最佳途径。于是,农民金融自助服务终端项目被提上议程。 农民金融自助服务终端是一台具有余额查询和存取款功能的金融自助设备。 通过管理员的协助操作或客户直接操作,能够实现对信通卡、一本通存折、存款 存折的余额查询、存取款业务,转账业务、口头挂失、密码变更、存折补登;联 通、移动、电信等电话交费和电费交费等功能。其功能基本等同于农村信用社储 蓄所,在当前社会主义新农村建设进程中是向标准化自助银行过渡的最佳替代产 品,更加适应“现金交易多,转账交易少”的农村金融市场。农民金融自助服务 终端的研发,改善了农村金融支付环境。 3.2 系统功能和目标 本系统通过在前端输入客户存、取款或转账等信息,通过通讯模块传输到中 间业务平台进行数据处理。 系统应当包括如下的基本功能: 1、现金业务,账务性交易,用于客户的存取款和现金缴费业务。 12 第三章 系统需求分析 2、转账业务,账务性交易,用于客户之间的资金转入转出业务。 3、缴费业务,账务性交易,用于移动电话、联通电话、电信电话、电费的缴 费。 4、存折补登,非账务性交易,用于一本通、存款存折的资料补登。 5、口头挂失,非账务性交易,用于信通卡、一本通、存款存折的口头挂失。 6、密码变更,非账务性交易,用于信通卡、一本通、存款存折的更换新密码。 7、查询业务,非账务性交易,用于信通卡、一本通、存款存折的余额查询、 当日交易明细、历史交易明细、定期帐户查询。 8、交易监控、数据统计功能,用于管理人员管理本辖区内的农民金融自助服 务终端的使用情况。 农民金融自助服务终端功能如图3-1所示。 图3-1 农民金融自助服务终端功能图 13 第三章 系统需求分析 通过以上分析和项目本身的实际需求,农民金融自助服务终端系统的建设将 达到以下目标: (1) 满足存、取款,转账,中间业务缴费业务等账务性交易。 (2) 满足查询、补登、口头挂失、密码变更等非账务性交易。 (3) 满足交易实时监控、数据统计等管理方面的需求。 3.3 系统需求分析 本系统需求分析主要是根据业务部门初始的需求申请,通过调研和分析,确 定系统需求真正要解决的问题和系统需要实现的功能。 3.3.1 系统的功能性需求 系统的功能性需求在3.2节已有详细说明,主要表现在: 1、农民金融自助服务终端账务性交易:满足客户的存取款和现金缴费功能, 满足客户之间的资金转入转出功能,满足代理各项中间业务收费的功能。 2、农民金融自助服务终端非账务性交易:查询、补登、口头挂失、密码变更 等。 3、附属性功能:满足实时交易监控、数据统计功能。 3.3.2 系统业务流程 农民金融自助服务终端功能模块划分如图3-2。 14 第三章 系统需求分析 图3-2 农民金融自助服务终端功能模块划分 通过农民金融自助服务终端功能模块划分图,可以看到系统由三部分组成: 1、客户端; 2、控制模块; 3、数据处理。 控制模块是整个系统的核心部分,实现各项功能的业务逻辑处理,客户通过 前端页面发起的请求,通过控制模块进行处理,调用数据处理部分,并返回客户 处理结果[30]。由于农民自助终端是依托查询机自助设备,在其查询、转账、缴费 等基本功能的基础上,以中间业务的实现方式,增加了现金存、取业务,是功能 加强的自助金融服务终端。所以,它主要包括农民金融自助服务终端现金业务模 块、农民金融自助服务终端转账业务模块、农民金融自助服务终端缴费业务模块、 农民金融自助服务终端存折补登模块、农民金融自助服务终端口头挂失模块、农 民金融自助服务终端密码变更模块、农民金融自助服务终端查询业务模块。 1、农民金融自助服务终端现金业务模块 农民金融自助服务终端现金业务模块的业务流程,如图3-3所示。 15 第三章 系统需求分析 图3-3 现金业务流程图 1)客户向管理员提出自己的需求; 2)管理员根据客户的需求,判断是否可以在农民自助终端上完成。如果可以 则进行下一步,否则就退还给客户。 3)存款时先要核对客户的现金,然后根据客户的需求,选择相应得交易进行 操作;取款时直接选择相应得交易。 4)在农信方帐务处理时,要对客户的帐户信息进行检验,检验不通过,则返 回错误信息,交易结束。检验通过,则返回交易成功的信息,进入下一步操作。 5)交易成功后,提示打印相应得的凭证和回单,取款时还应交付客户相应得 现金,以便让客户进行核对。 2、农民金融自助服务终端转账业务模块 农民金融自助服务终端转账业务模块的业务流程,如图3-4所示。 客户提出需求 根据客户需求判断是否 可以办理 Y 根据客户需求选择相应 的交易 交易失 败,返回 错误信息 N 农信方账务处理 Y N 打印相应凭证和回单。 农信方返回相应信息 Y 与相关农信 方联系进行 账务冲正 N N 退还给客 户 Y 存款时先核对客户 的现金 Y Y N 取款时交 付客户现 金 Y16 第三章 系统需求分析 图3-4 转账业务流程图 1)客户向管理员提出自己的需求; 2)管理员根据客户的需求,判断是否可以在农民自助终端上完成。如果可以 则进行下一步,否则就退还给客户。 3)根据客户的需求,选择相应得交易进行操作。 4)在农信方帐务处理时,要对客户的帐户信息进行检验,检验不通过,则返 回错误信息,交易结束。检验通过,则返回交易成功的信息,进入下一步操作。 5)交易成功后,提示打印相应得的凭证和回单,以便让客户进行核对。 3、农民金融自助服务终端缴费业务模块 农民金融自助服务终端缴费业务模块的业务流程,如图3-5所示。 客户提出需求 根据客户需求判断是否 可以办理17 Y 根据客户需求选择相应 的交易 交易失 败,返回 错误信息 N 农信方账务处理成功 Y N 打印相应凭证和回单。 农信方返回相应信息 Y 与相关农信 方联系进行 账务冲正 N N Y 退还给客 户第三章 系统需求分析 图3-5 缴费业务流程图 1)客户向管理员提出自己的需求; 2)管理员根据客户的需求,判断是否可以在农民自助终端上完成。如果可以 则进行下一步,否则就退还给客户。 3)根据客户的需求,选择相应得交易进行操作。 4)代理方返回相关信息,与客户提供的信息进行核对,无误后进行下一步。 5)在农信和代理方帐务处理时,要对客户的帐户信息进行检验,检验不通过, 则返回错误信息,交易结束。检验通过,则返回交易成功的信息,进入下一步操 作。 6)交易成功后,提示打印相应得的凭证和回单,以便让客户进行核对。 客户提出需求 根据客户需求判断是否 可以办理 Y 根据客户需求选择相应 的交易 交易失 败,返回 错误信息 N 农信方账务处理 Y N 打印相应凭证和回单。 代理方返回相应信息 Y 与相关农信 方联系进行 账务冲正 N N 退还给客 户 Y 代理方返回相关信息 进行核对 Y N 代理方账务处理 Y N18 第三章 系统需求分析 4、农民金融自助服务终端存折补登业务模块 农民金融自助服务终端存折补登业务模块的业务流程,如图3-6所示。 图3-6 补登业务流程图 1)客户向管理员提出补登需求; 2)管理员根据客户的需求,判断是否可以在农民自助终端上完成。如果可以 则进行下一步,否则就退还给客户。 3)选择补登交易,进行账务处理。在帐务处理时,要对客户的帐户信息进行 检验,检验有未补登资料,则打印相关信息,交易结束;检验无未补登资料,则 返回无未补登信息,交易结束。 客户提出补登需求 根据客户需求判断是否 可以办理 Y 选择补登交易进行账务 处理 交易失 败,返回 错误信息 N 将存折放入打印机进行 打印 农信方返回相应信息 Y 与相关农信 方联系进行 账务冲正 N N 退还给客 户 Y19 第三章 系统需求分析 5、农民金融自助服务终端口头挂失业务模块 农民金融自助服务终端口头挂失业务模块的业务流程,如图3-7所示。 图3-7 口头挂失业务流程图 1)客户向管理员提出口头挂失需求; 2)管理员根据客户的需求,判断是否可以在农民自助终端上完成。如果可以 则进行下一步,否则就退还给客户。 3)选择口头挂失交易,进行账务处理。如果操作不正确,则返回错误信息, 交易结束。 4) 农信方返回相关信息,与客户进行核对确认,确认无误后进行下一步操作, 如果核对步正确,则取消操作,交易结束。 客户提出挂失需求 根据客户需求判断是否 可以办理 Y 选择口头挂失交易进行 账务处理 交易失 败,返回 错误信息 N 口头挂失成功 农信方返回相应信息, 进行核对确认 Y 与相关农信 方联系进行 相关处理 N N 退还给客 户 Y20 第三章 系统需求分析 6、农民金融自助服务终端密码变更业务模块 农民金融自助服务终端密码变更业务模块的业务流程,如图3-8所示。 图3-8 密码变更业务流程图 1)客户向管理员提出密码变更需求; 2)管理员根据客户的需求,判断是否可以在农民自助终端上完成。如果可以 则进行下一步,否则就退还给客户。 3)选择密码变更交易,进行账务处理。操作正确,返回成功信息,交易结束; 如果操作不正确,则返回错误信息,交易结束。 7、农民金融自助服务终端查询业务模块 农民金融自助服务终端查询业务模块的业务流程,如图3-9所示。 21 第三章 系统需求分析 图3-9 查询业务流程图 1)客户向管理员提出查询需求; 2)管理员根据客户的需求,判断是否可以在农民自助终端上完成。如果可以 则进行下一步,否则就退还给客户。 3)选择查询业务交易,进行账务处理。操作正确,返回查询信息,交易结束; 如果操作不正确,则返回错误信息,交易结束。 4)告知客户或打印查询结果。 3.4 本章小结 本章首先对农民金融自助服务终端的总体业务进行了描述,然后对系统功能 和目标进行了分析,最后详细地分析了需求阶段的主要问题、功能性需求、系统 业务流程等。为下一章的系统软件设计打下良好的基础。 客户提出查询需求 根据客户需求判断是否 可以办理 Y 选择查询业务交易进行 账务处理 交易失 败,返回 错误信息 N 告知客户或打印查询结 果 农信方返回相应信息, 进行核对确认 Y 与相关农信 方联系进行 相关处理 N N 退还给客 户 Y22 第四章 系统软件设计 第四章 系统软件设计 在本文的第三章,系统需求分析阶段中,对农民金融自助服务终端系统的功能 和实现目标进行了详细分析,本章是在系统需求分析的基础上,对农民服务终端 系统做软件设计。主要包括客户机/服务器处理流程,功能分配,数据结构设计, 运行设计等。 4.1 处理流程 本节使用面向数据流的方法对农民金融自助服务终端系统的处理流程进行分 析,着重分析两部分:一是客户机上的程序,二是中间业务处理服务器上的程序。 4.1.1 客户机处理流程 客户机上的输入信息为客户账号,主要分为现金、转账、补登、查询等功能 模块,输出为打印凭条信息和确认或出错信息。 客户机处理流程,如图4-1。 图 4-1 客户机处理流程 其着重点有以下几点: 1、读取信息。输入或通过磁条读取账户信息时,应智能通过账号规则判断出23 第四章 系统软件设计 账户种类,如卡、一本通、存折。 2、检验信息。应按照内部接口对账户进行查询,以确认账户的状态正确性。 3、准备服务器数据。按照服务器定制的接口,组织发送数据包。 4、网络数据发送。 5、网络数据接受。 6、解开/判断。解开接受的数据包,并判断交易是否成功。 7、准备输出数据。如交易成功,输出正常信息,并加以提示。如交易失败, 按照返回报文提示错误信息。 4.1.2 服务器处理流程 服务器处理流程如图4-2。 图4-2 服务器处理流程 1、网络数据接收。接受由客户机程序经网络传送的数据包,它是程序与网络 的接口。 2、解开数据。 3、判断操作。通过交易代号判断,做相应权限、业务流程控制。 4、分步数据库操作。包括数据查询及修改,特别注意事后的业务统计及分析 准备数据。 5、准备回送数据。 24 第四章 系统软件设计 6、准备网络数据包。将数据准备并加密成网络传输数据包。 4.2 功能分配 客户机程序主要有三部分组成: 1,接收数据; 2,网络通信 3,输出部分。客户机程序功能分配如图4-3所示。 服务器程序主要也是由三大功能: 1,依托中间业务平台; 2,接收网络数据; 3,数据库操作及发送网络数据部分。如图4-4。 图4-3 客户机程序功能分配图 图4-4 服务器程序功能分配图 4.3 数据结构设计 1 、管理员交易种类表(GLYTXN) 此表为农民金融自助服务终端支持的所有交易分类,为事后的统计及审核定 义交易类。此数据需后台维护。表结构如表4-1。 25 第四章 系统软件设计 表4-1管理员交易种类表结构 2、管理员交易控制表(GLYCODE) 此表为农民金融自助服务终端支持的存款、取款、转账定制次数及限额,每 笔交易需读这些参数进行相关判断。此数据需后台维护。表结构如表4-2。 表4-2 管理员交易控制表 3、管理员信息表(GLYINF) 此表为农民金融自助服务终端管理员基本信息表,包括管理员代号、姓名、 结算账户、内部过渡户、网点等信息,通过前台录入信息。表结构如表4-3。 表4-3管理员信息表 4、管理员权限表(GLYLAW) 26 第四章 系统软件设计 此表为农民金融自助服务终端管理员权限定制表,通过前台交易可实现管理 员的存款、取款、转账、中间业务等权限的定制。通过前台录入信息。表结构如 表4-4。 表4-4管理员权限表 5、管理员交易明细表(GLYTXN) 此表记录管理员账务信息表,主要包括存款、取款、转账及中间业务类交易 信息。在交易流程中由系统自动进行处理。表结构如表4-5。 表4-5管理员交易明细表 6、管理员交易统计表(GLYCNT) 此表记录管理员所有成功交易,包括查询、补登、账务等所有信息,以利于 以后考核数据用。交易确认成功后,客户端发送统计数据交易,后台只作增加处 理即可。表结构如表4-6。 27 第四章 系统软件设计 表4-6管理员交易统计表 4.4 运行设计 本节运行设计将运行模块的组合分为客户机程序运行模块组合与服务器程序 运行模块组合。 客户机程序接收任务启动命令后,启动接收数据模块,读入数据并对输入数 据按照一定规则进行格式化,在接收数据模块得到充分的数据后,调用网络传输 模块将数据传送到服务器,并等待接收服务器返回的信息。接收到返回信息后随 即调用数据输出模块,对信息进行处理,产生相应的输出[31]。客户机程序运行模 块组合,如图4-5。 图4-5 客户机程序运行模块组合 28 第四章 系统软件设计 服务器程序运行模块组合,如图4-6。服务器程序的接收网络数据模块必须始 终处于活动状态,等待接收数据传入。接收网络数据模块接收到数据后,调用数 据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户 机。 图4-6 服务器程序运行模块组合 4.5本章小结 本章对农民金融自助服务终端的系统软件设计进行了详细阐述,包括客户机/ 服务器处理流程,功能分配,数据结构设计,运行设计等。为下一章的系统实现 奠定了基础。 29 第五章 系统功能实现 第五章 系统功能实现 农民金融自助服务终端系统功能实现由三部分程序组成,农民金融自助服务 终端客户程序、中间业务平台服务器端程序、后台核心处理程序。 客户端程序代码开发由自助查询机合作公司开发,后台核心处理程序使用原 有的系统,本文不再介绍。本文重点介绍如何在中间业务平台实现农民金融自助 服务终端数据处理部分。 中间业务平台使用报文转换处理数据,报文(message)是网络中交换与传输 的数据单元,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是 添加一些信息段,就是所谓的包头[32]。以一定格式组织起来的数据就是包体。本 文通过FSS转换方式进行数据格式转换。 中间业务平台通过农民金融自助服务终端提交的请求信息,经过报文解析, 通过设定的报文对应关系,转换成后台核心需要的报文格式和相关内容,提交给 后台核心处理系统,向后台发送交易请求。另外,接收后台核心处理系统提交的 响应信息,经过报文解析,通过设定的报文对应关系,转换成农民金融自助服务 终端需要的报文格式和相关内容,提交给农民金融自助服务终端。 5.1开发平台 5.1.1 系统参数 中间业务平台具体参数如下: 服务器端:操作系统 AIX Version 5.3 数据库: DB2 SERVER 8.2 5.1.2 开发语言与工具 开发语言:C语言 中间业务平台是某公司为农村信用社提供的开发工具,中间业务平台在农民金 融自助服务终端系统的作用,如图5-1。 30 第五章 系统功能实现 图5-1 中间业务平台在农民金融自助服务终端系统的作用 主要表现在: 1、农民金融自助服务终端与银行后台核心主机之间的数据通讯通过中间业务 平台主机来实现,中间业务平台起到数据通讯,数据处理,和保护银行网络的作 用。 2、中间业务平台进行非帐务数据的处理,降低银行后台核心主机负担,使后 台核心主机主要处理帐务数据,降低数据库锁表几率,提高主机效率,使后台核 心主机版本统一。 3、交易通过中间业务平台处理,被分解成多个交易步骤,增加了交易定义灵 活性,适应多变的中间业务需求。 5.2 系统功能 农民金融自助服务终端系统是以按键选择为主要交互工具,帮助农民用户以 自助方式实现小额存取款、转账、缴费、查询、存折补登、密码变更等服务。 本系统从系统功能划分由三层构成: 1、 客户交互层,即前端实现模块; 2、通讯层,即通讯模块; 3、业务处理层,即银行后台核心业务处理模块。 前端实现模块,是本系统的界面实现模块,是整个系统的表示层,负责为农31 第五章 系统功能实现 民金融自助服务终端提供良好的人机交互界面,并识别不同的交易工具和银行卡 类别,接收用户交易输入请求,组织报文,向中间业务平台发送交易请求,并根 据不同的响应信息完成相应的处理[33]。具体由自助查询机合作公司实现。 通讯模块,负责农民金融自助服务终端整个交易过程中交易报文的组织、打 包、解包和传送。可以分为两大类:前端实现模块和中间业务平台之间的通讯、 中间业务平台和后台核心系统之间的通讯。 业务处理层,完成农民金融自助服务终端所有交易的请求和转发功能。负责 来自农民金融自助服务终端的交易请求,通过中间业务处理系统,接受请求报文, 校验交易数据的合法性,提送给后台核心主机处理实际客户交易。 5.3 系统实现 中间业务平台实现客户账号查询、存款、取款、转账、及业务量统计等数据 处理功能,并实现存款、取款、转账的业务权限控制。业务统计数据的累计,为 以后对管理员的考核做好数据准备。系统实现将从三个方面进行描述:系统通讯 实现、系统数据实现、系统代码实现。 5.3.1 系统通讯实现 中间业务平台与农民金融自助服务终端通过socket流方式通信,通信端口与 数据包格式如下: (一) socket端口 交易端口: 可配置 农民金融自助服务终端为SERVER,中间业务平台为CLIENT。 包格式如下: 包长度: unsigned char 4字节 以ASCII码表示的整个包的长度(含包长度本身)。 银行编码:unsigned char(2) 2字节 银行代码,可据此调用不同的加密算法。 后续包标志:unsigned char(1) 1字节 包长度、银行编码、后续包标志为每个包内的固定部分,称为包头。 数据包内容: unsigned char(1000) 变长。 32 第五章 系统功能实现 短连接通讯函数原型如下: main(int argc,char *argv[]) { char sPrgID[]="cpsywytcp"; long lGateId; pid_t iPid; int iListenfd,iConnfd; int iLen,I; char sPath[151],sTmp[151]; stuct sockaddr_in tCliAddr; } (二) 交易包格式 根据分析,我们定义5种交易包,分别是: 1、客户账号查询 所有交易开始前先进行查询,该交易包括请求包和响应包两种。请求包包括 的字段只有账号即可,响应包为成功标识、客户姓名; 交易码:110 请求格式如下: 交易码 char(3):110 请求码 char(3) 账号 char(25) 交易金额 dec(13,2) 响应格式如下: 交易码 char(3):110 响应码 char(3) 成功标识 char(4), 成功W000,其他为不成功 客户姓名 char(40) 33 第五章 系统功能实现 交易金额 dec(10,2) 2、存款 该交易接收包为存款账号、存款金额、管理员密码等,发送包为成功标识、 客户账号、客户姓名、存款金额、交易日期、交易时间等字段。 交易码:120 请求格式如下: 交易码 char(3):120 请求码 char(3) 存款账号 char(25) 存款金额 dec(13,2) 管理员密码 char(16) 响应格式如下: 交易码 char(3):120 响应码 char(3) 成功标识 char(4), 成功W000,其他为不成功 客户账号 char(25) 客户姓名 char(40) 存款金额 dec(13,2) 交易日期 date(8) 交易时间 char(6) 3、取款 该交易接收包为取款账号、取款金额、取款密码等,发送包为成功标识、客 户账号、客户姓名、取款金额、交易日期、交易时间等字段。 交易码:130 请求格式如下: 34 第五章 系统功能实现 交易码 char(3):130 请求码 char(3) 取款账号 char(25) 取款金额 dec(13,2) 取款密码 char(16) 响应格式如下: 交易码 char(3):130 响应码 char(3) 成功标识 char(4), 成功W000,其他为不成功 客户账号 char(25) 客户姓名 char(40) 取款金额 dec(13,2) 交易日期 date(8) 交易时间 char(6) 4、转账 该交易接收包为转出账号、转出账号密码、转入账号、转账金额等,发送包 为成功标识、转入账号、转入账号客户姓名、转账金额、交易日期、交易时间等 字段。 交易码:140 请求格式如下: 交易码 char(3):140 转出账号 char(25) 转出账号密码 char(16) 转入账号 char(25) 转账金额 dec(13,2) 响应格式如下: 35 第五章 系统功能实现 交易码 char(3):130 响应码 char(3) 成功标识 char(4), 成功W000,其他为不成功 转入账号 char(25) 转入账号客户姓名 char(40) 转账金额 dec(13,2) 交易日期 date(8) 交易时间 char(6) 5、业务量统计 该交易接收包为统计码、出款账号、出款户名、交易金额、入款账号、入款 户名、管理员代号、设备代号、交易日期、交易时间等,该交易没有输出包。 交易码:150 请求格式如下: 交易码 char(3):150 统计码 char(10) 出款账号 char(25) 出款户名 char(40) 交易金额 dec(13,2) 入款账号 char(25) 入款户名 char(40) 管理员代号 char(8) 设备代号 char(4) 交易日期 date(8) 交易时间 char(6) 5.3.2 系统数据实现 农民金融自助服务终端后台核心系统数据实现,设计6张表,对交易明细,36 第五章 系统功能实现 交易种类,管理员信息,管理员权限,交易控制,交易统计等进行描述。 1、管理员交易种类表(GLYTXN) 此表为农民金融自助服务终端支持的所有交易分类,为事后的统计及审核定 义交易类,表结构如下: typedef struct glytxn_s { CHAR City[CL_CITYNO+1]; /* 城市代号 */ CHAR FundNo[CL_FUNDNO+1]; /* 业务代号 */ CHAR TxnTotCod[4+1]; /* 交易分类总标识 */ CHAR TxnTotName[30+1]; /* 交易分类总标识名称 */ CHAR TxnTotCod[10+1]; /* 交易分类分支标识 */ CHAR TxnTotName[30+1]; /* 交易分类分支标识名称 */ CHAR TxnCntFlg[1+1]; /* 交易分类统计有效标志 */ CHAR TxnFinFlg[1+1]; /* 交易分类统计账务标志 */ CHAR TxnTotCod[6+1]; /* 交易分类统计码 */ MONEY TxnCntPct; /* 交易分类统计比重 */ CHAR TxnCntName[30+1]; /* 交易分类名统计称 */ CHAR TxnTotMemo[6+1]; /* 交易摘要 */ CHAR TxnMemoName[30+1]; /* 交易摘要名称 */ CHAR TxnCod[4+1]; /* 交易代号 */ CHAR TxnName[30+1]; /* 交易名称 */ }glytxn_t 2、管理员交易控制表(GLYCODE) 此表为农民金融自助服务终端支持的存款、取款、转账定制次数及限额,每 笔交易需读这些参数进行相关判断。表结构如下: typedef struct glycode_s { CHAR City[CL_CITY+1]; /* 城市代号 */ CHAR FundNo[CL_FUNDNO+1]; /* 业务代号 */ CHAR TxnBrhCod[10+1]; CHAR TxnBrhName[30+1]; 37 第五章 系统功能实现 CHAR Sta[1+1]; /* 交易代码状态 */ CHAR ValTp[1+1]; /* 类型 */ CHAR ValTn[6+1]; /* 长度 */ CHAR ValStr[6+1]; /* 值 */ }glycode_t; 3、管理员信息表(GLYINF) 此表为农民金融自助服务终端管理员基本信息表,包括管理员代号、姓名、 结算账户、网点等信息。表结构如下: typedef struct glyinf_s { CHAR Zzzd[4+1]; /* 终端代号 */ CHAR glyId[8+1]; /* 管理员代号 */ CHAR BrhId[CL_BRHID+1]; /* 网点号 */ CHAR Name[20+1]; /* 姓名 */ CHAR ActNo[CL_ACTNO+1]; /* 账号 */ CHAR CnlNo[CL_CNLNO+1]; /* 销账号 */ CHAR Name[CL_LCNAME+1]; /* 户名 */ }glyinf_t; 4、管理员权限表(GLYLAW) 此表为农民金融自助服务终端管理员权限定制表,定制管理员的存款、取款、 转账、缴费等权限。表结构如下: typedef struct glylaw_s { CHAR Zzzd[4+1]; /* 终端代号 */ CHAR GlyId[8+1]; /* 管理员代号 */ CHAR BrhId[CL_BRHID+1]; /* 网点号 */ CHAR Name[20+1]; /* 姓名 */ CHAR ACkLaw[1+1]; /* 存款权限 */ CHAR QkLaw[1+1]; /* 取款权限 */ CHAR Law[1+1]; /* 缴费权限 */ CHAR ZzLaw[1+1]; /* 转账业务 */ MONEY CkAmt; /* 存款限额 */ 38 第五章 系统功能实现 MONEY QkAmt; /* 取款限额 */ MONEY ZzAmt; /* 转账限额 */ }glylaw_t; 5、管理员交易明细表(GLYTXN) 此表记录管理员账务信息表,主要包括存款、取款、转账及缴费类交易信息。 在交易流程中由系统自动进行处理。表结构如下: typedef struct glytxn_s { DATE Date; /* 交易日期 */ long LongNo; /* 流水号 */ CHAR Redu[4+1]; /* 冗余 */ CHAR CliNo[CL_ACTNO+1]; /* 客户账户 */ CHAR CliNo[CL_CNLNO+1]; /* 客户销账号 */ CHAR ActNo[CL_ACTNO+1]; /* 商户账号 */ CHAR CnlNo[CL_CNLNO+1]; /* 商户销账号 */ CHAR FundTp[1+1]; /* 代收付标志 */ MONEY Amt; /* 交易金额 */ CHAR Chk[1+1]; /* 扣款标志 */ }glytxn_t 6、管理员交易统计表(GLYCNT) 此表记录管理员所有成功交易,包括查询、补登、账务等所有信息,以利于 以后考核数据用。交易确认成功后,客户端发送统计数据交易,后台只作增加处 理即可。 收到客户端成功交易数据后,与管理员交易定制表相关联,按照定制统计码 增加相关数据,利于日后统计。表结构如下: typedef struct glycnt_s { DATE Date; /* 交易日期 */ long LongNo; /* 交易序号 */ DATE Date1; /* 后台日期 */ 39 第五章 系统功能实现 CHAR Time[CL_TIME+1]; /* 后台时间 */ CHAR City[CL_CITYNO+1]; /* 城市代号 */ CHAR FundNo[CL_FUNDNO+1]; /* 业务种类 */ CHAR CliNo[CL_ACTNO+1]; /* 出款账号 */ CHAR CliName[CL_LCNAME+1]; /* 出款户名 */ }glycnt_t 5.3.3 系统代码实现 1、农民金融自助服务终端客户账号信息查询。前端触发查询交易后,中间业 务平台在接受请求包后,首先进行解包操作,转换成中间业务平台可识别的格式。 然后向后台核心发送查询业务请求,如果后台核心处理出错,则返回中间业务平 台错误信息,中间业务平台进行处理后,组建响应包,发送错误提示到农民金融 自助服务系统前端界面,如果成功处理,中间业务平台解包,并组建响应包,向 农民金融自助服务系统前端界面传送响应信息。 具体代码设计流程如下图5-2。 40 第五章 系统功能实现 图5-2 农民金融自助服务终端客户账号信息查询流程图 2、农民金融自助服务终端存款交易。前端触发存款交易后,中间业务平台在 接受请求包后,首先进行解包操作,转换成中间业务平台可识别的格式。然后验 证管理员信息是否正确,在此使用函数GLYLawChk( )处理,如果正确,再验证管 理员交易次数及交易金额是否超过规定限额,不正确则发送错误提示到农民金融 自助服务系统前端界面。对管理员交易次数及交易金额是否超过规定限额的验证 也是这样处理,在此使用函数GlyTxnChk( )处理,如果超过限额,则发送错误提 示到农民金融自助服务系统前端界面,如果没有超限,则变更交易明细表,在此 使用函数GlyTxn ( )处理,在表GLYTXN里留下一条记录,并进行组建请求包处 理,向后台核心发送存款业务请求,如果后台核心处理出错,则返回中间业务平 台错误信息,中间业务平台进行处理后,组建响应包,发送错误提示到农民金融41 第五章 系统功能实现 自助服务系统前端界面,如果成功处理,中间业务平台解包,更新处理明细,向 农民金融自助服务系统前端界面传送响应包。 具体代码设计流程如下图5-3。 图5-3 农民金融自助服务终端存款交易流程图 42 第五章 系统功能实现 其中,GLYLawChk函数原型如下: GLYLawChk( int iADmApNo ) { char sPrgId[]="GLYLawChk"; int iInsert,i; char sTmp[100]; char sWherep[500]; } GlyTxnChk函数原型如下: GlyTxnChk ( int iADmApNo ) { char sPrgId[]="GlyTxnChk"; char sWherep[200]; MONEY TotalAmt,DefAmt; int TotalTxn,DefTxn; char sTmp[100]; } GlyTxn函数原型如下: GlyTxn( int iAdmApNo ) { glytxn_t GLYTXN, *glytxn = &GLYTXN; char sPrgId[]="GlyTxn"; char sWherep[500], sWherepsub[200]; int iInsert = 0; long lLogNo; char sTmp[300], sTmp1[300]; FILE *fp; } 3、农民金融自助服务终端取款交易,代码实现同存款交易,区别在于向后台 核心传送的交易代码为取款交易。前端触发取款交易后,中间业务平台在接受请 求包后,在接受请求包后,首先进行解包操作,转换成中间业务平台可识别的格 式。然后验证管理员信息是否正确,在此使用函数GLYLawChk( )处理,如果正确, 再验证管理员交易次数及交易金额是否超过规定限额,不正确则发送错误提示到 农民金融自助服务系统前端界面。对管理员交易次数及交易金额是否超过规定限43 第五章 系统功能实现 额的验证也是这样处理,在此使用函数GlyTxnChk( )处理,如果超过限额,则发 送错误提示到农民金融自助服务系统前端界面,如果没有超限,则变更交易明细 表,在此使用函数GlyTxn ( )处理,在表GLYTXN里留下一条记录,并进行组建 请求包处理,向后台核心发送存款业务请求,如果后台核心处理出错,则返回中 间业务平台错误信息,中间业务平台进行处理后,组建响应包,发送错误提示到 农民金融自助服务系统前端界面,如果成功处理,中间业务平台解包,更新处理 明细,向农民金融自助服务系统前端界面传送响应包。 具体代码设计流程如下图5-4。 图5-4 农民金融自助服务终端取款交易流程图 44 第五章 系统功能实现 4、农民金融自助服务终端转账交易。前端触发转账交易后,中间业务平台在 接受请求包后,首先进行解包操作,转换成中间业务平台可识别的格式。然后验 证管理员信息是否正确,在此使用函数GLYLawChk( )处理,如果正确,再验证管 理员交易次数及交易金额是否超过规定限额,不正确则发送错误提示到农民金融 自助服务系统前端界面。对管理员交易次数及交易金额是否超过规定限额的验证 也是这样处理,在此使用函数GlyTxnChk( )处理,如果超过限额,则发送错误提 示到农民金融自助服务系统前端界面,如果没有超限,则向农民金融自助服务系 统前端界面传送成功响应包。然后农民金融自助服务终端系统走普通查询机路线, 实现转账账务处理。 具体代码设计流程如下图5-5。 图5-5 农民金融自助服务终端转账交易流程图 45 第五章 系统功能实现 5、农民金融自助服务终端业务量统计交易。前端触发业务量统计交易后,中 间业务平台在接受请求包后,首先进行解包操作,转换成中间业务平台可识别的 格式。然后更新管理员交易统计表(GLYCNT)即可,该表用于后面开发农民金 融自助服务终端查询系统使用。具体代码设计流程如下图5-6。 图5-6 农民金融自助服务终端业务量统计交易流程图 在此使用函数GlyCnt( ),函数原型如下: int GlyCnt( int iAdmApNo ) { glycnt_t GLYCNT, *glycnt = &GLYCNT; char sPrgId[]="GlyCnt"; char sTmp[300],sTmp1[300]; char sWherep[200]; } 6、农民金融自助服务终端系统的界面,如图5-7所示。 46 第五章 系统功能实现 图5-7 农民自助服务终端界面 5.4 本章小结 本章首先介绍了开发平台的参数、开发语言与工具,并对系统功能进行了阐 述,具体描述了系统通讯实现,系统数据实现,系统代码实现等。农民金融自助 服务终端系统较好地实现了存、取款、转账等需求的相关功能,运行速度较快, 性能稳定。 47 第六章 结束语 第六章 结束语 农民金融自助服务终端系统较好地实现了存、取款、转账等需求的相关功能, 运行速度较快,性能稳定。当用户在农民金融自助服务终端开始交易的时候,农 民金融自助服务终端采集用户的原始输入并对输入做一个简单判断后,将数据打 包至中间业务平台,中间业务平台解包后对每个字段进行更为严格的校验,并将 符合规程的数据再次打包传给后台核心处理系统,后台核心处理系统进行交易处 理后,再按照相反的方向逐步传递到自农民金融自助服务终端上,最终完成一次 完整的交易。 中间业务数据处理平台进行非帐务数据的处理,降低了银行后台核心主机负 担,使后台核心主机主要处理帐务数据,降低了数据库锁表几率,提高主机效率, 使后台核心主机版本统一。交易通过中间业务平台处理,被分解成多个交易步骤, 增加了交易定义灵活性,适应多变的中间业务需求。 农村自助金融服务终端的优势表现在: (1) 功能齐全,涵盖了农村信用社一般营业网点的功能; (2) 运作成本低,节省了建房 (或租房) 和柜台等固定资产的大额建设费用, 并有效节约了人力成本; (3) 与普通的自助银行比较, 农民自助服务终端功能更加丰富, 更加安全, 避免了一般的银行自助设备因成本和安全问题不能在农村地区大量推广的弊端, 能够在服务布局上满足 “一村一个服务终端”的状态。 尽管本文取得了一些研究成果,但后面要做的工作仍将是具有挑战性的工作。 如软件功能扩充不能实现参数化定制,在一定程度上限制了新业务功能的快速开 发,中间业务在农民自助服务终端上应用的快速推广对厂家依赖性大。所以后面 的工作也将是一份十分有意义的研究工作。