论坛首页 Java企业应用论坛

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

浏览 15198 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-25  

这种要求你最好还是和客户商量,在非允许情况下,私自向外发送数据你可能会引来法律问题。

0 请登录后投票
   发表时间:2010-06-25  
远程端口转发
0 请登录后投票
   发表时间:2010-06-26  
很正常的结构。你讲得不清楚。
网络A 是公司局域网,ip 为 10.x.x.x,
网络B是DMZ(demilitarized zone)区,AB之间有防火墙。C是公众网。

比如一个网站,www.abc.com,是在B,而其数据库是在A的,,防火墙将数据库端口想DMZ的服务器开放。

C网想要看A网的数据,只有用VPN连接到A, 就如许多人用VPN 在家工作一样。


0 请登录后投票
   发表时间:2010-06-26  
mercyblitz 写道
huangyuanmu 写道
mercyblitz 写道
为什么不给A开放指定IP或者数字证书的Internet Client?

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




VPN就可以实现了。


别说vpn了,就是数字证书方式访问给开发,也就没这么多的闹腾事了,呵呵

现实情况是A网不能以任何方式直接向外网开放。
0 请登录后投票
   发表时间:2010-06-26  
你已经说死了,A不能是SERVER,A不能被任何节点访问。

A能访问B,你能访问B。

那么,你在B上进行一层包装,给你一个你想要的结果集。

A定期向B发送你想要的结果集。

这样一来,不就是你访问到A的东西了。

如果实时性要求高,那基本上就是需求的问题了,不要谈解决方案了,有些东西,不是靠技术来解决的。
0 请登录后投票
   发表时间:2010-06-26  
curacfyh 写道
hatedance 写道
看你的情况,A能连接B,那么你把B做server。A发起请求,和B建立长期的连接。然后AB就能通讯了。
说得通俗一点就是搞一个类似浩方的平台。A和C就是2个玩家,B是服务器。通过B来进行互联。

同意,不过貌似不能实时,B无法通知A。

绝对实时啊。A一旦和B建立了socket连接,只要连接不断开,AB之间的通讯就是实时的。我写过这样的程序,我想写过socket程序的同学都能明白。
参考(http://en.wikipedia.org/wiki/Push_technology#Long_polling)
下面是对话过程:
A->B:有事吗?
  B:(目前没事,不立即给响应)
    C->B:get abc.jsp
    B->A:get abc.jsp
A->B:010101010010101...
    B->C:010101010010101...
0 请登录后投票
   发表时间:2010-06-27  
hatedance 写道
curacfyh 写道
hatedance 写道
看你的情况,A能连接B,那么你把B做server。A发起请求,和B建立长期的连接。然后AB就能通讯了。
说得通俗一点就是搞一个类似浩方的平台。A和C就是2个玩家,B是服务器。通过B来进行互联。

同意,不过貌似不能实时,B无法通知A。

绝对实时啊。A一旦和B建立了socket连接,只要连接不断开,AB之间的通讯就是实时的。我写过这样的程序,我想写过socket程序的同学都能明白。
参考(http://en.wikipedia.org/wiki/Push_technology#Long_polling)
下面是对话过程:
A->B:有事吗?
  B:(目前没事,不立即给响应)
    C->B:get abc.jsp
    B->A:get abc.jsp
A->B:010101010010101...
    B->C:010101010010101...


要求实时的话,貌似只有这种方法

如果不要实时的话,客户端可以把查询请求发送到B上,A定期查询B上的查询请求,等A把应答的结果放到B上后,客户端就可以从B上查到A的应答了
0 请登录后投票
   发表时间:2010-06-27  
huangyuanmu 写道
......网络A中的服务器A定期扫描网络B中服务器B缓存的请求,并对其进行响应......

若是B无法以任何形式访问A,你这个动作如何实现?A扫描B,扫描的结果在单向通讯的情况下A如何获取?还是这个单向通讯的含义有别?

只要是单向无回路,就永远无法实现闭环控制,这很容易理解。
0 请登录后投票
   发表时间:2010-06-27  
我以前做过类似应用,B端不管是http、ftp都只能以被动方式访问,不能发起任何请求。我们当时只能从A通过调用B端的servlet或WebSerivce来解决,你可以在A端有实时数据到达的时候通过http或soap把信息发到B,不过不排除中间失败的可能。
0 请登录后投票
   发表时间:2010-06-27  
A主动发起TCP连接
只有这种方法
学名叫“反弹连接”
0 请登录后投票
论坛首页 Java企业应用版

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