杨德娜 王纯
(1. 北京邮电大学网络与交换技术国家重点实验室,100876; 2. 东信北邮信息技术有限公司,100083)
摘 要:给出了一种基于小额支付平台(MPP:Micro Payment Platform)的空中充值系统(OTAC:Over the Air Charging)设计方案,主要包括系统架构说明,主要模块的结构和功能介绍以及网站的架构和功能说明。由于以已经商用的小额支付平台为基础,并且采用了结构化,协议适配等设计方法,使该系统具有很好的移植性,鲁棒性,延展性。
关键字:小额支付,空中充值,设计方法
Design of OTA Charging System Based on Micro Payment Platform
Yang Dena1, 2, Wang Chun1, 2
(1. State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, 100876; 2. EBUPT Information Technology Co., Ltd, 100083 ;)
[Abstract] A scheme for OTA (Over the Air) charging system based on MPP (Micro Payment Platform) is presented, including description of system architecture, function of main modules and design of website. This system has a good portability, robustness and scalability, for it is based on a widely used MPP system and some design methods are used, e.g. modular, protocol adapter and etc.
[Keyword] MPP, OTA, design methods
1. 引言
空中充值[1](OTA Charging:Over the Air Charging)是移动公司推出的一种全新的充值方式。简单的说,它是以电脑或手机作为业务办理终端,通过在电脑或手机上的简单的操作来实现手机话费充值的办理。空中充值的用户称为代理商,代理商还可以分为不同的级别,上级代理商可以发展自己的下级代理商。另外还针对部分希望招收下级代理的代理商提供独立的代理平台,增加了代理商选择交易平台的机会。
空中充值作为现有充值(缴费)方式的补充和扩展,可以进一步扩展客户的缴费渠道,和传统的充值、缴费方式相比,空中充值可为客户提供更加灵活便捷的充值和缴费服务。空中充值的优点对于运营商来说,主要表现在:服务理念的创新——将移动营业柜台无限拉近到客户身边;提高服务质量——采用便利服务系统,不再受到时间和空间的限制,代理商可以随时随地为用户提供快捷、便利的缴费业务,提高了服务质量;丰富服务手段——便利营业系统可作为移动传统服务之外的有益补充;迅速拓宽渠道——系统提供“移动”营业厅级别的服务可迅速扩展市场;降低了运营成本——在运行过程中,采用了空中充值电子流代替了实物物流形式,减少了充值卡等实物在物流过程中所消耗的人力、物力,同时提高了工作效率,降低了充值卡制作成本,节省了资源的浪费;增强管理能力——空中充值营业系统管理中心提供了代理商和客户办理业务的详细数据,并能够为移动公司提供业务统计与分析报表;提升企业形象——创新而又实用的产品服务可吸引用户的注意力,增加用户满意度,并迅速提升企业的品牌形象。空中充值的优点对于代理商主要表现在:充值面额选择性大,从几元到几万都可以一次性充值;资金安全;减少物流成本;可以在任何充错的情况下及时冲正,尽量避免代理的损失;操作简便;方便未来叠加业务。
全国已有许多省市陆续推出了空中充值业务,如何在已有的小额支付的基础上快速开发出空中充值尤为重要。
2. 小额支付系统介绍
图1小额支付系统逻辑结构图
小额支付系统[2](MPP:Micro Payment Platform)的逻辑结构图如图1所示。系统的各功能模块的作用:通信处理部分MPCU[3]:完成通信处理的功能,为用户提供多种交易接入和管理接入的通信方式,目前支持的通信方式有:短信、语音、WWW、WAP;交易处理部分MPTU:完成交易处理的功能,处理各个SP(Service Provider)的交易请求,根据用户的账户设置情况,与本地数据库(或银行、或BOSS系统)交互,完成对用户支付账户的扣费操作;业务受理部分 MPSU:完成业务受理的功能,处理管理员、营业厅操作员、或用户的业务管理请求,进行相应查询、配置或计算,并返回结果;代理部分Agent,例如:WWWAgent,BankAgent等负责与各个外部实体的通信;另外,系统还应有辅助模块用来完成系统各进程的守护、监视、控制、以及系统性能数据的采集功能。
其中SP模块在以往的小额支付业务中,只是设计成MPP的一个内部模块,这样不利于我们跟其他SP的合作。在空中充值系统的设计中,将SP独立成与MPP 独立的模块,称为MSP(Micro Service Provider),MPP作为公共支付的平台,而MSP负责具体的业务逻辑。MSP可以由我们自己开发,也可以由其他的SP开发,我们只需要提供相应的通信,缴费,扣款的接口即可。
3. 空中充值系统的设计方案
3.1 空中充值系统的架构
图2 空中充值系统逻辑结构图
空中充值系统的逻辑结构图如图2所示,中间部分为MSP系统,它相当于一个完整的SP业务系统,完全独立于MPP系统。MSP系统承载着向终端用户提供移动支付业务的业务逻辑部分,通过标准的移动支付协议与MPP系统交互[4-6]。
MSP的模块结构采取MAN-RUN结构,即由MAN模块处理消息的转发,由RUN模块实现具体业务功能。MAN模块在转发消息时通过负荷分担的方式,保证系统实现高的处理性能。RUN模块通过不同的业务处理自动机来完成对于各种业务的实现。
MSPACCESSD和MSPACCESS模块提供接入控制的功能,通过命令行界面对系统中的进程进行管理。
MSPCROND提供管理共享内存中数据以用于进程间共同访问的功能;
MSPD是整个系统的守护进程。它负责创建系统各进程,并通过例检消息监视它们的运行状态,对状态异常的进程进行重启;
MSPMON是MPP监控台。这是一个字符窗口界面的监视工具,通过它可以动态监视系统的基本运行情况。
由于各省各单位的缴费协议不统一,MULTIA必须支持多种缴费协议。MSPMAN与MULTIA之间需要定义统一的缴费接口,采用内部定义的PAYFEE协议,由MULTIA完成统一接口到具体缴费协议的转换。通过协议映射,屏蔽了各缴费协议的不同。
MSP系统内部通过FIFO(First In First Out)消息进行通信,与外部实体通过socket消息进行通信。
3.2 MSP系统的设计
3.2.1 MSPMAN模块的设计
MSPMAN模块负责消息的转发和定时任务。MSPMAN通过MPCP小额支付通信协议[7]和MPTP小额支付交易协议[8]与MPP进行交互。MSPMAN需要完成的定时任务有:定时的冲正,定时任务触发,定时业务重启等等。MSPMAN模块的结构图如图3所示:
图3 MSPMAN模块结构图
(1) TMspmanCtrl是MSPMAN模块的总控类,它负责协调个子模块,完成MSPMAN模块的功能。
(2) TFifoComm类是FIFO通信的总控类,它负责底层FIFO消息的收发,对上层提供统一的接口。
(3) TMonitor类负责MSPMAN模块的接入控制,通过它MSPMAN可以接受并响应mppaccess的接入控制命令。
(4) TSocketComm类是Socket通信的总控类,它负责管理MSPMAN模块的Socket通信,包括与MPCU和MPTU模块的链路维护、收发消息等。
3.2.2 MSPRUN模块的设计
MSPRUN主要是通过实现各种自动机来完成对业务的处理,模块结构图如图4所示:
图4 MSPRUN模块结构图
(1) TMsprunCtrl是MSPRUN模块的总控类,它负责消息的接收及分发处理;
(2) TFifoComm类是FIFO通信的总控类,它负责底层FIFO消息的收发,对上层提供统一的接口;
(3) TMonitor类负责MSPRUN模块的接入控制,通过它MSPRUN可以接受并响应;
(4) 业务处理部分采用自动机机制,负责MSPRUN模块的具体消息的处理。
为了提高代码的复用度,对自动机进行了分类,主要分为三大类:
(1) 基本功能自动机
实现通用的功能,包括短信收发的处理、交易、派奖等。每个自动机完成一项最基本的功能。即只处理与外部实体的一次消息交互。如果需要继续做其他操作,需要通过触发相关的基本功能自动机。
(2) 业务处理自动机
实现一个具体的业务功能,例如开户,销户,话费催缴、话费代缴等。用到发短信、交易时,通过调用基本功能自动机来实现。
(3) 系统处理自动机
完成系统的一些定时处理,如账单处理、对帐处理、批量短信发送等。这些自动机一般通过MSPMAN的定时调度触发。
3.2.3 MULTIA模块的设计
图2显示了MULTIA模块在系统中的位置,该模块主要定义了以下消息:payfee_login,payfee_login_resp,payfee_active,payfee_active_resp,pay,pay_resp,fee_undo,fee_undo_resp,query,query_resp 等等。针对不同的缴费系统,这些消息能够满足所有的业务需求。
根据连接的缴费系统的不同,通过传入不同的参数,生成相应的MULTIA的进程。MULTIA接收到MSPMAN的PAYFEE协议的消息后,转化成对应的缴费协议传给缴费实体。同样,MULTIA也会完成不同缴费协议到PAYFEE协议的转化。
MSPMAN只需要通过一种PAYFEE协议就可以完成与各个缴费实体的交互,简化了业务的逻辑。
3.3 空中充值系统网站的设计
除了业务平台,还要有对应的网站,空中充值系统的管理员可以通过管理网站对业务进行管理,代理商也可以通过网站进行话费充值,冲正等操作。
3.3.1 网站架构的设计
网站采用MVC(Model、View、Controller)架构,MVC这种设计模式把应用逻辑、处理过程和显示逻辑分成不同的组件实现,通过三者之间的分离达到层间的松散耦合,以实现代码重用和易于修改,提高系统的灵活性、复用性和可维护性,达到提高软件质量的目的。
系统使用Struts+Spring+Hibernate三者的整合进行开发,Struts提供了丰富的标签库(taglib)美化了网页的设计;Spring可以用于构建轻量级的应用,利用Spring的控制反转特性,实现组件之间的松散耦合;Hibernate是对象/关系映射的解决方案,即ORM (Object/Relational Mapping)。Hibernate提供与数据库无关的实现方案,程序员只要定义好数据持久化对象和数据库表之间的映射就可以方便的使用面向对象的开发方法,而不用在系统中嵌入难以维护的SQL语句。
3.3.2 网站主要功能的设计
网站的角色可以分为管理员和代理商两类。
管理员可能有多种角色:开发人员使用的root权限,超级管理员(比root用户少些功能)和普通的管理员。其中普通的管理员又可以分为全省的管理员和各个地市的管理员。代理商可以分为多级,一般定为两级或三级,每个级别的代理商都有自己对应的权限。
对于代理商而言,通过网站可以充值,冲正,查询充值情况。上级代理商还可以对其发展的下级代理商进行管理,为下级代理商转账,查询转账情况。
对于管理员而言,通过网站,要对自己管辖范围内的代理商进行管理。能够查看他们的充值,冲正,转账情况。能够跟踪用户的每次操作,查看操作进行的情况,以方便定位问题。能够进行各种各样的汇总,如每日交易汇总,每月交易汇总等等。
4.结束语
在本文中,对现有的小额支付平台进行了介绍[9],提出了一个快速构建空中充值系统的设计方案。该设计方案使系统能够承受很大的业务量[10],能够适应不同的缴费系统,并且能够以此为基础快速的发展其他的业务。
参考文献
[1] 徐童,廖建新,移动增值业务及网络发展展望,电信工程技术与标准化,2004年09期 69-74
[2] 中国移动通信集团公司,小额支付业务实现方案,2002年5月,1-30
[3] 栾瑞鹏,廖建新,刘泱,移动支付平台在异种网络中的迁移与实现,通信世界,2005年27期,50-53
[4] 廖建新等,移动智能网,北京邮电大学出版社,2000年11月,100-150
[5] 廖建新等,移动通信新业务,人民邮电出版社,2007年02月,57-200
[6] 李晓峰,智能网技术,北京邮电大学出版社,1998年10月,20-50
[7] 中国移动通信集团公司,小额支付业务通信协议MPCP,2003年10月,1-26
[8] 中国移动通信集团公司,小额支付业务交易协议MPTP,2003年06月,1-101
[9] 李炜,小额支付系统建设中相关问题探讨,电信科学,2004,20(2):30-32
[10] Fan Limin,Liao Jianxin,Stability analysis of mobile micropayment service system,Journal of Harbin Institute of Technology (New Series), v 15, n SUPPL., April, 2008, p 120-123
|