看了很多关于基于MIDAS的三层结构的介绍,都是在局域网内实现的,
请教一下能否在internet上实现?即客户机(Delphi开发的客户端,而非IE浏览器)和应用服务器通过internet进行连接,能否实现???
请教一下能否在internet上实现?即客户机(Delphi开发的客户端,而非IE浏览器)和应用服务器通过internet进行连接,能否实现???
调试欢乐多
我是这样做的:
1、你得有一个网站;
2、服务器端每5分钟访问一次网站,网站解析服务器端的IP地址并保存;
3、客户端每次进行连接时,首先访问该网站,以取得服务器端的IP地址;
4、客户端以该IP地址进行连接;这种方法,我已用到了远程ADO访问上,效果不错。
我把它称为“动态IP解析”
我们这里有静态IP的,
如果可以连接用下列哪一个组件进行连接
TDCOMConnection TSocketConnection TWebConnection,
其相关属性应如何设置??
我们这里有静态IP的,
如果可以连接用下列哪一个组件进行连接
TDCOMConnection TSocketConnection TWebConnection,
其相关属性应如何设置??
那些设置和局域网的设置不同??
但中间层不太会写......
2.第二种就是使用TSocketConnection,这个相对设置比较简单,它的端口也只需要开放SocketServer所使用的端口或端口范围即可,并且这些端口可以随意指写,而不象DCOM那样是一个范围的端口,并且还是Windows默认的,相对来说,安全性的考虑则在于,应用服务器当中SocketServer会否被人利用,所以这需要添加一个验证接口(Intercept)做加密以及数据包压缩等操作。这相对DCOMConnection来说性能有所降低,速度相对也要慢不少,出错的可能性也比较高(这一点应该在到Borland Socket Server本身没有做得好,当然若有能力的话,可以自行改写增强),但是相对来说对客户端可以做扩展管理。
3.WebConnection,相对来说这个配置可能最为简单,通常也只是做为Web服务时的一个CGI来运行,但是它的缺点正如CSDN上面近期诸多贴子当中所提到的,经常客户连接多了就会出现问题,不能正常提供COM代理服务。另外就是Web服务本身的特性所决定的,不支持回调(CallBacks)。另外,偶提供一种就是MS的技术RDS.DataSpace的HTTP方式访问,这个跟WebConnection比较相似,都是通过Web服务做平台。并且前面的访问当中只要能够访问,那么SocketConnection当中有Intercept外,其它两项都不具备这一安全性关卡,故而在提供应用服务之外的其它COM也有可能被通常该管道而进行访问。从而在MS的MDAC当中提供了一句Web COM代理接口,通过设置注册表定义所有可输出的COM组件的ProgID而固定做为应用服务的COM服务组,从而有效的避免了其它COM被恶意通过该通道随意访问的可能。这个设置在Win2k当中比较容易设置,通常安装了Web服务器,并且更新了MDAC之后就会在默认站点上面建立一个MSADC的虚拟目录。如此即可以从客户端利用RDS.DataSpace来调用远程COM,而输出的COM只须将其ProgID置注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ADCLaunch下面做为注册表项即可。调用范例:
RdsObject:=CreateObject('RDS.DataSpace');
SomeNewComObject:=RdsObject.CreateObject(SomeComProgID,'http://Server');
SomeNewComObject.Method;