您的位置:首页 > 其它

ice proxy

2015-07-14 16:10 309 查看


Proxy

Proxy是ICE客户端里的概念。客户端通过Proxy访问服务器端上的Object,通过Proxy调用服务器端Object上提供的接口。在客户端上一般有类似以下代码:

Ice::ObjectPrx base = ic->stringToProxy("SimplePrinter:default -p 10000");
// Printer Proxy
PrinterPrx printer = PrinterPrx::checkedCast(base);
printer->printString("Hello World!");


Proxy又分为几种,包括:


Direct Proxy

Direct Proxy,这里的
direct
意指这个proxy访问的object时,是否携带了地址(EndPoint)信息,例如上面例子中
SimplePrinter:default -p 10000
就是一个地址。


Indirect Proxy

Indirect Proxy相对Direct Proxy而言,其没有具体的地址,仅仅是一个符号。通常包含两种形式:

SimplePrinter
SimplePrinter@PrinterAdapter

为了获取真正的地址,客户端需要一个定位服务(location service)来获取这个符号对应的地址。ICE中提供了一些默认的服务程序,IceGrid就是其中之一,而IceGrid的作用就包括定位具体的地址,即翻译符号地址到具体的地址。

这里Indirect Proxy可以看作一个域名,而Direct Proxy可以看作是IP地址。Indirect Proxy使用时,就需要借助DNS翻译得到域名对应的IP地址。


Fixed Proxy

由于Proxy是用于与服务器端的Object通信的,客户端借助Proxy来访问服务器端的Object,所以Proxy通常都会对应一个真实的网络连接。在ICE中,一般的Proxy于网络连接(Connection)实际上是没有太大关联的。一个Proxy可以没有Connection,也可以在建立这个Connection后又断开之。但是,ICE提供了一种特殊的Proxy,Fixed Proxy,这种Proxy紧密地与一个Connection绑定在一起,其生命周期被强制关联起来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: