小弟刚刚接触web service,有几个个问题不明白:
1、使用C/S模式的时候,如果客户端过多,光connection就可能造成数据库服务器资源的浪费,现在使用 web service,如何克服这个问题呢?2、现在我知道应用层跟客户端是以XML文件传递数据的,应用层跟数据库还是通过connection连接,那么是不是一个客户请求就需要创建一个connection呢?应用层跟数据库之间的connection是不是可以让N个请求共享呢?

解决方案 »

  1.   

    我来具体谈谈吧
     问题1,首先需要明确一个概念 Web service 不是一种架构,更确切的说是一种多层应用通 
            讯机制的规范。所以你的问题其实就是多层应用中多客户端如何共享数据库连接的问
            题。其实在多层应用中,客户端是通过中间层与数据库连接的。想象一下,很多客户
            端连接到中间层,再由中间层去连接数据库服务器----这样是不是就克服了多数据库
            连接的问题?
     问题2, 你说的应用层,也就是上面说的中间层,一方面它的确是通过soap封包,以xml的格
            式与客户端通讯,但这与它怎么去连接后台数据库没有直接的关系。具体是一个用
            户建立一个数据库连接(Connection),还是多用户共享一个或者是用 连接pooling取
            决你自已的设计-----这几种模式在delphi下都是支持的。
      

  2.   

    谢谢楼上大侠的回答,不胜感激,这两天我也一直在看相关的资料。我按照李维《Delphi6/Kylix2 SOAP/WebService程序设计篇》11章的例子做了一下,在部署COM+的时候遇到一个问题,请各位大侠看看下面的这个帖子:
    http://expert.csdn.net/Expert/topic/1883/1883037.xml?temp=8.381289E-02谢谢了
      

  3.   

    你想在工程中用WebService吗?不要,暂时不要。如果你的机器能连到外网地话,就千万不要了。WebService做一下例子,某些小的程序中用一用倒还可以,在一个稳定性安全性要求有点高的系统中就不合适了。你的程序需要跨平台吗?如果是就勉强用一用关于你的第一个问题:你的每一个客户端都要直接连接到数据库吗?如果真是的那就不好了。算一算你的数据库最多支持多少个客户端连接就知道了。为什么不用中间层呢?所有客户端都连接到中间层上,也就是你的服务器上,就不会有那么多的问题了(数据库连接,客户安全,数据库安全,多客户端...)
      

  4.   

    楼上的大侠,首先谢谢你的回答。    我现在对Web Service产生兴趣的原因是对自己之前做的项目(C/S两层架构)产生了厌倦情绪,因为那样的架构是不适合企业级的应用。如果用客户端在IE里面,客户端很多复杂的操作来得完全没有现在的方便,那么我就想借用新兴的XML来解决这个问题,希望能有一个中间层负责对数据库的操作以及连接,客户端通过XML跟中间层交互数据,这样既可以利用目前客户端操作的方便性,又可以保持良好的扩展性,所以我想看看Web Service 。
        其实我是想实现如下的架构:
        客户端——>中间层(可能是一个网站)——>DB,其中客户端跟中间层之间通过XML联系,中间层与后端的数据库之间可以通过普通的Pooling方式共享connection。
        如果楼上的大侠对此有什么更好的建议,我真的很感激,希望给我一点方向,或者有什么成功的案例,希望指教。
      

  5.   

    好像web service的出现并不是为了克服C/S架构缺点而出现的两者好像不能在一起比。跨平台时或提供服务时(web service有标准,全计算机语言全平台)才会考滤这个问题