看了很多关于基于MIDAS的三层结构的介绍,都是在局域网内实现的,
请教一下能否在internet上实现?即客户机(Delphi开发的客户端,而非IE浏览器)和应用服务器通过internet进行连接,能否实现???

解决方案 »

  1.   

    可以,你可以采用socket方式连接数据库服务器
      

  2.   

    可以,主要解决动态IP问题
    我是这样做的:
    1、你得有一个网站;
    2、服务器端每5分钟访问一次网站,网站解析服务器端的IP地址并保存;
    3、客户端每次进行连接时,首先访问该网站,以取得服务器端的IP地址;
    4、客户端以该IP地址进行连接;这种方法,我已用到了远程ADO访问上,效果不错。
    我把它称为“动态IP解析”
      

  3.   

    可以,你可以采用socket方式连接数据库服务器,主要是由一个固定IP,若没有,可以采取IP地址映射或使用chenylin(陈SIR) 的方法。
      

  4.   

    楼上的,再请教一下,
    我们这里有静态IP的,
    如果可以连接用下列哪一个组件进行连接
    TDCOMConnection TSocketConnection TWebConnection,
    其相关属性应如何设置??
      

  5.   

    楼上的,再请教一下,
    我们这里有静态IP的,
    如果可以连接用下列哪一个组件进行连接
    TDCOMConnection TSocketConnection TWebConnection,
    其相关属性应如何设置??
      

  6.   

    chenylin(陈SIR),帮帮忙呀??回答我上面的问题
      

  7.   

    TSocketConnection 比较简单,如果需要,我可以给你一个样板代码。
      

  8.   

    如果用TDCOMConnection连接
    那些设置和局域网的设置不同??
      

  9.   

    当然可以了,不会有任何问题的,DCOM,Socket,Corba,Web等都可以拿来用,现在MIDAS的名字叫DataSnap。只是所用的连接组件不同而已。
      

  10.   

    可一在internet上实现,把ip换成ISP提供的ip就行了嘛!!我试过用TSocketConnection 连,可以的.
      

  11.   

    如果用TDCOMConnection,需要使用VPN连接,或者用dcomcnfig设置com的属性,不需要windows的身份验证
      

  12.   

    用动态域名在Delphi把域名转化为IP,完全可以,我试过了。
    但中间层不太会写......
      

  13.   

    1.对于DCOM方式访问(DCOMConnection)需要的是相关的防火墙开放特定端口才行,通常这种情况下需要考虑到一个安全问题,不过相对来说DCOM方式访问速度最快。另外就是DCOM本身的访问权限问题,这是个比较头痛的问题。
    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;