| | | 基于请求代理的中间件模型 | | 2001-04-09·
·思索 ··yesky
| 1 2 下一页 对象请求代理体系结构是一种崭新的技术,它以CORBA为代表。在这里,我们实现了一个基于请求代理体系结构的简单模型,藉此说明中间件的工作原理。
系统由三个模块组成:客户端、服务器和代理。即Client,Server和Agent。实现方法是使用Winsock编程技术(有关Winsock编程的技术可以参考相关文献),编程环境是VC++6.0。
首先作如下定义:
#define DataLength 80 file://定义数据长度
#define AgentPort 14000//定义代理的端口号
#define DefaultClientPort 12000//定义客户端的端口号
#define DefaultServerPort 13000//定义服务器的端口号
系统工作原理如下是:客户端、服务器和代理各有一个独立的IP地址和端口号(IP地址和端口号的组合可以确定客户端程序、服务程序和代理服务器的通信地址)。我们要实现的是客户端和服务器之间的信息交互,但是现在面临这样的问题:客户端和服务器的地址以及端口都是可变的,它们并不固定,因此在信息交互之前,客户端无法知道服务器的地址,服务器也并不知道客户端的地址。唯一确定的是代理服务器程序的IP地址和端口号,它是不变的。
系统实现的方式如下:客户端启动时首先向代理服务器注册自己的信息,主要是自己的IP地址和端口号,如果此时服务器已经注册,则代理服务器将服务器的地址信息传递给客户端,否则客户端等待。(系统工作原理如下图所示)

服务器启动时也首先向代理服务器注册自己的信息,如果此时客户端已经注册,则代理服务器将客户端的地址信息传递给服务器(很多情况下并不需要这样的操作,因为总是客户端向服务器发送请求服务的信号)。
客户端得到服务器的地址信息之后,就可以直接和服务器进行交互,这样,代理服务器就可以退出系统,甚至关掉。这是在CORBA中比较典型的一种代理方式。
在另外一种情况下:如果希望服务器能够在不影响客户端程序的前提下随时扩展,那么可以要求客户端程序在发送服务请求时,直接发给代理服务器,然后由代理服务器进行一定的权限审查,然后转发给服务器。服务器返回的结果也由代理服务器转发给客户端。这是目前常见的WWW代理服务器的一般工作方式。在这样的情况下,本例也是可以适应的,只要在程序中加以限制即可。
1 2 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|