专利名称:一种处理在线业务日志的计费服务器及方法
技术领域:
本发明涉及通讯领域,具体涉及一种处理在线业务日志的计费服务器及方法。
背景技术:
WAP(Wireless Application Protocol,无线应用协议)网关在处理基于 socket 方式的JAVA在线和流媒体在线应用时,通过WAP网关防火墙转发请求和响应消息包,实现 JAVA在线和流媒体在线等业务。JAVA在线、流媒体等业务的日志文件的生成是通过WAP网 关防火墙,WAP网关RADIUS服务器,计费服务器之间的消息交互来完成。计费服务器接收 WAP网关防火墙发送来的socket在线业务日志消息,从该消息包中解出用户IP地址和其他 相关消息字段,将IP地址按照约定格式发送给WAP网关RADIUS服务器查询IP对应的用户 信息,接收WAP网关RADIUS服务器的返回消息后将这些消息字段组合成话单格式消息,发 送给计费服务器的话单进程,话单进程负责生成文件到指定的目录,运营商的计算平台获 取这些日志话单进行统计分析。随着通信业务量的增多,对计费服务器性能提出了更高的要求。日益增长的 socket在线类业务量要求计费服务器能更快的处理防火墙的syslog,而socket在线业务 的特殊性,防火墙syslog中有用户的IP信息,而没有用户号码,所以要求计费服务器能在 接收到防火墙消息后能快速的解析出用户IP,并向RADIUS服务器查询IP对应的用户号码 信息,以生成有效的话单。对同一个用户一段时间内的多次访问产生的防火墙syslog都查 询RADIUS服务器必将造成RADIUS服务器负荷增加,可能导致查询用户信息失败,甚至可能 引起RADIUS服务器的挂死,导致整个业务的崩溃。另外频繁访问RADIUS服务器,等待服务 器的响应也使话单服务器的处理性能受到极大的影响。
发明内容
本发明要解决的问题是提供一种处理在线业务日志的计费服务器及方法,可减少 对RADIUS服务器的访问,提高日志消息处理效率。本发明提供一种处理在线业务日志的方法,包括计费服务器存储已处理用户的用户号,当所述计费服务器收到防火墙日志消息后 查询该用户的用户号,根据所述用户号及防火墙日志消息生成话单消息。进一步地,所述计费服务器记录已处理用户的用户号是指,所述计费服务器建立 并存储用户IP与用户号的对应关系;所述收到防火墙日志消息后查询该用户的用户号是指,计费服务器根据用户IP 查询用户IP与用户号的对应关系获知所述用户的用户号。进一步地,所述计费服务器为防火墙日志消息分配一话单标识,若查询用户号失 败则存储解析的话单消息结构体,并向RADIUS服务器发送查询消息以查询用户号;所述查 询消息中携带用户IP和所述话单标识。进一步地,所述计费服务器收到RADIUS服务器返回的应答消息后,若查询成功则根据应答消息中的话单标识读取存储的话单消息结构体,并将响应消息中的用户号连同所 述话单消息结构体一起生成话单消息;若查询失败则根据应答消息中的话单标识读取存储的话单消息结构体,并将用户 号置为0后连同所述话单消息结构体一起生成话单消息。进一步地,所述计费服务器是在收到RADIUS服务器返回的查询成功的应答消息 后建立并存储用户IP与用户号的对应关系的。进一步地,所述计费服务器若收到RADIUS服务器发来的用户下线通知,根据该通 知中的用户号查找IP-用户号对应关系并删除该对应关系,进而删除IP-处理单元号的对 应关系。进一步地,若所述计费服务器存储的IP-用户号对应关系超时则删除该超时的 IP-用户号对应关系,进而删除IP-处理单元号的对应关系。本发明还提供一种处理在线业务日志的计费服务器,包括消息接收模块、存储模 块及话单消息处理模块;所述存储模块,用于存储已处理用户的用户号;所述消息接收模块,用于接收防火墙日志消息并发送至话单消息处理模块;所述话单消息处理模块,用于收到防火墙日志消息后查询该用户的用户号,并根 据所述用户号及防火墙日志消息生成话单消息。进一步地,所述存储模块存储已处理用户的用户号是指,所述存储模块建立并存 储用户IP与用户号的对应关系;所述话单消息处理模块收到防火墙日志消息后查询该用户的用户号是指,消息接 收模块根据用户IP查询存储模块中存储的用户IP与用户号的对应关系获知所述用户的用 户号。进一步地,所述话单消息处理模块包括一个或多个话单消息处理单元;所述存储模块还用于存储用户IP与处理该用户消息的处理单元的对应关系;所述消息接收模块还用于接收防火墙日志消息后,根据消息中的IP查找存储模 块中是否存储有IP-处理单元的对应关系,是则将该防火墙日志消息存储至对应话单消息 处理单元对应的缓存队列,没有则选择一个有空闲的话单消息处理单元处理该防火墙日志 消息,并将该防火墙日志消息存储至选择的话单消息处理单元。进一步地,所述话单消息处理单元,用于读取对应缓存队列中的防火墙日志消息, 解析并校验该消息是否有效,无效则丢弃该消息,如果防火墙消息校验通过,则为消息分配 一个唯一的话单标识,并将解析后得到的话单字段,话单标识以及时间戳的信息写入话单 消息结构体;还用于根据解析的用户IP查询该话单消息处理单元是否存储有对应的IP-用 户号对应关系,是则将查询到的用户号以及话单消息结构体中各字段拼接成一条话单消 息,并将此话单消息发送给话单文件生成模块;若未存储IP-用户号对应关系则将解析的 话单消息结构体存储至该话单消息处理单元对应的话单消息HASH表中,并将用户IP和话 单标识发送给RADIUS服务器以查询用户号。进一步地,所述消息接收模块收到RADIUS服务器返回的应答消息后,根据用户IP 查询对应的话单消息处理单元,若查询成功则向对应的话单消息处理单元发送查询成功的 响应,其中携带用户IP、话单标识及用户号,若查询失败则向对应的话单消息处理单元发送查询失败的响应,其中携带用户IP及话单标识;所述话单消息处理单元收到查询成功的响应后,根据话单标识从话单消息HASH 表中读取对应的话单消息结构体,并将用户号以及话单消息结构中各字段拼接成一条话单 消息,之后将话单消息发送给话单文件生成模块;收到查询失败的响应后,根据话单标识从 话单消息HASH表中读取对应的话单消息结构体,将用户号置为0与话单消息结构中各字段 拼接成一条话单消息后发送给话单文件生成模块。进一步地,所述存储模块是在收到RADIUS服务器返回的查询成功的应答消息后 建立并存储用户IP与用户号的对应关系的。综上所述,本发明提供一种处理在线业务日志的计费服务器及方法,采用本发明 的技术方案,既可以减少对RADIUS服务器的访问频率,也可以提高话单生成的速度。
图1是本发明基于WAP的socket在线业务日志处理系统原理图;图2是本发明基于WAP的socket在线业务日志处理系统的处理流程。
具体实施例方式为了解决上述技术问题,本发明通过以下技术方案实现本实施例提供一种处理基于WAP的socket在线业务日志计费服务器,如图1所 示,包括消息接收模块、存储模块、话单消息处理模块及话单文件生成模块;存储模块,用于存储已处理用户的用户号以及用户IP与处理该用户消息的处理 单元的对应关系;存储模块是在收到RADIUS服务器返回的查询成功的应答消息后建立并 存储用户IP与用户号的对应关系的。此处,存储模块也可通过其他方式存储用户号,建立的对应关系也可以是用户号 与除用户IP外的其他用户信息间的对应关系。消息接收模块,用于接收WAP网关防火墙发来的防火墙日志消息,根据消息中的 IP查找存储模块中是否存储有IP-处理单元的对应关系,是则将该防火墙日志消息存储至 对应话单消息处理单元对应的缓存队列,没有则选择一个有空闲的话单消息处理单元处理 该防火墙日志消息,并将该防火墙日志消息存储至选择的话单消息处理单元。进一步地,IP-处理单元的对应关系记录处理用户防火墙日志消息的话单消息处 理单元,该对应关系可以是IP-处理单元HASH表。消息接收模块,还用于接收RADIUS服务器返回的应答消息,该应答消息包含用户 IP、话单标识、用户号及表明查询是否成功的查询结果状态。若查询结果状态显示查询成功 则根据用户IP查询IP-处理单元的对应关系获知对应的话单消息处理单元,之后向对应的 话单消息处理单元发送查询成功的响应,其中携带用户IP、话单标识及用户号;若查询结 果状态显示查询失败则向对应的话单消息处理单元发送查询失败的响应,其中携带用户IP 及话单标识;消息接收模块,还用于收到RADIUS服务器发来的用户下线通知后,根据该通知中 的用户号查找IP-用户号对应关系并删除该对应关系;进而删除IP-处理单元号的对应关 系(即IP-处理单元号的HASH表)。
话单消息处理模块包括一个或多个话单消息处理单元;话单消息处理单元,用于读取对应缓存队列中的防火墙日志消息,解析并校验该 消息是否有效,无效则丢弃该消息,如果防火墙消息校验通过,则为消息分配一个唯一的话 单标识,并将解析后得到的话单字段,话单标识以及时间戳的信息写入话单消息结构体;还 用于根据解析的用户IP查询该话单消息处理单元是否存储有对应的IP-用户号对应关 系,是则将查询到的用户号以及话单消息结构体中各字段拼接成一条话单消息,并将此话 单消息发送给话单文件生成模块;若未存储IP-用户号对应关系则将解析的话单消息结构 体存储至该话单消息处理单元对应的话单消息HASH表中,并将用户IP和话单标识发送给 RADIUS服务器以查询用户号。话单消息处理单元还用于收到查询成功的响应后,根据话单标识从话单消息HASH 表中读取对应的话单消息结构体,并将用户号以及话单消息结构中各字段拼接成一条话单 消息,之后将话单消息发送给话单文件生成模块;以及收到查询失败的响应后,根据话单标 识从话单消息HASH表中读取对应的话单消息结构体,将用户号置为0与话单消息结构中各 字段拼接成一条话单消息后发送给话单文件生成模块。话单消息处理单元还用于存储的IP-用户号对应关系超时则删除该超时的IP-用 户号对应关系;进而删除IP-处理单元号的对应关系(即IP-处理单元号的HASH表)。话单消息处理单元还用于存储的话单消息结构体超时,则取出超时话单消息结构 体,将对应用户号置为0,并连同话单消息结构体形成话单消息后发送给话单文件生成模 块。话单文件生成模块,用于收到话单消息后检查话单消息缓存队列是否已满,已满 则将缓存队列中的各话单消息写入话单文件,若未满则将接收的话单消息写入缓存队列。本实施例中,对每个消息处理模块设置缓存队列,减少多个消息处理模块互斥共 享同一个消息缓存带来的时间开销,同时提高了消息接收模块的分发防火墙日志消息的效率。本实施例提供一种基于WAP的socket在线业务日志处理方法,如图2所示,包括 以下处理过程步骤Sl 计费服务器收到WAP网关防火墙发来的防火墙日志消息;步骤S2 计费服务器解析并校验该防火墙日志消息,若校验无效则丢弃该消息, 若校验通过,则为该消息分配一话单标识,并将解析后得到的话单字段,话单标识以及时间 戳的信息写入话单消息结构体;步骤S3 计费服务器根据解析出的用户IP查询本地是否存储有IP与用户号的对 应关系,是则执行步骤S4,否则执行步骤S5 ;步骤S4:计费服务器从IP与用户号的对应关系中获取该用户号,根据用户号连同 话单消息结构体生成话单消息;步骤S5 计费服务器存储该话单消息结构体,并向RADIUS服务器发送查询消息, 其中携带用户IP和话单标识;步骤S6 =RADIUS服务器收到查询消息,根据用户IP查询其用户号,并向计费服务 器返回应答消息,包含用户IP、话单标识、用户号及查询结果状态;查询结果状态表明用户 号查询是否成功;
步骤S7 计费服务器收到RADIUS服务器返回的应答消息,若查询成功则执行步骤 S8,否则执行步骤S9 ;步骤S8 计费服务器在本地建立用户IP及用户号的对应关系,并根据话单标识读 取存储的话单消息结构体,插入用户号生成话单消息;然后执行步骤Sio ;用户IP及用户号的对应关系可以是用户IP-用户号的HASH表;步骤S9 计费服务器根据话单标识读取存储的话单消息结构体,将对应用户号置 为0并连同话单消息结构体形成话单消息;然后执行步骤SlO ;步骤SlO 计费服务器检查话单消息缓存是否已满,已满则将已缓存的话单消息 写入话单文件,如果消息缓存有空闲,则将该生成的话单消息写入缓存。上述步骤S2中,若计费服务器接收的防火墙日志消息较多而不能即时处理接收 的防火墙日志消息,可以先缓存防火墙日志消息形成缓存队列,并按接收消息的先后顺序 处理缓存队列中的防火墙日志消息;可以是在对缓存队列中的消息进行处理时才对消息进 行解析及校验。进一步地,计费服务器可设置多个消息处理单元同时处理防火墙日志消息。进一步地,同一用户在线期间的所有防火墙日志消息由同一消息处理单元进行处 理,计费服务器还记录用户IP与处理该用户消息的处理单元的对应关系,该对应关系可以 但不限于是用户IP-处理单元号HASH表;计费服务器收到防火墙日志消息后,先根据用户 IP查询该IP-处理单元号HASH表获知处理该用户防火墙日志消息的处理单元,并将防火墙 日志消息存储至对应处理单元的缓存队列。每个消息处理单元对应一个缓存队列,用于保 存分发给本处理单元的防火墙日志消息。进一步地,若计费服务器根据IP未查询到该IP-处理单元号的HASH表,则选择一 有空闲的处理单元处理该消息,较佳地,可按负载均衡的原则从缓存消息数最少的处理单 元中选择一处理单元。进一步地,每个消息处理单元对应一个话单消息HASH表,消息处理单元查询 IP-用户号HASH表失败,则将话单消息暂时保存在单元号对应的话单消息HASH表。进一步地,计费服务器在对用户计费的过程中,若收到RADIUS服务器发来的用户 下线通知,根据该通知中的用户号查找IP-用户号对应关系并删除该对应关系;进而删除 IP-处理单元号的对应关系(即IP-处理单元号的HASH表)。进一步地,若计费服务器存储的IP-用户号对应关系超时则删除该超时的IP-用 户号对应关系;进而删除IP-处理单元号的对应关系(即IP-处理单元号的HASH表)。进一步地,若计费服务器存储的话单消息结构体超时,则取出超时话单消息结构 体,将对应用户号置为0,并连同话单消息结构体形成话单消息。本发明中,通过保存IP-处理模块号对应关系以及IP-用户号对应关系,用户第一 次使用socket在线业务后在计费服务器的本地存储模块会保存用户信息以及分配的处理 模块号,对同一用户的后续访问产生的防火墙消息,可以快速定位出上次处理该用户消息 的模块号,分配消息到该模块对应的消息缓存,因此减少了同一个用户的访问对RADIUS服 务器的重复查询。这种两级HASH查询机制既可以减少对RADIUS服务器的访问频率,也可 以提高话单生成的速度。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。 以上的描述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的 精神和原则之内,所做的任何修改,等同替换,改进等,均应包含在本发明的保护范围之内。
权利要求
一种处理在线业务日志的方法,包括计费服务器存储已处理用户的用户号,当所述计费服务器收到防火墙日志消息后查询该用户的用户号,根据所述用户号及防火墙日志消息生成话单消息。
2.如权利要求1所述的方法,其特征在于所述计费服务器记录已处理用户的用户号是指,所述计费服务器建立并存储用户IP 与用户号的对应关系;所述收到防火墙日志消息后查询该用户的用户号是指,计费服务器根据用户IP查询 用户IP与用户号的对应关系获知所述用户的用户号。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括所述计费服务器为防火墙日志消息分配一话单标识,若查询用户号失败则存储解析的 话单消息结构体,并向RADIUS服务器发送查询消息以查询用户号;所述查询消息中携带用 户IP和所述话单标识。
4.如权利要求3所述的方法,其特征在于所述计费服务器收到RADIUS服务器返回的应答消息后,若查询成功则根据应答消息 中的话单标识读取存储的话单消息结构体,并将响应消息中的用户号连同所述话单消息结 构体一起生成话单消息;若查询失败则根据应答消息中的话单标识读取存储的话单消息结构体,并将用户号置 为0后连同所述话单消息结构体一起生成话单消息。
5.如权利要求2所述的方法,其特征在于,所述方法还包括所述计费服务器是在收到RADIUS服务器返回的查询成功的应答消息后建立并存储用 户IP与用户号的对应关系的。
6.如权利要求1或2所述的方法,其特征在于,所述方法还包括所述计费服务器若收到RADIUS服务器发来的用户下线通知,根据该通知中的用户号 查找IP-用户号对应关系并删除该对应关系,进而删除IP-处理单元号的对应关系。
7.如权利要求1或2所述的方法,其特征在于,所述方法还包括若所述计费服务器存储的IP-用户号对应关系超时则删除该超时的IP-用户号对应关 系,进而删除IP-处理单元号的对应关系。
8.—种处理在线业务日志的计费服务器,包括消息接收模块、存储模块及话单消息处理模块;其特征在于所述存储模块,用于存储已处理用户的用户号;所述消息接收模块,用于接收防火墙日志消息并发送至话单消息处理模块;所述话单消息处理模块,用于收到防火墙日志消息后查询该用户的用户号,并根据所 述用户号及防火墙日志消息生成话单消息。
9.如权利要求8所述的计费服务器,其特征在于所述存储模块存储已处理用户的用户号是指,所述存储模块建立并存储用户IP与用 户号的对应关系;所述话单消息处理模块收到防火墙日志消息后查询该用户的用户号是指,消息接收模 块根据用户IP查询存储模块中存储的用户IP与用户号的对应关系获知所述用户的用户号。
10.如权利要求8或9所述的计费服务器,其特征在于 所述话单消息处理模块包括一个或多个话单消息处理单元; 所述存储模块还用于存储用户IP与处理该用户消息的处理单元的对应关系; 所述消息接收模块还用于接收防火墙日志消息后,根据消息中的IP查找存储模块中 是否存储有IP-处理单元的对应关系,是则将该防火墙日志消息存储至对应话单消息处理 单元对应的缓存队列,没有则选择一个有空闲的话单消息处理单元处理该防火墙日志消 息,并将该防火墙日志消息存储至选择的话单消息处理单元。
全文摘要
本发明提供一种处理在线业务日志的计费服务器及方法,该包括计费服务器存储已处理用户的用户号,当所述计费服务器收到防火墙日志消息后查询该用户的用户号,根据所述用户号及防火墙日志消息生成话单消息。采用本发明的技术方案,可减少对RADIUS服务器的访问,提高日志消息处理效率,并可以提高话单生成的速度。
文档编号H04L12/14GK101883111SQ20101021917
公开日2010年11月10日 申请日期2010年6月25日 优先权日2010年6月25日
发明者史益斌, 洪君景, 王春 申请人:中兴通讯股份有限公司