【关键词】银行自助终端Spring AJAX 设备
服务 交易服务
1 引言
目前银行正处于新的网点转型期,柜台业
务越来越多向自助设备迁移。在自助设备类型
多样化、功能多样化、用户体验不断提升趋势
下,对自助应用开发提出了更高要求。新型银
行自助终端在设备端集成更丰富的外设和IT
技术,如发卡模块、二代证、二维码、远程协
作系统、PBOC 卡应用等, 人机交互也向Pad
移动设备体验接近;另一方面在后台接入端,
新型业务也需要连接多渠道和业务系统, 进行
交易组合、业务集成与分段处理等复杂逻辑,
如何开发更适合网点转型的自助应用是目前要
面临的课题。以基于轻量级J2EE 技术的自助
应用平台为基础,提出基于AJAX 的自助前端
应用模型和基于Spring IOC 的交易服务配置
化、组件化开发,满足银行在自助应用开发上
的新型业务需求。
2 相关集成技术
Spring 核心理念是" 解耦"。Spring 容器
支持面向接口编程、采用IOC 控制反转模式
实现组件高度解耦和配置化组装、支持声明式
事务等特性。它没有重新发明轮子,可结合大
量开源框架使用,提供胶水代码集成。以上特
性非常适合作为组件工厂容器。面向切面编程
(AOP)是Spring 的一项重要技术。随着应
用复杂度上升,灵活性要求随即提高,技术维
度和业务层分离变得越发必要。Spring 提供动
态AOP,通过代理模式动态地在目标对象方
法前后进行技术切面处理(如日志处理)。借
助Spring AOP 可实现程序分层解耦,Spring
AOP 使得一些由传统容器支持的功能比如事
务控制可以脱离容器运行,系统保持最小化。
文/唐嵩 蒋外文
改进自助C 端应用和传统
J2EE 银行自助终端系统的不足,
提出一种银行自助终端应用技术
集成的思路, 服务端基于(Web
MVC+Spring+iBatis)框架,支持
在Spring 容器下交易服务的组件
化开发,客户端利用AJAX 技术集
成设备服务和UI 建立浏览器自助
前端应用程序模型。本文系统提
高了系统健壮性及灵活性,并简
化了应用开发,具有较高借鉴意
义。
摘 要
这是Spring 被称其为轻量级容器的原因之一。
AJAX 技术全称Asynchronous JavaScript
and XML,是多种前端Web 技术的结合体:
使用CSS 和XHTML 作为UI 展现、使 用
DOM 文档对象模型来交互和动态显示和局部
更新;使用XMLHttpRequest(XHR)与服务
器进行异步数据交换;使用JavaScript 来绑定
任何对象和调用。利用该技术可以开发Single-
Page Application (SPA) 单页面应用。
3 系统构成
如图1 所示, 应用平台基于(Web
MVC+Spring+iBatis)轻量级J2EE 框架。采用
面向对象和组件化理念,结合银行自助终端提
供设备服务组件、WEB 应用及UI、交易服务
与应用组件、通讯连接等组件集。平台可分为
本地客端、Web 自助应用层、交易服务与业务
逻辑层、数据与通讯集成层、企业资源层的多
层体系结构:
3.1 本地客户端
主要包括自助专用浏览器、设备服务中
间层及金融外设。浏览器采用IE 内核实
现系统操作控制和本地功能扩展(如
HTTP 异常处理、本地代码调用消息传递、安
全控制等)。设备服务中间层包含设备中间件
OCX、CEN/XFS 设备驱动服务。CEN/XFS 可
实现统一规范下的硬件设备驱动和自助应用的
分离。金融外设是终端的硬件模块(如电动读
卡器),设备驱动通过串口指令控制实现银行
卡读写处理)。
3.2 Web自助应用层
由浏览器中的自助前端应用(含AJAX、
HTML、SWF)和服务端Web MVC
的自助应用构成,完成自助应用逻辑和
交互流程处理。
3.3 交易服务与业务逻辑层
指基于Spring 容器的交易与应用服务,
在Spring 环境下进行配置化、
组件化开发,实现交易业务逻辑处理。
3.4 数据与通讯集成层
图1:银行自助终端应用平台
252 • 电子技术与软件工程 Electronic Technology & Software Engineering
程序设计 • Program Design
完成与后端企业资源的连接,一般采用
数据持久、资源通讯连接、服务调
用方式。系统采用iBatis 作为数据持久中
间件,资源连接通讯支持Socket 长连接(池)
或Socket 同步短连接, 同时还支持Web
Services 和远程消息调用。
3.5 企业资源层
指后端业务系统(包含银行核心业务处
理)的多个系统。对于自助应用来说,自助应
用数据库、银行前置、中间业务平台是最常访
问的企业资源。在一些商业银行,还需要访问
交易中间件Tuxedo 或是Web 服务等其他业务
系统。
4 关键设计实现
4.1 设备端设计
银行自助终端应用有其特殊性,它是一
个复杂的综合体。它包括了设备服务、人机交
互、系统控制、通讯、应用流程处理等功能,
传统纯B/S 技术难以很好支撑这些特性。基于
AJAX 技术基础通过JS 处理自助客户端程序
的应用逻辑及验证逻辑、XHR 对象与J2EE 服
务端进行同异步数据通讯、数据交换格式使用
JSON 和XML, 基于DOM 实现HTML UI 局部
刷新;
特别地,自助应用领域引入JavaScript 绑
定封装CEN/XFS 设备服务中间件接口提供设
备服务JS API,实现设备命令调用和设备事件
处理;
采用ExternalInterface 技术的Call 和
Callback 方法绑定JS 和Flex 对象,实现JS 和
FLEX(SWF) 的互操作和交互事件处理;
综合以上技术,给出了一个结合CEN/
XFS 设备服务、富客户端人机交互、XHR 数
据交换服务的一种自助前端应用程序模型,如
图2 所示。可基于以上程序模型开发自助应
用,类似桌面程序事件消息实时交互机制,又
有Web 动态程序灵活的部署更新能力。
CEN/XFS 金融外设设备连接标准,定义
了一套标准的API、相应的SPI 和支持服务,
为基于WINDOWS 的应用提供对金融设备的
访问,以实现多厂商设备之间的互用性。由于
采用Windows 消息和C++ 技术,CEN/XFS 难