一种服务端的定位方法和系统的利记博彩app

文档序号:7959394阅读:258来源:国知局
专利名称:一种服务端的定位方法和系统的利记博彩app
技术领域
本发明涉及网络通讯技术领域,具体涉及一种服务端的定位方法和系统。
背景技术
在分布式系统中,通常都需要远程访问某个服务对象,如何获取远程服务对象的位置信息,并建立到远程服务对象即服务端的通信连接是一个基本的技术问题。
目前,主要有两种获取远程服务对象位置信息的方法。
方法一、在一般的客户端/服务器的软件架构中,客户端都需要利用自己定义的配置文件、或程序启动参数、或专门的配置界面来显式设置服务端的位置信息,以便建立客户端和服务端的连接。
在方法一中,每个客户端都需要增加服务端位置信息的配置管理功能、需要使用服务端位置信息的配置文件,而且,服务端的位置变更之后,每个客户端需要同步更新客户端的配置信息,使客户端获取远程服务对象位置信息的实现过程复杂。如果一个或多个客户端是独立的组件、且多个客户端需要集成到一个更大的系统中,集成后的系统将成为一个新的客户端,这个新的客户端仍然需要实现本客户端的服务端位置信息的配置管理功能,从而增加了组件集成的难度,降低了组件的易用性。
方法二、通过CORBA(Common Object Request Broker Architecture,公用对象请求代理程序体系结构)的命名服务使客户端获取远程服务对象的位置信息。具体实现方法为在整个系统中存在一个独立的命名服务提供者,其他所有的服务对象启动后,主动到这个独立的命名服务提供者中登记自己的名字及其定位信息,所有的客户端也访问这个独立的命名服务提供者,并通过名字查询,获得服务对象的位置信息,从而建立客户端和服务端的连接。
在方法二中,所有的客户端和服务对象仍然需要配置命名服务提供者位置信息的配置管理功能,所以,方法二中仍然存在和方法一同样的客户端获取远程服务对象位置信息的实现过程复杂、组件集成难度大,组件易用性差等缺点。

发明内容
本发明的目的在于,提供一种服务端的定位方法和系统,服务端通过利用广播向命名服务对象发送定位信息、客户端通过利用广播向命名服务对象发送定位请求,使客户端和服务端中不需要配置管理功能,从而简化了客户端获取远程服务对象位置信息的实现过程、降低了组件集成难度、提高了组件易用性的目的。
为达到上述目的,本发明提供的一种服务端的定位方法,包括a、服务端广播其定位信息;b、命名服务对象监听并存储服务端广播发送的定位信息;c、客户端在需要服务端的定位信息时,广播发送服务端定位请求;d、命名服务对象监听到定位请求后,根据该定位请求将相应服务端的定位信息发送至所述客户端;e、所述客户端根据其接收到的定位信息进行服务端的定位处理。
所述步骤a包括服务端采用用户数据报协议的广播报文广播其定位信息。
所述定位信息包括服务端名称和位置信息。
所述步骤b包括命名服务对象通过监听指定的一个或多个端口获取服务端广播发送的定位信息,并存储该定位信息。
命名服务对象中设置有服务端注册权限信息,且所述步骤b包括命名服务对象在确定其监听获取到的定位信息符合其存储的注册权限信息时,存储该定位信息。
所述方法还包括命名服务对象在接收到服务端的定位信息后,向服务端发送响应消息;服务端在接收到响应消息后,停止广播其定位信息。
所述命名服务对象中设置有客户端获取服务端定位信息的权限信息,且所述步骤d包括命名服务对象监听到定位请求、并根据所述权限信息确定该客户端有获取相应服务端定位信息的权限时,根据定位请求将相应服务端的定位信息发送至该客户端。
本发明提供的一种服务端的定位系统,包括命名服务对象、服务端和客户端;所述命名服务对象中设置有监听模块、存储模块和查询模块,所述服务端设置有广播模块,所述客户端设置有请求模块和定位模块;广播模块用于广播服务端的定位信息;监听模块用于监听广播模块广播发送的定位信息,并将监听到的定位信息存储于存储模块中;请求模块用于在客户端需要服务端的定位信息时,广播发送服务端定位请求;查询模块用于在监听到请求模块广播发送的定位请求后,根据定位请求从存储模块中查询相应服务端的定位信息,并发送到定位模块;定位模块用于接收查询模块发送的定位信息,并进行服务端的定位处理。
所述命名服务对象中还设置有注册权限存储模块;
注册权限存储模块用于存储服务端注册权限信息;监听模块在确定其监听获取到的定位信息符合注册权项存储模块中存储的注册权限信息时,将监听到的该定位信息存储于存储模块中。
所述命名服务对象中还设置有客户端权限存储模块;客户端权限存储模块用于存储客户端获取服务端定位信息的权限信息;查询模块在监听到定位请求、并根据客户端权限存储模块中存储的信息确定该客户端有获取相应服务端定位信息的权限时,根据定位请求查询相应服务端的定位信息,并发送到定位模块。
通过上述技术方案的描述可知,服务端通过利用广播向命名服务对象发送定位信息,使服务端在不需要配置管理功能的前提下,能够向命名服务对象注册其定位信息;客户端通过利用广播向命名服务对象发送定位请求,使客户端在不需要配置管理功能的前提下,能够从命名服务对象处获取其需要的服务端定位信息;本发明通过设置注册权限信息,使命名服务对象能够对服务端的注册过程进行控制,本发明通过设置客户端获取服务端定位信息的权限信息,使命名服务对象能够对客户端获取定位信息的过程进行控制,通过上述两个权限信息的设置,本发明中的命名服务对象能够将某些服务端的定位信息向某些客户端公开,保证了远程访问的安全性;从而通过本发明提供的技术方案实现了简化客户端获取远程服务对象位置信息的实现过程、降低组件集成难度、提高组件易用性的目的。


图1是本发明实施例的服务端定位过程中命名服务对象执行操作流程图;图2是本发明实施例的服务端定位过程中服务端执行操作流程图;图3是本发明实施例的服务端定位过程中客户端执行操作流程图。
具体实施例方式
在一个分布式的体系结构中,如果客户端和服务端不需要任何形式的配置管理功能,即如果不需要使用人员通过写文件或操作GUI(Graphical UserInterface,图形用户界面)界面来设置服务端的位置信息,客户端就能够自动定位服务提供者即服务端,并建立到服务提供者的连接,则能够大大简化客户端定位服务端的过程,有效提高客户端的易用性。
本发明采用类似CORBA(Common Object Request Broker Architecture,公用对象请求代理程序体系结构)命名服务的机制,但是,与现有技术方法二的不同之处在于本发明的服务端采用广播的方式发送其定位信息,命名服务对象通过监听来获得服务端的定位信息;而且,本发明的客户端采用广播的方式发送服务端定位请求,命名服务对象通过监听来获得客户端发送的定位请求,并将相应的服务端定位信息发送至客户端。这样,服务端不需要配置任何配置管理功能,就可以将其定位信息传输至命名服务对象,而客户端也不需要配置任何配置管理功能,就可以从命名服务对象处查询到其需要的服务端定位信息,从而,方便、快捷的实现了客户端定位服务端的功能。
下面对本发明提供的技术方案进行详细描述。
本发明首先需要启动命名服务对象,这个命名服务对象在启动后,需要监听指定的一个或多个UDP(用户数据报协议)端口,以获得服务端广播发送的定位信息、以及客户端广播发送的服务端定位请求。命名服务对象之所以需要监听多个UDP端口的广播,其目的主要是为了通过在客户端、服务端和命令服务中采用硬编码一个或多个UDP端口号的方式,来消除客户端、服务端对配置管理文件的依赖,以及减少与其他使用UDP端口的程序出现资源冲突,监听多个UDP端口的广播也就是起到了多端口可以相互备份的功能。
本发明中的任何一个服务端启动之后,需要向指定的一个或多个UDP端口反复广播本服务端的名称信息、以及位置信息。这里的反复广播可以为根据预定时间间隔定时发送,也可以为发送预定次数等。服务端启动后广播发送定位信息的过程,可以看作是服务端向命名服务对象注册的过程。本发明中的服务端在采用广播发送时,不需要进行任何的配置管理功能,服务端也可以采用组播的方式发送其定位信息,只是在采用组播方式发送时,需要在服务端进行组播地址配置。
命名服务对象通过对一个或多个UDP端口的监听,获得了服务端广播发送的定位信息后,保存该定位信息,并向该服务端回送一个响应消息,以表示命名服务对象已经接受了服务端广播发送的定位信息。命名服务对象可以采用多种存储方式来存储服务端的定位信息,如暂时缓存、持久化存储等。为避免命名服务对象在进行重起等操作时,丢失服务端广播发送来的定位信息,命名服务对象可以采用持久化存储的方式来保存服务端定位信息,这样,命名服务对象在进行重起等操作之后,这些服务端定位信息不会丢失,从而不会影响任何客户端对服务端定位信息的查询操作。
本发明中的命名服务对象可以对其存储的定位信息进行控制,以保证只有某些有注册权限的服务端能够在命名服务对象中注册其定位信息,具体实现过程为命名服务对象中存储有服务端注册权限信息,命名服务对象在接收到服务端定位信息时,将服务端定位信息中的内容与其存储的服务端注册权限信息进行比较,根据比较结果,在确定允许该服务端注册时,存储该服务端的定位信息;在确定禁止该服务端注册时,不存储该服务端的定位信息,命名服务对象可以丢弃该服务端的定位信息。
命名服务对象中存储的服务端注册权限信息可以为允许/禁止注册的服务端的名称信息,也可以为允许/禁止注册的服务端的位置信息如IP地址信息,还可以为允许/禁止注册的服务端的名称信息和位置信息。这样,命名服务对象可以只存储某些服务端发送来的定位信息,从而保证了对服务端注册的安全控制。
当需要对服务端的注册进行限制时,本发明也只需要对命名服务对象进行服务端注册权限的配置,在服务端处不需要进行任何配置过程。
服务端在接收到命名服务对象发送来的响应消息后,可以知道其发送的定位信息已经被命名服务对象成功接收,此时,服务端可以停止其定位信息的广播发送过程。
当对服务端的注册进行限制时,命名服务对象如果确定某个服务端因没有注册权限而不需要存储发送来的定位信息时,可以不对该定位信息进行任何处理,如直接将该定位信息丢弃,并且不向该服务端返回任何响应消息;命名服务对象也可以向该服务端返回携带有没有注册权限信息的响应消息。
任何一个客户端在需要某个服务端的定位信息时,向命名服务对象中指定的一个或多个UDP端口反复广播定位请求,这里的定位请求中的信息包括服务端名称信息。这里的服务端名称信息也就是服务端的标识信息,服务端名称信息可以唯一标识一个服务端,服务端名称信息可以为服务端的数字代码、字母代码等。客户端可以在需要与服务端建立连接时,发送服务端定位请求,如客户端可以在启动之后需要访问某个服务端时,发送服务端定位请求。这里的反复广播可以为根据预定时间间隔定时发送,也可以为发送预定次数等。本发明中的客户端在采用广播发送定位请求时,不需要进行任何形式的配置管理功能,客户端也可以采用组播的方式发送其定位信息,只是在采用组播方式发送时,需要在客户端进行组播地址配置。
命名服务对象在接收到客户端广播发送来的定位请求后,根据定位请求中的服务端名称信息在其存储的定位信息中查找该服务端的位置信息,如果查找到该服务端的位置信息,则命名服务对象将该服务端的定位信息发送给客户端,这里,命名服务对象可以将该服务端的定位信息中的位置信息发送给客户端,也可以将该服务端的定位信息中的服务端名称信息和位置信息发送给客户端;如果命名服务对象没有查找到该服务端的位置信息,命名服务对象可以不对该定位请求进行任何响应处理。
本发明中的命名服务对象可以对客户端查询服务端定位信息进行控制,以保证只有某些有查询权限的客户端能够从命名服务对象处获得某些服务端的定位信息,即某些服务端的定位信息只向某些客户端如具有某些IP地址的客户端公开。具体实现过程为命名服务对象中存储有客户端获取服务端定位信息的权限信息,命名服务对象在接收到客户端的定位请求时,将定位请求中的内容与其存储的获取服务端定位信息的权限信息进行比较,根据比较结果,在确定允许该客户端查询服务端的定位信息时,根据定位请求中的服务端名称信息在其存储的定位信息中查找该服务端的位置信息,如果查找到该服务端的位置信息,则命名服务对象将该服务端的定位信息发送给客户端;如果命名服务对象没有查找到该服务端的位置信息,命名服务对象可以不对该定位请求进行任何响应处理。根据比较结果,在确定禁止该客户端查询服务端的定位信息时,命名服务对象不根据该定位请求查询服务端的定位信息,命名服务对象可以丢弃该客户端的定位请求,也可以向客户端返回相应的响应信息,使客户端能够得知其没有获取服务端定位信息的权限。
命名服务对象中存储的客户端获取服务端定位信息的权限信息可以为客户端的地址信息,也可以为服务端的地址信息/名称信息与客户端的地址信息的对应关系。这样,命名服务对象可以只将服务端的定位信息发送至有权限的客户端,从而保证了对客户端获取服务端定位信息的安全控制。
当需要对客户端获取服务端定位信息进行限制时,本发明也只需要对命名服务对象进行客户端获取服务端定位信息的权限配置,在客户端处不需要进行任何配置过程。
客户端在接收到携带有服务端定位信息的命名服务响应消息后,获得其请求的服务端的定位信息,此时,客户端应停止服务端定位请求的广播发送,客户端可以利用其获得的定位信息建立其与服务端之间的连接。
下面结合附图对本发明提供的技术方案进行详细说明。
在本发明的服务端定位的过程中,命名服务对象的内部处理操作如附图1所示。
图1中,在步骤100,命名服务对象启动命名服务。
到步骤110,命名服务对象对指定的一个或多个UDP端口进行监听,在监听到消息时,到步骤120。
在步骤120,命名服务对象判断其监听到的消息是否为服务端发送来的定位信息,即是否为服务端发送来的注册消息,如果是服务端发送来的定位信息,到步骤130,保存该服务端发送来的定位信息,即保存服务端名称信息和服务端地址信息。
到步骤140,命名服务对象向该服务端发送携带有注册成功的响应消息,命名服务对象对本次监听到的消息的处理过程结束,到步骤120,命名服务对象继续对其监听到的消息进行判断处理。
在步骤120,命名服务对象在判断出其监听到的消息不是服务端发送来的定位信息时,到步骤150,命名服务对象继续判断其监听到的该消息是否为客户端发送来的定位请求,如果不是客户端发送来的定位请求信息,到步骤151,丢弃其监听到的该消息,然后,到步骤120,命名服务对象继续对其监听到的消息进行判断处理。
在步骤150,命名服务对象如果判断出其监听到的该消息是客户端发送来的定位请求,到步骤160,命名服务对象从定位请求中获取客户端的地址信息,以进行权限检查。
到步骤170,命名服务对象根据其存储的权限信息判断是否允许该客户端接入其请求的服务端,如果不允许该客户端接入其请求的服务端,到步骤151,命名服务对象丢弃其监听到的该消息,然后,到步骤120,命名服务对象继续对其监听到的消息进行判断处理。
在步骤170,如果命名服务对象判断出允许该客户端接入其请求的服务端,到步骤180,将客户端请求的服务端的位置信息携带于响应消息中,回送至客户端。到步骤120,命名服务对象继续对其监听到的消息进行判断处理。
在本发明的服务端定位的过程中,服务端启动后的内部处理操作如附图2所示。
图2中,在步骤200,服务端启动。
到步骤210,服务端广播其定位信息,如通过UDP报文定时广播其名称信息和地址信息。
到步骤220,服务端判断是否在命名服务对象中注册成功,即服务端判断是否接收到命名服务对象发送的响应消息,如果接收到了该响应消息,到步骤230,服务端停止发送定位信息,本次注册过程结束。
在步骤220,如果服务端没有接收到命名服务对象发送的响应消息,到步骤210,服务端继续广播其定位信息。
在本发明的服务端定位的过程中,客户端的内部处理操作如附图3所示。
图3中,在步骤300,客户端启动、且需要与服务端建立连接,到步骤310。或者在步骤301,客户端与服务端的连接中断、且客户端需要与服务端再次建立连接,到步骤310。
步骤310,客户端广播发送服务端定位请求,以获取其需要的服务端的定位信息。
到步骤320,客户端判断是否接收到命名服务对象发送来的响应消息,如果判断出没有接收到命名服务对象发送来的响应消息,则到步骤310,客户端继续广播发送服务端定位请求。
在步骤320,如果客户端判断出接收到命名服务对象发送来的响应消息,到步骤330,客户端从其接收到的响应消息中获得请求的服务端的定位信息,并利用该定位信息与该服务端建立连接。
到步骤340,客户端判断是否与服务端成功建立连接,如果成功建立连接,到步骤350,客户端的本次服务端定位过程结束。
在步骤340,如果客户端判断出其没有与服务端成功建立连接,到步骤310,客户端继续广播发送服务端定位请求。
本发明提供的服务端的定位系统,包括命名服务对象、服务端和客户端,命名服务对象中设置有监听模块、存储模块和查询模块,服务端设置有广播模块,客户端设置有请求模块和定位模块。
广播模块主要用于反复广播服务端的定位信息,如广播模块向指定的一个或多个UDP端口发送服务端的定位信息。广播模块在接收到命名服务对象发送来的响应消息时,停止发送服务端的定位信息。这里的定位信息、反复广播等如上述方法中的描述。
监听模块主要用于监听广播模块广播发送的定位信息,并将监听到的定位信息存储于存储模块中。
如果命名服务对象需要对其存储的定位信息进行控制的话,本发明的命名服务对象中还设置有注册权限存储模块。
注册权限存储模块主要用于存储服务端注册权限信息。这里的注册权限信息具体如上述方法中的描述。
如果命名服务对象中设置有注册权限存储模块,则监听模块在监听到定位信息后,需要将服务端定位信息中的内容与其存储的服务端注册权限信息进行比较,根据比较结果,在确定允许该服务端注册时,将该服务端的定位信息存储于存储模块中;在确定禁止该服务端注册时,不将该服务端的定位信息存储于存储模块中,监听模块可以丢弃该服务端的定位信息。
请求模块主要用于在客户端需要服务端的定位信息时,广播发送服务端定位请求。客户端可以在启动后、或者在其与服务端之间的连接断开后,反复广播发送服务端定位请求。这里的定位请求、反复广播等如上述方法中的描述。
查询模块主要用于在监听到请求模块广播发送的定位请求后,根据定位请求从存储模块中查询相应服务端的定位信息,并将查询到的定位信息发送到定位模块,当查询模块没有查询到响应服务端的定位信息时,可以不进行任何处理,也可以向客户端发送携带有查询不到信息的响应消息。
如果命名服务对象需要对客户端获取服务端地址信息进行控制的话,本发明的命名服务对象中还设置有客户端权限存储模块。
客户端权限存储模块主要用于存储客户端获取服务端定位信息的权限信息,这里的客户端获取服务端定位信息的权限信息具体如上述方法中的描述。
如果命名服务对象中设置有客户端权限存储模块,则查询模块在接收到客户端的定位请求时,将定位请求中的内容与客户端权限存储模块存储的获取服务端定位信息的权限信息进行比较,根据比较结果,在确定允许该客户端查询服务端的定位信息时,根据定位请求中的服务端名称信息在存储模块中存储的定位信息中查找该服务端的位置信息,如果查找到该服务端的位置信息,则将该服务端的定位信息发送给客户端;如果没有查找到该服务端的位置信息,则不对该定位请求进行任何响应处理。在确定不允许该客户端查询服务端的定位信息时,查询模块可以丢弃该客户端的定位请求,也可以向客户端返回相应的响应信息,使客户端能够得知其没有获取服务端定位信息的权限。具体如上述方法中的描述。
定位模块主要用于接收查询模块发送的定位信息,并进行服务端的定位处理,如建立与服务端的连接等。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
权利要求
1.一种服务端的定位方法,其特征在于,所述方法包括步骤a、服务端广播其定位信息;b、命名服务对象监听并存储服务端广播发送的定位信息;c、客户端在需要服务端的定位信息时,广播发送服务端定位请求;d、命名服务对象监听到定位请求后,根据该定位请求将相应服务端的定位信息发送至所述客户端;e、所述客户端根据其接收到的定位信息进行服务端的定位处理。
2.如权利要求1所述的一种服务端的定位方法,其特征在于,所述步骤a包括服务端采用用户数据报协议的广播报文广播其定位信息。
3.如权利要求1所述的一种服务端的定位方法,其特征在于,所述定位信息包括服务端名称和位置信息。
4.如权利要求1所述的一种服务端的定位方法,其特征在于,所述步骤b包括命名服务对象通过监听指定的一个或多个端口获取服务端广播发送的定位信息,并存储该定位信息。
5.如权利要求1或2或3或4所述的一种服务端的定位方法,其特征在于,命名服务对象中设置有服务端注册权限信息,且所述步骤b包括命名服务对象在确定其监听获取到的定位信息符合其存储的注册权限信息时,存储该定位信息。
6.如权利要求1或2或3或4所述的一种服务端的定位方法,其特征在于,所述方法还包括命名服务对象在接收到服务端的定位信息后,向服务端发送响应消息;服务端在接收到响应消息后,停止广播其定位信息。
7.如权利要求1或2或3或4所述的一种服务端的定位方法,其特征在于,所述命名服务对象中设置有客户端获取服务端定位信息的权限信息,且所述步骤d包括命名服务对象监听到定位请求、并根据所述权限信息确定该客户端有获取相应服务端定位信息的权限时,根据定位请求将相应服务端的定位信息发送至该客户端。
8.一种服务端的定位系统,包括命名服务对象、服务端和客户端,其特征在于所述命名服务对象中设置有监听模块、存储模块和查询模块,所述服务端设置有广播模块,所述客户端设置有请求模块和定位模块;广播模块用于广播服务端的定位信息;监听模块用于监听广播模块广播发送的定位信息,并将监听到的定位信息存储于存储模块中;请求模块用于在客户端需要服务端的定位信息时,广播发送服务端定位请求;查询模块用于在监听到请求模块广播发送的定位请求后,根据定位请求从存储模块中查询相应服务端的定位信息,并发送到定位模块;定位模块用于接收查询模块发送的定位信息,并进行服务端的定位处理。
9.如权利要求8所述的一种服务端的定位系统,其特征在于,所述命名服务对象中还设置有注册权限存储模块;注册权限存储模块用于存储服务端注册权限信息;监听模块在确定其监听获取到的定位信息符合注册权项存储模块中存储的注册权限信息时,将监听到的该定位信息存储于存储模块中。
10.如权利要求8或9所述的一种服务端的定位系统,其特征在于,所述命名服务对象中还设置有客户端权限存储模块;客户端权限存储模块用于存储客户端获取服务端定位信息的权限信息;查询模块在监听到定位请求、并根据客户端权限存储模块中存储的信息确定该客户端有获取相应服务端定位信息的权限时,根据定位请求查询相应服务端的定位信息,并发送到定位模块。
全文摘要
本发明提供一种服务端的定位方法和系统,服务端通过利用广播向命名服务对象发送定位信息,使服务端在不需要配置管理功能的前提下,能够向命名服务对象注册其定位信息;客户端通过利用广播向命名服务对象发送定位请求,使客户端在不需要配置管理功能的前提下,能够从命名服务对象处获取其需要的服务端定位信息;从而实现了简化客户端获取远程服务对象位置信息的实现过程、降低组件集成难度、提高组件易用性的目的。
文档编号H04L29/12GK101051930SQ200610072068
公开日2007年10月10日 申请日期2006年4月6日 优先权日2006年4月6日
发明者韩霆军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1