消息类业务累计数据缓存方法及系统的制作方法

文档序号:6460159阅读:159来源:国知局
专利名称:消息类业务累计数据缓存方法及系统的制作方法
技术领域
本发明涉及管理提供商增值业务的综合业务管理平台领域,特别是一种消 息类业务累计数据緩存方法及系统。
背景技术
在传统的消息类业务应用中,消息类数据产生后,直接存储到数据库中, 如果需要使用消息类数据,则直接从数据库中查找。由于数据库容量巨大,查 找费时,使得该方案中数据访问速度较低,实时性不高。此外,传统的消息类业务应用中,对消息类数据查找常用直接定址法的哈希算法。直接定址法中哈希函数为关键字的线性函数H(key) = key或者H(key) =akey + b,对于超出地址范围的哈希函数值,另建立一个数据链,再次分配地 址。通常,使用哈希函数计算地址都会产生哈希地址冲突,在传统的消息类业 务中,当出现哈希冲突时,依照空闲地址的顺序依次存储。该方法的缺点在于, 数据存储较为杂乱,,容易产生空闲地址,造成空间浪费,在对数据链中存储的 数据进行访问时,访问速度较慢,从而影响整个数据访问的速度。发明内容有鉴于此,本发明的主要目的在于提供一种消息类业务累计数据緩存方法, 对系统性能影响更小,并能有效的解决哈希沖突。本发明的另一目的在于提供一种消息类业务累计数据緩存系统,效率高、 实时性好。为达到上述目的,本发明的技术方案是这样实现的 一种消息类业务累计数据緩存方法,该方法包括在综合业务管理平台和3G引擎之间建立二级緩存机制,采用除留余数法计算消息类业务累计数据存储地址,将消息类业务累计数据存储在緩沖区。所述消息类业务累计数据存储地址的计算过程具体包括 将用户号码、产品代码中唯一标识产品的字符码组成中间串; 对所述中间串加密,得到累计凄史据标识;将累计数据标识各字符的ASCII码相加结果作为哈希函数自变量; 将所述哈希函数自变量代入除留余数法构建的哈希函数,所得哈希函数值 为消息类业务累计数据的緩存存储地址。所述存储地址计算还包括采用开放定址法解决缓存区存储地址沖突 冲突的存储地址的新地址Hi = (H(key) + di) % m;其中,H(key)为沖突的存储地址,i= 1,2,…,k, (k<=m-l), m为哈希表长; di的选取采用线性探查再散列的方法,即di-l,2,3,.,.,m-l,直到解决存储 地址冲突为止。所述二级緩存机制包括 设置緩存更新周期和历史访问频率阈值;緩存更新周期到达,搜索数据库中在此次緩存更新周期内的产生的消息类 业务累计数据;若消息类业务累计数据的历史访问频率高于历史访问频率阈值,则将该消 息类业务累计数据更新到一级緩存,否则,更新到二级緩存。该方法还包括对用户请求的消息类业务,根据消息类业务累计数据进行 批价。所述根据消息类业务累计数据进行批价的过程包括 3G引擎向综合业务管理平台发送批价请求消息,该消息包含用户号码、产 品代码;综合业务管理平台收到批价请求消息,根据该用户的历史使用情况进行批价,并将用户号码、产品代码存入一级緩存,向3G引擎返回批价请求响应消 自、'3G引擎向综合业务管理平台发送批价确认消息;综合业务管理平台根据批价确认消息,在一级緩存中获取用户号码和产品 代码,计算累计数据标识,根据累计数据标识依次在一级緩存、二级緩存中寻 找消息类业务累计数据,如果找到,根据消息类业务累计数据对该业务重新批价、更新消息类业务累计数据,并将更新后的消息类业务累计数据存入数据库; 否则,将该消息类业务累计数据各项归零;综合业务管理平台向3G引擎返回批价确认响应消息。所述原始累计数据是线性结构,包括累计数据标识、本月累计资源、本月 累计消费费用。所述原始累计数据还包括本月包量累计资源和本月保底累计使用费用。 一种消息类业务累计数据緩存系统,该系统包括3G引擎、综合业务管理平台、緩存区、数据处理模块和数据库,3G引擎、综合业务管理平台、緩存区、数据处理模块和数据库依次连接3G引擎,用于根据用户选择业务向综合业务管理平台发送批价请求、批价确iU肖息;综合业务管理平台,用于对服务提供商或者内容提供商的产品进行管理, 所述管理包括但不限于鉴权、批价;响应3G引擎发送的批价请求、批价确认 消息,并根据批价确认消息从緩存区中检索累计数据标识;緩存区,包括一级緩存、二级緩存,分别用于存储访问频率高于历史访问 频率阔值的消息类业务累计数据、访问频率低于历史访问频率阈值的消息类业 务累计数据;数据处理模块用于将数据库中原始累计数据按业务过滤,并将过滤后的消 息类业务累计数据存入緩沖区; 数据库用于存储原始累计数据。所述数据处理模块包括数据过滤模块和数据监控模块,数据过滤模块将原始累计数据中的消息类业务累计数据过滤出来,并将消 息类业务累计数据的历史访问频率与历史访问频率阈值比较结果,发送给数据 监控模块;数据监控模块采用哈希算法,将访问频率高于历史访问频率阈值的消息类 业务累计数据移入一级緩存,访问频率低于历史访问频率阈值的消息类业务累 计数据移入二级緩存。本发明以用户对数据的历史访问频率为依据,设置两级緩存,定时将消息 类业务累计数据分割,并分别移入一级緩存和二级緩存。本发明对累计数据标 识采用了独有的结构,即将用户号码与部分产品代码经过加密算法处理,形成 累计数据标识,使用更高效的除留余数法存取消息类业务累计数据,并使用对 系统性能影响最小的开放定址法有效解决哈希冲突。


图1为本发明应用系统结构示意图;图2为本发明消息类业务累计数据存储流程图;图3为本发明的批价流程示意图。
具体实施方式
本发明将多级緩存技术应用于使用日益频繁的SP增值业务管理平台的消 息类业务中。在综合业务管理平台和3G引擎之间建立数据二级緩存机制,并 釆用除留余数法解决哈希地址冲突,以提高消息类业务在批价确认的处理中再 次批价的准确率。下面结合具体实施例对本发明的技术方案进一步说明。本发明仅限于常见的对单个产品批价、单方计费的情况,不适用于对套餐 中的产品批价、多方共同计费的情况;主要针对3G消息类增值业务的商业运 作而设计,既支持下行计费(如用户点播天气预报,SP下发指定消息后收费) 的情形,也支持上行计费(如用户参与选秀节目,发送成功即收费)的情形。本发明应用系统结构如图1所示,该系统包括3G引擎、综合业务管理平 台、缓存区、数据处理模块和数据库,3G引擎、综合业务管理平台、緩存区、 数据处理模块和数据库依次连接3G引擎主要是指综合业务接入网关(ISAG, Integrated Service Access GateWay),是批价确认消息的请求发起方,当用户选择业务,费用发生变化时, 3G引擎向综合业务管理平台发起批价请求、批价确认消息;综合业务管理平台是指集成了各种3G增值业务(如短信、彩信、wap、流 媒体等)于一体的管理平台,主要负责鉴权和批价,还用于响应3G引擎发送 的批价请求、批价确认消息,并根据批价确认消息从緩存区中检索累计数据标 识。鉴权是指保证综合业务管理平台内各个实体的存在性和有效性;批价即计 算价格,以便出账单或交由实时扣费系统对指定用户扣费。综合业务管理平台 包括批价模块、计费模块等多个功能模块,批价模块用于计算价格,是综合业 务管理平台的核心和关键,直接关系到运营商的商业利润;计费模块用于根据 历史使用情况计算用户费用,并提交扣费系统对用户扣费。緩存区包括了 一级緩存和二级緩存两部分,分别用于存储访问频率高于历 史访问频率阈值的消息类业务累计数据、访问频率低于历史访问频率阈值的消 息类业务累计数据。数据库是原始累计数据的磁盘存储区;数据库通过数据处理模块与緩存区 连接,数据处理模块用于将数据库中原始累计数据按业务过滤,并将过滤后的 消息类业务累计数据存入緩冲区,包括数据过滤模块和数据监控模块。数据过 滤模块将原始累计数据中的消息类业务累计数据过滤出来,并将消息类业务累 计数据的历史访问频率与历史访问频率阈值比较结果,发送给数据监控模块; 数据监控模块采用哈希算法,将访问频率高于历史访问频率阈值的消息类业务 累计数据移入一级緩存,访问频率低于历史访问频率阈值的消息类业务累计数 据移入二级緩存。在消息类业务中,消息类业务累计数据是每个用户所选业务、使用量和费 用的重要记录。消息类业务累计数据在注册用户首次使用时,由系统根据用户 信息生成,各项累计均为0,并此后逐渐统计用户对各项业务的使用情况。累 计数据主要有两个作用1)方便实时统计用户基于SP、业务、产品的月消费 额和消费总额;2)作为重要的输入参数送给计费模块完成各种复杂的批价,尤其应用于计量分档、累计折扣等费用模式中。原始累计数据是线性结构,主要包括累计数据标识、本月累计资源、本月 累计消费费用、本月包量累计资源、本月保底累计使用费用。累计数据标识是一个32位字符串,用于校验用户及产品信息的真实性,防 止黑客利用木马程序任意窃取指定的累计数据;本月累计资源是指用户对产品的累计使用次数,不涉及wap、流媒体等内容类业务的细节;本月累计消费费 用是指用户本月实际的开销;本月包量累计资源用于用户对包量产品的量内使 用次数累计;本月保底累计使用费用是指用户对保底产品在保底范围内的虚拟 使用费用累计,在保底范围内用户对产品的累计消费费用始终为零。原始的累计数据是存储在数据库中的,涉及到12张数据结构完全一致的 表,分别存储12个月份的累计数据,但是每个月份的累计数据是不分短信、彩 信、wap还是流媒体业务的。对用户的费用统计时,需要按照不同的业务类型 分别计费,通过数据过滤,将原始累计数据按照短信、彩信等业务类型划分, 划分后的消息类业务累计数据在分别存入緩冲区,以备计费使用。原始累计数据在数据库中随时更新,而对于緩存区中的消息类业务累计数 据,通过设置緩存更新周期,周期性更新緩存区消息类业务累计数据;设置历 史访问频率阈值,以划分消息类业务累计数据是存入一级缓存还是二级緩存; 还需设置当月累计数据浮动时间,用于确定哈希表的长度。每个緩存更新周期 内可能会产生多条原始累计数据,緩存更新周期到达时,根据业务类型,过滤 出原始累计数据中的消息类业务累计数据,对每条消息类业务累计数据处理的 具体步骤是步骤2a、提取累计数据标识;根据历史访问频率与历史访问频率阈值比较,高于阈值的单条消息类业务 累计数据移入一级緩存,否则,存入二级緩存。单条消息类业务累计数据涉及 用户号码和产品代码。产品代码为21位,其中右边IO位是流水码,可以唯一 确定一个产品。基于此,将用户号码与产品IO位流水码联结成一个中间串,然 后调用MD5算法对该中间串加密。例如,中间串为137000000300000000078,那么加密后的字符串就是d5c309a5bd038da0f7c4beb20b353540,所生成的32 位加密字符串称为累计凄t据标识。步骤2b、采用除留余数法构造哈希函数,将消息类业务累计数据存入緩存区;步骤2bl、将消息类业务累计数据标识各个字符的ASCII码相加,得到一 个数字和Suml,作为哈希函数的自变量;步骤2b2 、根据当月累计数据的总量以及当月累计数据浮动时间段内的增 减频率,估算出在緩存中需要建立的哈希表的长度p, —般的,哈希表的长度 以当月累计数据总量的1.5倍为宜;步骤2b3、根据哈希函数的自变量使用除留余数法计算函数值,即H (Suml ) =Suml %q(q<p), —般取q为质数较好,q越接近p,产生哈希沖突 的机率越小,得到的H (Suml )即为哈希函数值,也是累计数据的緩存存储地 址。依照计算得到的緩存存储地址将消息类业务累计数据存入緩存区。步骤2c、使用开放定址法解决哈希冲突。在调用哈希函数计算存储地址,将消息类业务累计数据移入緩存区的过程 中,不可避免地存在哈希冲突,即地址冲突。这里,采用开放定址法解决哈希沖突,即Hi = ( H(key) + di) % m, i= 1,2,......,k(k<=m-l),其中di为增量,H(key)为哈希函数,m为哈希表长。这里对di的选取采用线性探查再散列的方法,即&=1, 2, 3, ......, m-l,直到解决哈希冲突为止,将地址沖突的单条消息类业务累计数据的存储地址按上述计算生成新的地址,并按照新地址将 该消息类业务累计数据存入緩冲区。重复步骤2a至2c,直到将一个緩存周期内新增消息类业务累计数据全部 处理完毕。在业务层面,3G引擎与综合业务管理平台通讯,对用户的请求的消息类业务,根据消息类业务累计数据进行批价的流程如图3所示步骤3a、 3G引擎向综合业务管理平台发送批价请求消息,该消息包含用户号码、产品代码、消息标识(msgid,唯一标识一条消息,它的格式为MMDDHHMMSSXXXXXXXXXX , MMDDHHMMSS代表当前时间, XXXXXXXXXX代表递增的序列号);步骤3b、综合业务管理平台收到批价请求消息,根据用户的历史使用情况 对产品批价,例如,用户享有折扣、本次服务是否在折扣范围内等等;然后以 批价请求消息的消息标识为索引,把用户号码和产品代码存储到一级緩存中, 并响应3G引擎批价请求消息,批价请求响应消息包含批价请求结果、计费情 况等,其中,批价请求结果为0表示批价成功,否则按照各种批价失败情况返 回对应的结果码。步骤3c、根据批价确认消息,获取消息类业务累计数据并重新批价; 3G引擎向综合业务管理平台发送批价确认消息,该消息包含3G引擎批价 请求响应消息的接收情况,消息标识;综合业务管理平台以批价确认消息的 msgid为索引,到一级緩存中获取用户号码和产品代码,获取过程与緩存区数 据更新过程类似,即对用户号码+产品10位流水码串进行MD5加密得到累计 数据标识,以累计数据标识为索引,到一级緩存获取消息类业务累计数据;如 果获取失败,依然以累计数据标识为索引,到二级緩存获取消息类业务累计数 据;如果再次获取失败,表明该消息类业务累计数据为初次使用,则将该消息 类业务累计数据各项全部设置为零,作为本次获取的结果。综合管理平台将获取的消息类业务累计数据、费率(例如50分/条)、折扣 (例如累计10条折扣90%)作为输入参数传给批价模块,批价模块重新批价, 并将重新批价后的新消息类业务累计数据存入数据库中,该存储消息包含用户 号码、产品代码、存储时间等信息。緩存更新周期到达后,根据各新消息类业 务累计数据的历史访问频率,将累计数据更新到緩存区中。步骤3d、综合业务管理平台响应3G引擎的批价确认消息。 以上批价请求消息、批价请求响应消息、批价确认消息、批价确认响应消 息是完成一次业务处理过程,实际中,3G引擎可能会连续发出多个批价请求消 息,然而由于通信网络实际情况复杂,综合业务管理平台接收的消息可能会产 生交错,用户的费用会随时发生变化,通过在每次业务操作的批价确认环节重新批价,以保证数据的一致性。此外,也可以采用如RIPEMD160、 SHA1、 SHA256、 SHA384、 SHA512等加密算法对用户号码和产品代码进行处理得到 其他形式的累计数据标识,在查找消息类业务累计数据时,采用同样的加密处 理过程得到累计数据标识即可。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种消息类业务累计数据缓存方法,其特征在于,该方法包括在综合业务管理平台和3G引擎之间建立二级缓存机制,采用除留余数法计算消息类业务累计数据存储地址,将消息类业务累计数据存储在缓冲区。
2. 根据权利要求1所述的消息类业务累计数据緩存方法,其特征在于,所 述消息类业务累计数据存储地址的计算过程具体包括将用户号码、产品代码中唯一标识产品的字符码组成中间串; 对所述中间串加密,得到累计凄丈据标识;将累计数据标识各字符的ASCII码相加结果作为哈希函数自变量; 将所述哈希函数自变量代入除留余数法构建的哈希函数,所得哈希函数值 为消息类业务累计数据的緩存存储地址。
3. 根据权利要求2所述的消息类业务累计数据緩存方法,其特征在于,所 述存储地址计算还包括采用开放定址法解决緩存区存储地址沖突冲突的存储地址的新地址Hi = ( H(key) + di) % m;其中,H(key)为冲突的存储地址,i= 1,2,…,k, (k<=m-l), m为哈希表长; di的选取采用线性探查再散列的方法,即di= 1,2,3,...,m-l,直到解决存储 地址冲突为止。
4. 根据权利要求1至3任一所述的消息类业务累计数据緩存方法,其特征 在于,所述二级緩存机制包括设置緩存更新周期和历史访问频率阈值;緩存更新周期到达,搜索数据库中在此次緩存更新周期内的产生的消息类 业务累计数据;若消息类业务累计凄t据的历史访问频率高于历史访问频率阈值,则将该消 息类业务累计数据更新到一级緩存,否则,更新到二级緩存。
5. 根据权利要求1所述的消息类业务累计数据緩存方法,其特征在于,该 方法还包括对用户请求的消息类业务,根据消息类业务累计数据进行批价。
6、 根据权利要求5所述的消息类业务累计数据緩存方法,其特征在于,所述根据消息类业务累计数据进行批价的过程包括3G引擎向综合业务管理平台发送批价请求消息,该消息包含用户号码、产 品代码;综合业务管理平台收到批价请求消息,根据该用户的历史使用情况进行批价,并将用户号码、产品代码存入一级緩存,向3G引擎返回批价请求响应消 自 3G引擎向综合业务管理平台发送批价确认消息;综合业务管理平台根据批价确认消息,在一级緩存中获取用户号码和产品 代码,计算累计数据标识,根据累计数据标识依次在一级緩存、二级緩存中寻 找消息类业务累计数据,如果找到,根据消息类业务累计数据对该业务重新批 价、更新消息类业务累计数据,并将更新后的消息类业务累计数据存入数据库; 否则,将该消息类业务累计数据各项归零;综合业务管理平台向3G引擎返回批价确认响应消息。
7、 根据权利要求6所述的消息类业务累计数据緩存方法,其特征在于,所 述原始累计数据是线性结构,包括累计数据标识、本月累计资源、本月累计消 费费用。
8、 根据权利要求7所述的消息类业务累计数据緩存方法,其特征在于,所 述原始累计数据还包括本月包量累计资源和本月保底累计使用费用。
9、 一种消息类业务累计数据缓存系统,其特征在于,该系统包括3G引擎、 综合业务管理平台、緩存区、数据处理模块和数据库,3G引擎、综合业务管理 平台、緩存区、数据处理模块和数据库依次连接3G引擎,用于根据用户选择业务向综合业务管理平台发送批价请求、批价 确i人消息;综合业务管理平台,用于对服务提供商或者内容提供商的产品进行管理, 所述管理包括但不限于鉴权、批价;响应3G引擎发送的批价请求、批价确认 消息,并根据批价确认消息从緩存区中检索累计数据标识;緩存区,包括一级緩存、二级緩存,分别用于存储访问频率高于历史访问 频率阈值的消息类业务累计数据、访问频率低于历史访问频率阈值的消息类业务累计数据;数据处理模块用于将数据库中原始累计数据按业务过滤,并将过滤后的消息类业务累计数据存入緩冲区; 数据库用于存储原始累计数据。
10、根据权利要求9所述的消息类业务累计数据緩存系统,其特征在于, 所述数据处理模块包括数据过滤模块和数据监控模块,数据过滤模块将原始累计数据中的消息类业务累计数据过滤出来,并将消 息类业务累计数据的历史访问频率与历史访问频率阔值比较结果,发送给数据 监控模块;数据监控模块采用哈希算法,将访问频率高于历史访问频率阔值的消息类 业务累计数据移入一级缓存,访问频率低于历史访问频率阈值的消息类业务累 计数据移入二级緩存。
全文摘要
本发明公开了一种消息类业务累计数据缓存方法在综合业务管理平台和3G引擎之间建立二级缓存机制,采用除留余数法计算消息类业务累计数据存储地址,将消息类业务累计数据存储在缓冲区。本发明还公开了相应系统,3G引擎,用于根据用户选择业务向综合业务管理平台发送批价请求、批价确认消息;综合业务管理平台,用于对服务提供商或者内容提供商的产品进行管理;缓冲区包括一级缓存、二级缓存,分别用于存储访问频率高于、低于历史访问频率阈值的消息类业务累计数据;数据处理模块用于将数据库中原始累计数据按业务过滤为消息类业务累计数据,并存入缓冲区;数据库用于存储原始累计数据。本发明能有效的解决哈希冲突,实时性好。
文档编号G06F17/30GK101216855SQ20081005628
公开日2008年7月9日 申请日期2008年1月16日 优先权日2008年1月16日
发明者刘国梁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1