开发公司内部管理系统,综合考虑各方面因素,最后放弃B/S,
采用C/S分布式开发。
数据库服务器单独,放总部。
分公司通过CLIENT,通过中间层访问数据库。
但是我有疑问,
中间层比如我用WEB SERVICE,
我如何做部署?
WEB SERVICE服务器我是放分公司本地好还是放总部好?
WEB SERVICE除了作为一个通用访问数据库函数,
具体还起到哪些具体作用?比如缓存怎么缓的?性能上怎么提高的?谢谢!!!

解决方案 »

  1.   

    这个比较严重,sevice当然放总部,分公司有多个,你只要对服务器端做一次部署都可用嘛
    而且这个方式可以慎重,搞不好,性能,安全两个都没了,比较难控制,b/s多好
      

  2.   

    webservice当时是发在总部的了!部署在总部服务器IIS上!
    现在不是都在网bs上转吗,咋弄成cs了!
    你可以学习下wcf,这是专门针对与分布式系统的!
      

  3.   

    B/S的确是好,但是我们业务很复杂,用户对于操作性要求非常强大,当然B/S也可以做到,但是开发成本太高了。
      

  4.   

    我们之前系统就这么做的
    而且客户端还是delphi开发的ws放服务器端,只提供对一些 数据库封装操作 (比如一张数据表指定数据的下载 上传操作)
    和用户校验等
    不适用ssl的话,ws基本上就是透明的,如果你打算提供直接的数据库操作类 比如sqlhelper的ws功能,至少把sql语句进行加密后作为参数使用吧
    ws本身安全机制采用自定义SoapHeader和自己实现的用户令牌(类似Cookie Based Session)来实现的性能方面由于应用服务器只提供函数级应用,比一般的web服务器要好些
    页面级缓存之类基本上是不需要用到的,数据缓存就按照asp.net处理就行  不过我们当时没用到
    另外,根据cpu核数配置web园数量,对性能提升比较大就这些了,希望有用
      

  5.   

    我们当时也是 客户端的操作太多
    所以只把数据交互的步骤用 ws来做现在已经转向bs了  花了一年多时间才改过来
      

  6.   

    web services提供了三个属性   
    Namespace:此属性的值包含 XML Web Service的默认命名空间。XML命名空间提供了一种在XML文档中创建名称的方法,该名称可由统一资源标识符(URI)标识。如果不指定命名空间,则使用默认命名空间 http://tempuri.org/
        Name:此属性的值包含XML Web Service的名称。在默认情况下,该值是实现XML Web Service的类的名称。
        Description:此属性的值包含描述性消息,此消息将在XML Web Service的说明文件(例如服务说明和服务帮助页)生成后显示给XML Web Service的潜在用户这个也算web services的作用吧
      

  7.   

    确实 b/s性能的确比c/s好 但是相对来说成本高很多    其实LZ说的数据库放在总部还是分公司好这个问题这个要据情况而定
      

  8.   

    如果分公司和总部处于局域网,那怎么都好说,如果不是,webservice是必然的选择。上面都说了不少,至于安全性么,是必然要考虑的,比如说限制IP或者验证机制等等,我之前用的比较多的是动态口令的方式,原理就是提供一个初始化的口令,然后每次访问后都会生成一个新的口令给客户端,然后客户端下次调用时提供的口令不符合就拒绝。这个其实比较简单,但是也会存在局限性,例如如果知道初始密码以后就畅行无阻了,不过还好。因为不可能就这一个参数,另外的参数你可以传递复杂的内容,例如自定义的xml或者加密文件包,都可以
      

  9.   

    或者限制客户端mac或者绑定cpu一类更BT的方式……
      

  10.   


    说过了啊,B/S我也知道好啊,但是客户端操作要求很高。用B/S很难得到用户的使用要求。
    用户第一,用B/S还是C/S我们是做过详细调研才得出的结论,所以也不用告诉我B/S好,我也知道的。
      

  11.   


    只要是SOA,它必定是将服务器组放在一个相对隐蔽的位置,然后所有其它子系统都是访问这个系统的应用程序服务,而不是什么关系数据库。几乎可以说,在跨路由器的范围内,不考虑c/s数据库客户端。
      

  12.   

    如果你要用WEB SERVICE作为通用的数据查询,还不如直接使用SQLSERVER的XML查询,它可以通过HTTP访问。
    可以考虑使用邮件系统作为通信渠道,这样你们总公司和分公司可以物理上不直接相连,只要都可以收发邮件即可,可大大增加系统安全性,详细方案,请参考这里
      

  13.   

    web service  放在总部,不但可以处理访问数据库,还可以处理需要部署在服务器的其它逻辑。
      

  14.   


    很认真的读了你的话,我觉得可能我还是没表达清楚。
    现状是这样:集团有20个分公司,总部在上海,总部人最多,其他地方的分公司人相对较少。
    现在需要规划新系统,做数据统一,操作统一,管理统一。
    所以最终想用C#开发WINFORM程序来实现。至于为啥选择WINFORM不选择WEBFORM这个我就不啰嗦了,和公司业务有关系。
    所以我想做过的朋友指点下,这种怎么架构?能够实现访问效率比较好?
      

  15.   

    错误,中间层肯定不能用webservice, 要用remoting,webservice在频繁的增删改查,效率超慢,用微软的remting就可以解决这个问题,基本上不慢,安全和性能全部解决了,