计算机网络中实现分布式通讯的装置和通讯方法

文档序号:7954678阅读:113来源:国知局
专利名称:计算机网络中实现分布式通讯的装置和通讯方法
技术领域
本发明涉及计算机应用领域,尤其涉及一种用于计算机之间进行网络通讯的装置和方法。
背景技术
目前,计算机网络及其应用已经广泛服务于社会生产生活各个领域,而网络各个节点之间的通讯正是实现这些应用的基础,其中分布式通讯尤为具有代表性和应用价值。现在,传统计算机网络分布式通讯方法主要有CORBA(包括ICE)、DCOM、ACE+TAO,这些方法在自身都存在许多缺陷和应用限制CORBA定义的仅是一套规范,现在各个厂家都有自己的实现方式,并且其使用复杂,通讯的点与点之间需要建立直接的连接,通讯无法穿越防火墙,也无法满足多类网络彼此间进行通讯及管理的需要。ICE的目标是取代CORBA而出现的,虽然它同CORBA相比则显得小巧了许多,但却无法避免CORBA许多固有的缺点。DCOM作为COM的一个扩展产品,其仅能在WINDOWS上运行也是其最大的弊端,无法实现跨平台。同时基于这种方法,计算机网络各点之间的通讯依赖于RPC去完成,其通讯同CORBA一样是需要具有直接连接才能建立起分布式的通讯。ACE+TAO是一个从最基础的跨平台API开始做起的面向对象的通讯平台,其本身差不多封装了操作系统的所用功能,同时其实现方式也从CORBA借鉴而来,其最大的优势是开源,并且内置了许多相关的设计模式框架,但它依然不能解决非直接连接的通讯问题。通过以上几种实现方式可以看出,现有的分布式通讯其实现机理就是一个面向对象的RPC,无法处理两点非直接连接的通讯成为了它们共同的弊病。

发明内容
本发明克服了现有技术中的缺点,提供一种可在计算机网络中实现两点间非直接连接互连分布式通讯的装置和方法。
为了解决上述技术问题,通过以下技术方案实现一种计算机网络中实现分布式通讯的装置,其特征在于,其包括至少一个管理中心模块(Manage Center)、代理模块(Agent)和多个客户端模块(Client);该管理中心模块包括如下子模块授权模块、地址分配模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该代理模块包括如下子模块授权代理模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该客户端模块包括如下子模块平台管理模块、授权客户端和通讯模块。
本发明还提供一种利用上述装置进行分布式通讯的方法,其包括如下过程a.客户端模块寻找父节点;b.管理中心模块对客户端模块进行授权注册;c.客户端模块、代理模块或管理中心模块发送数据;d.该数据所要到达的客户端模块、代理模块或管理中心模块接收数据。
本发明所述的计算机网络中实现分布式通讯的装置,具有轻量级的分布式平台,并且从底层就开始支持对模块的管理及授权认证,无限级联,本身自带的路由支持,能跨防火墙通讯,为网络中各个节点的分布式通讯提供更加广泛的支持。能够实现局域网内服务结点的自动寻找、定位及连接负载的分流。计算机间的模块交互提供多种的命令传递方式,满足客户端与服务器对于各类命令的需求。在本发明中,平台将提供的自定义的传输数据加解密接口,更能满足不同客户对于数据安全性的需求。跨平台的设计将使本发明有更广范的应用环境。


图1是本发明计算机网络中实现分布式通讯的装置结构示意图;图2是本发明计算机网络中实现分布式通讯方法中客户端模块寻找父节点及请求授权注册的流程图;图3是本发明计算机网络中实现分布式通讯方法中客户端模块获取授权流程图;图4是本发明计算机网络中实现分布式通讯方法中代理模块转发及授权时的流程图。
具体实施例方式
参见图1,一种计算机网络中实现分布式通讯的装置,其包括多个管理中心模块、多个代理模块和多个客户端模块;该管理中心模块包括如下子模块授权模块、地址分配模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该代理模块包括如下子模块授权代理模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该客户端模块包括如下子模块平台管理模块、授权客户端和通讯模块。当所述管理中心模块与客户端模块在同一网络内时,两者可不通过代理模块直接进行数据交换;上述各个管理中心模块、代理模块和客户端模块节点均有自己单独的平台地址和IP地址。
一种使用上述的装置进行分布式通讯的方法,其主要包括如下过程a.客户端模块寻找父节点;b.管理中心模块对客户端模块进行授权注册;c.客户端模块、代理模块或管理中心模块发送数据;d.该数据所要到达的客户端模块、代理模块或管理中心模块接收数据。
参见图2,过程a主要包括如下子过程1.向网络广播寻找父结点地址(若已存在缓冲地址,即将上次已成功连接的地址保存下来),等待父结点回应,若超时或连接失败,则2.使用配置文件中的父结点地址,若连接失败,则3.监听一个广播端口等待父结点启动时的广播,并定时连接配置文件中的地址,直到任何一种方式成功;4.当重试指定次数均失败时,则要重新进行广播。
参见图3和图4分别本发明计算机网络中实现分布式通讯方法中客户端模块获取授权流程图和代理模块转发及授权时的流程图。授权注册此过程需要分两步走,第一步是授权,在授权通过之后,会获取到自己的直接上级地址,才能进行第二步的注册工作,其具体过程如下1.通过本平台授权模块获取向上授权所需要的必要信息,开始准备授权,若不存在此模块,则直接进行连接并进行数据发送;2.通过“客户端结点寻找父结点”用例找到父结点后并正常连接上父接点,开始进行授权过程;3.第一个包发送为请求授权包至父结点授权模块,若不能处理,则由其父结点继续向上提交至自己的管理结点的授权模块,若通过授权则将管理结点唯一标识(GUID)、32位标识(若需要)及可代理转发的客户端连接个数反馈给客户端,若失败,则提示客户端授权失败,并关闭当前连接;4.查看错误原因,若是Agent容量已满,则寻找下一个Agent进行授权提交,若是整个管理中心授权已满,则定时进行重试;5.在获取授权信息后,包括上级的平台地址及物理地址,进行注册。在直接的自己上级准许其注册后,则要进行路由的更新工作。
上述注册授权时提交的内容包括请求者的IP地址、监听的TCP、UDP端口,请求者的属性(客户端、Agent等)及其GUID标识(若存在)。授权注册时返回的内容包括成功则返回对于此结点的管理结点链路,失败仅告知失败。授权时其顺序过程客户端模块->代理模块->管理中心模块、客户端模块->管理中心模块或代理模块->管理中心模块然后逆序返回。管理结点将使用全球唯一标识(GUID)进行标识,它的每一个上级均会记录此GUID到达所要经过的路由,每次数据转输时均通过其标识的唯一性,加上每个管理结点的路由查找完成。GUID全1将作为全局广播地址,全0代表本身;其它结点则使用管理结点的全球唯一标识(GUID)加上一个由管理结点分配的32位无符号整数去标识,因此每个管理结点及Agent均会记录每个32位无符号整数所代表的机器的路由关系。其中在一个管理结点之内,1分配给管理中心。GUID全0加-1为给其管理中心之下的所有客户机发消息。路由方法每个管理结点均需要保存其下的所有管理结点及客户端结点的GUID或32位无符号整数及与其直接下级的对应关系,其结点空间占用应为0(n),通过此方式可将数据提交给自己的直接下级,而不用关注在此之后的路由方式。
在每次广播成功获得IP地址时将会将此地址保留,并在下一次连接时优先选择此IP地址,若连接失败,再使用广播进行地址请求。
下面介绍本发明计算机网络中实现分布式通讯的装置平台启动、关闭及工作(数据发送与接收)的工作过程启动平台1.首先加载平台管理模块,其管理模块将平台运作的基本模块模块注册管理模块、平台注册管理模块、分派模块、事件服务、主导模块、通讯依次加载启动。
2.通讯会监听端口,以确保其平台的基本通讯顺畅,端口绑定失败也就意味着平台启动失败。
3.加载完毕之后,Client首先获取父结点开始注册过程,并将注册结果通知给主导模块。
4.平台内的管理模块根据配置文件属性(随平台一起启动、需要时启动)加载平台外的扩展模块,模块加载后会具有状态启动状态、停止状态、更新状态、可立即启动状态、启动失败状态。)5.具备管理转发功能的平台若已经完全成功,会广播通知其下的客户端前来注册。
请求父结点的广播内容包含请求者的IP地址、监听的TCP、UDP端口,请求者的属性(客户端等)及其GUID标识;使用其监听广播的端口进行发送,以方便父结点广播和返回时均使用同一端口完成。请求父结点返回广播的内容包含父结点IP地址,父结点属性(代理模块、管理中心模块);父结点广播的内容包含父结点IP地址、监听的TCP、UDP端口,属性(代理模块、管理中心)及其GUID标识;父结点返回广播内容时按其发送端口原路返回。进程外子模块的启动(如病毒扫描)由平台进行启动后等待子模块前来注册,若超时则认为启动失败,当前来注册时,则平台会将启动命令及其相应的参数一同传递给目标模块,完成此次启动过程。可能出现子结点与其父结点同时启动的状况,或代理模块异常终止,而还有其它代理模块可用的情况等,导致双方的广播均没能接收到的问题,父结点在可继续容纳新连接(根据授权模块决定)的情况下,每隔一段时间广播一次要求子结点连接。子结点发现连接中断,且不能连上原父结点时,则进行广播一次请求父结点(对于可以进行广播的子结点)。关闭平台1.首先变更当前平台状态为正在关闭;2.停止授权线程(如果还未授权成功,仍在授权中);3.停止掉平台内部的发送数据队列;4.通知所有子模块当前平台即将关闭;5.通知所有的平台内外子模块平台即将关闭,要求模块开始进行退出前的工作(向管理中心反注册、通知所有子结点断开连接),平台开始等待;6.平台等待超时或所有子模块已经退出,依次关闭平台外存在的模块;7.关闭平台核心模块及网络通讯。
发送数据1.发送请求提交至所在的平台2.平台进行消息分派1)检查发现不是本平台信息,查找对应的平台A.发现目标平台已经向本平台注册,并且连接有效,则将数据进行完全编码后发向目标;若连接无效,若下一个平台已经是最终目标,则返回目标异常,否则返回平台路由异常。
B.发现目标平台未向本平台注册,但存在到达此地址的路由,则将数据提交给可到达的转发路由。
C.若根本找不到则将数据提交给自己的直接上级,由它去进行数据的转发工作,或最终告知此平台不存在。
2)检查发现是本平台信息,根据其调用关系进行处理。
A.调用关系的处理a)单向调用●上层调用只关心于网络错误,即提交至网络通讯之后就返回。
●对于本平台进程内信息,则由平台进行分派处理,不占用调用者线程。
b)同步调用●若是平台进程外的数据,则将阻塞调用者线程直到收到被调用者发来调用成功消息以及后续的调用结束后的返回信息或超时。
●若是平台进程内的数据,则直接将结程调用转向给目标模块的调用,即正常的进程内调用。
c)异步调用提交过程同单向调用,但平台自身需要记录此消息的发送及其被调用方的回复,以进行回调,回调一次后此回调结束。
批量发送数据时将提供一次向多个客户端发送命令的接口,而在平台接收到批量地址的时候,将分析此批量地址,将处于同一条链路的批量地址重新组合在一起提交给下一个链路。
接收数据1.平台接收到来自于网络通讯的数据2.平台对数据进行第一层解码,获取此数据的目标信息A.检查发现不是本平台模块,检查发送者是否已经成功注册,若已注册则查找对应的平台,否则返回告知发送失败;a)查找方式同发送数据,若最终无法继续传递且调用方式是单向调用,则简单将数据丢弃,否则将其错误情况返回调用端。
b)发现地址为广播地址,则向注册于本平台的所有平台发送此消息。
B.检查发现是本平台信息(包括广播地址),将数据进行完全解码(第二层解码将数据还原成命令及其要求回复的类型),进行授权验证(检查是否已经向本平台注册,若没注册,则检查消息是否发向平台管理模块,否则丢弃并告知),若目标模块不存在,则传递给平台内基本的命令处理模块,然后根据调用关系处理。
a)单向调用借用平台的线程进行此调用,调用完成不作任何其它处理。
b)同步调用借用平台线程进行此调用,调用完成将返回值及其相应的回复进行完全编码后回复给调用方(回复时使用的是单向调用)。
c)异步调用对于被调用方同有数据返回调用。
以上步骤仅用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种计算机网络中实现分布式通讯的装置,其特征在于,其包括至少一个管理中心模块、代理模块和多个客户端模块;该管理中心模块包括如下子模块授权模块、地址分配模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该代理模块包括如下子模块授权代理模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该客户端模块包括如下子模块平台管理模块、授权客户端和通讯模块。
2.根据权利要求1所述的计算机网络中实现分布式通讯的装置,其特征在于,当所述管理中心模块与客户端模块在同一网络内时,两者可不通过代理模块直接进行数据交换。
3.根据权利要求1所述的计算机网络中实现分布式通讯的装置,其特征在于,各个管理中心模块、代理模块和客户端模块节点均有自己单独的平台地址。
4.一种使用如权利要求1或2所述的装置进行分布式通讯的方法,其特征在于,其主要包括如下过程a.客户端模块寻找父节点;b.管理中心模块对客户端模块进行授权注册;c.客户端模块、代理模块或管理中心模块发送数据;d.该数据所要到达的客户端模块、代理模块或管理中心模块接收数据。
5.根据权利要求4所述的分布式通讯的方法,其特征在于,过程a包括如下子过程a1.向网络广播寻找父结点地址,若已存在缓冲地址,即将上次已成功连接的地址保存下来,等待父结点回应,若超时或连接失败,则进入a2;a2.使用配置文件中的父结点地址,若连接失败,则进入a3;a3.监听一个广播端口等待父结点启动时的广播,并定时连接配置文件中的地址,直到任何一种方式成功;a4.当重试指定次数均失败时,则要重新进行广播。
6.根据权利要求4所述的分布式通讯的方法,其特征在于,所述过程b需要分两步走,第一步是授权,在授权通过之后,会获取到自己与直接上级的地址,才能进行第二步的注册工作;其具体过程如下b1.通过本平台授权模块获取向上授权所需要的必要信息,开始准备授权,若不存在此模块,则直接进行连接并进行数据发送;b2.通过“Client结点寻找父结点”用例找到父结点后并正常连接上父接点,开始进行授权过程;b3.第一个包发送为请求授权包至父结点授权模块,若不能处理,则由其父结点继续向上提交至自己的管理结点的授权模块,若通过授权则将管理结点唯一标识反馈给客户端,若失败,则提示客户端授权失败,并关闭掉当前连接;b4.查看错误原因,若是Agent容量已满,则寻找下一个Agent进行授权提交,若是整个管理中心授权已满,则定时进行重试;b5.在获取授权信息后,包括上级的平台地址及物理地址,进行注册,在直接的自己上级准许其注册后,则要进行路由的更新工作。
7.根据权利要求6所述的分布式通讯的方法,其特征在于,在过程b3中,若通过授权则将管理结点唯一标识、该客户机的32位标识及可代理转发的客户端连接个数一同反馈给客户端。
8.根据权利要求4所述的分布式通讯的方法,其特征在于,过程c包括如下子过程c1.客户端模块、代理模块或管理中心模块发送请求提交其所在的平台;c2.该平台进行进行消息分派,若检查发现不是本平台信息,查找对应的平台,若检查发现是本平台信息,根据其调用关系进行处理。
9.根据权利要求8所述的分布式通讯的方法,其特征在于,子过程c2中检查发现不是本平台信息,并查找对应平台后,可能出现如下A.发现目标平台已经向本平台注册,并且连接有效,则将数据进行完全编码后发向目标;连接无效时,若下一个平台已经是最终目标,则返回目标异常,否则返回路由异常;B.发现目标平台未向本平台注册,但存在到达此地址的路由,则将数据提交给可到达的转发路由;C.若根本找不到则将数据提交给自己的直接上级,由它去进行数据的转发工作,或最终告知此平台不存在。
10.根据权利要求8所述的分布式通讯的方法,其特征在于,所述调用关系包括单向调用、同步调用和异步调用。
全文摘要
本发明涉及计算机应用领域,尤其涉及一种用于计算机之间进行网络通讯的装置和方法。一种计算机网络中实现分布式通讯的装置,其特征在于,其包括至少一个管理中心模块(Manage Center)、代理模块(Agent)和多个客户端模块(Client);该管理中心模块包括如下子模块授权模块、地址分配模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该代理模块包括如下子模块授权代理模块、平台管理模块、路由管理模块、授权客户端和通讯模块;该客户端模块包括如下子模块平台管理模块、授权客户端和通讯模块。本发明所述的计算机网络中实现分布式通讯的装置,能跨防火墙通讯,为网络中各个节点的分布式通讯提供更加广泛的支持。
文档编号H04L12/00GK1859119SQ200610033689
公开日2006年11月8日 申请日期2006年2月20日 优先权日2006年2月20日
发明者陈勇, 罗鹏, 黄鉴廷, 邱锐锋, 都斌 申请人:珠海金山软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1