基于数据服务器的数据分发系统及其实现方法

文档序号:7660743阅读:89来源:国知局
专利名称:基于数据服务器的数据分发系统及其实现方法
技术领域
本发明涉及数据库的应用技术,尤其涉及大规模数据的分发技术。
背景技术
随着互联网的普及和网络应用技术的发展,应用系统的功能越来越强, 同时其规模也变得越来越大。通常,对于一个大型的应用系统来说,将数 百台客户端服务器组成一个集群式的应用系统网络。为了加快具体应用功 能的响应速度和提供并发性能,这些数据一般都存储在多个客户端共享的 中心数据库中。每个客户端可以通过与中心数据库进行实时通讯,以从中 心数据库中读取一些结构性的数据,例如,系统的黑名单用户名列表数据、 禁用的关键词等等。
然而,采用上述的应用系统在多个客户端和中心数据库之间进行交互 时,系统的可扩展性较差。因为每个客户端都需要直接地与中心数据库进 行连接,并读取需要的数据,当客户端的数目达到一定数量时,中心数据 库的处理能力将会大大削弱。此外,当对中心数据库中的存储数据进行变 更时,该系统的多个客户端会在同 一 时间内向该中心数据库请求变更后的 数据。由于每个客户端都要向中心数据库读取相同的变更后的数据,这样 极易引起中心数据库的阻塞,严重时甚至会导致系统崩溃。而且,在该应 用系统中还需要配套同步通讯装置,以处理中心数据库在进行数据变更后 的及时通知。

发明内容
针对应用系统中的中心数据库在向多个客户端分发数据时所存在的上 述缺陷,本发明提供了 一种基于数据服务器的数据分发系统及其实现方法。
按照本发明的一个方面,提供了一种数据分发系统。该系统包括数 据源,用于存储该数据分发系统中接入的所有客户端的应用数据;至少一
个数据服务器,用于响应客户端的数据请求并从数据源中读取数据以传送
至相应的客户端;以及多个客户端,用于向数据服务器发送数据请求并接
收来自该数据服务器的数据。
优选地,每个客户端包含一个数据服务通讯单元,它用来向数据服务 器发送请求以读取所需的数据,和在数据源变更数据时接收该数据服务器 传送的变更后的数据。进一步,该数据通讯服务单元接收数据后,更新客 户端中的本地数据库。需要指出的是,数据服务通讯单元与数据服务器进 行数据交互时,其客户端只与数据服务通讯单元发生关联,而与数据源的 具体位置无关。
优选地,数据服务器在接收数据源的数据后对其进行一 定的预处理, 主要包括对数据的数据结构、数据格式转换、数据关联等进行处理。
优选地,当数据源变更数据时,数据服务器接收变更后的数据,并将 其同步分发到多个客户端。
优选地,当某个客户端向数据服务器发送请求以读取数据时,数据服 务器响应该请求并只针对提出发送请求的客户端传送数据。
优选地,当某个客户端向数据服务器发送请求以变更数据时,数据服 务器响应该请求并将变更后的数据重新装载至数据源中。
按照本发明的又 一 个方面,提供了 一种利用上述数据分发系统进行数
据分发的方法。该方法包括
(1) 启动数据服务器并连至数据源,由数据服务器读取数据并对其进 4亍预处理;
(2) 客户端向数据服务器发送请求以读取数据;
(3) 数据服务器响应发送请求并返回数据至客户端;以及
(4) 客户端接收数据并更新本地数据库。
采用本发明的数据分发系统及其实现方法,大大节约了中心数据库或 者数据源的连接资源,并且数据服务器可以对来自数据库或者数据源的原 始数据进行一定的预处理,有效地提高了数据分发效率。此外,所接入的 客户端数量不再受数据库资源的影响而能够进行线性扩展。


读者在参照附图阅读了本发明的具体实施方式
以后,将会更清楚地了 解本发明的各个方面。其中,
图1示出现有技术中基于集中型的数据分发系统的结构示意图2示出依据本发明的一个或多个方面的基于数据服务器的数据分发
系统的结构示意图3示出实现如图2所示的数据分发系统的程序流程示意图;以及 图4示出如图2所示的数据分发系统在中心数据库进行数据变更时的
流程示意图。
具体实施例方式
下面参照附图,对本发明的具体实施方式
作进一步的详细描述。
图1示出现有技术中基于集中型的数据分发系统的结构示意图。参照 图1,该数据分发系统包括一个中心数据库110、 一个同步通讯装置120和 多个客户端131 - 135。以下分别予以描述。
中心数据库110用于存储该多个客户端131-135的相关数据信息,并 与多个客户端131 - 135中的每一个进行实时的数据交互。同步通讯装置120 用于处理中心数据库110的数据变更后的通知信息,例如,如果某个客户 端(例如客户端131)对该中心数据库110中的数据进行了修改,同步通 讯装置120将会把这一数据变更信息通知所有的客户端131-135。客户端 131-135用于读取中心数据库110中的数据,并緩存在客户端的本地数据 库中。
从图1中可以看出,因为每个客户端131 - 135都需要直接地与中心数 据库110进行连接,并读取需要的数据,当客户端的数目达到一定数量时, 中心数据库no的处理能力将会大大削弱。此外,当对中心数据库110中 的存储数据进行变更时,该系统的多个客户端131 - 135会在同一时间内向 该中心数据库110请求变更后的数据。由于每个客户端都要向中心数据库 110读取相同的变更后的数据,这样极易引起中心数据库110的阻塞,严 重时甚至会导致系统崩溃。
图2示出依据本发明的一个或多个方面的基于数据服务器的数据分发 系统的结构示意图。如图2所示,该数据分发系统包括中心数据库210、 数据服务器220和多个客户端231 - 233,并且每个客户端还配置有与该数 据服务器220进行通讯的数据服务通讯单元231a- 233a。其中,中心数据 库210用于存储该多个客户端的相关数据信息。
数据服务器220是该数据分发系统的核心组成部分,其主要用来实现 下列功能
(1 )利用配置文件从中心数据库210读取数据并进行处理;
(2) 响应来自客户端231 - 233的数据请求,并只对该提出请求的客 户端发送数据;
(3) 响应处于客户端的用户变更数据的请求,以便重新装载数据;
(4) 当中心数据库210的数据变更完成后,通知所有连接的客户端通 过数据服务器220获取变更后的数据。
数据服务器220利用配置文件从中心数据库210读取数据并进行处理 的方式可以分为两种,即预处理和更新处理。具体而言,预处理是指在客 户端没有向数据服务器220发送数据请求的条件下,该数据服务器220首 先从中心数据库210装载数据并进行预先的处理,当客户端请求数据时可 立即向其分发数据;更新处理是指在数据服务器220接收数据变更的信息 后,重新从中心数据库210装载数据并更新数据服务器220的数据,然后 同步分发至各客户端231 - 233。
客户端231 - 233通过各自的数据服务通讯单元231a- 233a提供的数 据服务,获取应用数据并緩存于本地数据库(未画出)。需要指出的是, 每个客户端仅仅与各自的数据服务通讯单元发生关联,而与数据源的具体
位置无关。更具体地,数据服务通讯单元可以看成是作为数据服务器220 的客户端而放置在每个客户端中的通讯模块,换言之,数据服务器220利 用数据服务通讯单元与每个客户端进行数据交互,例如,数据服务通讯单 元向数据服务器220发送请求以读取所需的数据,或者当中心数据库210 变更数据时,接收由数据服务器220分发的变更后的数据,或者当接收到 来自数据服务器220分发的变更数据后,更新相关联的客户端中的本地数 据库。
本领域的技术人员应当理解,图2所示的系统仅是示意性质的,实际 上,按照本发明的一个方面或多个方面的数据分发系统可以包含更多数量 的数据服务器。例如,当连接到中心数据库210的数据服务器220的流量 压力比较小时,可以只配置一 台数据服务器就能够满足多个客户端的数据 请求。然而,当连接到中心数据库210的数据服务器220的流量压力比较 大, 一台数据服务器可能不足以满足客户端的数据服务,因此可以采用两 台或两台以上的数据服务器。
图3示出了实现如图2所示的数据分发系统的程序流程示意图。参照 图2和图3,根据本发明的一个或多个方面的基于数据服务器的数据分发
过程可以采用如下的步骤来实现数据的分发 (1 )步骤300。启动数据服务器220;
(2) 步骤302。将数据服务器210连接至中心数据库220,读取数据 并进行预处理;
(3) 步骤304。数据服务器210扫描并捕捉来自客户端的数揚请求, 具体来说,数据服务器210开启其侦听端口,当捕捉到有来自客户端231 -23 3中的 一 个或多个的数据请求时予以响应;
(4) 步骤306。客户端231-233中的一个或多个通过各自的数据服务 通讯单元231a- 233a与数据服务器220连接,其中,数据服务通讯单元的 主要功能包括向数据服务器220请求变更数据、接收来自数据服务器220 分发的变更后数据、处理意外断开连接的情况等;
(5) 步骤308。数据服务通讯单元231a- 233a中的一个或多个向数据 服务器220发送请求以读取数据;
(6) 步骤310。数据服务器220响应上述请求,并向发送请求的客户 端返回所需数据;
(7) 步骤312。若中心数据库210的数据有变更,数据服务器220根 据配置文件从中心数据库210读取变更后的数据,并将该更新数据同步分 发给客户端;
(8) 步骤314。数据服务通讯单元接收该更新数据,并更新本地数据库。
由于在中心数据库和各个客户端之间引入了数据服务器,因此大大降
低了客户端连接到中心数据库所产生的资源消耗,与此同时,由于客户端 在请求读取数据时无需再逐个与中心数据库建立通讯连接,明显减轻了中
心数据库的压力并极大地提升了其处理能力。
此外,如上述步骤302所述,将数据服务器连接至中心数据库,读取 数据并进行预处理。由数据服务器220提供对于数据的预处理操作,多个 客户端也不用再自己花时间来处理所接收的数据。该预处理操作包括对于 数据结构、数据格式转换、数据关联等的处理。再者,对数据进行预处理 还可改进数据服务器与客户端实行数据交互的友好程度,在预处理敏感数 据的同时增强了系统的数据安全性。
需要指出的是,数据服务通讯单元可视为每个客户端的通讯模块,承 担所有与数据服务器进行数据交互的各项任务,这样安排使该数据分发系
统更加模块化,也易于客户端的扩展。
图4示出如图2所示的数据分发系统在中心数据库进行数据变更时的 流程示意图。数据变更方法可包括如下的步骤
(1) 步骤400。中心数据库变210更数据;
(2) 步骤402。当中心数据库210变更数据完成后,将此变更通知发 送至数据服务器220;
(3 )步骤404。数据服务器220接收该通知,并从中心数据库210读 取变更后的应用数据;
(4) 步骤406。数据服务器220对变更后的数据进行预处理;
(5) 步骤408。数据服务器220将经过预处理的变更数据传送至数据 服务通讯单元231a - 233a;
(6) 步骤410。客户端231 - 233通过各自的数据服务通讯单元接收该 变更后的数据,并对本地数据库中的数据予以更新。
上文中,参照附图描述了本发明的具体实施方式
。但是,本领域中的 普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以 对本发明的具体实施方式
作各种变更和替换。这些变更和替换都落在本发 明权利要求书所限定的范围内。
权利要求
1. 一种数据分发系统,其特征在于,它包括:数据源,用于存储所述数据分发系统中接入的所有客户端的应用数据;至少一个数据服务器,用于响应所述客户端的数据请求,从所述数据源读取数据并将所述数据传送至客户端;以及多个客户端,用于向所述数据服务器发送数据请求并接收来自所述数据服务器的数据。
2. 如权利要求1所述的系统,其特征在于,所述客户端包含一个数据 服务通讯单元,所述数据服务通讯单元用来向数据服务器发送请求以读取所数据。
3. 如权利要求2所述的系统,其特征在于,所述数据服务通讯单元接 收数据后,更新客户端中的本地数据库。
4. 如权利要求2所述的系统,其特征在于,所述数据服务通讯单元与 所述数据服务器进行数据交互时,所述客户端只与数据服务通讯单元发生关 联,而与所述数据源的具体位置无关。
5. 如权利要求1所述的系统,其特征在于,所述数据服务器在接收所 述数据源的数据后对其进行预处理,所述预处理包括对所述数据的数据结 构、数据格式转换、数据关联进行处理。
6. 如权利要求1所述的系统,其特征在于,当所述数据源变更数据时, 所述数据服务器接收变更后的数据,并将所述变更后的数据同步分发至所述 多个客户端。
7. 如权利要求1所述的系统,其特征在于,所述客户端向所述数据服 务器发送请求以读取数据时,所述数据服务器响应该请求,并只针对提出发 送请求的所述客户端传送数据。
8. 如权利要求1所述的系统,其特征在于,所述客户端向所述数据服 务器发送请求以变更数据时,所述数据服务器响应该请求,并将变更后的数 据重新装载至所述数据源。
9. 如权利要求1所述的系统,其特征在于,所述数据服务器具有侦听 端口,用于实时捕捉并响应所述客户端的数据请求。
10. —种利用如权利要求1-9中任意一项所述的数据分发系统进行数 据分发的方法,其特征在于,该方法包括将所述数据服务器连接至所述数据源,读取数据并对其进行预处理; 所述客户端向所述数据服务器发送请求以读取数据; 所述数据服务器响应所述发送请求并返回数据至所述客户端;以及 所述客户端接收数据并更新本地数据库。
全文摘要
本发明揭示了一种数据分发系统,包括数据源,用于存储所接入的所有客户端的应用数据;至少一个数据服务器,用于响应客户端的数据请求并读取数据以传送至相应的客户端;以及多个客户端,用于向数据服务器发送数据请求并接收数据。本发明还揭示了一种数据分发方法,包括将数据服务器连接至数据源,读取数据并预处理;客户端向数据服务器发送数据请求;数据服务器响应请求并返回数据至客户端;以及客户端接收数据并更新本地数据库。采用本发明的数据分发系统及其实现方法,大大节约了中心数据库或者数据源的连接资源,有效地提高了数据分发效率,所接入的客户端数量不再受数据库资源的影响而能够进行线性扩展。
文档编号H04L29/06GK101383839SQ20071014706
公开日2009年3月11日 申请日期2007年9月4日 优先权日2007年9月4日
发明者张建锋 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1