一种数据的缓冲方法和服务端技术

技术编号:3848539 阅读:172 留言:0更新日期:2012-04-11 18:40
一种数据的缓冲方法和服务端;方法包括:将各缓冲存储区域按一定顺序排列,形成存储队列;每次向一个缓冲存储区域中写入一个数据块;写入数据块时,按照所述数据块写入的时间顺序,将各所述数据块写入到存储队列中从一缓冲存储区域开始的、连续的各缓冲存储区域中,生成并记录分别指示各数据块的写入时间顺序的标识;在一次读取操作中,依次从存储队列中连续的各缓冲存储区域中读取数据块,并获取指示该数据块写入时间顺序的标识;如果指示某一数据块写入时间顺序的标识不同于应有标识,则结束本次读取操作。本发明专利技术能够满足获取数据的连续性要求。

【技术实现步骤摘要】

本专利技术涉及数据缓冲机制,特别涉及一种数据的缓冲方法和服务端
技术介绍
安全设备是由硬件、软件和网络技术组成的具有专门用途的设备,它主要提供一 项或多项安全功能。与安全设备配套使用的通常还有其管理控制端,在管理控制端上通常 都会提供显示安全设备实时上报的安全事件的功能。基于Web的管理控制端因其易使用,易部署,易维护等优点而被广泛使用。但因为 Web应用的特殊性,在浏览器端实现显示设备上报的实时安全事件存在一定的技术困难。在典型的Web应用中,通信过程必须由浏览器端发起,Web服务端(以下称服务 端)接受浏览器端的通信请求,然后应答数据,并随后关闭链接。虽然在HTTP1. 1版本中, 可以通过建立长链接的方式降低服务端的负载,但仍然存在超时维护等问题。在这种应用环境下,浏览器端为获得最新的安全事件,需要一次一次的向服务器 端发送请求,而服务端需要将安全设备上报的安全事件缓冲起来,待浏览器端请求时,应答 缓冲的安全事件的数据给浏览器端(如图1所示)。在单一浏览器浏览的情况下,服务器 的缓冲机制保证浏览器每次应答的数据中的安全事件是连续的,如果浏览器的请求足够及 时,并且服务器的应答足够迅速,浏览器端会得到足够的、连续无丢失的实时安全事件,否 则浏览器两次应答的数据中实时安全事件可能是前后不衔接的。在多浏览器并发请求数据 的情况下,服务端的缓冲机制不仅要满足单一浏览器时的上述要求,还要考虑处于不同网 络带宽环境下的浏览器互相影响的问题,如在某些缓冲机制中,可能会产生因为应答低带 宽浏览器的数据,而导致其他浏览器的应答被堵塞的情况。
技术实现思路
本专利技术要解决的技术问题是提供一种数据的缓冲方法和服务端,能够满足获取数 据的连续性要求。为了解决上述问题,本专利技术提供了一种数据的缓冲方法,包括将各缓冲存储区域按一定顺序排列,形成存储队列;每次向一个缓冲存储区域中写入一个数据块;写入数据块时,按照所述数据块写 入的时间顺序,将各所述数据块写入到存储队列中从一缓冲存储区域开始的、连续的各缓 冲存储区域中,生成并记录分别指示各数据块的写入时间顺序的标识;在一次读取操作中,依次从存储队列中连续的各缓冲存储区域中读取数据块,并 获取指示该数据块写入时间顺序的标识;如果指示某一数据块写入时间顺序的标识不同于 应有标识,则结束本次读取操作;所述应有标识为指示与上一次读取的数据块相邻写入 的数据块的写入时间顺序的标识;如果是一次读取操作中的第一次读取,则为指示应读取 的数据块的写入时间顺序的标识。进一步的,不允许同时写入,或同时对某一块缓冲存储区域写入和读取;允许同时5读取。进一步的,将每块缓冲存储区域在环形存储队列中所处的位置为物理偏移X ;存 储队列中的缓冲存储区域的总块数为C ;以数据位置作为指示数据块的写入时间顺序的标 识;在每次写入数据块时的具体步骤包括31,将pw递增1 ;pw的初始值为0 ;32,将所述数据块写入到物理偏移为X处的缓冲存储区域中,并将当前的pw减去 1记录为该数据块的数据位置;X为Pw减去1的差对C取模的结果。进一步的,以数据位置作为指示数据块的写入时间顺序的标识;一次读取操作的 具体步骤包括41,确定本次读取操作的最大数据块个数N,以及读取的起始数据位置Pi ;如果第 一次进行读取操作,Pi取0;42,读取物理偏移为X处的数据块,并得到该数据块的数据位置P ;X为所述Pi对 C取模;43,比较上述ρ与Pi是否相等,若相等则输出所读取的数据块,执行步骤44 ;否则 放弃此处的数据块,令Pi为PW,返回步骤41 ;44,读取物理偏移为X处的数据块,并得到该数据块的数据位置,X为P加1的和 对C取模的结果;如果该处数据块的数据位置的值不等于p+1,执行步骤45 ;否则,执行步 骤46 ;45,放弃读取该处数据块,并返回该处数据块的数据位置作为下一次读取操作的 Pi,结束本次读取操作;46,输出该处数据块,并以该处数据块的数据位置作为ρ ;47,如果本次读取操作中已输出的数据块个数大于或等于N,则执行步骤48 ;否 则,返回执行步骤44;48,结束本次读取操作,返回p+1作为下一次读取操作的Pi。进一步的,所述存储队列为环形队列;当写入/读取到所述存储队列中最后一个缓冲存储区域后,再从所述存储队列中 第一个缓冲存储区域开始写入/读取。本专利技术还提供了一种服务端,用于基于Web的管理控制端中,包括接收单元,用于接收安全设备上报的数据;存储单元,用于保存安全事件的数据;写入单元,用于将接收的数据写入存储单元中;读取单元,用于当收到浏览器端的请求后从存储单元中读取数据并输出;所述存储单元包括若干个缓冲存储区域;所述若干个缓冲存储区域按一定顺序排 列,形成存储队列;所述写入单元每次向一个缓冲存储区域写入一个数据块;写入时按照数据块写入 的时间顺序,将各所述数据块写入到存储队列中从一缓冲存储区域开始的、连续的各缓冲 存储区域中,生成并记录分别指示各数据块的写入时间顺序的标识;所述读取单元在一次读取操作中,依次从存储队列的各缓冲存储区域中读取数据6块,以及指示该数据块写入时间顺序的标识;如果指示某一数据块写入时间顺序的标识不 同于应有标识,则结束读取;所述应有标识为指示与上一次读取的数据块相邻写入的数 据块的写入时间顺序的标识;如果是一次读取操作中的第一次读取,则为指示本次读取操 作中的第一次读取的数据块的写入时间顺序的标识。进一步的,所述写入单元不能够同时写入两个或两个以上的数据块;所述存储单元不允许所述写入单元和所述读取单元同时对一块缓冲存储区域操 作;所述读取单元能够同时读取两个或两个以上的数据块。进一步的,将每块缓冲存储区域在环形存储队列中所处的位置为物理偏移X ;存 储队列中的缓冲存储区域的总块数为C ;以数据位置作为指示数据块的写入时间顺序的标 识;所述写入单元每次写入数据块时,将pw递增l,pw的初始值为0 ;然后将所述数据 块写入到物理偏移为X处的缓冲存储区域中,并将当前的PW减去1记录为该数据块的数据 位置;X为pw减去1的差对C取模的结果。进一步的,读取单元每次进行读取操作时先确定本次读取操作的最大数据块个数N,以及读取的起始数据位置Pi,然后读 取X = (Pi mod C)处的数据块,并得到该数据块真实的数据位置P ;如果P与Pi不相等则 放弃读取,令Pi等于Pw后重新读取X= (Pi mod C)处的数据块,重新比较该数据块的数 据位置与Pi是否相等;如果相等则输出所读取的数据块,然后重复进行下列操作直到本次 读取操作中已输出的数据块个数大于或等于N 读取X = 处的数据块,并得到该数据块的数据位置;如果该数据块 的数据位置的值等于P+1,则输出该处数据块,用该处数据块的数据位置的值替换Ρ ;当一数据块的数据位置的值不等于p+1时,放弃读取该处数据块,并返回该处数 据块的数据位置作为下一次读取操作的Pi,结束本次读取操作;本次读取操作中已输出的数据块个数大于或等于N时,结束本次读取操作,返回 P+1作为下一次读取操作的Pi。进一步的,所述存储队列为环形队列;所述写入单元当写入到所述存储队列中最后一个缓冲存储区域后,再从所述存储 队列中第一个缓冲存储区域开始写入;所述读取单元当读取本文档来自技高网...

【技术保护点】
一种数据的缓冲方法,包括:将各缓冲存储区域按一定顺序排列,形成存储队列;每次向一个缓冲存储区域中写入一个数据块;写入数据块时,按照所述数据块写入的时间顺序,将各所述数据块写入到存储队列中从一缓冲存储区域开始的、连续的各缓冲存储区域中,生成并记录分别指示各数据块的写入时间顺序的标识;在一次读取操作中,依次从存储队列中连续的各缓冲存储区域中读取数据块,并获取指示该数据块写入时间顺序的标识;如果指示某一数据块写入时间顺序的标识不同于应有标识,则结束本次读取操作;所述应有标识为:指示与上一次读取的数据块相邻写入的数据块的写入时间顺序的标识;如果是一次读取操作中的第一次读取,则为指示应读取的数据块的写入时间顺序的标识。

【技术特征摘要】

【专利技术属性】
技术研发人员:李雪峰刘剑波
申请(专利权)人:北京启明星辰信息技术股份有限公司北京启明星辰信息安全技术有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1