一种访问数据的方法和服务器代理的制作方法

文档序号:6637264阅读:198来源:国知局
一种访问数据的方法和服务器代理的制作方法
【专利摘要】本发明公开了一种访问数据的方法和服务器代理,包括:当服务器代理接收到来自客户端的数据访问请求时,在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系;服务器代理根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径,服务器代理通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。通过本发明的方案,提高了客户端的访问能力。
【专利说明】一种访问数据的方法和服务器代理

【技术领域】
[0001]本发明涉及实时数据库技术,尤指一种访问数据的方法和服务器代理。

【背景技术】
[0002]为了满足工业企业生产/运营过程监控和信息集成的要求,人机接口(册〗,!!皿册180111116 或高层信息系统需要从控制层、监视层甚至底层设备获取实时数据。
[0003]由于实时数据可能自身就是一个大型分层分布式系统(或系统的一部分)所构成的服务器群,即分布式系统中包括多个冗余系统,而每一个冗余系统中存储了一部分实时数据,因此,现有的访问数据的方法大致包括:客户端需要预先保存各个冗余系统中所存储的数据,当客户端需要对分布式系统中的数据进行访问时,客户端首先查找存储自身所要访问的数据的冗余系统,然后,向存储自身所要访问的数据的冗余系统请求访问数据。
[0004]现有的访问数据的方法中,由于客户端需要预先获知各个冗余系统中存储了哪些数据,并且客户端并不知道各个冗余系统中的具体构成,因此,在进行数据访问时,如果分布式系统中所存储的数据发生变化,那么客户端也需要进行相应的更改,从而限制了客户端的访问能力。


【发明内容】

[0005]为了解决上述问题,本发明提出了一种访问数据的方法和服务器代理,能够提高客户端的访问能力。
[0006]为了达到上述目的,本发明提出了一种访问数据的方法,包括:
[0007]服务器代理预先获取站点标识和站点中的服务器的冗余关系之间的第一对应关系,站点标识和指示站点中存储的数据的标识之间的第二对应关系,服务器和网络信息之间的第三对应关系;
[0008]当服务器代理接收到来自客户端的数据访问请求时,在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系;
[0009]服务器代理根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径,月艮务器代理通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。
[0010]优选地,所述服务器代理根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器包括:
[0011]所述服务器代理在所述站点中的服务器的冗余关系中查找所述站点中当前处于激活状态的服务器。
[0012]优选地,所述服务器代理预先获取所述第一对应关系、所述第二对应关系和所述第三对应关系包括:
[0013]发现服务器在接收到来自分层分布式系统的注册请求时,获取注册请求中的第一对应关系、第二对应关系和第三对应关系;
[0014]所述服务器代理获取发现服务器获得的第一对应关系、第二对应关系和第三对应关系。
[0015]本发明还提出了一种服务器代理,至少包括:
[0016]第一获取模块,用于预先获取站点标识和站点中的服务器的冗余关系之间的第一对应关系,站点标识和指示站点中存储的数据的标识之间的第二对应关系,服务器和网络信息之间的第三对应关系;
[0017]第一接收模块,用于接收到来自客户端的数据访问请求;
[0018]查找模块,用于在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系;根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径;
[0019]发送模块,用于通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。
[0020]优选地,所述第一获取模块具体用于:
[0021]获取发现服务器中的第一对应关系、第二对应关系和第三对应关系。
[0022]本发明还提出了一种发现服务器,至少包括:
[0023]第二接收模块,用于接收到来自分层分布式系统的注册请求;
[0024]第二获取模块,用于获取注册请求中的第一对应关系、第二对应关系和第三对应关系。
[0025]与现有技术相比,本发明包括:服务器代理预先获取站点标识和站点中的服务器的冗余关系之间的第一对应关系,站点标识和指示站点中存储的数据的标识之间的第二对应关系,服务器和网络信息之间的第三对应关系;当服务器代理接收到来自客户端的数据访问请求时,在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系;月艮务器代理根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径,服务器代理通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。通过本发明的方案,提高了客户端的访问能力,实现了客户端透明访问分层分布式系统。

【专利附图】

【附图说明】
[0026]下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
[0027]图1为本发明访问数据的方法的流程图;
[0028]图2为本发明服务器代理的结构组成示意图;
[0029]图3为本发明发现服务器的结构组成示意图;
[0030]图4为本发明实施例中分层分布式系统的抽象示意图;
[0031]图5为本发明实施例中发现服务器的工作流程图;
[0032]图6为本发明实施例中三层路由的流程示意图。

【具体实施方式】
[0033]为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
[0034]参见图1,本发明提出了一种访问数据的方法,包括:
[0035]步骤100、服务器代理预先获取站点标识和站点中的服务器的冗余关系之间的第一对应关系,站点标识和指示站点中存储的数据的标识之间的第二对应关系,服务器和网络信息之间的第三对应关系。
[0036]本步骤中,指示站点中存储的数据的标识可以是数据对应的编号范围、或数据的类型等,具体视存储的方式来确定,本发明不作具体限定。例如,数据是以类型存储在不同的站点中的,则指示站点中存储的数据的标识可以是数据的类型。
[0037]本步骤中,网络信息可以是服务器所在的网络、互联网协议的^1-0^0001)地址等。
[0038]本步骤中,服务器代理可以通过发现服务器获取第一对应关系、第二对应关系和第三对应关系。
[0039]也就是说,分层分布式系统(可以是各站点分别)向发现服务器发送注册请求。其中,注册请求中携带有第一对应关系和/或第二对应关系和/或第三对应关系。
[0040]分层分布式系统(可以是各站点)可以周期性向发现服务器发送注册请求,也可以在自身对应的第一对应关系和/或第二对应关系和/或第三对应关系发生改变时向发现服务器发送注册请求,发现服务器接收到注册请求后,保存注册请求中的第一对应关系和/或第二对应关系和/或第三对应关系。
[0041]在分层分布式系统(可以是各站点)向发现服务器发送注册请求的情况下,服务器代理可以周期性向发现服务器发送查询消息,查询各站点对应的第一对应关系和/或第二对应关系和/或第三对应关系。
[0042]其中,可以是各站点中当前处于激活状态的服务器向发现服务器发送注册请求。
[0043]其中,如果站点为一级冗余系统,即站点只有主服务器和从服务器两台服务器,则站点中当前处于激活状态的服务器即为站点中的主服务器。如果站点为两级冗余系统,则站点中当前处于激活状态的服务器即为站点中第二级主系统中的第一级主服务器。如果站点为多级冗余系统,则可以此类推。
[0044]步骤101、当服务器代理接收到来自客户端的数据访问请求时,在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系。
[0045]本步骤中,客户端可以通过调用服务器代理提供的标准0?0以接口向服务器代理发送数据访问请求。
[0046]本步骤中,数据访问请求中携带有指示客户端所要访问的数据的标识。
[0047]步骤102、服务器代理根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径,服务器代理通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。
[0048]本步骤中,服务器代理可以在站点中的服务器的冗余关系中查找站点中当前处于激活状态的服务器,具体实现属于本领域技术人员的公知常识,并不用于限定本发明的保护范围,这里不再赘述。
[0049]本步骤中,如何根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径属于本领域技术人员的公知常识,并不用于限定本发明的保护范围,这里不再赘述。
[0050]参见图2,本发明还提出了一种服务器代理,至少包括:
[0051]第一获取模块,用于预先获取站点标识和站点中的服务器的冗余关系之间的第一对应关系,站点标识和指示站点中存储的数据的标识之间的第二对应关系,服务器和网络信息之间的第三对应关系;
[0052]第一接收模块,用于接收到来自客户端的数据访问请求;
[0053]查找模块,用于在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系;根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径;
[0054]发送模块,用于通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。
[0055]本发明的服务器代理中,第一获取模块具体用于:
[0056]获取发现服务器中的第一对应关系、第二对应关系和第三对应关系。
[0057]参见图3,本发明还提出了一种发现服务器,至少包括:
[0058]第二接收模块,用于接收到来自分层分布式系统的注册请求;
[0059]第二获取模块,用于获取注册请求中的第一对应关系、第二对应关系和第三对应关系。
[0060]下面通过具体实施例详细说明本发明的方法。
[0061]为了能够以类似于访问独立的?服务器的“透明”方式访问分层分布式系统,我们将整个分层分布式系统抽象成一个客户端本地的服务器(即服务器代理),如图4所不0
[0062]客户端只需要访问本地的服务器代理,不必再关心分层分布式系统是如何组织的、是否发生改变,即分层分布式系统对于客户端是“透明”的。客户端只需简单地将数据访问请求提交给本地的服务器代理,服务器代理接收到此请求后将根据分层分布式系统当前的组织结构及运行状态,路由请求到最佳的服务器处理。
[0063]下面对本发明中的核心组件一一服务器代理的具体实施过程进行详细说明。
[0064]在一个大型的分层分布式冗余实时数据库系统(以下简称实时数据库系统)中,有可能配置了提供不同实时数据的多个站点,每一个站点既可以是独立的?¢:服务器,也可能是互为冗余的服务器组,每个服务器组根据机器硬件配置、数据量或及时性等方面的不同,可以有不同的冗余配置。此外,站点也可能被部署在不同的位置或网络上。
[0065]基于上述实时数据库系统的差异性及不确定性,本发明配置了一个发现服务器来维护实时数据库系统中有效站点列表及各站点下服务器配置信息。实时数据库系统中服务器启动后首先通过“注册服务器”服务向发现服务器注册;服务器代理周期性通过“发现服务器”服务从发现服务器获取实时数据库系统中当前站点列表及各站点下服务器配置信息,构造成站点服务器表及网络路径表。
[0066]图5描述了发现服务器工作流程。
[0067]服务器代理从发现服务器发现之后,首先通过标准0?0 ^协议分别建立与站点列表中各站点下所有服务器的连接,并获取各站点实时数据分布信息,构造成数据目录表(即第二对应关系)。之后,服务器代理启动诊断,实时监测各站点及站点下服务器的当前运行状态、服务等级等信息,以便及时发现服务器的状态改变。此时,服务器代理将进入等待客户端请求状态。
[0068]客户端通过调用服务器代理提供的标准0?0以接口向服务器代理发送数据访问请求,服务器代理接收到请求后,将采用分层路由的方式将请求路由给实时数据库系统中的最佳服务器处理。
[0069]—般采用三层路由方式,各层路由描述如下:
[0070]数据路由
[0071〕 实时数据库系统中,不同的数据可能分布在不同的站点。服务器代理接收到客户端的数据访问请求时,首先根据最新的数据目录表,筛选出能够提供请求数据的站点,并将请求路由给服务等级最尚的站点,实现站点负载分担。
[0072]服务器路由
[0073]服务器代理将请求路由到合适的站点后,通过此站点的站点服务器表(即第一对应关系)查找此站点下的所有可用服务器,并根据最新的诊断信息将请求路由给服务等级最高的服务器,实现服务器负载分担。
[0074]网络路由
[0075]服务器代理将请求路由到合适的服务器后,通过此服务器的网络路径表(即第三对应关系)查找此服务器的网络配置信息,并将请求通过最优的网络发送给服务器,实现网络负载分担。
[0076]图6描述了三层路由的详细流程。
[0077]客户端的每一次请求都将通过三次路由后才会发送到服务器处理,且每一次路由都将根据实时数据库系统最新的组织结构及运行状态作为路由依据,保证了在实时库系统发生改变(如服务器故障或恢复、网络故障或恢复、新服务器启动等)时,服务器代理也能够将请求路由给最佳的服务器,实现数据访问的不中断。
[0078]另外,客户端与服务器代理、服务器代理与实时数据库系统之间都采用了标准0?0口八通讯接口,因此通过本发明可以实现任何一个符合0?0 ^标准的客户端与实时数据库系统的互联互通。
[0079]需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
【权利要求】
1.一种访问数据的方法,其特征在于,包括: 服务器代理预先获取站点标识和站点中的服务器的冗余关系之间的第一对应关系,站点标识和指示站点中存储的数据的标识之间的第二对应关系,服务器和网络信息之间的第三对应关系; 当服务器代理接收到来自客户端的数据访问请求时,在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系; 服务器代理根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径,服务器代理通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。
2.根据权利要求1所述的方法,其特征在于,所述服务器代理根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器包括: 所述服务器代理在所述站点中的服务器的冗余关系中查找所述站点中当前处于激活状态的服务器。
3.根据权利要求1或2所述的方法,其特征在于,所述服务器代理预先获取所述第一对应关系、所述第二对应关系和所述第三对应关系包括: 发现服务器在接收到来自分层分布式系统的注册请求时,获取注册请求中的第一对应关系、第二对应关系和第三对应关系; 所述服务器代理获取发现服务器获得的第一对应关系、第二对应关系和第三对应关系O
4.一种服务器代理,其特征在于,至少包括: 第一获取模块,用于预先获取站点标识和站点中的服务器的冗余关系之间的第一对应关系,站点标识和指示站点中存储的数据的标识之间的第二对应关系,服务器和网络信息之间的第三对应关系; 第一接收模块,用于接收到来自客户端的数据访问请求; 查找模块,用于在第二对应关系中查找数据访问请求中指示所要访问的数据的标识对应的站点标识,在第一对应关系中查找查找到的站点标识对应的站点中的服务器的冗余关系;根据查找到的站点中的服务器的冗余关系确定站点中当前处于激活状态的服务器,在第三对应关系中查找当前处于激活状态的服务器对应的网络信息,根据查找到的网络信息确定服务器代理到当前处于激活状态的服务器之间的最佳网络路径; 发送模块,用于通过确定的最佳网络路径将数据访问请求转发给站点中当前处于激活状态的服务器。
5.根据权利要求4所述的服务器代理,其特征在于,所述第一获取模块具体用于: 获取发现服务器中的第一对应关系、第二对应关系和第三对应关系。
6.一种发现服务器,其特征在于,至少包括: 第二接收模块,用于接收到来自分层分布式系统的注册请求; 第二获取模块,用于获取注册请求中的第一对应关系、第二对应关系和第三对应关系。
【文档编号】G06F17/30GK104462335SQ201410728310
【公开日】2015年3月25日 申请日期:2014年12月3日 优先权日:2014年12月3日
【发明者】杨龙, 刘小树, 智艳利 申请人:北京和利时系统工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1