用于数据交互的缓存模式自适应系统及方法

文档序号:6583127阅读:111来源:国知局
专利名称:用于数据交互的缓存模式自适应系统及方法
技术领域
本发明涉及通信计算机技术领域,尤其涉及一种用于数据交互的缓存模式自适应
系统及方法。
背景技术
目前,几乎所有流行的操作系统都支持线程,传统技术是每当有一个客户端连接 时,服务器就将为它创建一个线程,当客户端断开连接时销毁线程。当客户端并发量很大 时,这种线程创建和销毁的工作使服务器的开销很大。 在客户端-服务器(Client-Sever, CS)系统中,客户端与服务器通过线程池进行 数据交互,线程池是指一组一定数量的线程的集合,其类似操作系统中缓冲区(Buffer)的 概念,分为管理线程和工作线程。管理线程负责所有工作线程的创建、销毁和选择等管理工 作;工作线程是实际为客户端提供服务的线程。 使用线程池,可以预先创建一定数量的线程,当一个客户端连接时,从线程池中选 择一个空闲的线程为之提供服务,当客户端离开时,线程池维护线程状态为空闲,从而可以 为其它客户端提供服务,服务器无需进行频繁的线程创建和销毁工作,节省大量服务器开 销,提高了效率。 客户端与服务器之间通过线程池进行数据交互时,会有缓冲区来存储接收和发送 的数据,缓冲区的数据存储结构称为缓存模式(Buffer Mode)。传统技术中,缓冲区都是固 定的数据结构,如单链表数据存储结构、十字交叉链表数据存储结构等,且存储数据的数据 存储结构始终保持固定不变。例如,预先设定客户端采用单链表数据存储结构,则服务器采 用相应的单链表数据存储结构。由于不同的数据结构具有自身的特点,例如有的插入数据 速度快,有的查询数据快,因此如果采用固定不变的数据存储结构,则只能用到此种数据结 构的优点,数据存储结构单一,不能发挥各种数据存储结构的优点,不能动态改变数据存储 结构。

发明内容
本发明要解决的技术问题是针对现有技术中数据存储结构单一、不能动态改变
数据存储结构的问题,提供一种用于数据交互的缓存模式自适应系统和方法。 本发明的技术方案是一种用于数据交互的缓存模式自适应系统,包括位于服务
器中的缓存模式库和缓存模式管理器;所述缓存模式库用于存储至少一个缓存模式;所述
缓存模式管理器包括缓存模式选择模块,所述缓存模式选择模块接收线程发送的客户端请
求配置指令,并根据所述客户端发送的配置信息,在所述缓存模式库中选择适合所述客户
端的缓存模式提供给所述客户端。 本发明的用于数据交互的缓存模式自适应系统的更详细的技术方案是所述缓存 模式管理器还包括缓存模式生成模块,所述缓存模式生成模块接收线程发送的客户端请求 创建指令,并根据所述客户端发送的缓存模式,在所述缓存模式库中创建新的缓存模式。
所述缓存模式生成模块当接收所述客户端的请求创建指令时,查询所述缓存模式 库中是否存在所述客户端发送的缓存模式,若不存在,则复制所述客户端发送的缓存模式, 并存储在所述缓存模式库中。 所述系统还包括线程池,所述线程池用于响应客户端发送的请求配置指令或请求 创建指令,在创建缓存模式成功后通知所述客户端,或在所述缓存模式选择模块选择到适 合所述客户端的缓存模式后,提供缓存模式给所述客户端。
本发明还提出了一种用于数据交互的缓存模式自适应方法,包括以下步骤
步骤1 :服务器通过空闲的线程响应客户端的请求配置指令,并接收所述客户端 发送的配置信息; 步骤2 :所述服务器根据所述客户端发送的配置信息,在所述服务器中的缓存模 式库中选择适合所述客户端的缓存模式提供给所述客户端。 本发明的用于数据交互的缓存模式自适应方法的更详细的技术方案是所述方法 还包括步骤3 :所述服务器通过空闲的线程响应所述客户端的请求创建指令,并接收所述 客户端发送的缓存模式,根据客户端发送的缓存模式,所述服务器在其内部的缓存模式库 中创建新的缓存模式。 所述方法还包括步骤4 :所述服务器创建新的缓存模式后,通知所述客户端创建 缓存模式成功。
所述方法还包括步骤5 :所述客户端收到缓存模式后,与所述服务器通过相同的
缓存模式进行数据交互。 本发明的优点是 1.根据客户端发送的请求配置指令,可为客户端自适应选择合适的缓存模式,利 用不同数据结构的不同优点; 2.根据客户端发送的请求创建指令,复制客户端发送的新的缓存模式,来更新服 务器存储的缓存模式,丰富所存的缓存模式的种类,还可以将其存储的所有缓存模式提供 给其它客户端,实现了客户端与服务器中的缓存模式自适应变化,因此能动态的改变数据 存储结构,自适应选择合适的数据存储结构,能用到各种数据存储结构的优点,提高了系统 的效率。


下面结合附图及实施例对本发明作进一步描述 图1是本发明的实施例中用于数据交互的缓存模式自适应系统的应用示意图;
图2是本发明的实施例中包含缓存模式选择模块的用于数据交互的缓存模式自 适应系统的应用示意图; 图3是本发明的实施例中用于数据交互的缓存模式自适应方法的缓存模式配置 的流程图; 图4是本发明的实施例中包含缓存模式生成模块的用于数据交互的缓存模式自 适应系统的应用示意图; 图5是本发明的实施例中用于数据交互的缓存模式自适应方法的缓存模式创建 的流程图。
其中100服务器;101线程池;102缓存模式管理器;1021缓存模式选择模块;
1022缓存模式生成模块;103缓存模式库;200、3(K)客户端。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不 用于限定本发明。 实施例如图1所示,服务器100与多个客户端200、300…N进行数据交互,其内部 包括线程池101、缓存模式管理器(Buffer Mode Manager) 102和缓存模式库(Buffer Mode Library) 103,其中 线程池101、缓存模式管理器102和缓存模式库103依次连接,线程池101是一组 一定数量线程的集合,用于对线程进行管理(包括线程的创建、销毁和选择等)和提供客户 端200、300…N服务,在实施例中,线程池101用于响应客户端200、300…N的请求配置指令 和请求创建指令,并在服务器100创建缓存模式成功后通知客户端200、300…N,或在服务 器100选择到适合客户端的缓存模式后,提供缓存模式给客户端200、300…N。
如图2和图4所示,缓存模式管理器102包括缓存模式选择模块1021和缓存模式 生成模块1022。缓存模式选择模块1021用于接收线程发送的请求配置指令,当某个客户端 与服务器100建立连接时,若客户端发送请求配置指令,客户端同时会将其自身的配置信 息一并发送给服务器IOO,则缓存模式选择模块1021根据客户端发送的配置信息,在缓存 模式库103中选择适合该客户端的缓存模式提供给该客户端。这里的配置信息,包括客户 端提供的自身环境等,例如CPU频率,内存大小等,缓存模式选择模块1021根据客户端的这 些自身环境,来匹配最适合客户端的缓存模式提供给客户端。 缓存模式生成模块1022用于接收线程发送的请求创建指令,当某个客户端与服 务器100建立连接时,客户端自身配置有缓存模式,并需要创建客户端自身的缓存模式给 服务器100时,客户端向服务器100发送请求创建指令,同时客户端还会向服务器100发送 其自身的缓存模式,则缓存模式生成模块1022根据客户端发送的缓存模式,查询缓存模式 库103中是否存在该客户端发送的缓存模式,若不存在,则复制该客户端的缓存模式,并存 储在缓存模式库103中;若存在,则由缓存模式选择模块1021选择和客户端相同的缓存模 式为客户端服务。 某个客户端发送请求配置指令还是请求创建指令是由不同的客户端标识决定。当 客户端自身配置有缓存模式,其可以向服务器100发送请求配置指令,请求服务器100为该 客户端配置一个新的缓存模式,也可以向服务器IOO发送请求创建指令,请求服务器100创 建该客户端具有的缓存模式。当客户端自身未配置缓存模式时,则只能向服务器100发送 请求配置指令,请求服务器100为该客户端配置一个缓存模式,这时服务器100会根据该客 户端发送的客户端配置信息,来选择适合该客户端的缓存模式提供给该客户端。
缓存模式库103和缓存模式管理器连接,用于存储至少一个缓存模式。基于上述 描述,缓存模式库103中存储的缓存模式包括服务器100自身配置的缓存模式和各客户端 200、300…N请求创建后从客户端复制来的缓存模式。服务器100响应各客户端的请求创 建指令时,可为缓存模式库103增加新的缓存模式,以更新缓存模式库103,更新后的缓存模式可提供给其它客户端更多的模式选择。 如图2和图3所示,在本发明的一个实施例中,包括位于服务器100中的线程池 101、缓存模式管理器102和缓存模式库103,其中,线程池101中包括多个线程,如线程1、 线程2、线程2…线程n ;缓存模式管理器102包括缓存模式选择模块1021,用于接收线程发 送的客户端请求配置指令和客户端200的配置信息,并根据客户端200的配置信息从缓存 模式库103中选择适合客户端200的缓存模式提供给客户端200 ;缓存模式库103中存储 了一些缓存模式,如缓存模式1、缓存模式2、缓存模式3等。 在步骤S301中,设客户端200与服务器100建立连接,客户端200向服务器100 发送请求配置指令,同时将自身的配置信息发送给服务器IOO,服务器IOO在线程池101中 选择空闲的工作线程2接收客户端请求配置指令和配置信息,并将请求指令和配置信息提 供给缓存模式管理器102的缓存模式选择模块1021。 在步骤S302中,缓存模式选择模块1021根据客户端200的配置信息,在缓存模式 库103中选择适合客户端200的缓存模式提供给客户端200,例如,选择单链表数据存储结 构提供给客户端200。 在步骤S303中,客户端收到服务器发来的缓存模式信息后,服务器100和客户端 200此时具有了相匹配的缓存模式,服务器100与客户端200利用相同的缓存模式进行数据交互。 需说明的是,客户端200发送请求配置指令时,与其自身是否配置有缓存模式无 关,若客户端200已配置了缓存模式,其还可以向服务器IOO请求为其配置合适的缓存模 式;若客户端200自身未配置缓存模式,则客户端200需要服务器100为其配置合适的缓存 模式。因此,能动态改变客户端200的数据存储结构,并且数据存储结构可根据客户端200 的机器配置做适应性的变化。 如图4和图5所示,在本发明的一个实施例中,包括位于服务器100中的线程池 101、缓存模式管理器102和缓存模式库103,其中,线程池101中包括多个线程,如线程1、 线程2、线程2…线程n ;缓存模式管理器102包括缓存模式生成模块1022,用于接收线程发 送的客户端请求创建指令和缓存模式,并根据客户端200发送的缓存模式,在缓存模式库 103中创建新的缓存模式;缓存模式库103中存储了一些缓存模式,如缓存模式1、缓存模式 2、缓存模式3等。 在步骤S501中,设客户端300与服务器100建立连接,客户端300向服务器100 发送请求创建指令,这里的客户端300自身配置有缓存模式,例如,单链表数据存储结构, 当客户端300与服务器100建立连接时,客户端300将自身具有的缓存模式发送给服务器 100并请求创建缓存模式时。服务器100选择空闲的工作线程2响应客户端300发送的请 求创建指令,并将客户端300发送的缓存模式提供给缓存模式管理器102。
在步骤S502中,缓存模式管理器102查询缓存模式库103中是否存在客户端300 的缓存模式,具体为,缓存模式生成模块1022在缓存模式库103中查询,并判断是否存在客 户端300发送的缓存模式。 在步骤S503中,若缓存模式库103中不存在客户端300的缓存模式,缓存模式生 成模块1022则复制客户端300的缓存模式,并存储在缓存模式库103中,然后执行步骤 S504。若存在,则不需创建,直接转步骤S505。
在步骤S504中,服务器100创建缓存模式成功后,缓存模式管理器102通知客户 端300创建缓存模式成功, 在步骤S505中,客户端收到缓存模式后,服务器IOO通过空闲的工作线程与客户 端300利用相同的缓存模式进行数据交互。 由于服务器100可根据客户端300的缓存模式对缓存模式库103进行更新,更新 后的缓存模式库103包括服务器100自身配置有的缓存模式,还包括复制的客户端300的 缓存模式,这样,使得缓存模式库103中的缓存模式变得丰富,同时更新的缓存模式还可提 供给其它客户端,因此能够做到服务器100与客户端200、300…N的缓存模式自适应变化, 从而提高了系统的效率。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种用于数据交互的缓存模式自适应系统,其特征在于包括位于服务器(100)中的缓存模式库(103)和缓存模式管理器(102);所述缓存模式库(103)用于存储至少一个缓存模式;所述缓存模式管理器(102)包括缓存模式选择模块(1021),所述缓存模式选择模块(1021)接收线程发送的客户端请求配置指令,并根据所述客户端发送的配置信息,在所述缓存模式库(103)中选择适合所述客户端的缓存模式提供给所述客户端。
2. 根据权利要求1所述的用于数据交互的缓存模式自适应系统,其特征在于所述缓 存模式管理器(102)还包括缓存模式生成模块(1022),所述缓存模式生成模块(1022)接收 线程发送的客户端请求创建指令,并根据所述客户端发送的缓存模式,在所述缓存模式库 中创建新的缓存模式。
3. 根据权利要求2所述的用于数据交互的缓存模式自适应系统,其特征在于所述缓 存模式生成模块(1022)当接收所述客户端的请求创建指令时,查询所述缓存模式库中是 否存在所述客户端发送的缓存模式,若不存在,则复制所述客户端发送的缓存模式,并存储 在所述缓存模式库(103)中。
4. 根据权利要求1或2所述的用于数据交互的缓存模式自适应系统,其特征在于还 包括线程池(101),所述线程池用于响应客户端发送的请求配置指令或请求创建指令,在创 建缓存模式成功后通知所述客户端,或在所述缓存模式选择模块选择到适合所述客户端的 缓存模式后,提供缓存模式给所述客户端。
5. —种用于数据交互的缓存模式自适应方法,其特征在于包括以下步骤步骤l :服务器(100)通过空闲的线程响应客户端的请求配置指令,并接收所述客户端 发送的配置信息;步骤2 :所述服务器(100)根据所述客户端发送的配置信息,在所述服务器中的缓存模式库(103)中选择适合所述客户端的缓存模式提供给所述客户端。
6. 根据权利要求5所述的用于数据交互的缓存模式自适应方法,其特征在于所述方法还包括步骤3 :所述服务器(100)通过空闲的线程响应所述客户端的请求创建指令,并接收所述客户端发送的缓存模式,根据客户端发送的缓存模式,所述服务器(100)在其内部 的缓存模式库(103)中创建新的缓存模式。
7. 根据权利要求6所述的用于数据交互的缓存模式自适应方法,其特征在于所述方法还包括步骤4 :所述服务器(100)创建新的缓存模式后,通知所述客户端创建缓存模式成功。
8. 根据权利要求5至7中任意一项所述的用于数据交互的缓存模式自适应方法,其特征在于所述方法还包括步骤5 :所述客户端收到缓存模式后,与所述服务器通过相同的缓 存模式进行数据交互。
全文摘要
本发明涉及通信计算机技术领域,提供了一种用于数据交互的缓存模式自适应系统及方法。所述系统包括位于服务器中的缓存模式库和缓存模式管理器;所述缓存模式库存储有至少一个缓存模式;所述缓存模式管理器包括缓存模式选择模块,所述缓存模式选择模块接收线程发送的客户端请求配置指令,并根据所述客户端发送的配置信息,在所述缓存模式库中选择适合所述客户端的缓存模式提供给所述客户端。本发明还提供了一种用于数据交互的缓存模式自适应方法。采用本发明,能动态的改变系统的数据存储结构,自适应选择合适的数据存储结构,提高了系统的效率。
文档编号G06F9/50GK101706740SQ200910211330
公开日2010年5月12日 申请日期2009年10月28日 优先权日2009年10月28日
发明者奚玉玺 申请人:太仓市同维电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1