zoukankan      html  css  js  c++  java
  • 文件服务器和web应用分离的思路(转)

    目前在做一个应用,有不同的客户端,包括web应用的客户端,其他的客户端,都要访问我的文件服务器,通过文件服务程序提供的服务来访问文件,但是对文件管理服务器这个应用,没有什么思路,请大家给点思路,谢谢: 
    大概的架构图(为了不让大家误解我的需求,重新画了个图)如下: 


    系统涉及到三个部分: 
        1、客户端:包括标准的java web应用,主要完成终端用户的上传下载文件,及其一些功能,用户上传或下载的文件,都保存在【文件服务器】上,而且不能直接访问【文件服务器】,必须通过【文件管理服务】应用提供的api来间接访问。(有点拗口)

        2、【文件管理服务】程序,也是一个独立的应用,可以是web服务器,也可以是后台运行的程序,该应用主要功能就是管理【文件服务器】上的文件,如上传,下载,分类管理等,对外提供相关API供客户端访问【文件服务器】里的文件,同时对客户端进行权限校验,比如注册用户才能访问【文件服务器】,非注册用户不能访问等;还其他相关功能;,有可能以后会有集群 
        
        3、【文件服务器】具体存放文件的地方了,有可能以后会有集群。 

    说说我的要求: 

         客户端得所有操作文件必须通过【文件管理服务】程序提供的API来操作【文件服务器】上的文件,而且必须有相应的权限,而且客户端可以看到自己上传的所有文件的相关信息,包括其他非自己上传的信息(根据权限显示),就像本地一样。 

    现在是各个系统间的通信协议怎么处理,主要是【文件管理服务】程序与客户端的通信,http协议或则socket?或者其他方式?【文件管理服务】程序应该怎么设计比较合理,谢谢。 

    2011-05-08 补充说明**************************************************************** 
    补充说明一些客户端及服务器端得一些功能划分,担心大家理解错误: 

    【客户端】,只是对应于【文件管理服务】系统<也可理解为一个服务,一个独立的应用程序>且仅仅涉及到文件操作的时候而言的,【客户端】实际上是一个完整的应用程序,比如一个运行在手机上的程序;也可以是一个网站(或其他的web应用系统,假定称为网站吧),该网站中,有供终端用户使用的portal及用户信息管理模块等,比如像javaeye的论坛,也有供网站管理员或系统业务员等使用的后端管理模块,他们只有在涉及到文件相关的上传,下载、删除等操作的时候,才需要和【文件管理服务】程序通讯,需要传入一些必要的数据,比如权限、用户信息等,只有校验通过后才能对后,才能通过【文件管理服务】程序提供的API间接操作最终保存在【文件服务器】上的文件。 

    各个【客户端(或网站)】之间都是独立在不同的服务器上跑的,有自己的管理系统,比如数据库等; 
    【文件管理服务】程序也是一个独立的应用,在独立的一台或多台机器上跑; 
    【文件服务器】也是独立一台或多台机器,保存所有的文件; 
    考虑到客户端的用户以后可能会很多,所以将三部分都作为独立的应用来部署,一是彼此间不影响,而是当某些地方有压力时,可以方便扩展,如集群,比如如果【文件管理服务】的压力大,可以对【文件管理服务】部分进行集群;如果【文件服务器】压力大,同样也可以单独对【文件服务器】进行集群管理。 

    当然三部分之间要确保用户的文件的关系理清楚,而且要方便查找及方便操作。 

    --------------补充,还有就是文件服务器上文件的备份和恢复问题,这些都没有思路

    原文地址:http://blog.itpub.net/29196873/viewspace-1132507/

  • 相关阅读:
    Spring不再推荐使用字段注入
    谈谈Web安全色(web safe color)
    mybatis写mapper文件注意事项
    GitHub下载加速
    ssm项目 ajax发起post请求,控制台一直404
    第一篇随笔
    C语言编程练习64:还是畅通工程
    C语言编程练习63:完数
    C语言编程练习62:汉诺塔3
    C语言编程练习61:Tempter of the bone
  • 原文地址:https://www.cnblogs.com/rainy-shurun/p/5407040.html
Copyright © 2011-2022 走看看