分布式系统对象请求传输方法、设备和分布式系统的制作方法

文档序号:7643197阅读:153来源:国知局
专利名称:分布式系统对象请求传输方法、设备和分布式系统的制作方法
技术领域
本发明涉及面向对象的分布式处理技术领域,具体涉及一种分布式系统对象请求传输方法、设备和相应的分布式系统。
背景技术
随着计算机技术与网络技术的不断发展,分布式系统架构正得到越来越广泛的应用。分布式系统通常采用公共对象请求代理体系结构(CORBACommon Object Request Broker Architecture)作为其解决方案,能够实现服务提供点由多台计算机担任的分布式计算策略,以提升系统的整体性能,并且实现多厂商互联互通。
在分布式应用中,出于网络安全的目的,在内网与外网之间往往采取构造防火墙的方式保证内网的安全性。然而基于CORBA实现的特点,每个分布式系统服务进程的对象请求代理(ORBObject Request Broker)都需要占用一个套接字端口。如果提供的服务进程众多,则导致需要打开大量的套接字端口,相应的防火墙不得不开放大批端口,以达到应用客户端从外部网络通过对象请求进行系统操作、维护等目的。
上述实现方法存在如下缺陷一是防火墙需要维护大量端口,配置繁琐、维护成本高且导致内网安全性大幅度降低;一是,当系统需要增加作为服务提供点的对象服务端时,需要对防火墙重新进行端口开放的操作,后续维护复杂。

发明内容
本发明实施例提供一种能够降低防火墙配置维护难度的分布式系统对象请求传输方法,包括建立应用客户端进程到汇聚端口的第一连接;通过所述第一连接将所述应用客户端进程需要连接的对象服务端进程的真实端口信息传送至所述汇聚端口;根据所述对象服务端进程的真实端口信息,建立所述汇聚端口到对象服务端进程的真实端口的第二连接;所述应用客户端进程通过所述汇聚端口的中转进行与所述对象服务端进程之间的信息传递。
本发明实施例还提供一种汇聚服务端设备,包括第一连接模块,用于建立与应用客户端进程之间的第一连接,接收通过所述第一连接发送的所述应用客户端进程需要连接的对象服务端进程的真实端口信息;第二连接模块,用于根据所述第一连接模块接收的对象服务端进程的真实端口信息,建立与对象服务端进程的真实端口之间的第二连接。
以及一种汇聚客户端设备,包括进程监控模块,用于拉起应用客户端进程,在所述应用客户端进程发起到对象服务端进程的连接时,将需要调用的系统套接字操作函数替换为对应函数;连接模块,用于执行所述对应函数,将所述到对象服务端进程的连接执行为与汇聚端口之间的第一连接,并在连接成功后通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口。
本发明实施例并提供一种应用客户端设备,包括应用进程模块,用于发起到对象服务端进程的连接;汇聚服务模块,用于根据所述应用进程模块发起的连接,建立与汇聚端口之间的第一连接,并通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口。
此外,本发明实施例还提供两种分布式系统,一种包括应用客户端、对象服务端和汇聚服务端;所述应用客户端包括应用进程模块和汇聚服务模块;所述应用进程模块,用于发起到对象服务端进程的连接;所述汇聚服务模块,用于根据所述应用进程模块发起的连接,建立与汇聚端口之间的第一连接,并通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口;所述对象服务端,用于执行所述对象服务端进程;所述汇聚服务端,用于提供所述汇聚端口,根据从所述汇聚端口接收的对象服务端进程的真实端口信息,建立与所述对象服务端进程的真实端口之间的第二连接。
另一种包括应用客户端、对象服务端、汇聚客户端和汇聚服务端;所述应用客户端,用于执行应用客户端进程,发起到对象服务端进程的连接;所述汇聚客户端,用于拉起所述应用客户端执行的应用客户端进程,在所述应用客户端发起到对象服务端进程的连接时,将需要调用的系统套接字操作函数替换为对应函数;由所述对应函数将所述到对象服务端进程的连接执行为与汇聚端口之间的第一连接,并通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口;所述对象服务端,用于执行所述对象服务端进程;所述汇聚服务端,用于提供所述汇聚端口;根据从所述汇聚端口接收的所述对象服务端进程的真实端口信息,建立与所述对象服务端进程的真实端口之间的第二连接。
本发明实施例采用将应用客户端进程到对象服务端进程的连接通过一个中转汇聚端口来进行的方法,将原有的一步连接操作分为两段执行,在发出应用请求的客户端与提供对象服务的对象服务端之间插入端口汇聚服务;使得原有分散的CORBA端口可集中到一个端口上开放,达到端口收敛的目的;有效降低了应用客户端与对象服务端之间防火墙配置的复杂度,降低维护成本,提高了网络的安全性;并且,当后续需要扩展服务提供点时,不必再对防火墙重新进行端口开放的操作,降低了后续维护的复杂度。


图1是本发明实施例的分布式系统对象请求传输方法流程示意图;图2是本发明实施例的汇聚服务端设备结构示意图;图3是本发明实施例的汇聚客户端设备结构示意图;图4是本发明实施例的应用客户端设备结构示意图;图5是本发明实施例的一种分布式系统结构示意图;图6是本发明实施例的另一种分布式系统结构示意图。
下面通过具体实施方式
并结合附图对本发明作进一步的详细说明。
具体实施例方式
在本发明实施例提供的一种分布式系统对象请求传输方法中,将应用客户端进程到对象服务端进程的连接通过一个中转汇聚端口来进行,使得原有的一步连接操作分为两段执行。上述中转连接方式,可以通过将原有的系统套接字操作函数替换为适用于本发明的对应函数来实现,也可以通过直接修改CORBA实现的通讯处理部分完成。在采用函数替换的方法中,针对现有不同的操作系统平台,本发明还给出了相应的优选实现方式。同时,本发明还提供应用于上述对象请求传输方法的相关设备和分布式系统。以下分别对本发明方法、设备和系统进行详细说明。
本发明实施例的分布式系统对象请求传输方法,流程如图1所示,包括A1、建立应用客户端进程到汇聚端口的第一连接,并通过所述第一连接将所述应用客户端进程需要连接的对象服务端进程的真实端口信息传送至所述汇聚端口;在现有系统中,应用客户端进程到对象服务端进程的连接一般是通过一步连接实现的,通常表现为调用系统套接字操作函数,例如connect()。而本发明则是分两段执行连接过程,此步骤即为连接的前半段,由应用客户端进程先连接到一个汇聚端口,并将最终需要连接的真实端口信息发送给汇聚端口,以为连接的后半段作好准备,本文中将连接的前半段称为第一连接;将连接的后半段称为第二连接。
本发明实施例提供的分段连接方法可采用两种方式来进行,一种是通过直接修改CORBA实现的通讯处理部分,使其在执行对象的连接时不再直接进行连接而是按照本发明提供的中转方式进行。但是这种实现方法需要对现有体系进行普遍的结构性修改,可能会产生较大的成本开销,并且在体系内部进行修改容易增加系统风险;因此,本发明实施例以下提供一种优选的实施方案,即通过对需要调用的系统套接字操作函数进行替换来实现,此时步骤A1可包括A11、拉起应用客户端进程;为描述方便起见,以下将实现拉起应用客户端进程的模块称为汇聚客户端,其实现的拉起操作即表示将应用客户端进程创建为自身的子进程;A12、在应用客户端进程发起连接时,将需要调用的系统套接字操作函数替换为对应函数;作为应用客户端进程的父进程,这个替换操作由汇聚客户端执行。相应于不同的操作系统平台,替换操作可以有不同的执行方式①对于支持进程注入、系统挂钩等方式的操作系统,例如Win32系列操作系统,可采用这样的方式汇聚客户端对应用客户端进程进行进程注入,将对应函数加载到子进程中代替原有系统套接字操作函数;这样,此后应用客户端进程所执行的连接操作函数就是替换后的对应函数了;②对于支持动态库预加载方式的操作系统,例如UNIX/Linux系列操作系统,可采用这样的方式将与系统套接字操作函数同名的对应函数,预置于需要预加载的动态库中;应用客户端进程被拉起后,系统即会先加载包含对应函数的预加载库;当应用客户端进程发起连接调用动态库函数时,所执行的就是位于预加载动态库中的对应函数,而不是原有的系统套接字操作函数了;A13、由该对应函数执行到汇聚端口的第一连接;本发明中所称的对应函数执行两步操作,本步骤为前一步操作,进行应用客户端进程到汇聚端口的套接字(Socket)连接,此步骤可采用现有的连接方式,例如使用一条connect()命令等;A14、基于该第一连接,将所述应用客户端进程需要连接的对象服务端进程的真实端口信息传送至汇聚端口;本步骤即为对应函数执行的后一步操作,对应函数可通过发送一个自定义的协议帧,将真实端口信息,例如IP地址、端口号等发送到汇聚端口;为描述方便起见,以下将位于汇聚端口的处理模块称为汇聚服务端;通过对应函数的两步操作,建立第一连接的工作就完成了;A2、根据获得的对象服务端进程的真实端口信息,建立所述汇聚端口到对象服务端进程的真实端口的第二连接,此步骤由汇聚服务端按照常规方式进行,例如执行一条connect()命令;此步骤完成后,即形成一条由应用客户端到对象服务端的连接通道,在该通道内部由汇聚服务端负责完成信息的转发动作;A3、向所述应用客户端进程报告对象服务端连接成功,返回连接到所述汇聚端口的连接信息;对应函数在进行真实端口连接成功后,将连接到汇聚服务端的Socket端口返回给应用客户端进程;上述分段多步操作对于上层应用而言所呈现的仅仅是调用连接函数进行连接,返回连接成功信息的一步操作;A4、应用客户端进程通过汇聚端口的中转进行到对象服务端进程的信息传递;连接通道建立后,应用客户端进程在进行真实的CORBA对象调用动作时,与原有CORBA实现一致,不需做任何特别处理,只是实际上所有的通用对象请求代理(ORB)间互操作协议(GIOPGeneral Inter_ORB Protocol)信息均通过汇聚端口中转;A5、连接建立后,若对象服务端进程与应用客户端进程任意一方断开连接,则执行相应的断连操作当对象服务端进程关闭连接时,A51、汇聚服务端相应关闭与对象服务端进程及应用客户端进程之间的连接,完成对应的各个Socket端口的关闭动作;A52、应用客户端进程也会检测到对端断连的情况,执行相应的断连操作,具体操作过程,可由应用确定。
当应用客户端进程关闭连接,即退出应用时,若之前的连接是通过修改CORBA实现的方式进行,则不必进行特别的操作;若采用函数替换方式进行,则有A53、应用客户端进程退出;A54、汇聚客户端执行函数替换的清理动作;例如完成进程注入的清理动作,或将对应的动态库实例删除等。
下面对本发明提供的相关设备进行详细说明。
如图2所示,是一种汇聚服务端设备30,包括第一连接模块31和第二连接模块32;第一连接模块31,用于建立与应用客户端进程之间的第一连接,接收通过所述第一连接发送的所述应用客户端进程需要连接的对象服务端进程的真实端口信息;第二连接模块32,用于根据第一连接模块31接收的对象服务端进程的真实端口信息,建立与对象服务端进程的真实端口之间的第二连接。
如图3所示,是一种汇聚客户端设备40,包括进程监控模块41和连接模块42;进程监控模块41,用于拉起应用客户端进程,在所述应用客户端进程发起到对象服务端进程的连接时,将需要调用的系统套接字操作函数替换为对应函数;连接模块42,用于执行进程监控模块41替换的对应函数,将所述到对象服务端进程的连接执行为与汇聚端口之间的第一连接,并在连接成功后通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口。
如图4所示,是一种应用客户端设备50,包括应用进程模块51和汇聚服务模块52;应用进程模块51,用于发起到对象服务端进程的连接;汇聚服务模块52,用于根据应用进程模块51发起的连接,建立与汇聚端口之间的第一连接,并通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口。
下面对本发明提供的两种分布式系统进行详细说明。
一、对应于以修改CORBA实现的方式进行本发明分段式连接的方法,对于连接的处理由应用客户端进程独立控制完成,其系统结构如图5所示,包括应用客户端101、对象服务端102和汇聚服务端103;应用客户端101包括应用进程模块1011和汇聚服务模块1012;应用进程模块1011,用于发起到对象服务端进程的连接;汇聚服务模块1012,用于根据应用进程模块1011发起的连接,建立与汇聚端口之间的第一连接,并通过所述第一连接将对象服务端进程的真实端口信息传送至汇聚端口;对象服务端102,用于执行对象服务端进程;汇聚服务端103,用于提供汇聚端口;根据从所述汇聚端口接收的对象服务端进程的真实端口信息,建立与所述对象服务端进程的真实端口之间的第二连接。
二、对应于以函数替换的方式进行本发明分段式连接的方法,对于连接的处理由汇聚客户端替换到应用客户端进程中的对应函数完成,其系统结构如图6所示,包括应用客户端201、对象服务端202、汇聚服务端203和汇聚客户端204;应用客户端201,用于执行应用客户端进程,发起到对象服务端进程的连接;汇聚客户端204,用于拉起应用客户端201执行的应用客户端进程,在应用客户端201发起到对象服务端进程的连接时,将需要调用的系统套接字操作函数替换为对应函数;所述对应函数将所述到对象服务端进程的连接执行为与汇聚端口之间的第一连接,并在连接成功后通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口;对象服务端202,用于执行对象服务端进程;汇聚服务端203,用于提供汇聚端口;根据从汇聚端口接收的对象服务端进程的真实端口信息,建立与对象服务端进程的真实端口之间的第二连接。
在上述两种分布式系统中,所称汇聚服务端可任意分布于各类工作站、个人电脑上,完成本网服务提供点的端口汇聚,为穿透防火墙的外部应用调用提供便利。
应当理解,实现本发明方法的软件可以存储于一计算机可读介质中,该软件的在执行时,包括如下步骤建立应用客户端进程到汇聚端口的第一连接;通过所述第一连接,将所述应用客户端进程需要连接的对象服务端进程的真实端口信息传送至所述汇聚端口;根据所述对象服务端进程的真实端口信息,建立所述汇聚端口到对象服务端进程的真实端口的第二连接;所述应用客户端进程通过所述汇聚端口的中转进行与所述对象服务端进程之间的信息传递;所述的可读介质,如ROM/RAM、磁碟、光盘等。
本发明实施例中,采用将应用客户端进程到对象服务端进程的连接通过一个中转汇聚端口来进行的方法,将原有的一步连接操作分为两段执行,在发出应用请求的客户端与提供对象服务的对象服务端之间插入端口汇聚服务;使得原有分散的CORBA端口可集中到一个端口上开放,达到端口收敛的目的;有效降低了应用客户端与对象服务端之间防火墙配置的复杂度,降低维护成本,提高了网络的安全性;并且,当后续需要扩展服务提供点时,不必再对防火墙重新进行端口开放的操作,降低了后续维护的复杂度。
以上对本发明所提供的分布式系统对象请求传输方法及相关设备和分布式系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种分布式系统对象请求传输方法,其特征在于,包括建立应用客户端进程到汇聚端口的第一连接;通过所述第一连接,将所述应用客户端进程需要连接的对象服务端进程的真实端口信息传送至所述汇聚端口;根据所述对象服务端进程的真实端口信息,建立所述汇聚端口到对象服务端进程的真实端口的第二连接;所述应用客户端进程通过所述汇聚端口的中转进行与所述对象服务端进程之间的信息传递。
2.根据权利要求1所述的分布式系统对象请求传输方法,其特征在于,所述建立第一连接的步骤包括拉起应用客户端进程,在所述应用客户端进程发起连接时,将需要调用的系统套接字操作函数替换为对应函数,由所述对应函数执行到所述汇聚端口的第一连接。
3.根据权利要求2所述的分布式系统对象请求传输方法,其特征在于,所述将需要调用的系统套接字操作函数替换为对应函数的步骤为进行进程注入,将所述对应函数代替被调用的系统套接字操作函数加载到所述应用客户端进程中。
4.根据权利要求2所述的分布式系统对象请求传输方法,其特征在于,该方法进一步包括将与系统套接字操作函数同名的对应函数,预置于预加载动态库中;所述将需要调用的系统套接字操作函数替换为对应函数的步骤为调用位于预加载动态库中的对应函数。
5.根据权利要求1~4任意一项所述的分布式系统对象请求传输方法,其特征在于,在所述第二连接建立后,还包括向所述应用客户端进程报告对象服务端连接成功,返回连接到所述汇聚端口的连接信息。
6.根据权利要求1~4任意一项所述的分布式系统对象请求传输方法,其特征在于,还包括当所述对象服务端进程关闭连接时,所述汇聚端口相应关闭与所述对象服务端进程及所述应用客户端进程的连接;所述应用客户端进程检测到对端断连,执行相应的断连操作。
7.根据权利要求2~4任意一项所述的分布式系统对象请求传输方法,其特征在于,还包括当所述应用客户端进程退出应用时,执行所述函数替换的清理动作。
8.一种汇聚服务端设备,其特征在于,包括第一连接模块,用于建立与应用客户端进程之间的第一连接,接收通过所述第一连接发送的所述应用客户端进程需要连接的对象服务端进程的真实端口信息;第二连接模块,用于根据所述第一连接模块接收的对象服务端进程的真实端口信息,建立与对象服务端进程的真实端口之间的第二连接。
9.一种汇聚客户端设备,其特征在于,包括进程监控模块,用于拉起应用客户端进程,在所述应用客户端进程发起到对象服务端进程的连接时,将需要调用的系统套接字操作函数替换为对应函数;连接模块,用于执行所述对应函数,将所述到对象服务端进程的连接执行为与汇聚端口之间的第一连接,并在连接成功后通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口。
10.一种应用客户端设备,其特征在于,包括应用进程模块,用于发起到对象服务端进程的连接;汇聚服务模块,用于根据所述应用进程模块发起的连接,建立与汇聚端口之间的第一连接,并通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口。
11.一种分布式系统,其特征在于包括应用客户端、对象服务端和汇聚服务端;所述应用客户端包括应用进程模块和汇聚服务模块;所述应用进程模块,用于发起到对象服务端进程的连接;所述汇聚服务模块,用于根据所述应用进程模块发起的连接,建立与汇聚端口之间的第一连接,并通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口;所述对象服务端,用于执行所述对象服务端进程;所述汇聚服务端,用于提供所述汇聚端口,根据从所述汇聚端口接收的对象服务端进程的真实端口信息,建立与所述对象服务端进程的真实端口之间的第二连接。
12.一种分布式系统,其特征在于包括应用客户端、对象服务端、汇聚客户端和汇聚服务端;所述应用客户端,用于执行应用客户端进程,发起到对象服务端进程的连接;所述汇聚客户端,用于拉起所述应用客户端执行的应用客户端进程,在所述应用客户端发起到对象服务端进程的连接时,将需要调用的系统套接字操作函数替换为对应函数;由所述对应函数将所述到对象服务端进程的连接执行为与汇聚端口之间的第一连接,并通过所述第一连接将所述对象服务端进程的真实端口信息传送至所述汇聚端口;所述对象服务端,用于执行所述对象服务端进程;所述汇聚服务端,用于提供所述汇聚端口;根据从所述汇聚端口接收的所述对象服务端进程的真实端口信息,建立与所述对象服务端进程的真实端口之间的第二连接。
13.一种计算机可读介质,其特征在于,存储有实现分布式系统对象请求传输方法的软件,该软件在执行时,包括如下步骤建立应用客户端进程到汇聚端口的第一连接;通过所述第一连接,将所述应用客户端进程需要连接的对象服务端进程的真实端口信息传送至所述汇聚端口;根据所述对象服务端进程的真实端口信息,建立所述汇聚端口到对象服务端进程的真实端口的第二连接;所述应用客户端进程通过所述汇聚端口的中转进行与所述对象服务端进程之间的信息传递。
全文摘要
本发明公开了一种分布式系统对象请求传输方法,将应用客户端进程到对象服务端进程的连接通过一个中转汇聚端口来进行,将原有的一步连接操作分为两段执行,在客户与服务器之间插入端口汇聚服务;使得原有分散的CORBA端口可集中到一个端口上开放,达到端口收敛的目的。本发明还提供相应的分布式系统及相关设备。本发明有效降低了应用客户端与对象服务端之间防火墙配置的复杂度,降低维护成本,提高了网络的安全性;并且,当后续需要扩展服务提供点时,不必再对防火墙重新进行端口开放的操作,降低了后续维护的复杂度。
文档编号H04L29/06GK101026622SQ20071000085
公开日2007年8月29日 申请日期2007年1月12日 优先权日2007年1月12日
发明者刘炜 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1