VisiBroker 4.5 中 Gatekeeper 的配置为什么百试不灵呢??? ( 积分: 200 )

  • 主题发起人 主题发起人 Tony_comm
  • 开始时间 开始时间
T

Tony_comm

Unregistered / Unconfirmed
GUEST, unregistred user!
远程客户端要经过路由器访问服务器时,是否需要gatekeeper?
只要配置好gatekeeper 属性文件就行,还是要在客户端和服务器加入特殊的代码才能通讯?
大侠帮忙啊。
环境:visibroker 4.5+bcb6+windows
 
远程客户端要经过路由器访问服务器时,是否需要gatekeeper?
只要配置好gatekeeper 属性文件就行,还是要在客户端和服务器加入特殊的代码才能通讯?
大侠帮忙啊。
环境:visibroker 4.5+bcb6+windows
 
对,visibroker 是开发corba 的一种产品。
 
广域网上需要在agentaddr文件中设置网关
在Delphi中查找agentaddr有帮助
 
agentaddr 这个文件我理解为在两个osagent 互相通讯时才需要的,现在只需要广域网客户端能访问路由器/防火墙后面的服务器(服务对象)就可以。
好像是两个问题?
 
在广域网上,客户端并不知道路由器/防火墙后面的服务器上的Agent的存在,所有必须在配置文件中指定网关
 
如果您在两个或多个子网中使用Borland Enterprise Server,则在子网中查找对
象时可能会遇到问题。
使用相同UDP 广播端口的智能代理会在相同局域网中自动相互查找。然而,许多
网站不允许UDP 广播跨过子网。在这些情况下,独立子网中的智能代理将无法互
相通信。
要纠正此情况,请:
1 打开控制台,选择服务器视图,然后定位到目录树中的服务节点。
2 选择智能代理服务,右击上下文菜单并从中选择“配置”。
3 选择显示有agentaddr 文件(其中包含需要通信的每个智能代理的IP 地址)的
地址文件标签。此IP 地址表示运行智能代理的主机。
例如,下列文件包括两个智能代理的信息:
199.10.9.5
101.10.2.6

****使用相同UDP 广播端口的智能代理会在相同局域网中自动相互查找*****
所以,我认为agentaddr着重点在这。应该和gatekeeper解决的是两个问题。
 
有一点点想法写出来:
1、既然由gatekeeper 来做 客户端 的代理和服务器联系,那么在客户端运行时的命令行参数应该是什么呢?(也就是用那个参数来告诉客户端 gk的位置呢?)
2、在GK的手册中反复提到“服务器属性”并且给了需要设置的内容,但这个服务器属性文件应该怎么在运行服务端程序时以命令行的参数告诉它呢?
 
小猪对我的问题已经做了指点,我正在研究中。
 
corba 客户端绕过路由器访问服务器的过程。 结果是不成功的,请帮忙看看问题所在。谢谢!
说明:在局域网中试验成功,广域网在主机完全暴露在internet 的环境中时客户端使用下面的参数和
主机进行连接,AppClient.exe -Dvbroker.agent.addr=101.1.1.1 -Dvbroker.agent.port=14000并且是成功的,
当然没有GK和路由器了。
环境:jdk1.3.1_01+windows xp sp2+bcb6+visibroker 4.5 for c++
1、定义IDL文件并且用向导的方式进行接口的实现,并且客户端是用静态的方式进行调用。
//idl
interface Client{
string GetOrderMaster(in boolean metadata);
};
//服务器实现代码
char* ClientImpl::GetOrderMaster(CORBA::Boolean _metadata)
{
Server->Memo1->Lines->Add("CORBA Client Request...");
return "abc123999";
}
//客户端代码
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(client->GetOrderMaster(true));
}
//---------------------------------------------------------------------------
*这几步都是用向导做的,所以系统自动生成的代码就不加了。
2、设置Gatekeeper 的若干属性
//Gatekeeper 属性,我理解应该是对此文件的设置
//gatekeeper.properties 文件
vbroker.gatekeeper.name=myGK
vbroker.orb.exportFirewallPath=true
vbroker.se.exterior.host=192.168.1.83
vbroker.se.exterior.scm.ex-iiop.listener.port=683
vbroker.se.exterior.scm.ex-hiop.listener.port=8088
3、设置AppServer.exe 的服务器属性
//服务器 属性,我理解应该是为Server.exe 设置一个属性文件或以命令行参数的形式带入(这个理解有可能是错的)
//server.ini 文件
vbroker.orb.dynamicLibs=com.inprise.vbroker.firewall.Init
vbroker.se.iiop_tp.firewallPaths=p
vbroker.firewall-path.p=fw,gk
vbroker.firewall.fw.type=TCP
vbroker.firewall.fw.host=101.1.1.1 //internet IP 外部
vbroker.firewall.fw.iiop_port=683
vbroker.firewall.fw.hiop_port=8088
vbroker.firewall.gk.type=PROXY
vbroker.firewall.gk.ior=http://192.168.1.83:8088/GateKeeper.ior
4、运行GK和服务器程序
GK:
gatekeeper //默认为加载当前目录的gatekeeper.properties ,运行正常
服务程序:
//AppServer.exe -ORBpropStorage server.ini
AppServer.exe -Dvbroker.orb.propStorage server.ini
//vbroker.orb.propStorage null 指定包含属性值的属性文件。
//这个用法也不能确定肯定是正确的
5、运行客户程序
AppClient.exe -ORBagentAddr 101.1.1.1 -ORBagentPort 683
//这个用法不能保证完全正确,只是我的理解GateKeeper 与 VisiBroker ORB 通过充当客户端和服务器之间的网关或代理,提供了处理这些基于 OMG CORBA 防火墙规范限制的机制。当某些限制阻止客户端直接连接至服务器时,客户端可选择连接至 GateKeeper,将消息发送至GateKeeper,再由 GateKeeper 将消息转发至服务器。
6、完成。(还是不成功啊)
强调:其中 3,4,5 步的用法我没有找到任何明确的使用方法,所有只能是参考手册的内容去理解。有可能就是这几步的用法是错误的。
网络结构:路由器->GK主机
GK主机(服务器主机,其中运行Server.exe和OSAGENT)它在路由器的里面.
路由器端口映射:683,8088,14000 其中14000 是实验性的打开,理论上好像不需要它也可以。
其中80端口也是开发的,并且HTTP在使用中,映射的方法同样是路由器的“虚拟服务”功能。
 
路由器 的部署方案是否和防火墙一样呢?
 
问题已经自行解决
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部