(计算机科学与技术专业论文)基于ace的数据传输系统设计与实现.pdf_第1页
(计算机科学与技术专业论文)基于ace的数据传输系统设计与实现.pdf_第2页
(计算机科学与技术专业论文)基于ace的数据传输系统设计与实现.pdf_第3页
(计算机科学与技术专业论文)基于ace的数据传输系统设计与实现.pdf_第4页
(计算机科学与技术专业论文)基于ace的数据传输系统设计与实现.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机科学与技术专业论文)基于ace的数据传输系统设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:苍他耙本人签名:釜垫整日期:兰! ! ! :皇:! ! 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期问论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 非保密论文注释:本学位论文不属于保密范围,适用本授权书。 b 本人签名:冱龇 i e :i 期: 趁丝:乏! 鱼 导师签名:日期:竺:! ! :i :! ! 基于a c e 的数据传输系统设计与实现 摘要 在网络环境下数据传输发挥着巨大优越性同时也对软件体系结 构和开发方法带来了新的挑战。一方面,通信软件的开发越来越复杂、 维护和移植越来成本越高;另一方面,软件的应用需求越来越注重便 于维护、移植和可负担等特性。现在流行的数据传输软件已经很多, 文件传输协议也多种多样,进而对应有很多的文件传输工具,每种类 型的软件都有自己的突出特点。但在实际应用中,某些场合可能需要 某些协议的一部分功能,而不是其全部功能。 本文利用白适应通信环境作为系统开发平台,致力于设计一个具 有高效性以及良好的扩展性数据传输系统的框架模型。该模型将各种 操作通过精简、优化、整合、重组后实现,以打破条块分割的制约, 以提供更加便捷的服务。设计数据传输应用程序时充分地考虑到高效 性、健壮性、可扩展性和可配置性等重要因素。在设计和实现阶段合 理运用各种的设计模式,使系统具有高度模块化,易扩展,灵活高效 等优点。在本文中,介绍了a c e 框架的模型、系统层次结构以及为 方便网络编程而设计的框架模式。利用已有框架提供的便利,并且针 对数据传输系统的操作流程与特性,设计出一个适合数据传输的模 型。 论文最后,使用该模型实现了一个基本的f t p 服务器功能,设 计并实现了x x x x 卫星应用系统地面通信分系统数据转发软件。 关键词:a c ef t p 协议设计模式事件分发模型 l o to fp o p u l a rd a t at r a n s f e rs o f t w a r ew i t hd a t at r a n s f e rp r o t o c o l ,t h u s c o r r e s p o n d st od i v e r s es o f t w a r et o o l s b u tm o s tt i m ei na p p l i c a t i o n s ,i t 二 o n l yn e e ds o m ep a r to ft h o s es o f t w a r ei n s t e a do ft h ew h o l eo n e i nt h i s p a p e r , a d a p t i v ec o m m u n i c a t i o ne n v i r o n m e n ta ss y s t e m s d e v e l o p m e n tt o o l ,i sc o m m i t t e dt od e s i g n i n gam o d e lo fd a t at r a n s m i s s i o n s y s t e mw i t hh i g he f f i c i e n c ya n dg o o ds c a l a b i l i t y a l lk i n d so fo p e r a t i o n s a r ei m p l e m e n t e d b ys t r e a m l i n i n g ,o p t i m i z a t i o n ,i n t e g r a t i o n i tc a np r o v i d e m o r ec o n v e n i e n ts e r v i c e sa n db r e a kt h ec o n s t r a i n t so ff r a g m e n t a t i o n i n d e s i g n n i n g d a t at r a n s m i s s i o n ,i ti s i m p o r t a n tt o c o n s i d e r s c a l a b i l i t y , r o b u s t n e s s ,e f f i c i e n c ya n dc o n f i g u r a b i l i t ya n ds oo n b yu s i n gd e s i g n p a t t e r np r o p e r l yi nt h ed e s i g na n di m p l e m e n t a t i o np h a s e ,p r o g r a m e rc a n m a k et h es y s t e mh i g h l ym o d u l a r , e a s i l ye x t e n s i b l e ,f l e x i b l ea n de f f i c i e n t t h i s p a p e r d e s c r i b e s a d a p t i v e c o m m u n i c a t i o ne n v i r o n m e n t ( a c e ) f r a m e w o r k ,s y s t e mh i e r a r c h y , a n dp a t t e m st h a ta r ed e s i g n e dt of a c i l i t a t e n e t w o r kp r o g r a m m i n g b yt a k i n ga d v a n t a g eo ft h ee x i s t i n gf r a m e w o r k , a na p p r o p r i a t em o d e lc a nb ed e s i g n e dt os a t i s f i e dt h e s t e p sa n df e a t u r e so f d a t at r a n s m i s s i o n f i n a l l y , ab a s i cf t ps e r v e rf e a t u r e sa n dd a t ar e t r a n s m i s s i o nf u n c t i o n i nx x x xs a t e l l i t ea p p l i c a t i o n so fg r o u n dc o m m u n i c a t i o n s u b - s y s t e ma r e i m p l e m e n t e db yu s i n gt h i sm o d e l k e yw o r d s :a c e f t pp r o t o c o lp a t t e r nd e s i g n e v e n td i s t r i b u t i o nm o d e l 第一章 1 1 1 2 1 3 第二章 2 1 2 2 2 3 第三章 3 1 3 2 3 3 3 4 3 5 第四章 4 1 4 2 4 3 引言1 论文背景1 数据传输系统现状一2 研究内容3 a c e 相关技术5 a c e 结构功能5 2 1 1a c eo s 适配层6 2 1 2o s 接口的c + + 包装外观6 2 1 3 构架7 a c e 相关框架8 2 2 1a c er e a c t o r 8 2 2 2t a s kf r a m e w o r k 1o a c e 的特点1 1 数据传输系统的总体架构l3 系统需求:13 系统设计1 5 并发策略设计l7 用户数据操作设计18 用户命令操作设计2 0 数据传输系统的详细设计2 2 系统框架类设计2 2 4 1 1 事件分发类图一2 2 4 1 2 协议处理类图2 3 4 1 3 流程图2 6 管理用户模块设计一2 7 4 2 1管理用户功能2 7 4 2 2 管理用户命令设计2 9 4 2 3 管理用户操作流程。3 0 f t p 基本功能设计与实现3 l 4 3 1f t p 协议及相关理论3l 4 3 2 连接建立模块3 3 4 3 3f t p 命令处理模块3 4 4 3 4 文件传输3 7 4 3 5 超时操作4 l 4 3 6 流量控制模块4 2 4 4x x x x 卫星数据存储转发功能设计与实现4 5 4 4 1x x x x 卫星存储转发系统功能4 5 4 4 2x x x x 卫星存储转发系统设计4 5 4 4 3 功能模块设计4 8 第五章系统测试5 2 5 1基本功能测试5 2 5 2性能测试5 5 第六章总结与展望5 7 参考文献5 8 致谢5 9 攻读学位期间发表的学术论文目录6 0 1 1 论文背景 第一章引言 在网络环境下数据传输发挥着巨大优越性同时也对软件体系结构和开发方 法带来了新的挑战,与计算机硬件变得越来越小、越来越便宜的状况相比,数据 通信应用需求越来越广,开发维护越来越昂贵。一方面,通信软件的开发越来越 复杂、维护和移植越来成本越高;另一方面,软件的应用需求越来越便捷且更注 重便于维护、移植和可负担性。随着网络的普及,这一矛盾越来越突出。 现在流行的数据传输软件已经很多,文件传输协议也多种多样,进而对应的 有很多的文件传输工具,每种类型的软件都有自己的突出特点。但是实际应用中 可能需要某些协议的一部分功能,而没有需要全部的。因此将各种操作通过精简、 优化i 整合、重组,以打破时空间以及条块分割的制约,以提供更加便捷的服务。 设计网络化应用程序时首先要考虑的重要因素有高效性、健壮性、可扩展性和可 配置性等等。在设计和实现阶段合理运用各种的设计模式,使系统具有高度模块 化,易扩展,灵活高效等优点。 f t p 就是广泛使用的文件传输软件之一,它是i n t e m e t 上最早提供的服务之 一,目前仍被人们广泛的使用。但是随着应用的复杂化,单纯的f t p 功能体现 出局限性。为了开发出一个数据传输方面的软件,不得不重新开发包括f t p 功 能在内的全部功能,造成了不必要的重复开发。因此如果能够实现一个具备基本 功能的数据传输软件,并且可以方便的添加新的功能,就会为数据传输类型的系 统提供很大的便利,提高代码的复用性,以及系统的稳定性,并且可以加快系统 的开发时间。 a c e 自适配通信环境( a d a p t i v ec o m m u n i c a t i o ne n v i r o n m e n t ) 是一个面向对 象构架,它可以自由使用、开放源码。它包含许多用于并发通信软件的核心模式。 通过提供一组丰富的可复用c + + 包装外观和构架组件,a c e 可跨越多种平台完 成通用的通信软件任务,这些组件包括:事件多路分离和事件处理器分派、信号 处理、服务初始化、进程问通信、共享内存管理、消息路由、分布式服务动态( 重) 配置、并发执行和同步,等等。 北京邮l u 人学顾i :学位论文 计算机网络的普及,给软件开发人员带来了更大的挑战。硬件设备、软件环 境的多样性和异构性,大大提高网络程序设计的复杂性。应用程序做为软件功能 的最终实现者,应该尽可能少的去直接应对这所有的复杂性。 当前大多数网络应用程序的开发主要还是直接调用操作系统的a p is o c k e t 函数,通过这种低级和平台依赖性很高的a p i 函数进行编程会带来各种偶发复杂 性。通过s o c k e t 这种底层操作系统a p i 函数丌发网络应用程序时,需要完成许 多繁琐、易错和不可移植的工作,加大了开发的难度,同时也增加了丌发成本以 及出错的概率。主要问题是【1 1 : ( 1 ) 为重新实现进程、线程及通信机制而调整代码,是非常繁琐的事情。分开 代码、进行调整、再度开发容易出错。 ( 2 ) 在操作系统a p i 层面上编程增加了偶发的复杂性。确定编程中微妙的错 误之处并解决这些问题,所占用的丌发时间是不规则的,有时需要的时间可能会 非常的长。 ( 3 ) 成功的项目往往会需要移植到新的平台和平台版本。尽管有各种标准, 两种平台或版本仍然会有些不同,会造成系统的不可用或者潜在的危机,于是各 种复杂性又会再度出现。 对于数据传输系统,实际应用中已经有了很多产品,包括各种f t p 软件以 及p 2 p 软件。但是这些为一些通用产品,难以满足企业特殊应用监测的需求,而 要求这些公司对他们的产品针对企业进行二次丌发,难度较大,成本较高。同时 对于有些企业对于数据传输系统的业务要求复杂,并且增加业务的需求也很大。 若每次增加业务都需要做较大的改动则会减弱产品的可维护性,并且增加开发成 本以及周期。 成功的网络软件必须展现以下几个特征,同时,这也是网络通信软件发展的 趋势【2 】: ( 1 ) 可负担性:确保软件采购和演化的总开销在可控范围内。 ( 2 ) 可预测性和高效性:给对延迟敏感的实时应用提供的稳定可靠的定时机 制、给有高带宽要求的应用提供高性能服务,并在低带宽网路上提供可用性。 ( 3 ) 可伸缩性:使应用有能力同时处理大量服务请求,同时在请求比较少时 又不会消耗过多的资源。 ( 4 ) 可信性:在互连的系统中确保完整性、机密性和可用性。 ( 5 ) 可扩展性:支持连续的快速更新和扩展,从而满足新的需求和缩短产品 下线的周期。 2 北京邮l 【1 人学顾i j 学位论文 ( 6 ) 可靠性:确保应用健壮、容错。 ( 7 ) 灵活性:支持范围不断扩展的数据类型、传输流以及端对端的服务质量 需求。 ( 8 ) 可移植性:减少在一种操作系统平台和编译器上支持各种应用所需的工 作量。 1 3 研究内容 本文的主要工作是利用a c e 自适应通信环境作为开发工具,设计一个数据 传输系统的框架模型,该模型具有灵活性和可配置性。本文借助a c e 框架平台, 使所开发的程序可以方便地在不同系统之问移植。数据传输系统模型可以实现多 协议的分发,便利的协议处理和随时增加系统的特性等功能。使用该模型,可以 方便地开发出数据通信系统,并且能够较好的适应用户需求的变动性。 本文在设计出一个模型后,通过该模型实现一个具备基本功能的f t p 服务 器。最后实现x x x x 卫星应用系统地面通信分系统数据采集端的数据存储转发 o 。功能。该系统充分利用当前已经完成模块的功能,并结合系统本身的特点,增加 一些新的服务请求命令,使其在功能和性能上满足项目的需求。 1 最大限度的发挥a c e 框架网络编程的特性; 2 设计一个灵活的协议处理模块,使得开发者能够方便的添加更改协议, 而系统整体不受太多影响; 3 设计一个灵活的数据访问模块,该模块配合特性2 使用,使得用户可以 方便的处理系统中的状态和数据。 本论文一共由六章组成: 第一章引言,概述了数据传输软件在生产过程中的应用情况,以及其中存在 的问题,提出本课题研究的意义和目的。 第二章a c e 相关技术的介绍,a c e 的组成结构以及本文中涉及到的a c e 相关框架。 第三章数据传输系统的总体框架,该章给出了数据传输系统的总体结构,同 时又对系统中比较重要的并发策略的设计、用户数据统一操作以及用户命令的操 作做了进一步的介绍。 第四章数据传输系统总体模型的设计,结合a c e 系统框架,给出了本系统 中类的总体设计。然后介绍了f t p 协议以及相关理论,对于f t p 服务器端的用 户管理模块以及f t p 服务器端进行了详细的设计。最后,在f t p 原有模型的基 础上,增加一些新的功能,从而实现了海洋卫星应用系统地面通信分系统数据采 集端的数据存储转发功能。 行了总结和评价,并对 2 1a c e 结构功能 a c e 自适配通信环境( a d a p t i v ec o m m u n i c a t i o ne n v i r o n m e n t ) 是可以自由使 用、开放源码的面向对象( o o ) 构架( f r a m e w o r k ) ,它实现了许多用于并发通 信软件的核心模式。a c e 提供了一组丰富的可复用c + + 包装外观和构架组件, 可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理 器分派、信号处理、服务初始化、进程问通信、共享内存管理、消息路由、分布 式服务动态( 重) 配置、并发执行和同步,等等。 s e l f - c o n t a f n e n d l s t r l 8 u t e d s e r y | c e c o m p o n 8 n t s 避貔嘲翻魉嘲 i = 矽器矽 固回n a m e 四t i m e躲篙矽i 。删。r 妙l 姒v 。r 矽 ,嘞枯沏 j a 、sa d a p t l v e we bs e r v e r 矗n o d l e 弗a r e a p p l i c t 1 0 n s t h ea c eo r b c + +l9 r o c 8 鼯, 一徽。 f a c d 最gbf 号拜眄口! 拜 立搿,:鲁0 7 二,芸禽 i 强藏磊i ;簇磊落蠹i l o g m s c s y n c h w r a p p e r s s p i p e s a p o c ks a p t l i s p f i f 0 s a p 妊i 若菇 锯菇掺”。 s h a r e d m a l l o c 靠:嚣鬻: 獬勰缓貉缁绷 m e m 霸;强妊鬈j ! 坠! s y s v r a p p e r s o sa d a p t a t i o n “y g r c 际焉面砚n 鬲五订甄鬲面研 r 而丽1 孙面函丌甄而丽可骊面丽研h 丙面 a ,妇lt h r e a d s 嗣p i p e s | ;lt l i 翻p i p e s 蹦i oc o m p 翻l i n k i n g 翻m a p p i n g 明vi p c 图2 1 a c e 总体框架图【4 】 爹 a c e 的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用 事件多路分离、进程间通信、显式动态链接和并发的0 0 网络应用和服务的开发。 此外,通过服务在运行时与应用的动态链接,a c e 能够动态的对系统进行配置 和重配置。 m 。 虬 北京邮i 【1 人学硕i j 学位论文 2 1 1a c eo s 适配层 a c eo s 适配层位于用c 写成的本地o sa p i 上,它提供轻型的类p o s i xo s 适配层。a c e 的源码树含有超过8 5 ,0 0 0 行c + + 代码。其中大约9 , 0 0 0 行代码( 也 就是,大约为总数的1 0 ) 为o s 适配层所特有。该层将a c e 的上层和下层一 些机制分离丌来。这些机制与o s 平台相关,具体如下1 5 1 : 进程间通信( i p c ) 和共享内存:a c e 的适配层封装了用于本地和远地 i p c 、以及共享内存的o sa p i 。 并发和同步:a c e 的适配层封装了用于多线程、多进程和同步的o s a p i 。 事件多路分离机制:a c e 的适配层封装了用于对基于i o 、定时器、信 号和同步的事件进行同步和异步多路分离的o s a p i 。 文件系统机制:a c e 的适配层封装了用于操作文件和目录的o s 文件系 统a p i 。 显式动态链接:a c e 的适配层封装了用于显式动态链接的o sa p i 。显式 动态链接允许在安装时或运行时对应用服务进行配置。 a c eo s 适配层的可移植性使得a c e 可运行在许多操作系统上。a c e 已在 广泛的o s 平台上进行了移植和测试,目前已经可以运行的操作系统有: 1 w i n 3 2 ( w i n n t3 5 x 、4 x 、2 0 0 0 、w i n 9 5 9 8 和w i n c e ) ; 2 m a co sx : 3 大多数版本的u n i x :例如,s p a r c 和i n t e l 上的s o l a r i s1 x 和2 x 、s g i i r i x5 x 和6 x 、d g u x 、h p u x9 x 、1 0 x 和1 1 x 、d e c c o m p a qu n l x 3 x 和4 x 、a i x3 x 和4 x 、u n i x w a r e 、s c o ,以及可自由使用的u n i x 实现,比如d e b i a nl i n u x2 x 、r e d h a tl i n u x5 2 、6 x 和7 x 、f r e e b s d 和 n e t b s d : 4 实时操作系统( l y n x o s 、v x w r o r k s 、c h o r u sc l a s s i x4 0 、q 赵n e u t r i n o 、 r t e m s 和p s o s ) ; 5 m v s o p e n e d i t i o n ; 6 c r a yin 、i i c o s 。 2 1 2o s 接口的c + + 包装外观 尽管可以直接在a c eo s 适配层之上编写高度可移植的c + + 应用。但是,大 多数a c e 开发者使用的是图2 - l 中所示的c + + w r a p p e rf a c a d e 层。通过提供类 型安全的c + + 接口( 这些接口封装并增强本地的o s 并发、通信、内存管理、事 件多路分离、动态链接和文件系统a p i ) ,a c ew r a p p e rf a c a d e 简化了应用的开 6 北京邮i u 人学硕i :学位论文 发。应用可以通过有选择地继承、聚合或实例化下面的组件来组合和使用这些包 装【5 1 : 并发和同步组件:a c e 对像互斥体和信号量这样的本地o s 多线程和多 进程机制进行抽象,以创建高级的o o 并发抽象,像主动对象( a c t i v e o b j e c t ) 和多态期货( p o l y m o r p h i cf u t u r e ) 。 内存管理组件:a c e 内存管理组件为管理进程间共享内存和进程内堆内 存的动态分配和释放提供了灵活和可扩展的抽象。 i p c 和文件系统组件:a c ec + + 包装对本地和远地i p c 机制进行封装, 比如s o c k e t 、t l i 、u n i xf i f o 和s t r e a m 管道,以及w i n 3 2 命名管道。 此外,a c ec + + 包装还封装了o s 文件系统a p i 。 a c ec + + 包装提供了许多与a c eo s 适配层一样的特性。但是,这些特 性是采用c + + 类和对象、而不是独立的c 函数来构造的。这样的o o 包 装有助于减少j 下确地学习和使用a c e 所需的努力。 例如,c + + 的使用提高了应用的健壮性,因为c + + 包装是强类型的。所以, 编译器可在编译时、而不是运行时检测类型系统违例。相反,对于c 级别的操 作系统的一些a p i 如,接口、s o c k e t 、文件系统i o 等,在运行时间之前几乎不 能检查到系统类型的不匹配。 7 a c e 采用了许多技术来降低或消除额外的性能开销: 1 a c e 通过它的操作系统接口层和c + + 包装者提供的附加的类型安全性与 不同的抽象级别,使用c + + 扩展的内联性( i n l i n i n g ) 减少相关的方法调 用的成本。 2 对于性能要求很高的包装,比如s o c k e t 和文件i o 的s e n d r e c v 方法,a c e 会避免使用虚函数。 2 1 3 构架 a c e 中包含一个高级的网络编程构架,集成并增强了较低层次的c + + w r a p p e rf a c a d e 。该构架支持将并发分布式服务动态配置进应用。a c e 的构架部 分包含以下组件”】: 服务初始化组件:a c ea c c e p t o r ( 接受器) 和c o n n e c t o r ( 连接器) 组件 分别使主动和被动的初始化任务与初始化一旦完成后通信服务所执行的 应用特有的任务去耦合。 分层的流组件:a c es t r e a m 组件简化了像用户级协议栈这样的由分层服 务组成的通信软件应用的开发。 事件多路分离组件:a c er e a c t o r ( 反应堆) 和p r o a e t o r ( 前摄器) 是可扩 7 北京i l | i j i 【1 人学顺l j 学化论文 展的面向对象多路分离器,它们分派应用特有的处理器,以响应多种类 型的基于i o 、定时器、信号和同步的事件。 服务配置组件:a c es e r v i c ec o n f i g u r a t o r ( 服务配置器) 支持应用的配 置,这些应用的服务可在安装时或运行时动态装配。 o r b 适配器组件:通过o r b 适配器,a c e 可以与单线程和多线程 c o r b a 实现进行无缝集成。 a c e 构架组件便利了通信软件的开发,它们无需修改、重编译、重链接, 或频繁地重启运行中的应用,就可被更新和扩展。在a c e 中,这样的灵活性是 通过结合以下要素来获得的: 1 c + + 语言特性,比如模板、继承和动态绑定; 2 o s 机制,比如显式动态链接和多线程; 3 设计模式,比如抽象工厂、策略和服务配置器。 2 2a c e 相关框架 2 2 1a c er e a c t o r a c er e a c t o r 框架简化的网络应用事件驱动程序的丌发。该框架可以监视 i o 句柄、时问以及信号事件,并且为响应的事件提供处理函数。a c er e a c t o r 可以注册多个事件。当相应的事件到来时,a c er e a c t o r 能够检测到是哪个事件 并且高效率的调用这个事件对应的处理函数。 r e a c t o r h a n d l e e v e n t s 0 r e g i s t e r _ h a n d l e r 0 、l h a n d l e s e 。 s v n c h r o n o u s h a n d l e e v e n th a n d l e r d i s n a t e h e 墨ih a n d l e e v e n t0 n o t i f i e s c o n c r e t ee v e n tc o n c r e t ee v e n t h a n d l e _ e v e n t0 l lh a n d l e e v e n t0 8 - 。1 。- - _ _ _ _ _ 。i _ _ 。- _ _ l _ _ l - _ i _ _ _ _ _ - _ 北京邮l 也人学顺i :学位论文 如图2 2 所示,a c er e a c t o r 包括的对象如下: h a n d l e :事件源类,该类可以唯一标示一个事件,包括文件、网络连接、时间以 及信号事件等。当事件源产生事件时,h a n d l e 对象中的会有相应的标志位标识。 e v e n th a n d l e r :该类是a c er e a c t o r 框架提供给用户用于注册事件的逻辑接口。 该事件处理接口中包含输入事件、输出事件、时间事件以及例外事件。同时该类 中包含了h a n d l e 实例,用以给a c er e a c t o r 提供监听。 s y n c h r o n o u s :等待同步事件发送,并通知a c er e a c t o r 。在u n i x 中该实体通常 使用s e l e c t ( ) 系统调用来检测网络事件,在l i n u x 2 6 内核以上的系统中可以使 用s y se p o l l 系统调用进一步提供系统执行效率。在w i n d o w s 平台下,则使用 w a i t f o r m u l t i p l e o b j e c t s 0 来监听所有网络连接和i o 句柄。 r e a c t o r :事件发送和处理的工厂。该类提供了事件的注册和注销操作。同时在一 个任务中有一个事件循环等待事件发生。当从s y n c h r o n o u s 中收到事件后,会从 已经注册到本类中的事件进行查找到注册事件的处理函数,并调用执行。 图2 3 述了r e a c t o r 模式中各个参与对象的的交互序列过程: 图2 - 3r e a c t o r 序列图 6 1 1 主程序将用户定义的事件( 包括对应的处理函数和事件类型) 注册到反 应器( r e a c t o r ) q b 。 2 r e a c t o r 取出处理函数对应的事件句柄( 事件源) ,并把所有事件句柄( 事件 源) 集合起来。 3 主函数调用r e a c t o r 中处理循环,在u n i x 系统下使用i o 多路复用s e l e c t 9 论文 2 2 2t h s kf r a m e w o r k ,由r e a c t o r 调用事件处理函数处 a c et a s k 框架为面向对象的网络应用编程提供了模块化和可扩展性的并发 操作,提供了线程的创建操作,同时提供了线程间消息通信的能力。该框架中包 含了基本的并发模型( 一个任务一个线程、多个服务一个线程以及线程池) 。 a c et a s k 包含的对象如图2 - 4 : 7 1 a c w _ s e r v c e _ o b j e e e i 7、 l 础黜2 一嚣蝴辩 l l :i 乙t h r e 矗d 嚣毒曩鑫g f| ;a c e _ m e s s a g e q u e u e 。m x 。j “譬一h 一 j5 ; 。一 : 一: f 一, j i 豹鞠咒明蕊躲妫¥l a c 譬抛簟惫 。一。,。,。,。 一 ,。,。一 :+ h r 犍n ;撑童霉棼乇 i 。? , = 一= 。一一一。,; ;4 a c e t a s k 镕磅等 a c et h r e a d m a n a g e r # 0 , q :a c e m e 翁s a g e q u e u e 镕o 专o p e n 露r 尊翳:v o i d 。霹0 i:i n c _ + c l o s e ( f l a g s :u _ l o n g # 0 ,ji n t | + a c t i v a t e f l a g s :1 0 n g 瘩t t r n e w l w pl 翎蕞o o 盖戡巍基l 馨, ;t h r e a d s :i n c j 。:i n t ;+ t h r _ c o u n :s l z e _ ;w a i f j ;l n c + 蠢v 譬f jfi n t l 鼬cr 雠fa c e 脚嚣露穰弦b l o c k , c l u e :a c e ? 蔓辩睁v a l u e 。口,fl 精c + p u t qf 礅b :a c em e s s a g e b l o c k 。ft 主嘞:a c e t 主凇v a l u e 霹o :i n t + 孽e t q ( m b :a c 致,m e s s a g eb l o c k & t i m e :a c e t 王撇一v a l u e 窑o :i n t + u n g e t qc 喃:a c 螂e a s a g e b l o c k 。,i 獬;a c e i 嬲一v a l u e o ) :i n t + t h r 一璐9 rf :a c e _ t h r e a d _ m a n a g e r :+ t h r m g r 饷孽¥:a c e _ t h r e a dm a n a g e r 。 ! + 豫均一q u e u e l :a c e _ m e s s a g e o u e u e t 撒嚣9 _ q u e u e n e wq ;a e 嚣一m e s s a g e o u e u e 图2 _ 4 a c e t a s k 类图【7 1 线程问的通信 为应用提供创 间的耦合。使 的或并发的处 北京邮i u 人学倾l j 学位论文 2 3a c e 的特点 开发网络程序有两种方式,一种是直接利用操作系统提供的a p i 进行开发, 另一种是利用第三方提供的软件工具包来进行开发。a c e 提供了开发网络应用 程序的开发。 和独立的应用程序相比,网络应用程序的开发往往更难设计、实现、调试、 优化和监控。这是由于网络协议不兼容、在不同的软、硬件平台上具有不同的 a p i 和语义的组件库以及操作系统本身的进程间通信机制和并发机制的局限性 等。利用操作系统a p i 函数开发、配置网络程序时会涉及所谓的固有及偶发的复 杂性。 固有复杂性是由所在领域内存在的主要难题造成的,这些难题会导致网络应 用开发复杂性,具体包括: 1 选择合适的通信机制、并设计良好的协议来有效使用这些机制。 2 设计合理的网络服务、以有效利用现有的计算机资源、并降低将来的维 护成本。 3 有效使用并发机制、使系统获得可预计的、可靠的高性能一 4 管理和配置服务,以获得最大程度的系统可用性和灵活性。 应付固有复杂性需要经验,并需要对所在领域有深刻了解。固有复杂性涉及 很多设计上的利弊权衡,需要仔细研究。 偶发复杂性源自开发网络应用软件时使用的工具和技术存在的局限性,具体 包括: 1 缺乏类型安全、可移植、可扩充的原始操作系统a p i 函数。 2 算法分解的广泛应用,无畏地造成网络应用程序在维护上和扩充上的困 难。 3 网络应用中,核心概念和功能的不断发现和创造,造成软件生命周期的 成本无谓的居高不下。 所以,直接应用操作系统a p i 函数编程会导致以下两个问题瞄j : 1 容易出错。因为用c 语言写成的操作系统a p i 函数一般都缺乏类型安全、 可移植、可重入、可扩充的系统函数接口和函数库。 2 容易误导不恰当设计技术的运用。因为很多用操作系统a p i 函数写成的 网络应用程序都是基于算法设计,而不是面向对象的。算法设计需要根 据特定的功能需求来分解程序的结构,而功能需求并非是一成不变的, 随着时间的变化,它也可能会发生变化。因而,这种设计范式导致了软 件结构无法扩充,也无法根据不断变化的应用需求而作出快速响应。 使用a c e 的好处有【5 j : 北京邮i 【1 人学硕f :学位论义 增强可移植性:在a c e 组件的帮助下,很容易在一种o s 平台上编写并 发网络应用,然后快速地将它们移植到各种其他的o s 平台上。而且,因为 a c e 是开放源码的自由软件,你无需担心被锁定在特定的操作系统平台或 编译器上。 更高的效率和可预测性:a c e 经仔细设计,支持广泛的应用服务质量 ( q o s ) 需求,包括延迟敏感应用的低响应等待时间、高带宽应用的高性能, 以及实时应用的可预测性。 更好的软件质量:a c e 的设计使用了许多可提高软件质量的关键模式, 这些质量因素包括通信软件灵活性、可扩展性、可复用性和模块性。 更容易转换到标准的高级中间件:t a o 使用了a c e 提供的可复用组件 和模式。它是c o r b a 的丌发源码、遵循标准的实现,并为高性能和实时系 统作了优化。为此,a c e 和t a o 被设计为能良好地协同工作,以提供全面 的中间件解决方案。 1 2 北京邮i u 人学硕i :学位论文 3 1 系统需求 第三章数据传输系统的总体架构 在项目开发过程中,经常发生的、也是风险性最大的就是需求的变更了。需 求变更是一个无法避免的事实,它会导致软件开发过程中产生成本增加、质量不 过关等风险,而且越到开发的后期,需求的变动就会产生难以估计的风险。因此 解决问题的方法应该以控制风险为出发点,可能产生越大风险的事情就要越早解 决。 需求变更的表现形式是多方面的,如项目预算增加或减少、客户对功能的需 求改变等。在软件项目中,需求变更来时各个方面,可能来自用户、项目组内部, 也可能来源于软硬件环境的变化。 在系统设计上,充分考虑用户需求变化,找出变化点,用设计模式进行系统 设计,将系统模块化,每个模块完成一个原子性的功能。尽量做到模块内功能高 度内聚,模块间减少耦合。做到在未来需求的变更中,系统能够较好的应对这些 问题,达到适应需求频繁变更的目的。 在应用软件开发中,不仅仅是业务本身,其他大量复杂的开发工作,譬如安 全、异常处理、配置信息的访问、数据格式的转换等。以设计模式为指导思想, 用面向对象技术开发项目的系统框架,使应用程序工作在自己开发的系统框架之 上,可以让开发者将精力集中在业务的开发,回避复杂的数据操作、文件的读写 操作、大量的数据格式转换等通用功能。同时系统框架可以给编码人员提供编程 接口以简化他们的编程,减少冗余。这样能很好的提高软件开发的生产率。 数据传输系统是为数据应用传输提供服务的,各种业务需求不同,业务流程 也可能不同,在功能或性能的要求上就有所不同。面对这些问题,这就要求在软 件设计上能够在软件不修改或少量修改的情况下,能够很好的适应不同企业需求 的要求,做到易维护、易扩展和易复用。 北京f f f f f 也人学顾l :学位论文 客户岁 客户岁 图3 - 1 系统连接图 图3 1 为系统连接图,数据传输系统运行在服务器上,为各种到来的连接请 求提供服务。这些包括任意多个客户端的连接,以及系统配置管理员的连接。其 中客户端包括通常的服务请求的客户端连接,该连接可以传输预先定义的请求协 议,同时也支持用户自定义的服务连接。对于自定义的服务,服务器端应该有一 套对应的处理响应机制。 综上,本文的数据传输系统需求如下: 系统符合服务器客户端模式,服务器可以响应、并发处理多个客户端的 请求; 系统的运行参数可配置,可以通过配置文件读取,或者运行中进行修改; 具备整体的数据统计、管理功能; 易于扩展:包括增加新的类型请求,增加新的特性; 具备较强的可移植性; 系统运行的硬件资源足以响应客户端的请求,而不是系统处理的瓶颈。 1 4 北京邮i 【1 人学顾i :学位论义 3 2 系统设计 为了能够对数据通讯类型的软件提供模块化以及层次化的分析,并且能够方 便的对该类型系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论