应用
! !"# $%&’()*+
的文件传输系统的实现
付清山,史金飞
(东南大学机械工程系,南京
"#$$%&
)
摘要 提出基于
! ’() *+,-./01
的文件传输系统的体系结构,并给出了实现文件传输的关键技术。
关键词:
! ’() *+,-./01
传输队列 分块传输 远程异步事件
中图分类号:
)23##
文献标识码:
4
文章编号:
#&5#
—
3#33
(
"$$&
)
$"
—
$$#6
—
$3
#,% -%./)0.()’* ’1 1)/% (-.*21%- 232(%& 4.2%5 ’* ! !"# $%&’()*+
78 9/01:;<0
,
=;/ >/0?+/
(
=-8.;+<:. @0/A+B:/.C
,
’<0D/01 "#$$%&
,
EF’
)
642(-.7( );+ <BG;/.+G.8B+ -? ?/H+ .B<0:?+B :C:.+, I<:+J -0 ! ’() *+,-./01 /: KB-K-:+J <0J :+A+B<H L+C .+G;0-H-1/+: <B+ KB-A/J+J !
8%3 9’-52
:
! ’() *+,-./01 )B<0:?+BMN8+8+ =+G./-0:M.B<0:?+B *+,-.+ <:C0G;B-0-8: +A+0.
#
系统设计
! ’() *+,-./01
是一个丰富的、可扩 展的框 架,它
使得处于不同
4KKO-,</0
、不同过程和不同机器上的
对象可以实现无缝通信。
! ’() *+,-./01
提供的编程
模型和运行时支持功能强大而又易于使用,能够实现
透明的交互操作
[
#
]
。
# P #
总体结构
根据企业现状 及上述 分析,系统 采用 基于
! ’()
*+,-./01
技术的三层分布式架构:表现层(
Q/07-B,
),业
务逻辑层及数据层(如图
#
所示)。
图
#
系统结构
其中,表现 层部署 在客户端,业务 逻 辑层 及数 据
层部署 在 服 务 器 上,表 现 层 和 业务 逻辑 层之 间 通过
! ’() *+,-./01
技术进行通讯。上传文件时,表现层读
取数据文件,通过
! ’() *+,-./01
调用远程服务程序
中的方法将文件写入数据库。下载文件时,由表现层
调用远程服务程序中的方法,从数据库中取得文件再
传输到客户端。对于 数据库 的读写及其他操 作都由
服务器端来完成,客户端无需安装数据库客户端,客
户端占用 资源少。与
7)2
及其他 一些文 件传输系统
不同,本系统将文件存放在数据库中,方便查询及管
理。下面以上 传文件 为例介绍基于该结构的 文件传
输系统的关键技术,文件下载与上传类似。
# P "
文件传输队列
当有很多客户端同时上传大文件时,有两种情况
会影响上传速度。
#
)由于宽带有限,可能会出现网络
堵塞,速度反而 更慢,甚至 出现死 机情况。
"
)数据 库
读写速度慢而 影响文 件上传速度。针对以上 两种情
况,可以采用排队的方式,一次允许一定数量的客户
端同时上传文件。另外,为解决数据库读写速度慢而
影响文 件 上 传 速 度 的问 题,可 以 先 让文 件写 入 缓存
中,然后再写入数据库。同时有很多客户端上传文件
是偶然事件,当同时上传的客户端比较少时或者没有
客户端上传文件时,缓存中的数据仍在写入数据库,
这时缓存便会降下来,所以占用缓存也不会过大。
# P 3
异步远程处理事件
! ’() *+,-./01
是
ER=
结构,服务端开一个端口监
听客户端调用 远程对 象的请求。当有很多客 户端同
时向服务端请求传输文件时,服务端将这些请求按先
后秩序存放在一个队列中,按先后顺序,每次允许一
定数量(根据网络环境不同而变化,当网络速度快时,
允许同时上传的客 户端的 数量就 多,反之则少)的客
户端上传文件,假如 允许同 时上传的数量为
!
,则在
队列中的前
!
个先上传,当有一个上传完之后,便把
它从队列中移除,然后产生一个事件通知第
! S #
个
开 始上传,然而,客户端并不会监听服务端的请求,客
6#
现代制造工程
"$$&
年第
"
期
企业信息化
万方数据