一种浏览器客户端侧的缓存方法及系统的制作方法

文档序号:6335535阅读:433来源:国知局
专利名称:一种浏览器客户端侧的缓存方法及系统的制作方法
技术领域
本发明涉及缓存系统设计技术领域,尤其涉及互联网软件的浏览器客户端侧缓 存的设计方法及系统。
背景技术
随着云计算和软件即服务(SaaS)概念的普及和推广,越来越多的软件采用了通 过网络来交付使用的方式。采取这种交付方式的软件无需在本地计算机上安装任何软 件,而它的客户端就是用户计算机上的浏览器。为了使客户端对用户的反应迅速,一般 都采用富客户端技术,页面并不是全部由服务器生成,而是通过客户端的后台与服务器 进行交互,动态刷新或者局部刷新页面,这时候的客户端不在是简单的接收数据进行呈 现,更要存储一部分数据并处理一部分业务逻辑,以便对用户的动作进行快速反应。缓存最初是指硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘 内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度 不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速 度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在 硬盘与内存之间交换数据,有大缓存,则可以将那些零碎数据暂存在缓存中,减小系统 的负荷,也提高了数据的传输速度。软件系统中通常的缓存设计是,缓存只负责接收和保存数据,系统从数据库中 拿到数据,给到缓存,缓存保存数据;如果系统需要某种数据,会查询缓存中是否有此 数据,有则直接取出使用,没有则从数据库中取出数据,并放入缓存。一些涉及到的概念如下云计算,狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、 易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。
“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时 扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。广义云计算是 指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服 务可以是IT和软件、互联网相关的,也可以使任意其他的服务。SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展
和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它是一种通 过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据 自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间 长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改 用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务 提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件 的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。

发明内容
本发明的目的在于提供一种浏览器客户端侧的缓存的设计方法和系统,能够更 好的封装对数据的操作,使得客户端的其他功能模块可以关注在业务逻辑的处理,而无 需关心数据在客户端还是在服务器端。为了实现上述目的,本发明提供以下的技术方案一种缓存的设计方法,包括拥有不同的数据类型的功能模块各自建立相应的子缓存;所述子缓存可以设置各自的空间大小、数据过期时长、数据淘汰策略;在创建子缓存时,功能模块需要提供与服务器进行交互的方法;创建子缓存后,功能模块所有对数据的操作都通过缓存进行,无需关心数据存 在何处;缓存封装对数据的操作,判断缓存中是否存在所需的有效数据,没有的话通过 相应的交互方法与服务器进行通信,获取数据。一种浏览器客户端侧的缓存系统,所述系统包括接口模块、存储模块、淘汰决 策模块、异步通信模块、业务逻辑模块;所述接口模块提供缓存对外的接口,封装对数据的各种操作;所述的存储模块保存缓存的各种数据以及各个子缓存的所有设置;所述的淘汰决策模块在两种场景下会被引入,一个场景是往缓存中添加新数据 时,如果缓存容量已经达到所设定的最大值,则需要根据相应子缓存的淘汰策略来判断 哪些现有数据应该被淘汰;另一个场景是在查询时,如果所要求的数据存在于相应的子 缓存中,需要判断此数据是否已经过期,如果过期则认为是无效数据,需要重新从服务 器端获取;所述的异步通信模块负责根据业务逻辑模块的要求,调用创建子缓存时功能模 块所提供的交互方法与服务器端进行交互,执行对数据的相应操作;所述的业务逻辑模块判断所要求的数据类型,到相应的子缓存进行查询,如果 子缓存中不存在相应的有效数据,则通过异步通信模块与服务器进行交互,对数据进行 相应的操作;如果子缓存中存在相应的有效数据,则对数据进行所要求的操作,并同时 通知数据库进行相应的更新。通过上述方案,本发明实现了对系统所需的各种数据的封装,实现了对数据有 效性的判断和处理。


图1是本发明的缓存系统的示意图;图2是当缓存中存在所要求的有效数据时,一次数据获取(Get)的完整工作流程 示意图;图3是当缓存中不存在所要求的有效数据时,一次数据获取(Get)的完整工作流 程示意具体实施例方式下面参照附图对本发明进行详细的说明。以下对本发明的详细说明并不是对本 发明的限制。相反,本发明的范围是由所附权利要求来限定的。本发明的缓存系统的示意图,如图1所示,功能模块101发起对数据的操作请求 104到缓存系统102,缓存系统102检查缓存中是否存在所要求的有效数据,如果有,直 接返回,如果没有,则发起相应的数据操作异步请求105到服务器,在拿到服务器返回 的数据操作结果106后,缓存系统102根据操作类型更新数据操作结果106到缓存中,并 返回数据操作结果107给功能模块101。本发明的缓存系统的内部组成示意图,如图2和图3所示,包括接口模块、业务 逻辑模块、淘汰决策模块、存储模块和异步通信模块。下面以一次典型的数据获取(Get)操作为例,来详细说明缓存系统的完整工作流程。如图2所示,是当缓存中存在所要求的有效数据时,一次数据获取(Get)的完整 工作流程步骤206 接口模块201接收到功能模块发来的数据操作请求;步骤207 接口模块201通知业务逻辑模块202所收到的操作的数据类型、操作 类型、所要操作的数据的key值;步骤208 业务逻辑模块202向存储模块204查询相应数据类型的相应key值的 数据是否存在;步骤209:存储模块204根据数据类型,查找相应的子缓存存储区,发现有相应 key值的数据存在,于是发送数据的相关信息给淘汰决策模块203 ;步骤210:淘汰决策模块203根据收到的数据类型,查到相应子缓存的过期时长 和淘汰策略的设置,对数据信息进行判断,发现数据没有过期,为有效数据,将此结果 通知存储模块204 ;步骤211 存储模块204返回所要求的有效数据给业务逻辑模块202 ;步骤212 业务逻辑模块202返回所要求的有效数据给接口模块201 ;步骤213 接口模块201返回所要求的有效数据给功能模块;如图3所示,是当缓存中不存在所要求的有效数据时,一次数据获取(Get)的完 整工作流程步骤306 接口模块301接收到功能模块发来的数据操作请求;步骤307 接口模块301通知业务逻辑模块302所收到的操作的数据类型、操作 类型、所要操作的数据的key值;步骤308 业务逻辑模块302向存储模块304查询相应数据类型的相应key值的 数据是否存在;步骤309:存储模块304根据数据类型,查找相应的子缓存存储区,发现相应 key值的数据不存在,通知业务逻辑模块302数据不存在;步骤310 业务逻辑模块302通知异步通信模块305去获取相应数据类型相应 key值的数据;步骤311:异步通信模块305根据数据类型,查到相应子缓存的获取操作的服务 器交互方法,调用此交互方法,向服务器发起请求;
步骤312 异步通信模块305收到服务器返回的数据;步骤313 异步通信模块305返回收到的数据给业务逻辑模块302 ;步骤314 业务逻辑模块302将收到的数据发送给存储模块304,要求保存;步骤315 存储模块304要求淘汰决策模块303判断相应子缓存是否已满、是否 可以直接存入新的数据;步骤316:淘汰决策模块303查找相应子缓存的最大容量设置,判断相应子缓存 是否已经达到最大容量;如果未达到,通知存储模块304可以直接存入新数据;如果已 经达到最大容量,淘汰决策模块303根据子缓存所设置的淘汰策略选择最符合淘汰策略 的一条已有数据进行淘汰,然后通知存储模块304可以直接存入新数据;步骤317:存储模块304保存新数据到相应子缓存,通知业务逻辑模块已保 存;步骤318 业务逻辑模块302返回所要求的有效数据给接口模块301 ;步骤319 接口模块301返回所要求的有效数据给功能模块;通过以上的详细说明可以看出,应用了本发明的缓存系统后,功能模块只是在 需要的时候使用缓存系统所封装的接口来缓存中来获取数据,而无需关注数据存在何 处。这样就大大减轻了功能模块中的代码量,也使得今后的维护和扩展变得方便、灵 活。综上所述,为一种浏览器客户端侧的缓存方法和系统的设计说明。上述的示例 性的实施方案在所有方面趋于是用来描述而不是限制本发明。因此,本发明能够在具体 实现中具有许多变种,也并不局限于浏览器客户端,本领域的技术人员能够通过包含在 本文中的描述得到这些变种。所有在本发明的精神和原则之内的任何变种、修改、替换 等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种缓存设计方法,用于网络软件的浏览器客户端侧构建缓存,封装对数据的访 问,其特征在于,所述的方法包括拥有不同的数据类型的功能模块各自建立相应的子缓存;所述子缓存可以设置各自的空间大小、数据过期时长、数据淘汰策略;在创建子缓存时,功能模块需要提供与服务器进行交互的方法;创建子缓存后,功能模块所有对数据的操作都通过缓存进行,无需关心数据存在何处;缓存封装对数据的操作,判断缓存中是否存在所需的有效数据,没有的话通过相应 的交互方法与服务器进行通信,获取数据。
2.如权利要求1所述的一种缓存设计方法,其特征在于,所述的与服务器通信进行 数据操作的交互方法,由功能模块在创建子缓存时定义,包括但不限于初始化数据获 取、单个或多个数据获取、数据更新、删除数据等。
3.—种浏览器客户端侧的缓存系统,所述系统包括接口模块、存储模块、淘汰决策 模块、异步通信模块、业务逻辑模块;接口模块接收功能模块对数据的操作请求,通知 业务逻辑模块,业务逻辑模块判断该数据是否存在于存储模块,如存在,由淘汰决策模 块判断该数据是否已过期,如果未过期则为有效数据,直接返回;如果已过期,则通过 异步通信模块从服务器重新获取该数据再返回;如果数据不存在,则通过异步通信模块 从服务器获取该数据,淘汰决策模块判断相应子缓存有无达到最大容量,如果达到则根 据相应淘汰策略淘汰旧数据,通知存储模块保持新数据并返回;
4.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的接口模 块提供缓存对外的接口,封装对数据的各种操作;
5.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的存储模 块保存缓存的各种数据以及各个子缓存的所有设置;
6.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的淘汰决 策模块在两种场景下会被引入,一个场景是往缓存中添加新数据时,如果缓存容量已经 达到所设定的最大值,则需要根据相应子缓存的淘汰策略来判断哪些现有数据应该被淘 汰;另一个场景是在查询时,如果所要求的数据存在于相应的子缓存中,需要判断此数 据是否已经过期,如果过期则认为是无效数据,需要重新从服务器端获取;
7.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的异步通 信模块负责根据业务逻辑模块的要求,调用创建子缓存时功能模块所提供的交互方法与 服务器端进行交互,执行对数据的相应操作;
8.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的业务逻 辑模块判断所要求的数据类型,到相应的子缓存进行查询,如果子缓存中不存在相应的 有效数据,则通过异步通信模块与服务器进行交互,对数据进行相应的操作;如果子缓 存中存在相应的有效数据,则对数据进行所要求的操作,并同时通知数据库进行相应的 更新。
全文摘要
本发明公开了一种浏览器客户端侧缓存的设计方法,用于网络软件的浏览器客户端侧构建缓存,所述的方法包括拥有不同的数据类型的功能模块各自建立相应的子缓存;所述子缓存可以设置各自的空间大小、数据过期时长、数据淘汰策略;在创建子缓存时,功能模块需要提供与服务器进行交互的方法;缓存封装对数据的操作,判断数据是否存在缓存中,否则通过异步通信从服务器获取数据。同时,本发明还公开了一种浏览器客户端侧的缓存系统。应用了本发明的缓存方法和系统后,功能模块只是在需要的时候使用缓存系统所封装的接口来缓存中来获取数据,而无需关注数据存在何处。这样就大大减轻了功能模块中的代码量,也使得今后的维护和扩展变得方便、灵活。
文档编号G06F17/30GK102012907SQ201010537649
公开日2011年4月13日 申请日期2010年11月10日 优先权日2010年11月10日
发明者蒋磊 申请人:上海光芒科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1