吴天琪 徐法强
摘要:文章主要介绍了利用UNIX下的多进程软件设计、中间件和数字签名技术来实现第三方代收电费平台的设计与应用。利用第三方代收平台进行电费收取,在充分利用社会资源的同时,又要确保通信数据的安全性和可靠性,以及电费资金的安全和优质服务管理。
关键词:多进程;中间件;数字签名;资金安全
中图分类号:TM769文献标识码:A 文章编号:1674-1145(2009)17-0197-03
一、引言
近年来,成都城市发展的步伐不断加快,居民户表客户数量剧增,电力系统面对的收费压力极大。成都由于地处内地,消费观念还跟不上沿海发达地区,客户还习惯用现金消费,居民缴费的客户群年龄普遍偏大,以中老年为主,接受电话银行、网上银行、委托代扣等新生事物慢,但时间较为充裕,活动范围不大,主要局限在居住的社区附近,对就近缴纳电费有强烈的需求。为了切实解决“缴费难”的问题,我们先后采取了多项措施:完善银行代收电费系统;改造供电营业厅,以扩大收费容量;利用外租网点、社区服务站、城郊接合部等新增了自主收费网点;大力推广以委托代扣为主的电费直通车业务,加强与银行的沟通、协调。虽然采取了大量措施,“缴费难”的矛盾得到了一定程度的缓解,但问题仍然普遍存在。
二、电子超市简介
电子超市是一种建立在居民社区有人值守的数字化社区电力服务平台,以方便居民客户缴纳电费为主,并逐步拓展到水、气、电话、手机等多种费用的收取业务,使客户可在该处像超市一样一次性缴清多项费用。该种收费方式具备以下特点:专业收费、贴近社区市民、现金收费、营业时间长、一站式服务等。
由于成都市大多数老百姓习惯于现金缴费方式,银行抵触的也主要是现金缴费,电子超市均以现金方式代收电费,解决“缴费难”问题恰好切中要点。该平台除代收电费外,还代收其他相关能源和通信费用,能满足老百姓一站交清相关费用的需求。(如图1)
三、交易中间件技术简介
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
企业级的交易中间平台是在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台。在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。根据X/OPEN的DTP(Distributed Transaction Processing)模型规定,一个分布式交易处理系统应由事务处理、通信处理以及资源管理三部分组成。
四、电子超市代收电费平台的方案设计
本平台严格遵循J2EE框架规范,同时使用了其SERVLET/JNDI等规范,我们将各种规范应用于实际开发,同时采用一些比较成熟的开源框架,如STRUTS等技术,快速建立满足产品需求的应用系统。J2EE使用多平台的分布式应用模型,应用逻辑按照功能划分为组件,各个应用组件根据他们所在的层次分布在不同的应用服务器上。J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层,一个多层化应用能够为不同的每种服务提供一个独立的层次,以下是J2EE典型的层次结构:(1)运行在客户端上的客户端组件(一般是用浏览器作为载体);(2)运行在J2EE服务器上的WEB容器;(3)运行在J2EE服务器上的EJB容器。
电费代收平台的整体逻辑设计。(如图2)
电费代收平台分为功能子系统、数据库子系统和基础子系统三部分,代收机构前置机通过交易中间件与收费接口软件通信,利用不同的技术手段实现收费接口软件不同的功能要求。这种结构的设计充分体现了模块化、松耦合的设计原则。通过基础支撑服务子系统,保证了每个子系统之间的最大的独立性。在系统内部,通过交易中间件平台进行系统消息的交互,实现了子系统之间松耦合的联系。
基础支撑子系统处理收费接口软件与业务无关的逻辑。基础支撑软件接受到交易处理的请求后,将提取相关信息进行安全论证以及日志记录,并分析请求头信息,根据请求信息,动态的装载协议并将该交易交给业务协议包去处理,将处理结果返回给代收机构前置机。
功能子系统负责数据通信,安全论证,一般交易日志的纪录,交费消息,冲正消息等收费日志的记录等,交易协议的装载以及路由、收费、查费、打印发票等业务相关交易等系统基本功能。
数据库子系统实现了对交易日志、收费日志、代收客户端访问权限等基础数据的定义、存储和管理、提供了对大规模并行数据的可靠写入和快速查询、收费交易协议具体实现访问、实现收费业务功能。(系统功能架构如图3)
五、电子超市代收电费平台方案实现
电子超市收费平台采用SCO UNIX下的C开发,采用交易中间件技术,应用多进程SOCKET服务技术处理并发用户的请求,交易接口采用基于TCP/IP协议短连接方式的SOCKET通信架构。
(一)企业级的交易中间件平台的应用
针对收费平台系统的特点,我们采用东方通中间件进行系统开发。该交易中间件提供了高效的并发处理能力,即保证日均处理业务量、峰值处理业务量能达到业务系统的要求。交易中间件采用高效的通信处理技术,如链路复用、滑动窗口、数据包压缩、传输优先级等来充分利用网络带宽,保证传输效率;同时交易中间件利用服务器并发访问控制技术,并行处理和管理多个服务请求,有效地保障了业务系统的处理效率。
交易中间件通过监控和管理系统中的每笔交易,根据一定的交易管理方法,解决因硬件故障、网络故障、人为故障等原因带来的交易完整性问题,从而将业务系统的错误率降到最低限度。
交易中间件可以监控当前系统运行状态,包括客户数、系统提供的服务数、每一服务被调用次数等。管理员可以启动或停止其中的任一服务而不影响其他服务,系统本身也会根据运行情况进行动态平衡。多机群集运行时,若某一主机出现故障,交易中间件能自动将交易请求送到备机上运行。通过交易中间件技术,简化了系统的层次结构和处理过程,提供了对系统运行情况的实时监控,从而使系统运行故障率大大降低,提高了系统的可管理性,减少了系统的总体投入。
实现方式如下:
/******************************************************************
** 电子超市收费
** 收费查询
******************************************************************/
INT32 BankElec_GetOweFee(void *source,UINT32 sourcesize,void *result,UINT32 *resultsize)
{
CS_DATAFMT target_format,t_format;
┊
return SYSTEMSUCCEED;}
/******************************************************************
** 电子超市收费
** 收费确认
******************************************************************/
INT32 BankElec_DoCharge(void *source,UINT32 sourcesize,void *result,UINT32 *resultsize)
{ CS_DATAFMT target_format,t_format;
┊
return SYSTEMSUCCEED;}
(二)收费安全体系建设
针对电子超市收费数据安全要求,我们提出新的安全通信规约和数字签名等安全措施。在电业局内部建设一个企业内部数字证书认证中心(CA中心),作为权威认证机构,由此CA发放证书给各收费终端、电业局代收系统服务器以及代收平台服务器,以保证各个交易实体之间身份的真实性,可靠性和交易信息的完整性和不可抵赖性。数字签名技术使用RSA算法实现数字签名功能,在RSA算法中,私钥有两部分组成,一个是公钥,一个是私钥,用户使用私钥对要交易的数据进行加密,也就是进行签名,交易对方可以使用公钥解密交易数据,但是对方无法修改交易数据,这样保证了交易数据的完整、不可更改、不可抵赖。在图4中,由根CA直接签发终端实体证书,发放给各个客户端和服务器使用,对各个缴费客户端采用强身份认证机制,解决传统静态口令的安全隐患,确保进入系统的客户端身份的唯一性和真实性,以防他人非法获取缴费点账号和密码信息而进入代收平台进行非法操作。
采用证书签到时,需要经过两次验证,分为两个交易。
一次验证时由客户端生成随机挑战数据传给服务器,服务器根据该挑战数据生成验证信息回传给客户端,客户端验证服务器的有效性。
二次验证时,由客户端验证服务器通过后,从其验证信息中取得随机挑战数据,生成客户端的验证信息,并传给服务器,由服务器验证客户端的有效性。
收费平台采用链路级的加密,实现服务器和客户端之间的通信安全保证。采用了对称密钥技术对服务端和客户端之间传输的数据信息进行加密处理,在客户端和服务端使用同一密钥进行信息的加解密处理。
客户端发送签到交易消息请求,收费平台提取其中的论证信息(用户名、密码等),到收费平台安全解决机制中进行相关验证,验证通过后收费平台产生一个临时的令牌,并建立相应的契约,发送给客户端。客户端每次交易时需要携带该令牌,收费平台消息监控器将监控每个交易中的相应令牌信息,进行验证,验证通过后既进行相应的交易处理,保证每笔交易的安全性。
(三)交易接口和数据包
交易接口为TCP短连接方式,使用TCP/IP协议,数据包格式采用TCP数据包头+应用数据包体。
TCP/IP数据包头
struct CtlMsg {
unsigned char XX;
/*是否还有更多的包? */
unsigned char XX;
/*包类型*/
…….
/*一类的结束*/
unsigned char XX; /*保留位*/
XX XX;
/*包序号 */
unsigned short XX;
/*包实际传的长度*/
…….
/*发起请求的进程号,每个请求是唯一的,网络字节序*/
};/*包控制信息*/
Struct XX {
char XX /*交易类型*/
char XX /*交易目的地*/
……. /*交易发起地*/
};/*包头部信息*/
struct XX {
struct CtlMsg XX;
struct Header XX;
……. /*包传输内容*/
};/*包结构*/
(四)资金安全管理
针对电子超市代收平台,我们根据不同电价类别通过实时累计其电费收费总金额并与代收机构银行账户资金进行比对,当其账户资金量低于系统保证值时自动报警,并提示代收机构存入足够金额的电费保证金至电业局资
金账户,以保证电费资金的安全性。
六、结语
本平台的建设应用,极大地缓解了电费收费的压力,广大用电客户对此给予了广泛的好评和认可,使广大居民客户可以就近缴费,可以在下班后缴费,可以一次性缴纳多种费用,尤其适应普通百姓缴纳现金的消费习惯,受到在广大老百姓的普遍欢迎,使百姓体验到党和政府建设和谐社会的成果,目前电子超市已经成为老百姓现金缴费的主要渠道之一。通过开发和应用该系统能有效提高营销系统的成熟度,推动系统的实用化解决各银行代收居民电费有时间限制的问题。缓解供电营业厅的收费压力,节省客户宝贵时间,免去了排队的烦恼;极大地提升了企业的服务水平。
参考文献
[1]李华飚.Java中间件技术及其应用开发,2007.
[2]徐春金.Tuxedo中间件开发与配置,2003.
[3]李志成.商业银行中间业务.2008.
[4]Dale Rogerson 著,杨秀章译.COM技术内幕.
[5]全国电力二次系统安全防护专家组.证书格式及存储介质要求[R].国家电力调度通信中心,2004.
[6]国家电网信息中心.国家电网公司应用软件通用安全要求.2006.
[7]潘爱民著.COM原理应用与发展.
[8]Stanley B.lippman著,候捷译.深度探索COM对象模型.
作者简介:吴天琪(1974- ),女(回族),四川成都人,成都电业局专责,助理工程师,研究方向:电价与电费管理;徐法强(1977- ),男,山东聊城人,成都电业局专责,工程师,研究方向:计算机应用。