目前在做一个应用,有不同的客户端,包括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/

文件服务器和web应用分离的思路(转)的更多相关文章

  1. 上传文件服务与web服务分离

    业务场景:1. 后端服务为java web应用,使用tomcat容器,多实例集群化部署.2. 前端使用nginx作为后端应用的反向代理. 业务需求:现在需要在java web应用端上传文件,同时还要能 ...

  2. 高级应用与部署 —— 主程序与web目录分离

    在网站部署中,考虑网站的安全行问题,可以将您的网站主程序与web目录分离,使主程序在web目录之外,从而提高网站的安全性. 分离方法 1.将phpcms v9中程序主框架目录phpcms移动至web目 ...

  3. AngularJS使用OData请求ASP.NET Web API资源的思路

    本篇整理AngularJS使用OData请求ASP.NET Web API资源的思路. 首先给ASP.NET Web API插上OData的翅膀,通过NuGet安装OData. 然后,给control ...

  4. web动静分离

    1 动态资源和静态资源 动态资源:多次访问页面,原代码会发生改变,比如jsp 静态资源:多次访问页面,原代码不发生改变,比如html,css 2 动静分离 将动态资源(jsp)放在tomcat服务器中 ...

  5. 上传文件服务器与web内容服务分离

    现在难点在:     1\单击表单提交按钮后,图片上传到图片服务器,文字内容上传web服务器数据库,这两个服务器分别在两个城市.     2\图片不能通过web服务器中转.     3\web服务器内 ...

  6. 转:Spine.JS+Rails重客户端Web应用技术选型思路:『风车』架构设计

    原文来自于:http://www.infoq.com/cn/articles/fengche-co-architecture 风车这个项目开始于 2011 年 11 月份,之前叫做 Pragmatic ...

  7. 谈一次java web系统的重构思路

    ——略谈Java web软件如何提供二次开发接口 接手公司的一个Java web软件产品,该软件采用传统的dwr框架.dwr框架相当于一个中间层,使得javascript能够识别Java类对象,进而能 ...

  8. 一个简单 Go Web MVC 框架实现思路

    需要的知识点 为了防止你的心里不适,需要以下知识点: Go 基本知识 Go 反射的深入理解 使用过框架 Go Web 服务器搭建 package main import ( "fmt&quo ...

  9. 浅谈响应式Web设计与实现思路

    是否还在为你的应用程序适配PC端,移动端,平板而苦苦思索呢,是否在寻找如何一套代码适配多终端方式呢,是否希望快速上手实现你的跨终端应用程序呢,是的话,那就看过来吧,本文阐述响应式UI设计相关理论基础, ...

随机推荐

  1. jsp引入js文件

    转自:http://blog.csdn.net/ppzhangj/article/details/7859628 1)引入的js文件出错, 检查方法:将Js的内容写在当前的页面的<script& ...

  2. HDUOJ-----1166敌兵布阵

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  3. 使用免费ip代理进行投票

    只要是投票系统,必然要限制一个用户投多张票. 如何限制呢?限制ip是最直观最简单的思路,可是代理池可以解决限制ip的情况. 如果投票页面前面加上一个验证码,那程序就会有点困难了. 有些投票使用微信号, ...

  4. RHEL6.4 多路径绑定

    # rpm -qa | grep mapper #查看multipath是否安装 # lsmod | grep dm_multipath #查看multipath模块是否加载 # rpm -ivh | ...

  5. SQL批量删除用户表(先删除所有外键约束,再删除所有表)

    --批量删除用户表 --1.删除外键约束DECLARE c1 cursor for     select 'alter table ['+ object_name(parent_obj) + '] d ...

  6. VS2012开发cocos游戏遇到问题汇总

    1.编译成android时.须要改动jni/android.mk,每一个cpp都改动一下太麻烦,能够让他自己主动识别. # 遍历文件夹及子文件夹的函数 define walk $(wildcard $ ...

  7. 使用matlab处理图像的基础知识

    MATLAB基本函数一 矩阵运算 1.基本算数运算(加减乘除) + -运算要求矩阵维数相同,例m*n * /运算,例A=B*C,B矩阵是m*n矩阵,B是n*p矩阵,则A是m*p矩阵 A/B相当于A*i ...

  8. mysql-5.7 innodb 的并行任务调度详解

    一.innodb并行任务调度是什么: 这里要“考古”一下了,不然问题说不清楚.上大学的时候老师和我们说最初的计算机只有一个核心,并且一次也只能做一件事, 如果你有两件事要用到计算机,在第一件事没有做完 ...

  9. scala-trait实现AOP编程

    步骤1:声明表示基本动作方法的模块Taction //声明表示基本动作方法的模块Taction trait TAction { def doAction } 步骤2:定义一下加入了前置处理和后置处理的 ...

  10. jquery实现仿京东侧边栏

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...