在线计费系统中内存数据库的研究与应用
2012-08-22邹永平
邹永平 毛 蔚
(1.江苏无锡交通高等职业技术学校组织人事处 江苏 无锡 214151;2.江苏无锡交通高等职业技术学校继续教育部 江苏 无锡 214151)
0 引言

图1 系统结构图
为了提高现有的在线计费产品在国际市场的优势,决定通过自主研发一套高度独立的、快速的、安全的、易用的内存数据库,来代替TimesTen[1],同时能够无缝的与现有系统进行对接,并将CustCache、RuleCache进行替换,简化现有系统的复杂度,降低系统的耦合度。通过这套系统,可以在各个计费版本中进行推广,为在线计费系统提供一套完整的、可控的解决方案。这个专为计费系统而生的内存数据库就是Quick Memory DataBase,本文简称QMDB或者MiniDB。
本文主要是针对计费领域中的数据处理,考虑了计费数据的特点和技术难度,摒弃TimesTen的一些特性,增加几点功能:支持多平台运行,QMDB也必须能在AIX、HP、Solaries、Linux和Windows平台上面运行。这是设计的第一个要求,其次,针对计费系统的高可靠性和实时性,QMDB必须能够应对系统发生故障的例外情况,就是主备机同步的。第三,由于计费系统的处理数据都存于Oracle数据库中,所以,QMDB也必须要支持数据与Oracle系统的同步[2-3]。
1 系统结构图
图1说明:
a)系统结构图中右边的虚线部分表示与其他主机进行数据传输。
b)接口进程G通过消息方式与其他进程交互,不仅限于数据接收进程F,还可以包括Oracle数据更新进程(指O-racle数据变更后,数据需要同步过来)、冲值进程、开户进程、SID等等没,只要这些进程满足我们约定的格式要求就可以。
c)外部系统(指除去本机上面运行的计费相关进程),所有涉及非只读表的修改(包括插入、更新、删除)都必须通过接口进程G处理,对于Java进程可以直接从Oracle读取数据,对于C++的程序,则可以通过系统接口直接访问。……
