目前在做一个应用,有不同的客户端,包括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. 给你出道题:依次去掉离中心最远的M个点

    给定一个数组a[N],里面包含N个向量.现在要求进行删点操作,删点原则如下: 1.求出N个向量的中心O1,删除离O1最远的那个点 2.求出N-1个向量的中心O2,删除O2最远的那个点 ...... 重 ...

  2. 将Log4J的日志内容发送到agent的source

    项目中使用log4j打印的内容同时传输到flume 1.flume端 flume的agent配置内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a1.sour ...

  3. C# 中一些类关系的判定方法 C#中关于增强类功能的几种方式 Asp.Net Core 轻松学-多线程之取消令牌

    1.  IsAssignableFrom实例方法 判断一个类或者接口是否继承自另一个指定的类或者接口. public interface IAnimal { } public interface ID ...

  4. PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

    2014-06-01 Created By BaoXinjian

  5. android自带theme

    在网上搜了一下,android自带theme如下: •android:theme="@android:style/Theme.Dialog"   将一个Activity显示为对话框 ...

  6. read/write函数与(非)阻塞I/O的概念

    一.read/write 函数 read函数从打开的设备或文件中读取数据. #include <unistd.h> ssize_t read(int fd, void *buf, size ...

  7. [转]玩转UltraEdit,UE常见快捷键操作

    编辑器Ultraedit快捷键说到编辑器的快捷键,VIM是无与伦比的.要反对,也得是带脚踏板的EmaCS.UE还是有差距的,很大差距.注意:VIM是开源.免费的,而UE则需要注册.UE是Windows ...

  8. docker基本概念2

    1 docker 容器,容器可以被创建.启动.停止.删除.暂停等 容器是镜像的一个运行实例,不同的是,他有额外的可写文件层.提供了独立的应用环境. 容器的实质是进程,与宿主机进程不同的是有自己的独立的 ...

  9. activiti 开发环境

    1 javadocs 的11 个package org.activiti.engine,包含7个Service接口.异常定义.流程引擎.流程引擎配置和一些运行时异常类. org.activiti.en ...

  10. 在Visual Studio中使用NuGet管理项目库

    NuGet是用来管理项目中引用的各个组件插件什么什么东西的东西,最近使用以后发现对于项目引用的维护非常方便. 暂时转一篇MSDN的文章,其实这个文章的内容就够了: http://msdn.micros ...