我按照《delphi6抢先研究》做了一个可以连接数据的Webservice,已经成功。但是我不知道这个webservice哪里算是中间层--可以进行企业逻辑,平衡负载?是不是在哪个类里?还有,为什么客户端需要用midas.dll?

解决方案 »

  1.   

    大侠呢?
    webservice里的数据模块为一个Adodataset,一个Datasetprovider,
    客户端一个SoapConnection,一个Clientdataset。
    应该在哪里实现企业逻辑,访问负载的平衡?是不是在Datasetprovider的事件里?
      

  2.   

    从逻辑位置上来讲,WebService属于中间层组件。如果你做的系统足够复杂,你会发现正式的组件往往使用COM+/Corba/EJB等等来完成,WebService只是用于包装和胶连。至于客户端要使用Midas.dll,是因为你的程序使用了MIDAS技术,例如TClientDataset数据包移动等等,这个跟用不用WebService没有任何关系
      

  3.   

    你做的程序过于简单,因此还谈不上负载平衡问题,将对数据的操作从WebService移动到COM+组件中,然后使用WebService包装它,再作一些COM+的负载平衡设置,就可以实现简单的负载平衡。至于企业逻辑,用DataSetProvider来做,似乎不太合适,最好还是通过接口方法来实现。
      

  4.   

    delphi的负载平衡只是简单的负载平衡。最好利用webserivece包裹com+做。
    另外,客户端如果使用了clientdataset,需要uses midaslib这个单元静态编译midas.dll到你的exe里面,不需要单独分发
      

  5.   

    很好,受益匪浅。谁再来说说多层与webservice的区别和联系?
      

  6.   

    多层指的是程序的体系结构:存储层-逻辑层(中间层)-表现层;而WebService是一种具体的技术,可以用于组建多层系统