一种基于角色转换的网络服务定位方法

文档序号:7721485阅读:149来源:国知局
专利名称:一种基于角色转换的网络服务定位方法
技术领域
本发明涉及一种网络服务定位方法,尤其涉及一种网络设备通过角色转换和设备 间的自学习来获取服务位置信息的定位方法,属于网络设备自动配置技术领域。
背景技术
随着网络技术的发展,越来越多的网络设备开始出现。但是,网络设备普遍存在配 置复杂的问题。这在一定程度上限制了网络设备在更大范围的应用。网络设备自动配置技 术的出现使得这个问题迎刃而解。网络设备自动配置技术分为网络设备本地地址获取、远端服务的位置发现与定位 两大步骤。目前,比较成熟的自动配置技术体系有UPnP论坛发布的通用即插即用(UPnP) 技术以及IETF kroconf工作组提出的零配置(Zeroconf)技术。二者都涉及到IP地址自 动分配与获取、网络服务的发现与定位、NAT穿越等技术细节。SLP(Service Location Protocol)服务定位协议是一种在局域网或广域网中使 用的动态配置协议,客户机可以通过使用服务类型和属性来寻找网络服务(简称服务)。 SLP有三种角色服务代理SA(ServiceAgent)、用户代理UA (User Agent)和可选的目录代 理DA(DirectoryAgent)。用户代理UA代表应用程序通过查询服务的操作来定位服务,UA 可以直接向SA或者DA查询某种类型服务。服务代理SA代表提供某种类型服务的应用程 序来应答UA的查询请求,或者当网络中存在目录代理DA时,服务代理SA代表提供某种类 型服务的应用程序向目录代理DA注册该种类型的服务,以供用户代理UA向目录代理DA查 询该种类型服务时能够得到该种类型服务的具体位置。可选择的目录代理DA —方面接受 服务代理SA的服务位置注册,一方面接受用户代理UA的服务位置查询,并对该服务查询请 求返回所查询的服务的具体位置。在用户代理UA获取某种类型的服务位置时,根据网络中存不存在目录代理DA,可 以分为两种情况1.网络中不存在DA的情况此时,UA通过发送SrvRqst消息来查询某一服务,并在这条SrvRqst消息指出服务 的类型、属性等,SA会回应一条SrvR印Iy消息告知UA所查询到的服务记录及其位置。UA 可以直接使用多播方式发送SrvRqst消息。如果网络中有SA接收到该消息并且SA记录有 符合该条查询消息所查询的服务类型的话,SA就会通过单播回应一条SrvReply告知UA该 服务的URL等信息。2.网络中存在DA的情况首先,SA通过发送SrvReg消息告知DA自己所提供的服务类型,DA对此回应一个 SrvAck消息,从而完成该类型服务的注册。在某个UA需要查询该类服务时,UA需要使用单 播消息来向DA查询服务的位置。在有DA存在的网络中,SA和UA还需要先确定DA的位置, 即DA服务本身的定位。UA和SA对DA的发现既可以使用主动发现方式也可以使用被动发 现方式,当采用主动发现方式时,UA或者SA通过多播发送一条SrvRqst消息,将这个消息
3中的请求服务类型为“service directory-agent”,这样当DA接收到该条SrvRqst消息后 它会回应一条DAAdvert消息告知SA和UA自己的DA服务URL ;采用被动方式发现DA时, SA和UA在SLP组播地址侦听,DA定期向组播地址发送DAAdvert消息宣告自己的存在。但是,在现有的网络服务定位方法中,如果SA或者DA出现故障,会造成整个业务 的瘫痪。另一方面,现有的网络服务定位方法需要集中配置服务器,一旦配置发生变化则需 要对网络中的所有网络设备一一进行修改,工作量很大。

发明内容
本发明所要解决的技术问题在于提供一种基于角色转换的网络服务定位方法。该 方法通过网络设备在服务代理SA与用户代理UA之间的角色转换,并通过网络设备之间的 自学习,实现对远端服务的位置发现与定位。为实现上述的发明目的,本发明采用下述的技术方案一种基于角色转换的网络服务定位方法,其特征在于在网络设备进入网络系统之后,如果网络系统中已经存在服务代理,则所述网络 设备的角色确定为用户代理,此时所述网络设备从收到的SrvAck消息中获取所述服务代 理的位置,发送SrvRqst请求消息给所述服务代理以获取网络系统中的服务位置信息,所 述服务代理回复SrvRply消息,在所述SrvRply消息中携带用户代理所请求的服务的位置 信息,从而实现所述网络设备从已有网络设备处获取服务位置信息;所述网络设备检测到服务位置信息发生改变后,发送表示强制抢占的SrvReg消 息来尝试抢占服务代理角色;另一用户代理收到所述SrvReg消息后,一方面用新的服务代 理信息替换掉原有的服务代理信息,另一方面使用所述SrvReg消息中的服务位置信息更 新原有的服务位置信息;原有服务代理收到所述SrvReg消息后,一方面转换角色至用户代 理,另一方面使用所述SrvReg消息中的服务位置信息更新原有的服务位置信息。在网络设备启动后,所述网络设备根据是否预置了某种类型服务的位置信息决定 其角色,在存在预置的情况下作为服务代理,在不存在预置的情况下作为用户代理。所述网络设备在存在预置的情况下,通过组播方式发送表示非强制抢占的SrvReg 消息,如果所述网络设备收到对所述SrvReg消息的回应消息,且回应消息中的状态代码字 段携带了抢占失败的错误信息,此时表示网络系统中已经存在服务代理,启用服务代理角 色失败。如果连续三个SrvReg消息的周期内没有收到回应,认为网络系统内没有服务代 理,所述网络设备停止发送SrvReg消息,并且启动服务代理角色。对于发送表示强制抢占的SrvReg消息的网络设备而言,当所述网络设备收到表 示抢占成功的SrvAck消息后,立即停止发送表示强制抢占的SrvReg消息,并且转换角色至 服务代理。如果在连续三个SrvReg消息的周期内没有收到回应,所述网络设备转换角色至 服务代理。作为服务代理的网络设备定期以组播方式发送表示非强制抢占的SrvReg消息, 收到表示非强制抢占的SrvReg消息的另一服务代理比较SrvReg消息里的时间戳信息;如果服务修改时间戳信息比自己的信息旧,则发送一条回应消息,而且回应消息 中的状态代码字段携带有抢占失败的错误信息;反之,另一服务代理转换角色至用户代理,
4且使用SrvReg消息中的服务位置信息来更新自己的信息。与传统的网络服务定位方法相比,本发明所提供的网络服务定位方法具有如下的 特点1)本网络服务定位方法不要求网络中有单独的目录代理DA存在,不要求网络中 对于每种类型服务都提供一个单独的SA ;2)本网络服务定位方法通过对等网络设备间的角色转换实现所有网络设备对网 络上的某种类型服务的定位,适合对数量比较大的网络设备的操作;3)本网络服务定位方法通过网络设备之间的自学习实现了简化配置的功能,因此 不需要集中配置服务器,也不需要对网络中所有网络设备一一进行修改;4)如果网络中有个别网络设备出现损坏,不会对整个业务造成影响。


下面结合附图和具体实施方式
对本发明作进一步的详细说明。图1为一个典型网络系统的拓扑结构示意图;图2显示了在网络设备的初始化阶段确定角色的一个例子;图3显示了一个新进入的网络设备获取服务位置信息的例子;图4显示了一个修改了服务位置信息后发生角色转换的例子;图5显示了一个角色冲突检测与解决的例子。
具体实施例方式图1为用于实施本网络服务定位方法的一个典型网络系统的拓扑结构示意图,其 中□表示服务提供者,而Δ表示服务使用者。在本发明中,对于某种类型的服务来说,在某 一特定时刻,网络设备的角色只能是服务代理SA或用户代理UA 二者之中的一种。而且在 同一网络中,某一时刻作为某种类型服务的服务代理SA角色的网络设备有且只有一台。下面,以一个网络设备通过角色转换和网络设备之间的自学习来获取服务位置信 息的完整过程为例对本网络服务定位方法进行详细的说明。该完整过程包括网络设备的初 始化阶段,网络设备进入图1所示的网络系统、获取服务位置信息的阶段,网络设备接入网 络系统后的强制更新阶段以及出现角色冲突时的检测阶段等。1)网络设备的初始化阶段在网络设备上电初始化时,首先需要确定一个角色。这里可以分为两种情况第一种情况当网络设备启动后,如果其中某台网络设备预置了某种类型服务的 位置信息,那么它会尝试作为服务代理SA去尝试激活SA功能。尝试的过程是通过组播方 式发送表示非强制抢占的SrvReg消息来实现的。这个SrvReg消息里抢占类型字段为“非 强制”,服务修改时间戳信息设置为0,且带有该种类型服务的服务位置信息。如果网络设备 收到了对该消息的回应消息SrvAck,且作为回应的SrvAck消息中的状态代码字段携带了 抢占失败的错误信息的话,表示网络中已经存在SA,启用SA角色失败。此时,网络设备立 即停止尝试并启用用户代理UA的角色。如果在尝试过程中连续三个SrvReg消息周期内都 没有收到回应,此时认为网络内没有作为服务代理SA的网络设备,该网络设备将停止发送 SrvReg消息,并且启动SA角色,开始提供SA服务。
第二种情况当网络设备启动后,如果该网络设备没有预置某种类型服务的位置 信息,那么它会直接激活UA功能,扮演UA的角色。图2显示了一个初始化时确定角色的例子,图中网络设备B、C、D已经初始化成功 且确认了 B为SA。如果网络系统中有回应该SrvAck消息且携带有抢占失败内容的消息,说 明网络中已经有SA存在。此时的网络设备A初始化后将确定使用UA角色。2)新网络设备进入网络系统的阶段当网络中已有的网络设备的角色确定好之后,如果又有新网络设备进入该网络, 由于此时网络中已有SA角色,所以该网络设备的角色确定为UA,且已经在初始化阶段确定 角色时收到的SrvAck消息中获取SA的位置。该新进入的UA通过单播发送SrvRqst请求 消息给SA来“学习”到网络中关于某种类型服务的位置信息。在这个SrvRqst请求消息里 带有该种服务的类型,与之前SrvReg消息里的服务的类型相同。SA对该消息回复SrvRply 消息,并在该消息里携带UA所请求的服务的位置信息,从而实现新进入网络中的网络设备 从已有网络设备那里“学习”到最新的服务的位置信息。图3显示了一个新进入的网络设备获取某种类型服务位置信息的例子。图中网络 设备B、C、D已经存在于网络中,且B的角色为SA。网络设备A初始化后确定角色为UA,它 通过上述的步骤获取某种类型服务的位置信息。3)强制更新阶段网络设备接入网络系统之后,如果需要对网络系统中的某种类型服务的位置信息 进行调整,管理员可以任意选取某网络设备(不论网络设备的角色是UA还是SA)通过该网 络设备提供的任意配置方式(本方式除外)修改该服务的位置信息。此处的位置信息在一 般情况下是服务的URL信息。该网络设备检测到该类型服务的位置信息发生改变后,会通过组播发送一条表示 强制抢占的SrvReg消息来尝试抢占SA角色。在这条SrvReg消息里,抢占类型字段为“强 制”,时间戳信息设置为检测到服务位置信息发生改变的时刻,且带有该种类型服务的服务 位置信息。此时,根据网络设备的角色不同,分为两种情况第一种情况,UA接收到了该消息。UA收到该条SrvReg消息后,一方面用新的SA 信息替换掉原有的SA信息,以便在后续与SA的交互过程中使用。另一方面,使用SrvReg 消息中的服务位置信息更新原有的该类型服务的位置信息。第二种情况,SA接收到了该消息。SA收到该条表示强制抢占的SrvReg消息后,一 方面转换角色至UA,并且回应一条表示抢占成功的SrvAck消息。该SrvAck消息内的状态 代码字段携带抢占成功的信息。另一方面,使用SrvReg消息中的服务位置信息更新原有的 该类型服务的位置信息。对于发送表示强制抢占的SrvReg消息的网络设备来说,当它收到表示抢占成功 的SrvAck消息回应后,立即停止发送表示强制抢占的SrvReg消息,并且转换角色至SA。如 果在连续三个表示强制抢占的SrvReg消息周期内没有收到回应,该网络设备也转换角色 至SA。图4显示了一个修改了服务位置信息后发生角色转换的例子。图中,网络设备A、 B、C、D存在于一个网络内,且B为SA。管理员修改D的服务位置信息后,D转换为SA,B转 换为UA,且A、B、C都开始使用D提供的该类型服务的位置信息。
6
4)角色冲突检测阶段考虑到各种意外,网络中如果有两个以上的SA同时存在时,会出现角色冲突的情 况。由于SA会定期以组播方式发送表示非强制抢占的SrvReg消息,这个过程与上述初始 化阶段中角色确定的过程类似。该SrvReg消息携带有表示服务位置信息修改的时间戳信 息,收到表示非强制抢占的SrvReg消息的SA会比较SrvReg消息里的时间戳信息,如果服 务修改时间戳信息比自己的该信息旧,则发送一条回应消息SrvAck,而且SrvAck消息中的 状态代码字段携带有抢占失败的错误信息。反之,自己转换角色至UA,且使用对方SrvReg 消息中的服务位置信息来更新自己的相关信息。通过这种方式,发生角色冲突的SA们可以 决定留下一个最新的SA来,其他的角色转换为UA,且使用最新的SA的某种类型服务位置信 息更新自己的该类型服务位置信息。图5显示了一个角色冲突检测与解决的例子。图中网络设备A、B、C、D位于网络 中,且由于意外情况导致A和B角色都成为了 SA,在A、B 二者最近的一个组播周期内检测 到了角色冲突,此时按照上述的流程予以解决。以上对本发明所提供的基于角色转换的网络服务定位方法进行了详细的说明。对 本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改 动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
权利要求
1. 一种基于角色转换的网络服务定位方法,其特征在于在网络设备进入网络系统之后,如果网络系统中已经存在服务代理,则所述网络设备 的角色确定为用户代理,此时所述网络设备从收到的SrvAck消息中获取所述服务代理的 位置,发送SrvRqst请求消息给所述服务代理以获取网络系统中的服务位置信息,所述服 务代理回复SrvRply消息,在所述SrvRply消息中携带用户代理所请求的服务的位置信息, 从而实现所述网络设备从已有网络设备处获取服务位置信息;所述网络设备检测到服务位置信息发生改变后,发送表示强制抢占的SrvReg消息来 尝试抢占服务代理角色;另一用户代理收到所述SrvReg消息后,一方面用新的服务代理信 息替换掉原有的服务代理信息,另一方面使用所述SrvReg消息中的服务位置信息更新原 有的服务位置信息;原有服务代理收到所述SrvReg消息后,一方面转换角色至用户代理, 另一方面使用所述SrvReg消息中的服务位置信息更新原有的服务位置信息。
2.如权利要求1所述的基于角色转换的网络服务定位方法,其特征在于在网络设备启动后,所述网络设备根据是否预置了某种类型服务的位置信息决定其角 色,在存在预置的情况下作为服务代理,在不存在预置的情况下作为用户代理。
3.如权利要求2所述的基于角色转换的网络服务定位方法,其特征在于所述网络设备在存在预置的情况下,通过组播方式发送表示非强制抢占的SrvReg消 息,如果所述网络设备收到对所述SrvReg消息的回应消息,且回应消息中的状态代码字段 携带了抢占失败的错误信息,此时表示网络系统中已经存在服务代理,启用服务代理角色 失败。
4.如权利要求3所述的基于角色转换的网络服务定位方法,其特征在于如果连续三个SrvReg消息的周期内没有收到回应,认为网络系统内没有服务代理,所 述网络设备停止发送SrvReg消息,并且启动服务代理角色。
5.如权利要求1所述的基于角色转换的网络服务定位方法,其特征在于对于发送表示强制抢占的SrvReg消息的网络设备而言,当所述网络设备收到表示抢 占成功的SrvAck消息后,立即停止发送表示强制抢占的SrvReg消息,并且转换角色至服务 代理。
6.如权利要求5所述的基于角色转换的网络服务定位方法,其特征在于对于发送表示强制抢占的SrvReg消息的网络设备而言,如果在连续三个SrvReg消息 的周期内没有收到回应,所述网络设备转换角色至服务代理。
7.如权利要求1所述的基于角色转换的网络服务定位方法,其特征在于作为服务代理的网络设备定期以组播方式发送表示非强制抢占的SrvReg消息,收到 表示非强制抢占的SrvReg消息的另一服务代理比较SrvReg消息里的时间戳信息;如果服 务修改时间戳信息比自己的信息旧,则发送一条回应消息,而且回应消息中的状态代码字 段携带有抢占失败的错误信息;反之,另一服务代理转换角色至用户代理,且使用SrvReg 消息中的服务位置信息来更新自己的信息。
全文摘要
本发明公开了一种基于角色转换的网络服务定位方法。该方法通过网络设备在服务代理SA与用户代理UA之间的角色转换,并通过网络设备之间的自学习,实现对远端服务的位置发现与定位。与传统服务定位方法相比,本网络服务定位方法不要求网络中有单独的目录代理DA存在,不要求网络中对于每种类型服务都提供一个单独的SA;通过对等网络设备间的角色转换实现所有网络设备对网络上的某种类型服务的定位,适合对数量比较大的网络设备的操作;通过网络设备之间的自学习实现了简化配置的功能,因此不需要集中配置服务器,也不需要对网络中所有网络设备一一进行修改;如果网络中有个别网络设备出现损坏,不会对整个业务造成影响。
文档编号H04L29/08GK102118409SQ200910244550
公开日2011年7月6日 申请日期2009年12月30日 优先权日2009年12月30日
发明者付景林, 曹艺坪, 陈玉强 申请人:北京大唐高鸿数据网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1