娄七明,傅锦伟
(红河学院工学院,蒙自661199)
基于.NET Remoting的文件传输系统设计和实现
娄七明,傅锦伟
(红河学院工学院,蒙自661199)
探讨.NET Remoting的基本工作原理,给出文件传输系统的基本结构模型,然后基于.NET Remoting和SQL Server 2000实现一个安全、高效、实用的文件传输及管理系统。
.NET Remoting;远程对象;文件传输系统;SQL Server 2000;委托
随着计算机技术、数据库技术和网络技术的不断发展和完善,各行政企事业单位都相继建立了基于网络的办公自动化系统。办公自动化系统中最重要的组成部分就是公文处理,因此如何实现文件在网络中安全准确快捷地传输是建立办公自动化系统的核心。
.NET Remoting提供了进程间通信的抽象方法,简化了分布大对象的访问,在绝大部分情况下,服务群序通过简单的设置就可以把本地对象变成可以为远程提供服务的远程对象而客户端则可以以类似访间本地对象的方法透明地访问远程对象。技术能够使位于不同计算机上的进程之间互相通信,并支持HTTP、TCP等多种协议,这为构建文件传输系统提供了一种非常实用的技术。
.NET Remoting是一种.NET框架中执行进程间通信的方式。由于.NET没有使用DCOM,因此.NET Remoting是DCOM的替代技术,它可以用于网络上不同计算机的基于CLR的不同应用程序间的通信,也可以用于相同计算机上基于CLR的不同应用程序间的通信。.NET是基于进程间通信的机制,进程间通信需要一个向其进程外调用方提供功能的服务器对象、一个在服务器对象上进行调用的客户端以及一个将调用从一端运送到另一端的传输机制。客户调用服务器对象的方法要么创建对象的完整副本,并移动到客户端,即值调用(MBV);要么向客户端进程传递一个服务器对象的引用,实现引用调用(MBR)。由于复制整个服务器对象将占用很大的带宽和浪费客户端的内存和CPU资源,而且在传输过程中存在很大的安全隐患,因此采用引用调用是.NET Remoting进程通信的核心处理过程。为便于处理,.NET Remoting向程序员提供了更为简单的处理过程,只需正确地配置客户端,使用new就可以创建远程对象的实例。.NET Remoting使用代理对象来产生服务器对象位于客户进程中的效果。其通信过程如图1所示。
图1.NET Remoting通信模式
当客户端创建远程对象的实例时,远程处理基础结构创建与远程对象完全相同的代理对象,并向客户端对象返回一个该代理对象的引用。当客户调用此方法时,远程处理系统接受调用,检查类型消息,并通过客户端通道将请求捆绑成消息传送到服务器通道。服务器侦听通道获取该请求并将其发送给服务器远程处理系统,服务器远程处理系统查找并调用服务器对象,进行相应的处理。然后此过程将反向进行,服务器远程处理系统将处理结果捆绑成消息发送到客户端通道,最后客户端远程处理系统通过代理将最终结果返回给客户对象。
文件传输系统的结构设计
文件传输系统采用三次结构进行设计,从逻辑上分为客户端文件收发服务层、服务器端文件接收层和数据库服务层。客户端文件收发服务层主要提供用户进行文件发送和接收的用户界面及其功能;服务器端文件接收层的主要功能是实现文件的接收,并把相关信息写入底层数据库;数据库服务层的功能是为整个文件系统提供数据库支持,保存文件发送的信息,以便能够实现文件的离线传输和下载。系统的基本结构如图2所示。
图2 文件传输系统的基本结构
文件传输系统数据库的主要功能是用于记录用户及用户之间发送文件的相关信息,主要涉及到用户信息表和文件传输信息表。用户信息表用于存放发送文件的用户信息,文件传输信息表用于存放用户传输文件的相关信息。这两个表的基本结构如下。
表1 用户信息表
表2 文件传输信息表
3.1定义用于文件传输的远程对象类
为实现不同应用程序域之间的文件传输需要定义继承MarshalByRefObject的远程对象类NetFileTransfer。
其中,MessageHandler是如下的一个委托:
3.2客户端的实现
(1)定义客户端组件
定义客户端组件NetFileTransferClient,用于实现与服务器端的连接,获得远程对象引用,并实现文件的发送。该组件的主要成员如下:
(2)客户端界面设计
设计如图3所示的客户端窗口frmClient,主要代码如下:
图3 客户端窗口frmClient
3.3服务器端的实现
(1)定义服务端组件
定义服务器端组件NetFileTransferServer,用于实现远程对象的注册。该组件的主要成员如下:
(2)服务器端界面设计
设计如图4所示的服务器端窗口frmServer,主要代码如下:
图4 服务器端窗口frmServer
使用本文所述文件传输方法构建文件管理系统简单、高效。系统能够很好地实现局域网内文件的安全传输,并且提高了文件传输的速度,能够方便地查询及管理文件。目前,本文中开发的文件传输系统被集成于西畴中心学校教务系统中,取得了良好的应用效果。
[1]Ingo Rammer,Mario Szpuszta Advanced.NET Remoting(Second Edition)[M].Berkely:Apress 2005.
[2]娄七明,张红伟,许海成.开放式机房智能计费系统设计和实现[J].计算机系统应用,2010,19(6):119-122.
[3]付清山,史金飞.应用.NET Remoting的文件传输系统实现[J].现代工程制造,2006,2:14-16.
[4]刘丽丽,庄成三,周艳芳.基于XML与.NET Remoting的数据传输与加载[J].计算机与现代化,2004,5:81-83.
[5]左娟,张毅..NET Remoting构建Web服务在远程数据传输上的应用研究[J].计算机系统应用研究,2009,2:87-91.作者简介:
娄七明,云南石林人,男,研究方向为数据库应用系统开发
傅锦伟,云南建水人,男,研究方向为信息安全
Design and Implement of a File Transfer System Based.NET Remoting
LOU Qi-ming,FU Jin-wei
(College of Engineering,Honghe University,Mengzi661199)
Discusses the working principles of.NET Remoting,gives a basic structure model for file transfer system based on.NET Remoting,and gives the implement of a file transfer and management system using.NET Remoting and SQL Server,which is secure,efficient and practical.
.NET Remoting;Remote Object;File Transfer System;SQL Server 2000;Delegate
1007-1423(2016)25-0075-05DOI:10.3969/j.issn.1007-1423.2016.25.017
2016-06-03
2016-08-26