论坛首页 Java企业应用论坛

这种需求,大家看看有没有比较好的解决方案

浏览 15191 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-27  
回楼主,如果这个需求的实时性不是很强,例如每半个小时或者更长的频率,有一种办法可以解决,在网络A和网络B之间采用网闸,定期将网络A里面的信息写入到网络B的服务器上,这样Internet就可以访问网络A里面的监控情况了。
0 请登录后投票
   发表时间:2010-06-27  
感谢大家的回复,又学到了些东西
0 请登录后投票
   发表时间: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当做一个防火墙用,


这个方法好
0 请登录后投票
   发表时间:2010-06-28  
杜杜先生 写道
回楼主,如果这个需求的实时性不是很强,例如每半个小时或者更长的频率,有一种办法可以解决,在网络A和网络B之间采用网闸,定期将网络A里面的信息写入到网络B的服务器上,这样Internet就可以访问网络A里面的监控情况了。

顶你,前面没几个人说得对的。其实原理似乎也就只能是这样了。
1.实时性,我觉得没有什么必要吧,WEB监控管理系统,谁会每小时查看一次啊?半个小时的频率都算多了。
2.需要的工作:不需要修改A上的软件,再写个传送数据的程序就行了。挺简单。
0 请登录后投票
   发表时间:2010-06-28   最后修改:2010-06-28
piao_bo_yi 写道
杜杜先生 写道
回楼主,如果这个需求的实时性不是很强,例如每半个小时或者更长的频率,有一种办法可以解决,在网络A和网络B之间采用网闸,定期将网络A里面的信息写入到网络B的服务器上,这样Internet就可以访问网络A里面的监控情况了。

顶你,前面没几个人说得对的。其实原理似乎也就只能是这样了。
1.实时性,我觉得没有什么必要吧,WEB监控管理系统,谁会每小时查看一次啊?半个小时的频率都算多了。
2.需要的工作:不需要修改A上的软件,再写个传送数据的程序就行了。挺简单。


呵呵,虽然解决方法是可以,但是不可行,因为增加网闸,客户不答应。

可能我描述的不清楚,一会修改一下。
0 请登录后投票
   发表时间:2010-06-28  
其实你完全可以在A上建立一个服务该服务类似于RSS服务,以B为订阅者,在A有任何update的时候自动将update通知给B(因为A是可以单向访问B的),这样子不需要长连接,网络开销小,但是需要在A上做订阅服务的开发,B上要做收到notification之后的处理和供你们监控的程序。类似这样的subscribe/notification也是有比较多的成熟解决方案的,就不在此详述。此方案可以供你参考
PS:在你最新版的问题描述在没有明确A是可以单向访问B的,我是通过后面的回复看出来的。作为程序员细致是必不可少的素质。
0 请登录后投票
   发表时间:2010-06-28  
1:A定期发起或者手动发起请求给B,B握手接受数据,实现监控啊
2:A可以定时或手动发生包含数据格式的文件到B机器的固定位置,B机器去取数据再解析显示
0 请登录后投票
   发表时间:2010-06-28  
mercyblitz 写道
huangyuanmu 写道
mercyblitz 写道
为什么不给A开放指定IP或者数字证书的Internet Client?

A网络是客户的内部网络,客户不给开放,就这么简单,呵呵。




VPN就可以实现了。



肯定是不能用代理的,金融机构电信机构或类似企业的网络都比较严格
0 请登录后投票
   发表时间: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不能进行任何交互访问


你说的那种订阅模式是很适合于信息的推送,但是我的这个需求不仅仅是信息的推送(获取监测数据),而且要解决程序的控制(对数据迁移程序进行管理)。
0 请登录后投票
   发表时间: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不能进行任何交互访问


这种模式是很适合于信息的推送,但是我的这个需求不仅仅是信息的推送(获取监测数据),而且要解决程序的控制(对数据迁移程序进行管理)。

那这是谁的需求?是客户的需求,还是你们自己的需求?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics