(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],能够适应不同的缴费系统,并且能够以此为基础快速的发展其他的业务。