发布企业信息

基于多线程机制的FTP软件的设计和实现

作者:  信息来源:电子市场  2007-6-22

字体大小:  网友评论  进入论坛  

摘 要:提供了一种操作票专家系统升级的方法,对类似的系统具有一定的借鉴意义。并采用了多线程,缩短了系统的工作时间。FTP。系统安全1系统简介 在电力行业,操作票专家系统是一种智能的开票工具。...

摘  要:提供了一种操作票专家系统升级的方法,对类似的系统具有一定的借鉴意义。并采用了多线程,缩短了系统的工作时间。
    关键词多线程;FTP;系统安全

1系统简介
    在电力行业,操作票专家系统是一种智能的开票工具。它的出现,不仅节约了大量的人力和物力,而且提高了工作效率,是电力系统自动化的重要组成部分。由于历史的原因,大部分操作票专家系统目前都是单机版的,不能提供网络服务。随着电力系统自动化程度的提高,迫切需要具有一定网络操作能力的操作票专家系统。就现实情况来看,如果完全推翻原有系统结构,重新进行开发,不仅会造成大量资金的浪费,而且原先积累的经验也会受到一定的影响。这就需要另辟途径,在原有的系统条件下进行改造、升级,使其具有一定的网络处理能力。

    对于同一操作票专家系统,在不同终端上运行时需要的数据格式、文件类型都是相同的,这是进行系统网络改造的重要前提。可以设想,如果把一台终端上的运行数据(或文件)转输到另一台终端上运行,那么在另一台终端上就可以拥有前一终端曾有的工作状态,在该状态的情况下,系统就可以进行下一步工作。当然,要完成这样的操作,需要在网上传输一定的数据。
    传输数据的方式一般有两个[1],一个是用点对点的方式,用Socket直接传输数据。另一个是用FTP服务皿中转。前一种方式需要知道数据发送方和接收方的IP地址。由于环境条件所限,现场一般是通过电话线上网来与电业局进行联系的,所以IP是变化的,对需要明确知道双方IP,然后才能进行传输的Socket来说,实现起来是比较困难的。第二种方式则只需知道FTP服务器的IP即可,一台终端把数据发送到FTP服务器上,另一终端从服务器上下载该数据。系统结构如图1。

2系统分析及实现
    经过比较,系统采用了FTP方式。具体的实现原理是每个变电所作为一个FTP用户,凭借不同的用户名和密码登录服务器上的相应文件夹(预先由网络管理员建立)。需要数据传输的时候,变电所的终端就上传(下载)运行数据(文件)。经相互协作,电业局和其它变电所的终端通过FTP服务器的中转就具有了一定的网络能力,达到了原系统改造、升级的目的。在这个过程中,有几个问题需要考虑,在下面一一进行讨论。
2.1系统安全
   
系统安全主要指的是文件传输不发生冲突。由于需要传输的文件很多,当一个终端在上传文件时,另一个终端要下载这些文件,那么下载终端得到的很有可能就是一个不完整的文件。解决的办法是采用操作系统的信号灯机制。上传终端在传输开始时,在FTP服务器上先做一个正在传输的标记,传输完毕马上撤消该标记;下载终端在需要下载时,首先在文件夹中判断是否存在“正在传输”标记,如果有就表明文件传输发生了冲突,并等待该标记消失之后再下载文件。同样,下载的过程也做一个类似的标记,防止上传终端的覆盖。对FTP服务来讲,最基本的操作就是上传或下载,所以这样的标记可以是一个空的文件夹,也可以是一个文件。最好采用文件方式,因为在文件中可以携带一些信息,使得两个终端在发生冲突时可以建立一种协商机制,有助于软件的升级。通常下载过程的做法是把原有的文件进行覆盖,这样做比较方便,但却有安全隐患存在于工作过程中。如果在传输中出错的话,比如网络突然掉线,虽然也可以启用报警机制并一直等到网络开通后再重传,但在下一次正确传输完成之前,原有的文件结构已经被部分改变了,这段时间内系统就不能正常工作,所以必须采用备份机制。先下载所有文件到一个备份文件夹,等整个下载过程结束后,再进行一对一的覆盖,这样做的唯一缺点就是浪费了一定的硬盘空间。可以通过动态的创建文件夹,并在结束后马上删除它来加以完善。
2.2系统数据的处理
   
系统工作所需要的数据主要有两种,一种是变电所、集控站进行传输所需要的参数,包括FTP服务器的登录、本地名称、文件的位置等数据。另一种是与时间有关的数据,比如时间周期(主要用来自动传输)。这些系统数据的处理一般有三种方法:专业的数据库、文本文件和注册表。专业的数据库比如SQL Server、Sybase、Oracle一般适用于数据量比较大、访问频繁且须优化的情况;文本文件的缺点在于安全性能不高;只有注册表比较适合这种情况:数据量少且需要较高的安全性。
    在注册表中,系统数据的组织采用的是逻辑上是层次的、物理上是平等的结构(如图2)。

    在系统主键之下一共有两类键:一类以集控站、变电所、周期命名,另一类以各个变电所的名称命名。集控站主键下主要有集控站的名称、有几个子站等内容,变电所主键下主要有各个变电所名称、参数等内容,同时也注明了它的上级集控站主键所在位置,周期键下面的内容是关于定期传输的。其余以各个变电所命名的主键下的内容是传输所需的具体数据,比如IP、传输次数、名称等等,当然也包含了与集控站等逻辑上级的关系。这样从物理上看都是系统主键的子键,而从逻辑上看就是以电业局为根、集控站为分支、变电所为叶子的树,采用这样的结构便于搜索相应的数据,提高了系统反应速度。
2.3多线程方式
   
线程是操作系统的调度单元,可以相对独立的完成一定的任务。采用多线程一般主要有两个目的,一个是为了应付各种并发性问题,一个是为了加快任务处理的制度。二者从表面上是类似的,但实际上前者是被动的,后者是主动的。对于本系统来说,如果发现服务器上有不同变电所的文件已经被更新而且可以下载,那么我们采用一个用户一个线程的方法,无疑会极大的加快数据的传输速度。
2.4友好的界面
   
用户都希望所操作的界面友好一些。本系统提供的是一个托盘中的图标和主界面相结合的应用程序,通过右击托盘就可弹出菜单,主界面的出现与否可以根据菜单进行任意的选择,运行后由于进行了自注册,所以系统实现了自启动,文件的上传和下载也实现了定时自动传输。当然,也可以手工进行系统的启动和文件的传输。另外,通过改变托盘的颜色,也可让用户了解运行的大致情况。如托盘颜色为绿时,表示正常且没有传输,为深蓝时表示正在进行传输,而为红色则表示遇到了错误。主要界面如图3所示。

3关键技术开发
3.1系统的自启动
    Windows操作系统在启动时根据注册表中的数据进行各种软件、硬件的配置,软件的启动主要是通过注册表HKEYLOCALMACHINE\Software\Microsoft\Windows\CurrentVersionRun键下的值来驱动相应的程序的,如在该键下有一值为“C:\Program Files\Internet Explore.exe”,则计算机启动时就自动的打开IE浏览器。所以要实现自启动,只要把应用程序的位置写在这里就可以了。代码如下[2]:

3.2托盘中图标的实现
   
在托盘中添加图标,既不占界面空间,又能给用户提供一个随时进入的机会,是一个非常好的界面工具。主要代码如下:


3.3文件的传输
   
Ftp下的文件传输,只能是传输单一的文件,而不能传输一个文件夹,所以需要遍历整个文件夹才能完整的传输它。由于文件夹是一种树型结构,所以采用树的遍历算法,遍历到文件夹的底层时,就开始真正的文件传输。当然,在真正的传输开始之前,需要在FTP服务器上同步创建相应的文件夹。
4结束语
    本系统的开发环境是VC6.0,并成功的用于白山电业局的变电操作票系统中。同时本系统具有一定的通用性,是一个完整的FTP客户端传输代理系统。

参考文献

1]雷斌.Visual C++6.0网络编程技术[M].人民邮电出版社,2000.
2]Jeffrey Richter. Advanced Windows Third Edition[M]. Microsoft Press,199
7.
3]黄维通.Visual C++面向对象与可视化程序设计[M].清华大学出版社,2000.

分页:
Google


推荐图文

广告

电子热点图文

  • 新型太阳能充电器的研究与设计
  • 基于EDA的交通灯控制系统
  • 电子元件基础知识--半导体三极管
  • PID控制中如何整定PID参数

电子风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》