锁定老帖子 主题:这种需求,大家看看有没有比较好的解决方案
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-27
回楼主,如果这个需求的实时性不是很强,例如每半个小时或者更长的频率,有一种办法可以解决,在网络A和网络B之间采用网闸,定期将网络A里面的信息写入到网络B的服务器上,这样Internet就可以访问网络A里面的监控情况了。
|
|
返回顶楼 | |
发表时间:2010-06-27
感谢大家的回复,又学到了些东西
|
|
返回顶楼 | |
发表时间:2010-06-28
javafound 写道 引用 网络A中的服务器A可以单向访问网络B中的服务器B,网络B不能以任何形式访问网络A
单向是什么意思?至少支持tcp/ip连结吗?如果支持的话: 再如果你"单向"的意思是A只能做客户端访问B,即A可以寻B的址,那问题就很容易解决,用端口转发: 在B上写一个端口映射的程序(赖写直接到网上找portMap),这个程序启动后,A做为客户机会连结上B, 于B保持tcp/ip连结. 当用户要访问A上的服务器,首先连结的是B的某个端口,B上的端口映射将在这个端口接到的数据转发给己建立连结的A,将从A上接收到的数据转发给与B建立连结的客户机就OK了. 估计你的场景是:A是内网的一台机器,B是有公网IP的前置机.用户要通过B访问A,其实是把B当做一个防火墙用, 这个方法好 |
|
返回顶楼 | |
发表时间:2010-06-28
杜杜先生 写道 回楼主,如果这个需求的实时性不是很强,例如每半个小时或者更长的频率,有一种办法可以解决,在网络A和网络B之间采用网闸,定期将网络A里面的信息写入到网络B的服务器上,这样Internet就可以访问网络A里面的监控情况了。
顶你,前面没几个人说得对的。其实原理似乎也就只能是这样了。 1.实时性,我觉得没有什么必要吧,WEB监控管理系统,谁会每小时查看一次啊?半个小时的频率都算多了。 2.需要的工作:不需要修改A上的软件,再写个传送数据的程序就行了。挺简单。 |
|
返回顶楼 | |
发表时间:2010-06-28
最后修改:2010-06-28
piao_bo_yi 写道 杜杜先生 写道 回楼主,如果这个需求的实时性不是很强,例如每半个小时或者更长的频率,有一种办法可以解决,在网络A和网络B之间采用网闸,定期将网络A里面的信息写入到网络B的服务器上,这样Internet就可以访问网络A里面的监控情况了。
顶你,前面没几个人说得对的。其实原理似乎也就只能是这样了。 1.实时性,我觉得没有什么必要吧,WEB监控管理系统,谁会每小时查看一次啊?半个小时的频率都算多了。 2.需要的工作:不需要修改A上的软件,再写个传送数据的程序就行了。挺简单。 呵呵,虽然解决方法是可以,但是不可行,因为增加网闸,客户不答应。 可能我描述的不清楚,一会修改一下。 |
|
返回顶楼 | |
发表时间:2010-06-28
其实你完全可以在A上建立一个服务该服务类似于RSS服务,以B为订阅者,在A有任何update的时候自动将update通知给B(因为A是可以单向访问B的),这样子不需要长连接,网络开销小,但是需要在A上做订阅服务的开发,B上要做收到notification之后的处理和供你们监控的程序。类似这样的subscribe/notification也是有比较多的成熟解决方案的,就不在此详述。此方案可以供你参考
PS:在你最新版的问题描述在没有明确A是可以单向访问B的,我是通过后面的回复看出来的。作为程序员细致是必不可少的素质。 |
|
返回顶楼 | |
发表时间:2010-06-28
1:A定期发起或者手动发起请求给B,B握手接受数据,实现监控啊
2:A可以定时或手动发生包含数据格式的文件到B机器的固定位置,B机器去取数据再解析显示 |
|
返回顶楼 | |
发表时间:2010-06-28
mercyblitz 写道 huangyuanmu 写道 mercyblitz 写道 为什么不给A开放指定IP或者数字证书的Internet Client?
A网络是客户的内部网络,客户不给开放,就这么简单,呵呵。 VPN就可以实现了。 肯定是不能用代理的,金融机构电信机构或类似企业的网络都比较严格 |
|
返回顶楼 | |
发表时间:2010-06-28
最后修改:2010-06-28
neo_q 写道 其实你完全可以在A上建立一个服务该服务类似于RSS服务,以B为订阅者,在A有任何update的时候自动将update通知给B(因为A是可以单向访问B的),这样子不需要长连接,网络开销小,但是需要在A上做订阅服务的开发,B上要做收到notification之后的处理和供你们监控的程序。类似这样的subscribe/notification也是有比较多的成熟解决方案的,就不在此详述。此方案可以供你参考
PS:在你最新版的问题描述在没有明确A是可以单向访问B的,我是通过后面的回复看出来的。作为程序员细致是必不可少的素质。 不知你是否看见了这句 : 引用 数据迁移程序可以通过jdbc连接网络B中部署的数据库服务器,除此之外,网络A和网络B不能进行任何交互访问 你说的那种订阅模式是很适合于信息的推送,但是我的这个需求不仅仅是信息的推送(获取监测数据),而且要解决程序的控制(对数据迁移程序进行管理)。 |
|
返回顶楼 | |
发表时间:2010-06-28
huangyuanmu 写道 neo_q 写道 其实你完全可以在A上建立一个服务该服务类似于RSS服务,以B为订阅者,在A有任何update的时候自动将update通知给B(因为A是可以单向访问B的),这样子不需要长连接,网络开销小,但是需要在A上做订阅服务的开发,B上要做收到notification之后的处理和供你们监控的程序。类似这样的subscribe/notification也是有比较多的成熟解决方案的,就不在此详述。此方案可以供你参考
PS:在你最新版的问题描述在没有明确A是可以单向访问B的,我是通过后面的回复看出来的。作为程序员细致是必不可少的素质。 不知你是否看见了这句: 引用 数据迁移程序可以通过jdbc连接网络B中部署的数据库服务器,除此之外,网络A和网络B不能进行任何交互访问 这种模式是很适合于信息的推送,但是我的这个需求不仅仅是信息的推送(获取监测数据),而且要解决程序的控制(对数据迁移程序进行管理)。 那这是谁的需求?是客户的需求,还是你们自己的需求? |
|
返回顶楼 | |