一种基于服务器和客户端缓存的资源文件查询方法及系统的制作方法

文档序号:8433854阅读:524来源:国知局
一种基于服务器和客户端缓存的资源文件查询方法及系统的制作方法
【技术领域】
[0001]本发明设计信息数字化处理技术领域,尤其涉及一种基于服务器和客户端缓存的资源文件查询方法及系统。
【背景技术】
[0002]电子书籍已在各个系统中被广泛使用,除了常见的简单阅读场景(例如用AcrobatReader阅读PDF文件等),在一些特定的场景下,电子书籍的使用有不同的特点和扩展。例如在很多多媒体教学软件/系统中,通常有电子课本、教辅等电子书籍的阅读、学习、教学环节。在这些场景中,除了通常的阅读书籍内容,系统还会提供很多与当前书本内容相关的视频、图像、文本、动画等多媒体资源,供读者进行扩展阅读与学习。
[0003]如图1所示的多媒体教学系统就是这类多媒体教学软件中的一种。通常,系统一般有以下2种方式提供这些资源:1.将资源和资源列表数据都内嵌在书籍中,读者可以直接浏览。2.书籍上只提供一个资源列表,真正的资源和资源列表数据放在互联网上,读者需要浏览、使用某资源时,通过拖拽、点击等形式从互联网上下载后使用。
[0004]上述的方式1,优点是可以实时使用资源和资源列表数据,无需下载;在网络条件不好甚至无网络等情况下尤为有利。缺点是将资源和资源列表数据嵌入书籍中,造成电子书籍体积庞大,这在资料数量大时尤为突出;此外该方式的另一个缺点是资源固化,即每本书籍携带的资源是固定的,很难动态变化。
[0005]方式2的优点是附加的资源不会额外占用电子书籍的尺寸,且电子书籍对应的资源是动态可变的,只要服务器端设置不同的关联资源,客户端看见的资源列表自然就变化了。因此采用方式2在很多系统中都是常见的方式。方式2的缺点主要表现在:真正的资源文件是以在线的方式存在,首先用户使用时需要下载,实时性差;其次是列出当前书页/章节对应的资源有哪些时,也需要向服务器提交查询请求,现查询数据(如图2所示);当用户快速翻页时,如果要实时获得当前页/章节对应的资源列表,就需要不停第向服务器端请求数据。容易看出,这种方式对系统的资源占用严重。这种占用表现在几个个方面,1、客户端可能会以较高的频率请求资源列表数据(例如用户进行快速翻页等动作),则对网络带宽的占用严重。这种占用既表现在发送请求时对带宽的占用,更表现在服务器端返回请求数据时(通常返回的数据量比请求的数据量更大)。2、服务器端需要不断地进行资源查询,将占用服务器端资源。通常这些对应的资源数据会记录在服务器端的数据库中,众所周知,在一个高并发或大用户量的分布式系统中,数据库资源极为宝贵,频繁的数据库并发访问容易成为系统的瓶颈。
[0006]对上述资源占用问题的解决,很多系统采用不直接解决,而从改变用户操作等方式规避,例如采用在用户翻页时自动将资源列表界面关闭,界面关闭期间自然不需请求资源数据,这样可减少发送请求的次数;其他一些系统采用翻页时自动切换到相关的UI(例如本地资源列表)等方式;还有的系统将整本书的资源混合存放,即整本书的资源不做区分,用户翻到任何一页,对应的资源(列表)都相同,这样资源列表就可不用随用户的翻页动作而不断刷新了。这些措施从用户操作或简化系统规则的角度,规避了发送请求的次数,可解决对服务器端压力过大的问题。但很明显,这些措施都以牺牲掉或多或少的用户体验为代价,有一定的不足。

【发明内容】

[0007]针对现有技术中存在的缺陷,本发明的目的在于提供一种基于服务器和客户端缓存的资源文件查询方法及系统,在保证资源获取时效性的同时,减小服务器资源占用。
[0008]为实现上述目的,本发明采用的技术方案如下:
[0009]一种基于服务器和客户端缓存的资源文件查询方法,包括以下步骤:
[0010](I)客户端根据用户的资源列表数据获取请求,在客户端本地缓存中查找是否存在待查询资源列表数据且数据的时间戳未过期,若是则读取缓存中对应的资源列表数据发送到客户端,进入步骤(5),若否则进入下一步;
[0011](2)客户端向机构服务器发送资源列表数据获取请求,在机构服务器的缓存中查找是否存在所述的待查询资源列表数据且数据的时间戳未过期,若是则读取缓存中对应的资源列表数据发送到客户端,进入步骤(5),若否则进入下一步;
[0012](3)客户端向中心服务器发送资源列表数据获取请求,在中心服务器对应的缓存中查找是否存在所述的待查询资源列表数据且数据的时间戳未过期,若是则读取缓存中对应的资源列表数据发送到客户端,进入步骤(5),若否则进入下一步;
[0013](4)中心服务器将所述的资源列表数据获取请求发送到后端web服务器,后端web服务器在数据库中查询对应的资源列表数据并发送到中心服务器,中心服务器将接收到的资源列表数据发送到客户端;
[0014](5)客户端接收资源列表数据并在客户端界面展现。
[0015]进一步,如上所述的一种基于服务器和客户端缓存的资源文件查询方法,步骤(I)中,所述的资源列表数据是指资源对应的属性信息,包括资源的名称和资源描述信息的列表数据。
[0016]进一步,如上所述的一种基于服务器和客户端缓存的资源文件查询方法,步骤(2)中,所述的机构服务器包括多级机构服务器,向机构服务器发送资源获取请求时,优先向低级机构服务器发送,如果低级服务器的缓存中不存在待查询资源列表数据,再向低级机构服务器的上一级机构服务器发送。
[0017]进一步,如上所述的一种基于服务器和客户端缓存的资源文件查询方法,步骤(3)中,所述的中心服务器为Nginx反向代理服务器,Nginx反向代理服务器中将资源列表数据缓存在与之相连的memcache中。
[0018]进一步,如上所述的一种基于服务器和客户端缓存的资源文件查询方法,步骤(4)中,后端web服务器将资源列表数据发送到中心服务器后,Nginx反向代理服务器将接收到的资源列表数据缓存到与之相连的memcache中。
[0019]进一步,如上所述的一种基于服务器和客户端缓存的资源文件查询方法,步骤(5)中,客户端接收到资源列表数据后,将资源列表数据保存到客户端本地缓存中,并更新资源的时间戳。
[0020]再进一步,如上所述的一种基于服务器和客户端缓存的资源文件查询方法,当中心服务器中存在新的资源更新时,中心服务器将更新的资源及资源列表数据下发到机构服务器中进行缓存。
[0021]更进一步,如上所述的一种基于服务器和客户端缓存的资源文件查询方法,根据资源列表数据的标识ID查询列表资源数据。
[0022]一种基于服务器和客户端缓存的资源文件查询系统,包括客户端、机构服务器、中心服务器和后台web服务器,所述的客户端根据用户的资源获取请求,在客户端本地缓存中查找是否存在待查询资源列表数据且数据的时间戳未过期,若是则读取缓存中对应的资源列表数据发送到客户端,并在客户端展现,若否则由客户端将用户的资源获取请求发送到机构服务器;
[0023]机构服务器根据接收到的资源获取请求,在机构服务器的缓存中查找是否存在所述的待查询资源列表数据且数据的时间戳未过期,若是则读取缓存中对应的资源列表数据发送到客户端,并在客户端展现,若否则由客户端将用户的资源获取请求发送到中心服务器;
[0024]中心服务器根据接收到的资源获取请求,在中心服务器对应的缓存中查找是否存在所述的待查询资源列表数据且数据的时间戳未过期,若是则读取缓存中对应的资源列表数据发送到客户端,并在客户端展现,若否则由中心服务器将用户的资源获取请求发送到后端web服务器;
[0025]后端web服务器根据接收到的资源获取请求,在其数据库中查询对应的资源列表数
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1