zoukankan      html  css  js  c++  java
  • 文件传输系统设计文档

    文件传输系统方案

    一:界面框架

           采用单文档多视图结构,即目前RMS等客户端界面框架。提供以下视图:

    1. 上传中

    该视图提供元素:开始,暂停,删除

    1. 下载中
    2. 该视图提供元素:开始,暂停,删除
    3. 已上传

    该视图提供元素:清空

    1. 已下载

    该视图提供元素:清空

     

    二:文件传输协议

           为了增加传输可靠性,支持断点续传等功能,将采用客户端与服务器之间逐包确认的方式,客户端记录下当前各上传中或下载中文件的读写位置,便于再次发送或请求。

    客户端和服务器之间交互的数据格式定义:

    message HpSvrPathBean{

       optional bytes     ORGID =  1;

       optional bytes     SMCLASS =    2;

       optional bytes     BGCLASS  = 3;

       optional bytes     BIZID = 4;

    }

     

    message HpSvrListBean{

       optional int32 FILESIZE            =1;    //文件大小

        optional bytes CRDID                =2;    //业务流水

        optional bytes FILENAME             =3;    //文件名称

        optional bytes CREATEUSER           =4;    //文件上传人

        optional bytes CREATEDATE           =5;    //文件上传时间

    }

     

    message HpFileBean{

     

       optional bytes           FILEID      = 1;        // 文件ID,唯一标示一个文件,客户端生成。

       optional HpSvrPathBean      SVRPATH         = 2;            // 目的文件夹目录

       optional bytes           LOCALPATH   = 3;        // 本地文件目录

       optional uint64          FILESIZE    = 4;        // 文件大小

       optional uint64          RDPTR       = 5 [default = 0];       // 文件的读开始指针位置

       optional uint64          WTPTR       = 6 [default = 0];       // 文件写开始指针位置

       optional uint64          DONESIZE    = 7;        // 已完成大小

       optional uint32          DOINGSIZE   = 8[default = 1024];        // 本次操作大小

       optional bytes           BEGINTIME   = 9;        // 开始时间

       optional bytes           ENDTIME         = 10;       // 结束时间

       optional uint32          STATE       = 11[default = 0];       // 当前状态 0 操作中,1 完成,-1 暂停

       optional bytes           USERID      = 12;       // 操作用户账户

       optional bytes           CLIENTIP    = 13;       // 客户端IP

       repeated int32          FILEDATA   = 14;       // 文件内容

       optional uint32          NEEDREFRESH     = 15[default = 0];       // 上传完成后是否需要刷新已上传列表 1需要,0不需要

       optional uint32          NEEDTIP         = 16[default = 1];       // 设置是否需要弹气泡提示 1需要,0 不需要

    }

     

    // 业务系统附件下载消息定义

    message HpDownFileMsg {

      //请求体定义

       message Request {

          repeated HpFileBean   DOWNFILE = 1;

     

       }

      //响应体定义

       message Response {

          optional bytes     FILEID      = 1;        // 文件ID,唯一标示一个文件,客户端生成。

          optional uint64    FILESIZE    = 2;

          optional uint32    PROCSTATE   = 3[default = 0];        // 处理状态 0 下载中 ,1 已完成

          optional uint64    WTPTR       = 4;        // 客户端开始写指针的位置

          optional bytes    FILEDATA   = 5;        // 文件内容

     

      }

       optional Request   REQUEST = 1;

      optional Response RESPONSE = 2;

    }

     

    // 业务系统附件上传消息定义

    message HpUpFileMsg {

      //请求体定义

       message Request {

          repeated HpFileBean   UPFILE      = 1;        // 文件信息

       }

      //响应体定义

       message Response {

     

          optional bytes     FILEID      = 1;        // 文件ID,唯一标示一个文件,客户端生成。

          optional uint64    RDPTR       = 2;        // 服务器返回的客户端代上传文件的读指针偏移量

          optional uint32    PROCSTATE   = 3;        // 处理状态 1 成功,0 上传中

          optional uint32    NEEDREFRESH     = 4;        // 客户端收到后是否需要刷新服务器文件列表

      }

       optional Request   REQUEST = 1;

      optional Response RESPONSE = 2;

    }

     

    // 业务系统附件列表查看消息定义

    message HpFileListMsg {

      //请求体定义

       message Request {

          optional HpSvrPathBean   SVRPATH = 1; // 服务器路径信息

          optional uint32    FUNCID   = 2;  // 功能ID

          optional uint32    ISAPPLY     = 3;  // 是否为受理

          optional uint32    ISOTHER     = 4;  // 是否为其他环节

     

      }

      //响应体定义

       message Response {

          repeated HpSvrListBean FILELIST = 1;    //文件大小

      }

       optional Request   REQUEST = 1;

      optional Response RESPONSE = 2;

    }

    // 业务系统附件列表查看消息定义

    message HpFileDelMsg {

      //请求体定义

       message Request {

          optional HpSvrPathBean      SVRPATH     = 1;     // 目的文件夹目录

          repeated bytes     FILENAMES       = 2;

          optional uint32    FUNCID          = 3;     // 业务流水

          optional uint32    ISCORP          = 4;     //

     

      }

      //响应体定义

       message Response {

          optional int32 RESULT          =1;    // 1:成功,0:失败

      }

       optional Request   REQUEST = 1;

      optional Response RESPONSE = 2;

    }

    // 附件同步

    message  SyncAttachMsg{

        message Request{

            optional bytes      ORGID          = 1; // 管理公司ID

            optional bytes      BIGID         = 2; // 附件大类ID

            optional bytes      SMLID          = 3; // 附件小类ID

            optional bytes      CUSTID        = 4; // 客户ID

            optional bytes      CRDID         = 5; // 受理流水号

        }

     

        message Response{

            optional uint32     CODE        = 1; // 响应消息bean

        }

     

        optional Request   REQUEST     = 1;

        optional Response  RESPONSE    = 2;

    }

    三:本地文件数据格式定义

           已上传,已下载文件列表需保存为本地文件,格式为XML格式,定义如下:

    <?xml version="1.0" encoding="UTF-8" ?>

    <HPFILE xmlns="http://www.hpce.cn/HPFILE/1.0">

        <FileList>

            <File>

                <FileID>20151225151255782</FileID>

                <LocalPath>D:projectͼƬ1.jpg</LocalPath>

                <SvrPath>30/35010001/3501/715/</SvrPath>

                <WtPtr>31220</WtPtr>

                <RdPtr>31220</RdPtr>

                <FileSize>31220</FileSize>

                <DoneSize>0</DoneSize>

                <DoingSize>1024</DoingSize>

                <BeginTime>2015-12-25 15:12:55</BeginTime>

                <EndTime>2015-12-25 15:12:55</EndTime>

                <State>1</State>

            </File>

         

        </FileList>

    </HPFILE>

    四:系统设计图

    4.1 系统逻辑架构图

     

    4.2传输客户端类图

     

    4.3 上传业务流程图

     

    4.4 下载业务流程图

     

  • 相关阅读:
    python基础-sort和sorted
    python基础-网络基础知识和网络编程
    python基础05--字符串常用方法
    python基础14-内置函数和匿名函数
    python基础13-迭代器和生成器
    python基础10——函数初识
    python基础09_文件操作
    python基础03——数据类型string
    python基础02—raw_input()和input()的区别
    R语言-变量聚类
  • 原文地址:https://www.cnblogs.com/spplus/p/5077745.html
Copyright © 2011-2022 走看看