一种浏览解码话单文件方法

文档序号:6535933阅读:273来源:国知局
一种浏览解码话单文件方法
【专利摘要】本发明公开了一种浏览解码话单文件方法,客户端把要解码的话单文件列表根据客户端与服务端通信协议格式传送到服务端,服务端解析客户端解码请求,获取解码文件列表与解码查询条件,调用话单解码库对请求的话单文件进行解码,解码结果存入服务端的临时文件中,服务端第一次返回解码结果的话单给客户端客户端收到第一次解码结果返回,计算出这次解码的话单需要显示的总页数,并显示第一页的话单;同时服务端在向客户端返回首页信息时,按照客户端每页显示的话单数,对解码结果临时文件建立索引。通过客户端分开请求与解码结果临时文件建立索引,浏览大量话单文件的情况下,系统性能得到几何级的提高。
【专利说明】一种浏览解码话单文件方法
【技术领域】
[0001]本发明涉及计算机与通信领域,特别是一种浏览解码话单文件方法。
【背景技术】
[0002]通信计费系统中,要分析查看计费信息,需要对话单文件进行解码,原始话单文件解码后的文件内容是原话单的8倍以上,同时通信系统中的数据流量大,一个地级市在通信繁忙阶段,系统小时产生的话单文件达到几十G字节,一个小时的话单文件解码后,将会达到几百G字节,解码后的这几百G字节的话单信息,服务端直接传给客户端,客户端进行加载显示,将会出现如下两个严重问题:
[0003]1.服务端向客户端传送解码结果的时间非常长,对网络带宽占用大;
[0004]2.客户端加载解码结果的话单时间非常长,这么大的数据量,导致客户端加载过程中,直接死掉;
[0005]基于以上原因,一般解决方法是服务端把解码文件进行切分,然后把结果分批传送到客户端,客户端对解码结果进行分开加载,这种方案虽然解决了客户端加载解码结果死掉的问题,但性能非常低,导致在大话单以及大数据量的话单查询功能基本不可用。

【发明内容】

[0006]针对现有技术中存在的问题,本发明的目的是提出一种客户端分开请求、服务端对解码结果建立索引并根据客户端需求分页向客户端传送解码结果,能解决了计费系统浏览大文件以及浏览大数据量文件的难题,同时计费系统在查看大数据量的话单文件时,也有非常高的性能,系统稳定性高的浏览解码话单文件方法。
[0007]为了达到上述目的,本发明采用以下技术方案:一种浏览解码话单文件方法,步骤包括:
[0008]I)客户端接收需要解码话单文件的条件,并把条件按照协议格式组织成字节序,发送查询请求命令到服务端,话单查询请求协议格式是二进制序列,条件通过0x070x07两个字节分开,之后执行步骤2);
[0009]2)服务端接收到查询请求,对请求命令进行解码,获取查询请求条件,然后根据查询请求中的时间条件选择满足时间的话单文件,对文件进行解码,获取话单,客户端接收到的用户输入的条件,当话单满足查询请求的条件,则把话单按行写入临时文件,之后执行步骤3),否则直接执行步骤3);
[0010]3)当解码结束时,则执行步骤4),否则执行步骤2);
[0011]4)对临时文件建立索引,服务端读取客户端每页显示话单条数的配置,得到客户端每页显示话单数的值N ;建立页码序号PageIndex与页码对应临时文件中话单位置CDRPos的映射缓存区CacheM,对话单文件进行预读取,对读取的话单文件行数Row与N取模,当模的值为O,则建立一个页码序号PageIndex与话单所在文件中位置⑶RPos的map实例,把这个实例放入到CacheM中,同时页码序号PageIndex加I,通过这种预读取的方式,对话单解码结果临时文件按页建立索引,之后执行步骤5),否则直接执行步骤5);
[0012]5)话单解码结果临时文件按页建立索引完成后,向客户端查询请求返回查询结果,返回结果的协议格式为:话单总行数⑶RTotalRoWS0X070X07每页显示的话单数PageCDRRows0x070x07 一页话单记录数据,客户端通过CDRTotalRows或者PageCDRRows计算出这次查询请求得到的客户端显示话单需要的总页数,在客户端初始化分页显示界面并显示第一页话单,之后执行步骤6);
[0013]6)用户点击客户端中需要显示话单对应的页码后,客户端发送包含页码信息的消息到服务端请求该页的话单数据,请求协议格式为:命令码0x070x07页码号;服务端收到请求信息,解析请求数据获取页码号,通过页码号从CacheM内存区域中获取该页面与页码对应话单文件在临时文件中的数据位置的映射,通过映射获取该页话单文件在临时文件中的实际位置IndexPos,服务端进程打开临时文件,移动文件位置到IndexPos,读取PageCDRRows行话单数据,把读取的数据返回到客户端,客户端解析获取到的话单数据并进行显示。
[0014]采用上述技术方案后,本发明具有以下有益效果:本发明的客户端分开请求、服务端对解码结果建立索引并根据客户端需求分页向客户端传送解码结果的方法,不但解决了计费系统浏览大文件以及浏览大数据量文件的难题,同时计费系统在查看大数据量的话单文件时,也有非常高的性能,且系统稳定性高。
【专利附图】

【附图说明】
[0015]图1话单解码建立索引以及分页查询流程图。
【具体实施方式】
[0016]下面根据说明书附图和具体实施例对本发明作进一步的解释。
[0017]如图1所示,一种浏览解码话单文件方法,步骤包括:
[0018]I)客户端接收需要解码话单文件的条件,并把条件按照协议格式组织成字节序,发送查询请求命令到服务端,话单查询请求协议格式是二进制序列,条件通过0x070x07两个字节分开,之后执行步骤2);
[0019]2)服务端接收到查询请求,对请求命令进行解码,解码结果写在服务端的临时文件中,每条话单写一行,对解码结果的临时文件建立索引,获取查询请求条件,然后根据查询请求中的时间条件选择满足时间的话单文件,对文件进行解码,获取话单,客户端接收到的用户输入的条件,当话单满足查询请求的条件,则把话单按行写入临时文件,之后执行步骤3),否则直接执行步骤3);
[0020]3)当解码结束时,则执行步骤4),否则执行步骤2);
[0021]4)对临时文件建立索引,服务端读取客户端每页显示话单条数的配置,得到客户端每页显示话单数的值N ;解码结果有M条话单,客户端每页显示N条话单,索引段记录数为:X=M/N ;服务端内存建立一个保存索引段与每页话单所在临时文件中位置的映射关系Map序列,每页话单所在临时文件中位置计算方式为:按行读取临时文件,记录读取每行话单在临时文件中的位置,建立页码序号PageIndex与页码对应临时文件中话单位置⑶RPos的映射缓存区CacheM,对话单文件进行预读取,对读取的话单文件行数Row与N取模,当模的值为O,则建立一个页码序号PageIndex与话单所在文件中位置⑶RPos的map实例,把这个实例放入到CacheM中,同时页码序号PageIndex加I,通过这种预读取的方式,对话单解码结果临时文件按页建立索引,之后执行步骤5),否则直接执行步骤5);
[0022]5)话单解码结果临时文件按页建立索引完成后,向客户端查询请求返回查询结果,返回结果的协议格式为:话单总行数⑶RTotalRoWS0X070X07每页显示的话单数PageCDRRows0x070x07 一页话单记录数据,客户端通过CDRTotalRows或者PageCDRRows计算出这次查询请求得到的客户端显示话单需要的总页数,在客户端初始化分页显示界面并显示第一页话单,之后执行步骤6);
[0023]6)用户点击客户端中需要显示话单对应的页码后,客户端发送包含页码信息的消息到服务端请求该页的话单数据,请求协议格式为:命令码0x070x07页码号;服务端收到请求信息,解析请求数据获取页码号,通过页码号从CacheM内存区域中获取该页面与页码对应话单文件在临时文件中的数据位置的映射,通过映射获取该页话单文件在临时文件中的实际位置IndexPos,服务端进程打开临时文件,移动文件位置到IndexPos,读取PageCDRRows行话单数据,把读取的数据返回到客户端,客户端解析获取到的话单数据并进行显示。
【权利要求】
1.一种浏览解码话单文件方法,其特征在于步骤包括: 1)客户端接收需要解码话单文件的条件,并把条件按照协议格式组织成字节序,发送查询请求命令到服务端,话单查询请求协议格式是二进制序列,条件通过0x070x07两个字节分开,之后执行步骤2); 2)服务端接收到查询请求,对请求命令进行解码,获取查询请求条件,然后根据查询请求中的时间条件选择满足时间的话单文件,对文件进行解码,获取话单,客户端接收到的用户输入的条件,当话单满足查询请求的条件,则把话单按行写入临时文件,之后执行步骤3),否则直接执行步骤3); 3)当解码结束时,则执行步骤4),否则执行步骤2); 4)对临时文件建立索引,服务端读取客户端每页显示话单条数的配置,得到客户端每页显示话单数的值N ;建立页码序号PageIndex与页码对应临时文件中话单位置⑶RPos的映射缓存区CacheM,对话单文件进行预读取,对读取的话单文件行数Row与N取模,当模的值为0,则建立一个页码序号PageIndex与话单所在文件中位置⑶RPos的map实例,把这个实例放入到CacheM中,同时页码序号PageIndex加I,通过这种预读取的方式,对话单解码结果临时文件按页建立索引,之后执行步骤5),否则直接执行步骤5); 5)话单解码结果临时文件按页建立索引完成后,向客户端查询请求返回查询结果,返回结果的协议格式为:话单总行数⑶RTotalRoWS0X070X07每页显示的话单数PageCDRRows0x070x07 一页话单记录数据,客户端通过CDRTotalRows或者PageCDRRows计算出这次查询请求得到的客户端显示话单需要的总页数,在客户端初始化分页显示界面并显示第一页话单,之后执行步骤6); 6)用户点击客户端中需要显示话单对应的页码后,客户端发送包含页码信息的消息到服务端请求该页的话单数据,请求协议格式为:命令码0x070x07页码号;服务端收到请求信息,解析请求数据获取页码号,通过页码号从CacheM内存区域中获取该页面与页码对应话单文件在临时文件中的数据位置的映射,通过映射获取该页话单文件在临时文件中的实际位置IndexPos,服务端进程打开临时文件,移动文件位置到IndexPos,读取PageCDRRows行话单数据,把读取的数据返回到客户端,客户端解析获取到的话单数据并进行显示。
【文档编号】G06F17/30GK103699699SQ201410020836
【公开日】2014年4月2日 申请日期:2014年1月16日 优先权日:2014年1月16日
【发明者】李晓芳, 彭建华, 庄燕滨, 肖贤建 申请人:常州工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1