文件传输系统设计文档

文件传输系统方案

一:界面框架

       采用单文档多视图结构,即目前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 下载业务流程图

 

posted @ 2015-12-26 11:14  spplus  阅读(975)  评论(0编辑  收藏  举报