一种分发信息数据库的制作方法

文档序号:6384496阅读:135来源:国知局
专利名称:一种分发信息数据库的制作方法
技术领域
本发明涉及信息技术数据同步领域,尤其涉及一种分发信息数据库。
背景技术
目前,随着网络技术的发展,互联网作为一个庞大的信息资源,成为人们获取信息的最方便、快捷的途径。目前,用户通常使用个人计算机接入英特网(Internet),并通过个人计算机中安装的浏览器(Browser)访问网页,获得需要的信息。随着移动通信技术的发展,用户还可以通过支持浏览器功能的移动终端接入英特网,例如手机、个人数字助理(PersonalDigital Assistant,简称 PDA)。然而,无论是个人计算机上的浏览器还是移动终端上的浏览器,一般不提供推送服务,服务器端与客户端的信息交互依赖于客户端发起的连接,服务器端无法主动地将信息发送给客户端,从而无法实现服务器端与浏览器客户端之间的信息的实时同步。现有技术中,最常用的实现浏览器客户端与服务器端浏览器数据同步的方式是浏览器客户端以一定频率向服务器端发送请求,如每周一次或每月一次,如果服务端有相关信息的更新则获取这些信息。然而,申请人发现该种数据同步方式存在如下技术缺陷效率比较低、占用资源多、不能做到内容的真正实时同步更新。因此,目前急需解决如何实现浏览器客户端与云存储服务器端数据实时同步的问题。

发明内容
有鉴于此,本发明提供了一种克服上述问题或者至少部分地解决上述问题的分发信息数据库。根据本发明,提供了一种分发信息数据库,该分发信息数据库是集群数据库形式,其包括N个信息单元,其中每个信息单元与一个套接字服务器对应,并且每个信息单元中存储与该套接字服务器对应的连接相关的信息,N为与该分发信息数据库进行连接的套接字服务器的数量。从上述技术方案可以看出,本发明具有以下有益效果(I)设置单独的推送服务器,在云存储服务器端存储的数据内容发生更新的情况下,及时地将命令信息通过推送服务器发送至目标客户端,从而简单、高效地实现了云存储服务器端与浏览器客户端的数据实时同步;(2)云存储服务器端、目标客户端和发起客户端是现有浏览器系统中已有的,因此在此基础上添加推送服务器可以有效地利用原有的系统架构,降低实现实时同步系统的成本;(3)通过增加套接字服务器、分发器和分发信息数据库,顺利实现了云存储服务器端、推送服务器和目标客户端的连接;(4)由推送服务器推送至目标客户端的命令信息为通知消息,在接收到推送服务器推送的通知消息后,目标客户端从云存储服务器端下载发生更新的数据内容,依照下载内容进行本地数据内容的同步,从而可以进一步节约系统资源。(5)由于分发信息数据库是集群形式,本发明可以实现多个套接字服务器同步查询数据库的特定部分,从而减少了每个部分的查询量,提高了查询速度。另一方面,由于查询由套接字服务器自身来执行,因而其能够在查询出每个结果之后立即触发命令信息发送,大大减少了时间延迟,加快了处理速度。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1为根据本发明一个实施例的实现浏览器数据同步的系统的结构示意图;图2为根据本发明另一个实施例的实现浏览器数据同步的系统的结构示意图;图3为图2所示实现浏览器数据同步的系统中浏览器客户端与套接字服务器建立连接的过程的示意图;图4为图2所示实现浏览器数据同步的系统中在第一类场景下向目标客户端进行信息推送的过程的示意图;图5为图2所示实现浏览器数据同步的系统中在第二类场景下向目标客户端进行信息推送的过程的示意图;图6为图2所示实现浏览器数据同步的系统中在第三类场景下向目标客户端进行信息推送的过程的示意图;图7为根据本发明实施例的实现浏览器数据同步的方法的流程图;图8为根据本发明实施例的实现浏览器数据同步的浏览器客户端的结构示意图;图9为根据本发明实施例的采用集群形式分发信息数据库的实现浏览器数据同步的系统结构示意图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。在本发明的一个示例性实施例中,提供了一种实现浏览器数据同步的系统。如图1所示,该实现浏览器数据同步的系统包括云存储服务器端1、推送服务器2和多个浏览器客户端3、4。其中,云存储服务器端1,用于在有数据更新时向推送服务器下发条件信息和命令信息;推送服务器2,用于根据条件信息在多个浏览器客户端中确定目标客户端,并将该命令信息推送至目标客户端3 ;目标客户端3,用于根据该命令信息实现目标客户端与云存储服务器端的数据同步。在图1所示的实施例中,通过设置单独的推送服务器2,在云存储服务器端存储的数据内容发生更新的情况下,及时地将命令信息通过推送服务器发送至目标客户端,从而简单、高效地实现了服务端信息与客户端实时同步。如图1所示,多个浏览器客户端中包含有发起客户端4和目标客户端3。其中,发起客户端4,用于对存储于云存储服务器端I中的数据进行更新。该发起客户端4和目标客户端3可以属于同一个用户,也可以属于不同的用户。该发起客户端4和目标客户端3属于同一个用户的情况主要的应用场景在于同一用户使用不同的设备(例如手机和PC)登录浏览器,其中一个(例如PC)更改收藏夹,那么需要将该更新同步到同一用户的另一设备(手机)。该发起客户端4和目标客户端3不属于同一个用户的情况的应用场景例如是不同浏览器客户端之间的信息通信。当然,本发明也可以由云存储服务器端自身发起对数据内容的更新,在这种情况下,图1中的发起浏览器客户端4则可以不存在。这种情况的场景例如是系统向所有浏览器客户端推送新闻消息或天气预报;或系统向所有某版本的浏览器客户端发起更新指示。由于图1中虚线框以内的云存储服务器端1、目标客户端3和发起客户端4是现有浏览器系统中已有的,因此在此基础上添加推送服务器可以有效地利用原有的系统架构,降低实现本发明的成本。为了实现云存储服务器端1、推送服务器2和目标客户端3的连接,如图2所示,实现浏览器客户端与云存储服务器端数据同步的系统还可以包括多个套接字服务器、分发器。分发器,用于在接收到客户端的连接请求后,为其分配相应的套接字服务器以及连接标识符,并将用户标识信息以及连接标识符存储至分发信息数据库。详细的连接建立过程如图3所示,包括步骤S301,浏览器客户端向分发器提交连接请求,该连接请求中至少包括用户标识信息,对于登录用户来讲,其用户标识信息可以包括用户名,而对于非登录用户来讲,其用户标识信息可以包括用户的机器硬件标识。对于登录用户来讲,该用户标识信息可以为一字符串。其中,该字符串除了登录用户的用户名之外,还包括登录时间和验证字符等信息。用户名为用户唯一标识号,即一个数字,用于代表一个用户。验证字符根据用户名生成,即可通过验证字符判定用户标识信息是否被更改。对于非登录用户来讲,该用户标识信息可以包括非登录用户的机器硬件标识,其中机器硬件标识为机器唯一标识,为客户端通过用户机器硬件、系统配置等哈希生成。此外,为了后续的目标客户端筛选,该连接请求还可以包括用户特征信息,例如IP地址信息、浏览器版本信息,或用户分类信息等用户特征信息。其中,浏览器版本号、用户分类信息,或IP地址信息等用户特征信息可以用于后续的客户端筛选使用。步骤S302,分发器基于该用户标识信息使用预设算法进行计算得到一个数值,根据该数值为提交连接请求的浏览器客户端分配套接字服务器;该数值是全局唯一的,即连接标识符;分发器将该套接字服务器的IP地址、端口等连接信息及连接标识符发送至提交请求的浏览器客户端;
本步骤中,使用预设的算法根据登录用户的用户名计算上述数值。对于非登录用户来讲,直接采用非登录用户的机器标识计算上述数值,该算法可以为循环冗余校验(CRC) 32 算法。步骤S303,浏览器客户端根据接收到的套接字服务器的IP地址和端口号与对应的套接字服务器建立连接,该连接可以是传输控制协议TCP (Transmission ControlProtocol)连接。在浏览器客户端与套接字服务器建立连接时,该套接字服务器得到标识该套接字服务器和浏览器客户端连接关系的资源标识符。浏览器客户端利用已经建立的连接向该套接字服务器传送其接收到的连接标识符。步骤S304,套接字服务器接收到连接标识符后,向分发器对该连接标识符进行验证,若验证成功,则保持与浏览器客户端之间建立的连接,若验证不成功,则断开已经建立的连接。步骤S305,分发器将用户标识信息(登录用户的用户名或非登录用户的机器标识)、用户特征信息(如果有的话)以及连接标识符存储在分发信息数据库中,并且套接字服务器也将所得到的资源标识符存储在该分发信息数据库中。需要说明的是,为了防止服务器端变化引起的分配混乱,浏览器客户端需要在隔一段时间后重新执行步骤S301-步骤S304进行连接。此外,对于每一个套接字服务器,在分发信息数据库中均存在对应的单独数据表,以减小数据表的规模,加快在后续信息推送阶段,套接字服务器的查询速度。通过增加分发器和套接字服务器,并且在分发器中设置分发信息数据库,使得能够在建立连接阶段将用户标识信息、连接标识符、资源标识符和用户特征信息等存储于分发信息数据库中,从而实现了推送服务器对预设目标客户端的数据内容的推送。在信息推送阶段推送服务器,用于将条件信息和命令信息发送至套接字服务器;套接字服务器,用于将推送服务器推送的信息转发至相应的目标客户端。详细的信息推送过程以下分三类场景进行详细说明。(I)当该实时同步由发起客户端发起,且发起客户端和接收客户端属于同一用户时,条件信息中包括用户标识信息。举例来讲,如图4所示,该信息推送过程包括步骤S401,发起客户端发起对存储在云存储服务器端存储的数据进行更新;本步骤中,云存储服务器端存储的数据包括以下之一收藏夹信息、历史记录信息、浏览器配置信息、便签信息、登录管家信息、消息提醒信息、密钥信息等等其他可能的信肩、O步骤S402,云存储服务器端向推送服务器发送条件信息和命令信息,该条件信息包括用户标识信息,例如登录用户的用户名或未登录用户的机器硬件标识,并且该条件信息中还包括标识该发起客户端与其对应的套接字服务器的连接的资源标识符;步骤S403,推送服务器由与分发器中同样的算法根据用户标识信息计算得到一个数值,从而得到为目标客户端分配的套接字服务器,并将条件信息及命令信息发送给该为目标客户端分配的套接字服务器;步骤S404,套接字服务器根据条件信息中的用户标识信息查询分发器中的分发信息数据库,确定与目标客户端对应的资源标识符,其中排除了标识发起客户端与其对应的套接字服务器的连接的资源标识符;步骤S405,套接字服务器根据该资源标识符在与该目标客户端(一个或多个)的连接中向该客户端发送该命令信息。(2)当该实时同步由发起客户端发起,且发起客户端和接收客户端属于不同登录用户时,即条件信息中包括用户标识信息,如图5所示,该信息推送过程包括步骤S501,发起客户端发起对存储在云存储服务器端存储的数据进行更新;本步骤中,云存储服务器端存储的数据包括以下之一收藏夹信息、历史记录信息、浏览器配置信息、便签信息、登录管家信息、消息提醒信息、密钥信息、新闻信息和/或用户生成的信息等等。步骤S502,云存储服务器端向推送服务器发送条件信息和命令信息,其中该条件信息可以包括用户标识信息,例如登录用户的用户名或未登录用户的机器硬件标识;步骤S503,推送服务器由与分发器中同样的算法根据用户标识信息计算得到一个数值,从而得到为目标客户端分配的套接字服务器,并将条件信息及命令信息发送给该为目标客户端分配的套接字服务器;步骤S504,套接字服务器根据条件信息中的用户标识信息查询分发器中的分发信息数据库,确定目标客户端的资源标识符;步骤S505,对应的套接字服务器依据该资源标识符,在与目标客户端(一个或多个)的连接中向该客户端发送该通知消息,至此,信息推送过程结束。(3)当该实时同步由云存储服务器端主动发起,且条件信息中包括目标客户端的特征筛选信息,而不包括用户标识信息,其中特征筛选信息也可以为空,这种情况下,在连接建立阶段,由浏览器客户端向分发器提交连接请求中还包含特征筛选信息,其与如前的在分发信息数据库中保存的用户特征信息相对应。如图6所示,该信息推送过程包括步骤S601,云存储服务器端向推送服务器下发条件信息和命令信息中,条件信息中包含目标客户端的特征筛选信息(例如某浏览器的版本号),该命令信息例如是通知用户升级的指令。步骤S602,推送服务器将条件信息和命令信息推送给所有的套接字服务器。步骤S603,各个套接字服务器分别向分发器的分发信息数据库递交查询请求,该查询请求中包含特征筛选信息;分发信息数据库根据特征筛选条件查询分发信息数据库中各个浏览器客户端的用户特征信息,确定满足该特征筛选条件的目标客户端的资源标识符,并将该资源标识符返回至发起查询的各套接字服务器。步骤S604,各套接字服务器根据接收到的资源标识符向相应的客户端发送命令信息,至此,信息推送过程结束。在步骤S603,套接字服务器通过查询分发信息数据库来确定目标客户端所采用的查询机制主要包括以下两种情况第一种情况条件信息中包括目标客户端的登录用户的用户名或非登录用户的机器硬件标识,在该情况下,推送过程为云存储服务器触发对该目标客户端的相关信息的实时同步,具体来说,云存储服务器向推送服务器发送目标客户端用户标识信息或机器硬件标识、命令信息以及其他可能的参数信息。在推送服务器中,由与分发器中同样的算法根据用户标识信息或机器硬件标识计算出该全局唯一的连接标识符,进而得出其被分配处于的套接字服务器,继而推送服务器将用户标识信息或机器硬件标识以及命令信息发送给所计算出的套接字服务器。套接字服务器根据用户标识信息或机器硬件标识查询分发信息数据库,确定目标客户端。对应的套接字服务器在与该用户标识信息或机器硬件标识对应的浏览器客户端(一个或多个)的连接中向该客户端发送该命令信息。客户端收到命令信息,根据其中的通知消息内容,从对应的云存储服务器中下载更新内容,如配置、收藏夹等(如果直接发送内容消息则没有这一步骤)。第二种情况条件消息中不包括目标客户端的用户标识信息或机器硬件标识,在该情况下,推送过程为云存储服务器向推送服务器发送条件信息(例如某版本号)以及命令信息(包括通知消息或内容消息,其中的通知消息例如通知用户升级的指令);推送服务器将条件信息和命令信息推送给所有的套接字服务器;套接字服务器根据条件信息查询分发信息数据库,确定目标客户端,然后向相应的目标客户端发送命令信息;在对应目标客户端处收到命令信息,并触发对应的动作,例如,弹窗提示,下载更新等(如果直接发送内容消息则没有这一步骤)。在上面的步骤中,也可以先执行推送服务器查询分发信息数据库,然后根据查询结果将信息发送给对应的套接字服务器。为了提高查询效率,分发信息数据库优选采取数据库集群的形式,分发信息数据库采取数据库集群的形式,每个套接字服务器在分发信息数据库中对应一表格,该表格中包含有套接字服务器中的所有连接的信息,该表格是以连接标识符为关键字(key)的信息列表,至少包括连接标识符、用户标识信息、用户特征信息、资源标识符等信息。该分发信息数据库可以使用任何合适的数据库来实现,在本发明的一个优选实施例中,分发信息数据库可以选择文档类型数据库,优选地选择对数据列数没有限定的数据库来实现,以使得数据项目灵活可变,有利于对数据项目缺失和扩充的兼容。本发明的一个实施例使用MongoDB集群来实现该数据库,也可以使用CouchDB集群或其他类似物数据库集群实现。分发信息数据库如果采取集群的形式,则在上述两种查询机制下,即可以根据套接字服务器的数目,在数据库集群中维护相同数的部分。在上述实施例中,例如如图4所示,系统中有3个套接字服务器的情况下,数据库集群也由三个部分组成,每个部分维护一个表格,其对应于每个套接字服务器中连接的信息。具体来说,这样的列表是以连接标识符为key的信息列表,其中包括连接标识符、用户标识信息、用户特征信息、资源标识符等信息,信息列表的一个不例如下表I所不
权利要求
1.一种分发信息数据库,其中,该分发信息数据库是集群数据库形式,其包括N个信息单元,其中每个信息单元与一个套接字服务器对应,每个信息单元中存储与该套接字服务器对应的连接相关的信息,N为与该分发信息数据库进行连接的套接字服务器的数量。
2.根据权利要求1所述的分发信息数据库,其中,每个信息单元维护以连接标识符为关键字的信息列表,该列表至少包括以下一项用户标识信息、用户特征信息、资源标识符,其中连接标识符是用于标识套接字服务器与浏览器客户端之间的连接的全局唯一标识符,资源标识符是在一个套接字服务器内标识该套接字服务器和浏览器客户端的连接的标识符。
3.根据权利要求1所述的分发信息数据库,其中,所述数据库集群采用MongoDB集群或CouchDB 集群。
4.根据权利要求1-3任一项所述的分发信息数据库,其中,该分发信息数据库为文档类型数据库。
5.一种实现浏览器数据同步的方法,其中该方法包括 云存储服务器端在有数据更新时向推送服务器下发条件信息和命令信息; 推送服务器根据该条件信息在所述多个浏览器客户端中确定目标客户端,并将所述命令信息发送给所述目标客户端;以及 目标客户端根据该命令信息实现浏览器客户端与云存储服务器端的数据同步; 在所述推送服务器根据条件信息将命令信息发送给多个浏览器客户端中的目标客户端之前,所述多个浏览器客户端分别与相应的套接字服务器之间建立连接; 在所述推送服务器根据条件信息将命令信息发送给多个浏览器客户端中的目标客户端时,所述推送服务器通过相应的套接字服务器将所述命令信息发送给所述多个浏览器客户端中的目标客户端。
6.根据权利要求5所述的实现浏览器数据同步的方法,其中,该方法进一步包括步骤所述多个浏览器客户端与相应的套接字服务器之间通过分发器建立连接。
7.根据权利要求6所述的实现浏览器数据同步的方法,其中,浏览器客户端与套接字服务器之间通过分发器建立套接字连接进一步包括步骤 所述浏览器客户端向所述分发器提交连接请求,该连接请求中至少包括用户标识信息; 所述分发器由用户标识信息使用预设算法进行计算得到全局唯一的连接标识符,根据该连接标识符为提交连接请求的浏览器客户端分配套接字服务器; 所述分发器将该套接字服务器的连接信息及所述连接标识符发送至提交请求的浏览器客户端; 提交请求的浏览器客户端根据接收到的套接字服务器的连接信息及所述连接标识符与对应的套接字服务器建立连接。
全文摘要
本发明提供了分发信息数据库,该分发信息数据库是集群数据库形式,其包括N个信息单元,其中每个信息单元与一个套接字服务器对应,每个信息单元中存储与该套接字服务器对应的连接相关的信息,N为与该分发信息数据库进行连接的套接字服务器的数量。本发明在云存储服务器端存储的数据内容发生更新的情况下,及时地将命令信息通过推送服务器发送至目标客户端,从而简单、高效地实现了云存储服务器端与浏览器客户端的数据的实时同步。
文档编号G06F17/30GK103064899SQ20121054874
公开日2013年4月24日 申请日期2012年12月17日 优先权日2012年12月17日
发明者吴浩, 任寰 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1