1000分酬谢! 多层数据访问使用MIDAS联接的问题(200分)

  • 主题发起人 王寒松
  • 开始时间

王寒松

Unregistered / Unconfirmed
GUEST, unregistred user!
一个系统架构如下:
送出登陆信息,要求验证client身份:
client --> firewall --> webserver --> firewall --> dataserver
数据信息返回
client<-- firewall <-- webserver <-- firewall <-- data server
在这个系统架构里,如果使用 socketconnection 连接中间层webserver(可以在这里架设
socketserver or IIS HTTP SERVER) , 那么 web server 访问dataserver ,并与
dataserver 进行数据交流是各大问题. 多数企业防火墙是关闭各种端口,只开80端口
如果使用webconnection 呢? webserver同样无法与 dataserver 实现双向联接
因为 webconnection 连接虽然可以穿透防火墙,但是它是单向的,数据如何返回
那位朋友能告诉我一个合理解决的技术方案?
 
WebServer和DataServer之间有必要用防火墙吗? 而且既然是DataServer,把数据访问
端口也过滤掉干什么?这个网管的思想有问题。。。
你的问题不找网管是无解的,除非防火墙有漏洞。
 
因为要实现远程办公和异地数据处理。
企业的webserver 很可能是放在电信的机房里。
而企业的内部数据在企业的内部局域网中。通过防火墙与外部连接。
这是非常正常的哦
 
需要正确配置防火墙。
 
这种结构,我见过的处理方法是:
1、webserver上同时安装dataserver, 企业内部的dataserver通过internet定时与电信的
dataserver同步数据。 优点:安全; 缺点:数据不够实时。
2、企业内部的dataserver前的firewall开放数据访问端口,可以通过限制访问IP等方法提
高安全性。 优点:数据保持一致; 缺点:速度可能会受影响,安全方面也是没问题的,只
是网管要找个水平高点的。。。
3、如果一定要让防火墙使用缺省设置,只开放80端口,可以做一个端口转发(有些防火墙
有这个功能),不过,这么做的安全性还比不上方案2,没什么必要。
 
lujuhe: 谢谢您的回复. 有几个具体的问题
在上述架构中, 从client 端 到 webserver端是否一定要使用 webconnection ?
我在网上看到有人说:

如果使用 webconnection , 客户端到 webserver间的连接只能是单向连接.
是否意味着 , 客户发出登陆 dataserver请求 (webconnection)- > webserver
后, 认证登陆的信息是无法返回客户端的.
如果确实如此,那么 client 端的 clientdataset如何从 dataserver那里取得数据呢?

如果使用 socketconnection, 依我看,需要在webserver中的中介程序里
做两个 callback, 一个 callback负责与client通讯, 一个负责与dataserver通讯.
那么从dataserver上取的数据集结果(数据流)
如何在中介 server的两个 connection间传送?
MIDAS 我是新手, 还请多多指教
不知道我上面说的对不对。如果有思路错误, 欢迎指点。 分数1000不够还可以再加
 
老王,
我咋觉得不如用网页得了,
这样就可以双向了啊
 
asta3.0好像可以达到您的要求,可惜没有源代码,建议您看看,asta2.6好像也部分支持,
有源代码.
www.astatech.com
 
zhtx : 谢谢.我来看看asta.
天真: 如果用网页 or websnap 类的技术.
存在这样一个问题: 你是否注意到打开浏览器浏览网页时。 如果网络状态不好,
网页只会打开一部分, 甚至没有显示.
如果我在传送数据的时候 (webserver-> client) 发生了上面的问题.客户端将会怎么样?
 
我觉得你的三层是不是有问题? 照我的理解应该是这样:
DataServer <==> 中间层 <--F--> WebServer <-----> WebClient(IE等)
|____
|<---F--> 普通 Client
也就是说中间还有一个业务层,它跟WebServer及普通的Client之间有FireWall
而DataServer与你的业务中间层是高速局域网联接的。
这样,安全性及可管理性都有很大提高,不管是WebServer还是普通Client都不能直接与
数据库交互的。
 
xianjun老兄: 你的建议很好. 其实我设想架构与你想的是一样的
只是现在这个项目的设计就是这样的.我也是接手后才发现我接到的这个设计很别扭.
 
老王我也才看清,
怎么你上面的系统没有中间层啊
不会吧
这样效率不高的!
 
如果可能,还是强烈建议你更改一下结构,因为照你的系统现有设计,有如下几个弊端:
1、DataServer直接暴露在Internet上(别太依赖防火墙),数据安全没有保障。
2、为网络带宽而浪费资金,DataServer与WebServer之间数据交换量太大,必须要有高速
Internet接入,这个月租费是很惊人的,你可以查一查。
3、效率问题。WebServer直接与DataServer通过Internet或专线联接,由于两者间的数据
交换太大,这两者间的网络联接势必成为瓶颈,影响整个系统的效率。
........
不知你的用户数是多少,我怀疑即使以这样的结构实现了,到最后也会因为响应速度太低而
让人无法忍受。
 
同意 xianjun,必须改结构,把webserver和dataserver放在一个网络内,应用服务器可以
放在webserver上。
另外,webconnection不是单向的,它的功能和socketconnection一样。
 
我想这样行不行,把dataServer也放到电信局去,不过不接入internet,webServer上接二块网卡,一个用外部地址,提供外部访问,一个用内部地址(192.168.0.XX),和dataServer相连,这样DataServer和webserver就是局域网相接,不知道这样行不行?
 
直接用TSocketClient传输数据,用线程模式,[:D]
 
Client连接webserver其实和端口无关的,主动去连接FIREWALL外的服务器,是没有问题的
 
很简单,在企业防火墙上开VPN端口并做端口映射,在企业局域网内部建立一个VPN服务器,
WEB服务器通过VPN虚拟拨号,得到企业局域网内IP,这个就可以访问dataserver了。
另外,to楼上各位,
楼主的意思是请我们解决他的问题,给出的条件只是分析问题用的,而不是让各位去批评
这个系统的设计思想什么的,而且系统细节还没有了解,有什么资格去批评它呢,是不是?
 
WEBServer不能用ADO或BDE访问DataServer,用WEBConnection或SocketConnection就行!
我的想法:
1.RDM1.EXE用ADO或BDE访问DataServer(企业局域网内);
2.RDM2.EXE用WEBConnection或SocketConnection连接RDM1.EXE,设计RemoteRDM属性(OleVariant)为
WEBConnection或SocketConnection.AppServer。RDM2.EXE运行于WEBServer机器上;
3.Client用WEBConnection或SocketConnection连接RDM2.EXE,再用SharedConnection就可以了。
由于多了一个中间层,效率可能差点!
 
顶部