一道面试题 :请教delphi 中的多层(架构不是数据)连接方式及各有好处与不足??

解决方案 »

  1.   

    COM/COM+
    Advantages: 
    · Fastest DataSnap Protocol on Windows platform 
    · Can be used with other MS« and 3rd party COM applications 
    · Can be use as Transaction Server (MTS/COM+) objects 
    Disadvantages: 
    · Location Dependant 
    · DCOM has proven to be unstable 
    · Relies on Windows NT Domain 
    · Can be difficult to set up 
    · Cannot port to other environments, MS« only technology 
    When to use: 
    · Same machine application server and client application 
    · A department sized implementation of +- 30 connected clients 
    · When there is a need to integrate into other MS« or COM based applications 
    · Closed NT domains (i.e. No WAN or internet access required) 
    · Pure speed is at a premium 
    · Reliability is not at a premium 
    COM/COM+
    优点:
    Windows平台上最快的DataSnap协议
    可以和微软或第三方的COM应用程序一起使用
    可以像MTS/COM+的事务服务对象一样使用
    缺点:
    位置依赖
    DCOM被证明是不稳定的
    依赖Windows NT域
    安装困难
    不能用于其它的环境下,只是微软的技术
    什么时候用呢:
    客户端和服务器使用相同的机器
    大约30个客户端同时执行
    需要整合到其它基于微软或者基于COM的应用中去
    封闭的NT域(没有广域网或互联网的存取需要)
    速度非常宝贵(速度要求非常高)
    可靠性要求不是很高CORBA (VisiBroker)
    Advantages: 
    · Location Independent 
    · Automatic Fail-Over 
    · Automatic Load-Balancing, Scales easily 
    · Easy to set up 
    · Easily ported to other systems, CORBA is a standard 
    · Proven technology - reliable, robust 
    · Highly scalable 
    Disadvantages: 
    · Relies on TCP/IP Subnet 
    · Costly (?) (Outweighed by advantages!) 
    · Cannot "talk" to MS® software 
    When to use: 
    · Large implementations 
    · Reliability is at a premium 
    · Scalability (potential for growth) is required 
    · When implementation requires connectivity to: 
    o Non-Windows legacy systems 
    o state-of-the-art systems (EJB's and JSP's) 
    o heterogeneous external parties (clients and suppliers) CORBA (VisiBroker)
    优点:
    位置无关
    自动失败恢复
    自动负载平衡,易扩展
    易安装
    易分发到其它系统,CORBA是一个标准
    被证明是可靠的技术
    高扩展性
    缺点:
    依靠TCP/IP子网
    昂贵?(优点超过代价)
    不能和微软的软件交互
    什么时候用呢:
    大型应用
    对可靠性要求高
    必须有一定扩展性
    当应用需要和以下进行交互时:
        非Windows系列系统
        state-of-the-art systems (EJB's and JSP's)
        异构的外部部分(客户或者提供者)TCP/IP (Sockets)
    Advantages: 
    · Uses COM, can be used as add-on to existing COM implementations 
    · Easy to connect to over remote connections or the internet 
    · Easy to configure 
    · Can be secured (with interceptor) 
    Disadvantages: 
    · Dependant on COM 
    · Single-point-of-entry, busy socket will bottleneck! 
    · Slow, single socket must marshal all incoming calls. 
    · Does not work on DCOM (no remote COM objects) 
    · Location dependant 
    When to use: 
    · Remote or dial-up access is required 
    · Tiny implementations were COM is to difficult to configure 
    TCP/IP (Sockets)
    优点:
    用COM,可以被当作插件添加到已有的COM应用中
    方便的连接到远程连接或互联网中
    配置容易
    可以是安全的
    缺点:
    依靠COM
    单点接入,繁忙的端口将是瓶颈
    速度慢,单一的端口必须要分配给所有的进来的调用
    不在DCOM上运行(没有远程的COM对象)
    位置依赖
    什么时候用呢:
    需要远程或拨号存取数据
    小型的很难配置COM的应用HTTP (Web)
    Advantages: 
    · Uses COM, can be used as add-on to existing COM implementations 
    · Very easy to connect to over the internet 
    · Easy to configure 
    · Very secure (with IE to IIS SSL) 
    Disadvantages: 
    · Dependant on COM 
    · Single-point-of-entry, busy web-server will bottleneck! 
    · Slow, web-server must marshal all incoming calls. 
    · Does not work on DCOM (no remote COM objects) 
    · Web-site dependant 
    When to use: 
    · Pure Internet connection is required 
    · Tiny implementations that use the Internet as backbone. HTTP (Web)
    优点:
    用COM,可以被当作插件添加到已有的COM应用中
    方便的连接到远程连接或互联网中
    配置容易
    非常安全(用IE连接到IIS SSL)
    缺点:
    依靠COM
    单点接入,繁忙的WEB服务器将是瓶颈
    速度慢,WEB服务器必须要分配给所有的进来的调用
    不在DCOM上运行(没有远程的COM对象)
    依靠网站
    什么时候用呢:
    纯互联网接入
    小型的用互联网作为骨干的应用译自http://bdn.borland.com/article/0,1410,27860,00.html
      

  2.   

    问这种面试题,真没意思。
    知道题目答案的不一定就能都写好这方面的程序。
    能写好这方面程序的不一定能回答这个问题。
    比如某个人很了解COM/COM+,但不了解CORBA,但你能说他不了解三层,他不是高手吗?