CN101217385A - 暂存处理计费话单的方法和系统 - Google Patents
暂存处理计费话单的方法和系统 Download PDFInfo
- Publication number
- CN101217385A CN101217385A CNA2008100023879A CN200810002387A CN101217385A CN 101217385 A CN101217385 A CN 101217385A CN A2008100023879 A CNA2008100023879 A CN A2008100023879A CN 200810002387 A CN200810002387 A CN 200810002387A CN 101217385 A CN101217385 A CN 101217385A
- Authority
- CN
- China
- Prior art keywords
- partial cdr
- disk file
- cdr
- index area
- critical field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种暂存处理计费话单的方法和系统,其中,该方法包括以下步骤:步骤一,在计费网关接收到一个部分话单后,判断在内存中是否存在部分话单的关键字段;以及步骤二,如果不存在关键字段,则从内存中获取一个可用磁盘文件的位置,将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,否则,将关键字段所对应的已有话单与部分话单合并生成一个新话单。因此,采用本发明的方法和系统,将主要关键数据保存在内存中,一般数据保存在磁盘中的两级机制,部分话单的查找都在内存中实现,因此查找性能比数据库的性能大大提高,从而既降低了系统的成本,又提高了系统的性能。
Description
技术领域
本发明涉及通讯领域的计费技术,更具体地,涉及一种暂存处理计费话单的方法和系统。
背景技术
在第三代移动通信系统核心网分组域(PS)中,服务通用无线分组业务支持节点(Service GPRS Support Node,SGSN)和网关通用无线分组业务支持节点(Gateway GPRS Support Node,GGSN)在为用户提供业务服务的同时,需要根据用户移动终端的网络使用情况进行计费,对于一个包数据协议(packet data protocol,PDP)上下文,SGSN、GGSN分别产生SGSN的呼叫详细记录(S-CDR)和GGSN的呼叫详细记录(G-CDR)话单,记录计费信息,然后通过SGSN、GGSN与计费网关(Charging Gateway,CG)之间的接口发送给CG。由于PDP上下文的持续时间较长,因此可以设置达到一定时间或传输了一定流量后产生一个部分话单,这样一个PDP上下文会产生多个部分话单。
图1是CG合并处理系统的架构图。
图2是CG合并处理的两级存储机制的示意图。
如图1所示,CG对接收到的部分话单进行合并处理,然后产生最终话单,存储为话单文件并发送给记帐系统(Billing System,BS),由BS生成用于收费的用户话单。一个PDP上下文相关的多个部分话单不会一次性发送到CG,而是彼此间隔不定的时间,直到一个PDP上下文相关的所有部分话单都发送到CG后,才能完成合并,产生最终话单。如图2所示,因此这些部分话单在合并完成前需要在CG暂存一段时间,由于用户数大,需要暂存的部分话单数量很大,不能都存放在内存中。
目前一般采用数据库系统(例如,Oracle)来保存需要暂存的部分话单,收到的部分话单先插入数据库,合并过程中更新到数据库,到完成合并后从数据库中删除。
但采用数据库有一些弊端:数据库性能不高,如入库性能再优化也不过500~600条/秒,Oracle数据库价格高,成本较高,而话单数据的存储和查询是很简单的要求,并不需要复杂的查询和操作,使用数据库有点大材小用。
发明内容
为了解决现有技术中的问题,本发明提出了一种暂存处理计费话单的方法,该方法包括以下步骤:步骤一,在计费网关接收到一个部分话单后,判断在内存中是否存在部分话单的关键字段;以及步骤二,如果不存在关键字段,则从内存中获取一个可用磁盘文件的位置,将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,否则,将关键字段所对应的已有话单与部分话单合并生成一个新话单。
其中,在步骤二之后,该方法还包括:判断部分话单的保存时间是否满足预定值,如果满足预定值,则将新话单发送至记帐系统,否则,继续根据部分话单的关闭原因判断具有关键字段的所有部分话单是否全部完成合并,如果全部完成合并,则将新话单作为最终话单发送至记帐系统,否则,将新话单重新保存到保存已有话单的磁盘文件中。
在步骤一之前,将内存划分为部分话单索引区和未用文件块索引区。
在步骤一中,在计费网关接收到部分话单后,判断在部分话单索引区中是否存在部分话单的关键字段。
在步骤二中,如果不存在关键字段,则从未用文件块索引区中获取可用磁盘文件的位置,将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,并将部分话单的关键字段、可用磁盘文件的位置和保存时间都插入到部分话单索引区中。
此外,在将新话单发送至记帐系统后,将新话单从磁盘文件和部分话单索引区中删除,并将保存新话单的磁盘文件的位置插入到未用文件块索引区中。
本发明还提出了一种暂存处理计费话单的系统,该系统包括:查询模块,在接收到一个部分话单后,用于判断在内存中是否存在部分话单的关键字段;以及处理模块,如果不存在关键字段,则用于从内存中获取一个可用磁盘文件的位置,并将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,否则,用于将关键字段所对应的已有话单与部分话单合并生成一个新话单。
此外,该系统还包括:判断模块,用于判断部分话单的保存时间是否满足预定值,如果满足预定值,则将新话单发送至记帐系统,否则,继续根据部分话单的关闭原因判断具有关键字段的所有部分话单是否全部完成合并,如果全部完成合并,则将新话单作为最终话单发送至记帐系统,否则,将新话单重新保存到保存已有话单的磁盘文件中;分区模块,用于将内存划分为部分话单索引区和未用文件块索引区。
其中,查询模块用于在计费网关接收到部分话单后,判断在部分话单索引区中是否存在部分话单的关键字段。对于处理模块,如果不存在关键字段,则用于从未用文件块索引区中获取可用磁盘文件的位置,将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,并将部分话单的关键字段、可用磁盘文件的位置和保存时间都插入到部分话单索引区中。
在判断模块将新话单发送至记帐系统后,将新话单从磁盘文件和部分话单索引区中删除,并将保存新话单的磁盘文件的位置插入到未用文件块索引区中。
因此,采用本发明的方法和系统,通过将主要关键数据保存在内存中,一般数据保存在磁盘中的两级机制,部分话单的查找都在内存中实现,因此查找性能比数据库的性能大大提高,从而既降低了系统的成本,又提高了系统的性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是CG合并处理系统的架构图;
图2是CG合并处理的两级存储机制的示意图;
图3是根据本发明的方法的流程图;
图4是根据本发明方法的第二实施例的部分话单处理流程图;
图5是根据本发明方法的第二实施例来判断部分话单是否超时的处理流程图;以及
图6是根据本发明的系统的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图3是根据本发明的方法的流程图。
如图3所示,该方法包括:
S302,在计费网关接收到一个部分话单后,判断在内存中是否存在部分话单的关键字段;以及
S304,如果不存在关键字段,则从内存中获取一个可用磁盘文件的位置,将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,否则,将关键字段所对应的已有话单与部分话单合并生成一个新话单。
其中,在S304之后,该方法还包括:判断部分话单的保存时间是否满足预定值,如果满足预定值,则将新话单发送至记帐系统,否则,继续根据部分话单的关闭原因判断具有关键字段的所有部分话单是否全部完成合并,如果全部完成合并,则将新话单作为最终话单发送至记帐系统,否则,将新话单重新保存到保存已有话单的磁盘文件中。
在S302之前,将内存划分为部分话单索引区和未用文件块索引区。
在S302中,在计费网关接收到部分话单后,判断在部分话单索引区中是否存在部分话单的关键字段。
在S304中,如果不存在关键字段,则从未用文件块索引区中获取可用磁盘文件的位置,将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,并将部分话单的关键字段、可用磁盘文件的位置和保存时间都插入到部分话单索引区中。
此外,在将新话单发送至记帐系统后,将新话单从磁盘文件和部分话单索引区中删除,并将保存新话单的磁盘文件的位置插入到未用文件块索引区中。
接下来,描述本发明方法的第一实施例。
采用磁盘、内存两级储存机制来保存部分话单,在磁盘创建固定数量的文件,每个文件分为固定数量块,块的长度也是固定的,一个块存放一个话单,话单在磁盘文件中的位置(即文件块的位置)用文件号(文件名称)+块号来确定。内存中分为两个区:一是部分话单索引区,保存话单的关键字段及该话单在磁盘文件中的位置和保存时间,可以根据关键字段从部分话单索引区中找到对应话单在磁盘文件中的位置,然后从磁盘文件中读取、更新话单;二是未用文件块索引区:保存所有未用的文件块的位置,当需要插入一个话单时从未用文件块索引区中取得一个未用文件块的位置,将该话单保存到这个块,同时将这个块的位置从未用文件块索引区中删除。
CG接收一个部分话单后,根据该部分话单的关键字段,到部分话单索引区中查找,如果没有找到,说明与关键字段一致的部分话单以前没有接收到,需要保存起来,从未用文件块索引区中取得一个未用文件块的位置,将该部分话单保存到磁盘文件的指定位置,然后将该部分话单的关键字段、文件块的位置和保存时间插入部分话单索引区;
如果找到,说明以前已收到与关键字段一致的部分话单,以前收到的部分话单需要与此次收到的部分话单合并起来,根据部分话单对应文件块的位置,从指定磁盘文件中读取以前收到的部分话单,与此次收到的部分话单合并起来;
合并之后产生一个新的话单,并判断此话单是否合并完成,如果合并完成,则将该话单作为最终话单保存到话单文件,发送到BS,同时将该部分话单从磁盘文件和部分话单索引文件中删除,该文件块的位置插入未用文件块索引区;以及
如果合并未完成,则将该话单重新保存到磁盘文件,等待继续合并,同时将新的保存时间更新到部分话单索引区。
此外如果一个部分话单在较长的时间(时间可以定制)内仍无法完成合并,则认为超时,不能继续等待,需要发送到BS,根据部分话单索引区中的保存时间,若保存时间大于等于指定时间,则从磁盘文件中读取该部分话单,输出到话单文件,发送到BS。
图4是根据本发明方法的第二实施例的部分话单处理流程图。
当CG第一次启动时,创建固定数量的10个磁盘文件,名称为:merge00.dat、merge01.dat、直到merger09.dat,其文件号为0~9。每个文件被划分为4000个块,每个块4096字节,块号为0~3999,因此用(文件号、块号)这两个数字就可以唯一确定文件块的位置,如(3,100)表明第四个文件merge03.dat中的第101个块。创建部分话单索引区,保存关键字与文件块位置的对应关系,第一次启动时,部分话单索引区中没有部分话单。创建未用文件块索引区,保存未用文件块的位置,第一次启动时,所有的文件块都是未用空闲的。
如图4所示,CG收到一个部分话单的处理流程如下:
S401,接收一个部分话单a;
S402,按部分话单a的关键字段Key到部分话单索引区中查找;
S403,判断是否找到与关键字段Key对应的文件块?如果是,则执行S404,否则,执行S411;
S404,部分话单索引区中与关键字段Key对应的文件块为(F1,B1),读取该块的信息,为部分话单b;
S405,将部分话单b与部分话单a合并为新的部分话单c;
S406,判断部分话单c是否合并完成?如果完成,则执行S407,否则,执行S414;
S407,将部分话单c保存到话单文件发送BS;
S408,将关键字段Key和文件块位置(F1,B1)从部分话单索引区中删除;
S409,访问磁盘文件F1中的B1块,删除文件块中的信息;
S410,文件块位置(F1,B1)插入未用数据块索引区,结束流程;
S411,从未用文件块索引区中获取一个空闲文件块(F,B);
S412,将部分话单a写到磁盘文件F的B块;
S413,将关键字段Key、文件块位置(F,B)和当前时间插入部分话单索引区,结束流程;
S414,将合并完成后的部分话单c更新到文件块(F1,B1);以及
S415,用当前时间更新部分话单索引区中保存合并后部分话单的保存时间,结束流程。
图5是根据本发明方法的第二实施例来判断部分话单是否超时的处理流程图。
如图5所示,CG判断部分话单是否超时的处理流程如下:
S501,按保存时间查找部分话单索引区;
S502,判断部分话单索引区中的保存时间是否大于等于指定时间,如果是,执行S503,否则,结束流程;
S503,将部分话单保存到话单文件发送BS;
S504,将关键字段、文件块的位置从部分话单索引区中删除;
S505,访问磁盘文件中的文件块,删除文件块中的信息;以及
S506,文件块位置插入未用数据块索引区,结束流程。
图6是根据本发明系统600的框图。
如图6所示,该系统包括:
查询模块602,在接收到一个部分话单后,用于判断在内存中是否存在部分话单的关键字段;以及处理模块604,如果不存在关键字段,则用于从内存中获取一个可用磁盘文件的位置,并将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,否则,用于将关键字段所对应的已有话单与部分话单合并生成一个新话单。
此外,该系统还包括:判断模块606,用于判断部分话单的保存时间是否满足预定值,如果满足预定值,则将新话单发送至记帐系统,否则,继续根据部分话单的关闭原因判断具有关键字段的所有部分话单是否全部完成合并,如果全部完成合并,则将新话单作为最终话单发送至记帐系统,否则,将新话单重新保存到保存已有话单的磁盘文件中;分区模块608,用于将内存划分为部分话单索引区和未用文件块索引区。
其中,查询模块用于在计费网关接收到部分话单后,判断在部分话单索引区中是否存在部分话单的关键字段。对于处理模块,如果不存在关键字段,则用于从未用文件块索引区中获取可用磁盘文件的位置,将部分话单保存到可用磁盘文件的位置所对应的可用磁盘文件中,并将部分话单的关键字段、可用磁盘文件的位置和保存时间都插入到部分话单索引区中。
在判断模块将新话单发送至记帐系统后,将新话单从磁盘文件和部分话单索引区中删除,并将保存新话单的磁盘文件的位置插入到未用文件块索引区中。
综上所述,采样本发明的方法和系统,将主要关键数据保存在内存中,一般数据保存在磁盘中的两级机制,部分话单的查找都在内存中实现,因此查找性能比数据库的性能大大提高,从而既降低了系统的成本,又提高了系统的性能。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种暂存处理计费话单的方法,其特征在于,所述方法包括以下步骤:
步骤一,在计费网关接收到一个部分话单后,判断在内存中是否存在所述部分话单的关键字段;以及
步骤二,如果不存在所述关键字段,则从所述内存中获取一个可用磁盘文件的位置,将所述部分话单保存到所述可用磁盘文件的位置所对应的可用磁盘文件中,否则,将所述关键字段所对应的已有话单与所述部分话单合并生成一个新话单。
2.根据权利要求1所述的方法,其特征在于,在所述步骤二之后,所述方法还包括:
判断所述部分话单的保存时间是否满足预定值,如果满足预定值,则将所述新话单发送至记帐系统,否则,继续根据所述部分话单的关闭原因判断具有所述关键字段的所有部分话单是否全部完成合并,如果全部完成合并,则将所述新话单作为最终话单发送至所述记帐系统,否则,将所述新话单重新保存到保存所述已有话单的磁盘文件中。
3.根据权利要求2所述的方法,其特征在于,在所述步骤一之前,将所述内存划分为部分话单索引区和未用文件块索引区。
4.根据权利要求3所述的方法,其特征在于,在所述步骤一中,在所述计费网关接收到所述部分话单后,判断在所述部分话单索引区中是否存在所述部分话单的所述关键字段。
5.根据权利要求4所述的方法,其特征在于,在所述步骤二中,如果不存在所述关键字段,则从所述未用文件块索引区中获取所述可用磁盘文件的位置,将所述部分话单保存到所述可用磁盘文件的位置所对应的所述可用磁盘文件中,并将所述部分话单的所述关键字段、所述可用磁盘文件的位置和所述保存时间都插入到所述部分话单索引区中。
6.根据权利要求5所述的方法,其特征在于,在将所述新话单发送至所述记帐系统后,将所述新话单从磁盘文件和所述部分话单索引区中删除,并将保存所述新话单的所述磁盘文件的位置插入到所述未用文件块索引区中。
7.一种暂存处理计费话单的系统,其特征在于,所述系统包括:
查询模块,在接收到一个部分话单后,用于判断在内存中是否存在所述部分话单的关键字段;以及
处理模块,如果不存在所述关键字段,则用于从所述内存中获取一个可用磁盘文件的位置,并将所述部分话单保存到所述可用磁盘文件的位置所对应的可用磁盘文件中,否则,用于将所述关键字段所对应的已有话单与所述部分话单合并生成一个新话单。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
判断模块,用于判断所述部分话单的保存时间是否满足预定值,如果满足预定值,则将所述新话单发送至记帐系统,否则,继续根据所述部分话单的关闭原因判断具有所述关键字段的所有部分话单是否全部完成合并,如果全部完成合并,则将所述新话单作为最终话单发送至所述记帐系统,否则,将所述新话单重新保存到保存所述已有话单的磁盘文件中。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括:
分区模块,用于将所述内存划分为部分话单索引区和未用文件块索引区。
10.根据权利要求9所述的系统,其特征在于,所述查询模块用于在所述计费网关接收到所述部分话单后,判断在所述部分话单索引区中是否存在所述部分话单的所述关键字段。
11.根据权利要求10所述的系统,其特征在于,对于所述处理模块,如果不存在所述关键字段,则用于从所述未用文件块索引区中获取所述可用磁盘文件的位置,将所述部分话单保存到所述可用磁盘文件的位置所对应的所述可用磁盘文件中,并将所述部分话单的所述关键字段、所述可用磁盘文件的位置和所述保存时间都插入到所述部分话单索引区中。
12.根据权利要求11所述的系统,其特征在于,在所述判断模块将所述新话单发送至所述记帐系统后,将所述新话单从磁盘文件和所述部分话单索引区中删除,并将保存所述新话单的所述磁盘文件的位置插入到所述未用文件块索引区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810002387 CN101217385B (zh) | 2008-01-15 | 2008-01-15 | 暂存处理计费话单的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810002387 CN101217385B (zh) | 2008-01-15 | 2008-01-15 | 暂存处理计费话单的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101217385A true CN101217385A (zh) | 2008-07-09 |
CN101217385B CN101217385B (zh) | 2013-01-16 |
Family
ID=39623752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810002387 Active CN101217385B (zh) | 2008-01-15 | 2008-01-15 | 暂存处理计费话单的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101217385B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102427405A (zh) * | 2011-07-29 | 2012-04-25 | 华为技术有限公司 | 话单关联方法、系统以及相关设备 |
CN102457827A (zh) * | 2010-10-28 | 2012-05-16 | 大唐移动通信设备有限公司 | 通知话单关闭和合并话单的方法、系统及设备 |
CN101686209B (zh) * | 2008-09-24 | 2013-10-09 | 阿里巴巴集团控股有限公司 | 消息转发系统中存储消息的方法和装置 |
CN113411761A (zh) * | 2020-03-17 | 2021-09-17 | 中国移动通信集团浙江有限公司 | 话单计费方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225863C (zh) * | 2002-08-27 | 2005-11-02 | 华为技术有限公司 | 话单合并处理方法 |
-
2008
- 2008-01-15 CN CN 200810002387 patent/CN101217385B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686209B (zh) * | 2008-09-24 | 2013-10-09 | 阿里巴巴集团控股有限公司 | 消息转发系统中存储消息的方法和装置 |
CN102457827A (zh) * | 2010-10-28 | 2012-05-16 | 大唐移动通信设备有限公司 | 通知话单关闭和合并话单的方法、系统及设备 |
CN102427405A (zh) * | 2011-07-29 | 2012-04-25 | 华为技术有限公司 | 话单关联方法、系统以及相关设备 |
CN113411761A (zh) * | 2020-03-17 | 2021-09-17 | 中国移动通信集团浙江有限公司 | 话单计费方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101217385B (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101004758A (zh) | 生成和获取报表的方法及相应的系统 | |
CN101106818B (zh) | 一种统计gsm网络服务区中用户漫游状态的系统及方法 | |
CN104636477A (zh) | 一种信息推送前推送列表的去重方法 | |
CN101217385B (zh) | 暂存处理计费话单的方法和系统 | |
CN102117340A (zh) | 一种动态数据存储方法 | |
CN102387486A (zh) | Gprs分割话单的计费方法及装置 | |
CN100571316C (zh) | 基于内存文件与实时同步技术的快速固定费用计算系统 | |
CN100392652C (zh) | 检索系统和检索方法 | |
CN105721174A (zh) | 一种计费方法、计费系统和计费终端 | |
CN101729709B (zh) | 一种分话单处理方法及装置 | |
CN100411468C (zh) | 移动通信终端短信的删除方法 | |
CN101533394A (zh) | 一种日历事件的查询方法、系统及移动终端 | |
CN110689386B (zh) | 一种电子票据开具方法及系统 | |
CN101384050A (zh) | 一种移动终端及其资源管理的方法及系统 | |
CN105095224A (zh) | 一种在移动通信网络中进行olap分析的方法、装置和系统 | |
CN1195359C (zh) | 数据同步系统及方法 | |
CN102902731B (zh) | 邮件索引的存储方法 | |
CN109151808A (zh) | 一种数据分析方法及系统 | |
CN1984354B (zh) | 对用户帐户资源进行管理的方法和装置 | |
CN116342123B (zh) | 一种硬件钱包的数据读取的方法及装置 | |
CN101646154B (zh) | 消息类应用网关对包月sp业务的鉴权方法及其系统 | |
KR100610529B1 (ko) | 카드블랙리스트 데이터의 압축저장방법 및 그 검색방법 | |
CN101237595B (zh) | 数据加载方法 | |
CN101894142B (zh) | 一种避免智能网系统中数据库死锁的方法和装置 | |
KR100877081B1 (ko) | 중복호 처리 성능을 개선한 통신 요금 산출 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |