




已阅读5页,还剩52页未读, 继续免费阅读
(安全技术及工程专业论文)矿井通风仿真系统网络版研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
a b s t r a c t a sw e l la sn e t w o r kp o p u l a r i z i n g ,t h en e t w o r kv e r s i o ns o f t w a r eb e c o m e o n ek i n do fs o f t w a r ed e v e l o p i n gt r e n dw i t ht h ed e v e l o p m e n to fc o m p u t e ra r t s t e pb ys t e p m i n ev e n t i l a t i o ns i m u l a t i o ns y s t e mn e t w o r kv e r s i o np r i n t i n g p l a t eh a ss a t i s f i e dm i n i n gi n d u s t r ye n t e r p r i s eo f f i c ea u t o m a t i o nn e e d t h eg e n e r a ln e t w o r k v e r s i o ns o f t w a r ea d o p tt w ol a y e r so fs t r u c t u r e ,t h e t h e s i sh a v ea d o p tt h r e el a y e r so fs t r u c t u r et or e a l i z et h es y s t e mf r a m e i t c o n t a i n sc l i e n t ,m i d d l e w a r ea n ds e r v e r m i d d l e w a r eh a sr e a l i z e d ”m i n o r c o r e ,b i ge p i t o m i c a l ”s y s t e ms t r u c t u r e st h o u g h t c e n t e r i n go nm i d d l e - w a r e , o u t e r r i n gs y s t e mc a nb ea m p l e ,c o m p l i c a t e da n do v e r l o a d e d ,n e e db u t h a v i n gt h ea p p r o p r i a t ei n t e r f a c e ,i tc a nb e i n ga b l et ob ev e r yg o o dr i g h t a w a yw i t ht h ec o r e d a t a m i n i n gi n d u s t r ya n dg r o u s y n p s c h r o n i s ms o , w a r eh a sr e a l i z e dt h ec o m p a n yo f d a t am u t u a l i t yh a st r a n s f e r r e d ,e x t r e m e l yl a r g e c o n v e n i e n tm u t u a lc o m m u n i c a t i o n k e yw o r d s :m i d d l e - w a r e , v e n t i l a t i o n ,d a t as y n c h r o n i z a t i o n 辽宁工程技术大学硕士学位论文 l 绪论 1 1 网络版软件系统综述 网络版软件系统是指能够在多台电脑主机上运行,并能通过网络介质 实现相互通信的软件系统。随着计算机技术的发展以及网络的普及,网络 版软件逐步成为一种软件发展趋势。网络版软件系统实现了人们对于资源 共享和软件智能化、使用便捷化的要求。尤其在企业集团内部,网络版软 件系统更显示出它的必要性。 在计算机没有联网之前,每台计算机都各自独立的工作。通常,一个较 大的单位都有很多部分,而且相距较远。这样,尽管每个分部都有自己的计 算机来处理具体事务,各个分部之间及分部与总部的联系还必须通过传统 的通讯方法。如果能将各分部的计算机与总部边起来,那么不仅总部可随 时监督各分部的工作情况,而且可方便地进行内部通讯与联络。在这种情 况下,单机版软件系统在很多场合下便需要升级到网络版软件系统。 1 1 1网络版软件系统技术简介 网络版软件系统按软件结构划分为c s ,b s 两种。c s 结构软件( 即客 户机,服务器模式) 分为客户机和服务器两层,客户机不是毫无运算能力的 输入、输出设备,而是据有了一定的数据处理和数据存储能力,通过把应 用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低 网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制, 这种结构的软件适于在用户数目不多的网络内使用。b s ( 浏览器服务器 模式) 是随着i n t e r n e t 技术的兴起,对c s 结构的一种改进在这种结构 下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在w e b 服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件 系统构造技术。 c s 模式主要由客户应用程序、服务器管理程序和中间件三个部分组 成。首先,交互性强是c s 固有的一个优点。在c s 中,客户端有一套完 整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在 辽宁工程技术大学硕士学位论文 2 子程序间自由切换。其次,c s 模式提供了更安全的存取模式。由于c s 配备的是点对点的结构模式,采用适用于局域网、安全性可以得到可靠的 保证。而b s 采用点对多点、多点对多点这种开放的结构模式,并采用 t c p i p 这一类运用于i n t e r n e t 的开放性协议,其安全性只能靠数据服务器 上管理密码的数据库来保证。由于c s 在逻辑结构上比b s 少一层,对于 相同的任务,c s 完成的速度总比b s 快,使得c s 更利于处理大量数据, 由于客户端实现与服务器的直接相连,因此响应速度快【1 ,2 1 。 1 1 2网络版软件系统发展现状 c s 和b s 是当今世界开发模式技术架构的两大主流技术。c s 模式 是美国b o r l a n d 公司最早提出,b s 模式是美国微软公司最早提出。目前, 这两项技术已被世界各国所掌握,国内公司以c s 和b s 技术开发出产品 也很多。这两种技术都有一定的市场份额和客户群。 目前大多数应用软件系统都是c l i e n t s e r v e r 形式的两层结构,现在的 软件应用系统正在向分布式的w e b 应用发展。内部的和外部的用户都可 以访问新的和现有的应用系统,w e b 和c l i e n t s e r v e r 应用都可以进行同样 的业务处理,不同的应用模块共享逻辑组件,通过现有应用系统中的逻辑 可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 国内目前的大部分e r p 软件产品即属于c s 结构。b s 结构的大型管 理软件有着c s 结构软件无法比拟的优势。而从国外的发展趋势来看,也 验证了这一点。目前,国外大型企业管理软件要么已经是b s 结构的,要 么正在经历从c s 到b s 结构的转变。从国内诸多软件厂商积极投入开发 b s 结构软件的趋势来看,b s 结构的大型管理软件势必在将来的几年内 占据管理软件领域的主导地位 4 , 5 1 。 很多软件同时结合c s 和b s 模式开发,比如国内知名软件迅雷和腾 讯q q 。一般网络版的杀毒软件通常是采用c s 模式开发。 1 2 矿井通风仿真系统发展现状及网络版 国外,美国开发的v e n t i l a t i o nd e s i g n 软件能够进行交互式设计,将 强制通风与自然通风网络以三维图形方式显示;h t m e 的v e n d i s 软件能 辽宁工程技术大学硕士学位论文 3 以交互式图形方式提供网络计算结果,用户可用键盘或鼠标以三维方式输 入风阻、温度和节点信息,解算结果可以图形方式显示出来,网络规模和 观察视点都可交互式改变;波兰科学院研制的m i n ef i r e s i m u l a t o r 软件能 够以动态图形化方式表示火灾蔓延、通风系统中燃烧物、温度、流体等参 数的变化过程。在国内,西安科技学院于1 9 9 2 年开发的c f i r e 软件系统 独有的快速插入模拟计算功能,使得建立在严密数学推导基础上的计算机 模拟计算首次具备了应用于准实践环境的能力。山东矿业学院于1 9 9 9 年 研制出了。矿井灾变处理系统”可以二维图形方式显示矿井火灾情况下最 佳避灾路线。 辽宁工程技术大学研制的矿井通风仿真系统可动态地对通风系统进 行调节和计算,确定合理有效的通风方案。用户可以任意调节通风设施和 改变通风网络( 如增加删减巷道、风机和通风构筑物,风门大小的调节等) 来高效仿真矿井的通风系统变化,给决策者或管理人员提供调整或革新的 参考依据。该软件具有以下几方面功能: ( 1 )模拟新井巷开掘贯通和旧井巷报废后的通风状况 ( 2 )模拟构筑物位置及调节量 ( 3 )模拟井巷断面大小、形状和支护方式、局部堵塞等变化 ( 4 )模拟地面主扇及其工况、模拟井下通风动力装置位置及其工况 ( 5 )确定通风网络最优化调节 ( 6 )风网平衡图自动绘制、角联风路自动识别和分析、通风网络的 极值流等方面。 矿井通风仿真系统网络版是矿井通风仿真系统单机版的一次升级。以 前各矿业公司的仿真计算结果文件和原始的通风参数均存在于各公司自 己的主机上,这样给集团公司了解各矿业公司通风仿真的解决方案带来了 很大不便。网络版中各矿业公司可以实时的将自己的通风参数和仿真产生 的方案上传到集团公司服务器上,同时集团公司也可以通过发送指令随时 获取各矿业公司相关数据。这极大地方便了集团与矿业公司的通信。 矿业公司与集团公司之间加入中间件( m i d d l e w a r e ) ,这样以后即使集 团公司再成立新的矿业公司,也能很自然的实现通信,因为通信接口都定 辽宁工程技术大学硕士学位论文 4 义在中间件上。每次对数据库的操作都通过中间件来进行,客户端只需要 把信息发送到中间件 1 3 本文研究内容和意义 集团公司和矿业公司都有自己的内部网络,一旦联网,网络上的程序、 数据及设备( 如打印机等) 经允许后可被网络用户共享,数据可以很方便地 被复制到另一台主机上作为备份。这样一旦这台机器暂时出了毛病或者无 意中将这个文件删掉了,还可从另一台机器上得到所需要的信息。网络版 软件将以最少的人工干预进行标准化、格式化业务文件的交换,从而实现 整个集团办公自动化。 采用中间件之后能很好的解决多客户端并发访问数据库的问题,与中 间件的通信只需要使用中间件的a p i 接口,统一了矿井通风仿真系统的 编程接口。 本文主要对这几个方面进行研究: ( 1 )中间件的编写 ( 2 )数据同步程序的实现 ( 3 )内网互联解决方案。 辽宁工程技术大学硕士学位论文 5 2 开发的理论基础 2 1 面向对象方法及c + + 语言 2 1 i面向对象方法 面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维 方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方 法与过程,让描述问题的问题空问与实现解法的解空间在结构上尽可能一 致。 任何事物都可看作是一个对象,结构复杂的对象由简单的对象以某种 方式组合而成。每个对象都是将描述其特征或状态的静态属性和定义在属 性之上的动态行为封装在一起的统一体。对象是个独立的实体,其属性 值的改变只能通过定义在属性上的操作( 封装的行为) 来完成。它可以向 其他对象提供服务,也可以申请其他对象为其服务,对象之间仅通过发送 消息来传递请求信息。对象收到另一对象的服务请求时,经过其自身的逻 辑机制来决定是否响应其请求,并以一定的方式反馈给申请者。 面向对象的建模不仅是新的编程语言的汇总,它是一种新的思维方 式,一种关于计算和信息结构化的新思维。面向对象的建模是把系统看作 是相互协作的对象,这些对象是结构和行为的封装,都属于某个类,那些 类具有某种层次化的结构。系统的所有功能通过对象之间相互发送消息来 获得。面向对象的建模可以视为一个包含以下元素的概念框架:抽象、封 装、模块化、层次、分类、并行、稳定,可重用和可扩展性 5 6 7 1 。 2 i 2c + + 语言简介 c + + 语言源于c 语言,它是c 语言的扩充。2 0 世纪8 0 年代初期, 美国贝尔实验室的人员对c 语言进行改进和扩充,取名为c + + 。c + + 是一 种面向对象的程度设计语言,支持面向对象的程序设计,主要表现在它支 持面向对象方法中的三个特性: ( 1 )支持数据封装 c + + 语言允许使用类和对象类是支持数据封装的工具,对象是数据 辽宁工程技术大学硕士学位论文 6 封装的实现。类中的成员具有不同的访问权限。私有成员是隐藏在类体内 的部分,只有该类体内的成员函数才可访问,类体外的函数不可访问。公 有成员是封装体与外界的一个接口,类体外面函数可以访问公有成员。保 护成员具有公有成员和私有成员双重特性,对于定义它的类来讲具有私有 成员特性,对该类的派生类来讲具有公有成员的特性。对象不仅能表示结 构化的数据,也能表示抽象的事件、规则以及复杂的工程实体。对象本身 具有用数据来描述的属性和行为。属性由一组属性项数据表示,行为由一 组方法表示。 ( 2 )支持类的继承 继承和封装都是面向对象方法不可缺少的特性。c + + 语言支持类的继 承,不仅支持单继承,还支持多继承。基类和派生类是c + + 语言中重要概 念,派生类继承基类的成员,而它自身还可以定义新的成员。继承实现了 抽象和共享的机制,它给c + + 语言编程带来了方便,提高了程序的可扩展 性和可重用性,进而提高了软件开发的效率。 ( 3 )支持函数的多态 多态也是面向对象方法中的一个特性。c 十+ 语言支持多态性指支持函 数重载和运算符重载。函数重载是指同一个函数名可对应不同的实现:运 算符重载是指同一个运算符可具有不同的功能。c + + 语言支持这两种重 载,在编译时将获取该选择的函数,这称为静态联编;c + + 支持动态连编。 动态联编是在运行时获取应该选择的函数。动态联编是在公有继承的前提 下,通过虚函数来实现的。动态联编相对与静态联编虽然运行效率较低, 但它可以通过高度抽象提高程序的扩充性【引。 2 2 中间件 2 2 1中间件概述 中间件的分类方式很多,有此软俘在中间件的概念产生以前就已经存 在,有些软件虽然不是作为中间件开发出来的,但是符合中间件的定义, 也把它归于中间件的范畴。1 9 9 8 年i d e 和g i g a 在各自的报告中给出了中 间件的分类,按照i d c 的分类方法,中间件可分为六类: 辽宁工程技术大学硕士学位论文 7 ( 1 )终端仿真屏幕转换 用以实现客户图形机用户接口与已有的字符接口方式的服务器应用 程序之间的互操作。 ( 2 )数据访问中间件 适用于应用程序与数据源之间的互操作模型,客户端使用面向数据库 的a p i ,以提请直接访问和更新基于服务器的数据源,数据源可以是关系 型、非关系型和对象型。这类中间件大都基于s q l 语句,采用同步通信 方式。此类中间件使应用开发简单,但如果是透过广域网使用,会带来严 重的效率问题,因为在低速网上来回交互s q l 语句会使通信流量过大, 同时对数据压缩、加密带来不便。 ( 3 )远程过程调用中间件 r p c ( r e m o t ep r o c e d u r ec a l l ) 机制是早期开发分布式应用所经常采用 的一种同步式的请求应答协议。通过这种协议,程序员编写客户方的应用, 需要时可调用位于远端服务器上的过程。 r p c 是一种广泛使用的分布式应用程序处理方法。当编译一个采用 r p c 机制的客户方时,编译器告之代表远程功能调用的句柄,客户方需 要调用远地的过程时,引用相应的功能调用的旬柄,由r p c 机制来负责 客户方程序实时的调用到远地的过程。服务器上的过程返回后,客户方的 程序得到结果并继续往下进行。在采用r p c 机制时,调用远程的过程只 需去引用它,而不必告知网络地域或其它底层信息。一个应用程序使用 r p c 来“远程”执行一个位于不同地址空间里的过程,从效果上看和执 行本地调用相同。在r p c 模型中,c l i e n t 和s e r v e r 只要具备了相应的r p c 接口,并且具有r p c 运行支持,就可以完成相应的互操作,而不必限制 于特定的s e r v e r 。因此,r p c 为c l i e n t s e r v e r 分布式计算机提供了有力的 支持。同时,远程过程调用r p c 所提供的是基于过程的服务访问,c l i e n t 与s e r v e r 进行直接连接,没有中间机构来处理请求,因此也具有一定的 局限性。比如,r p c 通常需要一此网络细节定位s e r v e r 在c l i e n t 发出请 求时,要求s e r v e r 必须是活动的等等。 r p c 机制可用以构造客户机,服务器方式的应用,但由于它是同步方 辽宁工程技术大学硕士学位论文 式,因而在工作的时候,有一方不能工作将导致r p c 失败,这在网络故 障、机器故障存在的情况下,这一要求是很难保证的。还有一点值得注意 的是,不管客户方能做什么或做的多快,它必须依靠服务方才能有效上作。 有些恢复机制可以在一个远程调用阻塞时转而去调用另一个服务器上的 过程,但这种路由方式也会影响效率。也有的r p c 机制采用异步方式, 客户方非阻塞地调用远端的过程,但这种方式不太标准而且很难采用另 外,由于大多数r p c 机制很难建立点到点的关系,因而也很难用在面向 对象的编程过程中。 ( 4 ) 消息中间件 尽管消息中间件不像r p c 机制那样流行,但越来越多的分布式应用 采用消息中间件来构建,通过消息中间件来把应用扩展到不同的操作系统 和不同的网络环境。 基于消息的机制更多地适用于事件驱动的应用程序,当一个事件发生 时,消息中间件通知服务器方应该进行何种操作。事件可以是一种请求, 也可以是一种警示,警示来到后,即可进行某种处理,但不需等待应答。 使用消息中间件的编程需要采用消息中间件的a p i ,消息中间件可以很好 地扩展到不同的操作系统和硬件平台上。消息中间件的核心安装在需要进 行消息传递的系统上,在它们之间建立逻辑通道,由消息中间件实现消息 发送。消息中间件可以既支持同步方式,又支持异步方式,实际上它是一 种点到点的机制,因而可以很好地使用面向对象的编程方式 中间件领域日前最热门的技术是异步的消息中间件,异步中间件技术 比同步中间件技术具有更强的容错性,在系统故障时可以保证消息的正常 传输,因而在过去的两年里增长迅速。异步中间件技术可以分为两类:广 播方式和分布订阅方式。广播方式把消息分发给系统的所有用户;分布 订阅方式可以指定哪种类型的用户可以接收哪种类型的消息,由于分布 订阅方式更加智能有效,事实上已成为异步中间件的非正式标准。 ( 5 )交易中间件 交易中间件是专门针对联机交易处理系统而设计的。联机交易处理系 统需要处理大量的并发进程,处理并发涉及到操作系统、文件系统、编程 辽宁工程技术大学硕士学位论文 9 语言、数据通信、数据库系统、系统管理和应用软件,是一个相当艰巨的 任务,但是工作的难度可以通过采用一个消息中间件来简化。消息中间件 就是一组程序模块,用以大大减少开发一个联机交易处理系统所需的编程 量。x o p e n 组织专门定义了分布式交易处理的标准及参考模型,把一个 联机交易系统分成资源管理( r m ) ,交易管理( t m ) 和应用( a p ) - - - 部分,定 义了应用程序、交易管理器、多个资源管理器是如何协同工作的。资源管 理器是指数据库和文件系统,交易管理器可归入交易中间件。交易中间件 管理由应用声明和提交的交易,并通过两阶段提交协议等方式保证分布式 交易的完整性,控制并发,实现交易路由和均衡负载。 交易中间件理论上相对成熟,功能和性能界定清晰,基本上适用联机 交易系统,如银行业务系统、定票系统等。尽管交易系统也是消息,交易 中间件也是基于消息的传输,也可支持同步和异步方式,但与消息中间件 的定位差距较大,属于一种较专门的中间件。 ( 6 )对象中间件 面向对象的技术一直是软件界努力追求的目标,传统的对象技术通过 封装、继承及多态提供了良好的代码重用功能。但这些对象只存在一个过 程中,外面的世界并不知道它们的存在,也无法访闯它们。面向对象的中 间件建设要解决这些问题,它提供一个标准的构件框架,能使不同厂家的 软件通过不同的地址空间、网络和操作系统互相交互访问。该构件的具体 实现、位置及所依附的操作系统对客户来说都是透明的。例如,我们通过 简单的组装或扩展已有的构件就可以建立一个客户机服务器结构的信息 系统。面向对象的中间件技术的目标就是为软件用户及开发者提供一种应 用级的即插即用的互操作系统,就像现在使用集成块和扩展板一样 g a 0 ,t 1 1 。 有关对象中间件的标准相继问世,像o m g 组织的c o r b a 、m i c r o s o f t 的c o m 以及i b m 公司的s o m 等,这此标准都极大地促进了对象的中间 件技术的发展,随着面向对象的应用系统的广泛应用,对象中间件的需求 也在逐年加大。对象技术的优势和对象中间件的标准化,促使对象的中间 件的功能将最终涵盖其它几类中间件的功能而成为中间件产品的主流。 辽宁工程技术大学硕士学位论文 1 0 2 2 2 中间件实现原理 矿井通风仿真系统网络版中间件是一种消息中间件,所以这里着重介 绍消息中间件的实现原理。 传统应用软件的构造是用白盒子方法,应用系统的实现全在代码中, 应用逻辑和数据粘结在一起。而中间件的构造是用白盒子和黑盒子相结合 的方法。基于中间件的框架是用两个概念来支持演变:第一个概念是中间 件有很强的性能接口,使中间件逻辑功能和中间件模型的实现都隐藏起 来。这样,只要接口相同,中间件就可以被替换。 消息中间件主要提供应用集成所必须的数据的递送、收集、翻译、过 滤、映射和路由等功能,屏蔽不同的硬件平台、数据库、消息格式、通信 协议之间的差异,提供应用到应用之间的高效、便捷的通信能力。 消息中间件的核心是一个消息的路由程序,它接收和分发消息并基于 预先定义好的消息处理流确保转发给正确的应用程序。消息的路由程序通 常能执行多段的路由,对于一个单个的消息,可以根据消息的源、目的地、 类型等定义许多个处理段或对象。对象可以包括消息的转换、数据的格式 转换、查询数据库、记录日志和定时传送等。应用间的互通可以是一对一、 一对多或多向的。消息中间件的核心还包括一个单独的通信与消息传递协 议层,实现组织内部或组织间的实际的网络通信,有一个专门的消息格式 库保存所有的消息定义,并提供建造和维护组织内部和组织间消息类型的 工具。路由程序最终通过这一层实现消息的接收与分发。 消息中间件的数据转换设施负责在应用程序之间对传输的数据进行 转换,提供数据转换需要的a p i 。数据的规范化( n o r m a l i z a t i o n ) 或称数据 的标准化,是使数据在交换过程中转换成标准状态的技术。消息中间件有 内置的数据规范化工具,替换一个应用时,不会影响到与其它数据交换伙 伴的应用接口。 消息中间件的数据转换可以是实时的、接近实时的或批处理的。批处 理方式基于文件到文件的数据转换方式。消息中间件有一个实时的请求, 应答设施来执行同步的关键任务消息的处理,通过一个消息队列机制提供 辽宁工程技术大学硕士学位论文 接近实时的数据转换。消息中间件管理传递各个服务应用的并发路径,即 使在企业需求最大时也能提供最佳的性能d 2 , 1 3 2 3 网络编程 2 3 1t c p i p 基础 t c p i p 协议( t r a n s f e rc o n t r o lp r o t o c o l i n t e r n e tp r o t o c 0 1 ) l l q 做传输控 制网际协议,又叫网络通讯协议,这个协议是i n t e r n e t 国际互联网络的基 础。 t c p i p 是网络中使用的基本的通信协议。虽然从名字上看t c p i p 包括两个协议,传输控制协议( t c p ) 和网际协议( i p ) ,但t c p i p 实际上是 一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电 子邮件等,t c p 协议和i p 协议是保证数据完整传输的两个基本的重要协 议。通常说t c p i p 是i n t e r n e t 协议族,而不单单是t c p 和i p 。 t c p i p 是用于计算机通信的一组协议,我们通常称它为t c p i p 协议 族。它是7 0 年代中期美国国防部为其a r p a n e t 广域网开发的网络体系 结构和协议标准,以它为基础组建的i n t e r n e t 是目前国际上规模最大的计 算机网络,正因为i n t e r n e t 的广泛使用,使得t c p i p 成了事实上的标准。 t c p i p 协议包括t c p 、i p 、u d p 、i c m p 、r i p 、t e l n e t f t p 、s m t p 、 a r p 、t f t p 等许多协议,这些协议一起称为t c p 1 p 协议。对协议族中一 些常用协议英文名称和用途作一介绍: t c p ( t r a n s p o r tc o n t r o lp r o t o c 0 1 ) 传输控制协议 i p ( i n t e r n e t w o r k i n gp r o t o c 0 1 ) 网问网协议 u d p ( u s e rd a t a g r a mp r o t o c 0 1 ) 用户数据报协议 i c m p ( i n t e r n e tc o n t r o lm e s s a g ep r o t o e 0 1 ) 可联网控制信息协议 s m t p ( s i m p l em a i lt r a n s f e rp r o t o c 0 1 ) 简单邮件传输协议 s n m p ( si m p l en e t w o r km a n a g ep r o t o c 0 1 ) 简单网络管理协议 f t p ( f i l et r a n s f e rp r o t o c 0 1 ) 文件传输协议 a r p ( a d d r e s sr e s o l a t i o np r o t o c 0 1 ) 地址解析协议 从协议分层模型方面来讲,t c p i p 由四个层次组成:网络接口层、 辽宁工程技术大学硕士学位论文 网间网层、传输层、应用层。 网络接口层这是t c p i p 软件的最低层,负责接收i p 数据报并通过网 络发送之,或者从网络上接收物理帧,抽出i p 数据报,交给i p 层 网间网层负责相邻计算机之间的通信。其功能包括两方面: ( 1 )处理来自传输层的分组发送请求,收到请求后,将分组装入i p 数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网 络接口。 ( 2 )处理输入数据报:首先检查其合法性,然后进行寻径。假如该 数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假 如该数据报尚未到达信宿,则转发该数据报。 传输层提供应用程序间的通信。其功能包括: ( 1 )格式化信息流。 ( 2 )提供可靠传输。为实现后者,传输层协议规定接收端必须发回 确认,并且假如分组丢失,必须重新发送。 应用层向用户提供一组常用的应用程序,比如电子邮件、文件传输 访问、远程登录等。远程登录t e l n e t 使用t e l n e t 协议提供在网络其 它主机上注册的接口。t e l n e t 会话提供了基于字符的虚拟终端。文件传 输访问f t p 使用f t p 协议来提供网络内机器间的文件拷贝功能。 t c p i p 协议是如何实现网络模型的。 网络层中的协议主要有i p ,i c m p ,i g m p 等,由于它包含了i p 协议 模块,所以它是所有机遇t c p i p 协议网络的核心。在网络层中,i p 模块 完成大部分功能。i c m p 和i g m p 以及其他支持i p 的协议帮助i p 完成特 定的任务,如传输差错控制信息以及主机路由器之间的控制电文等。网 络层掌管着网络中主机间的信息传输。 传输层上的主要协议是t c p 和u d p 。正如网络层控制着主机之间的 数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管 理这些数据的两种方式:t c p 是一个基于连接的协议;u d p 则是面向无 连接服务的管理方式的协议【1 4 】。 应用层位于协议栈的顶端,它的主要任务就是应用了。上面的协议是 辽宁工程技术大学硕士学位论文 为了这些应用而设计的,具体说来一些常用的协议功能如下: t e l n e t :提供远程登录( 终端仿真) 服务,较古老的b b s 就是用的这个 登陆。 f t p :提供应用级的文件传输服务,说的简单明了点就是远程文件访 问等等服务。 s m t p :电子邮件协议。 t f t p :提供小而简单的文件传输服务,实际上从某个角度上来说是 对f t p 的一种替换( 在文件特别小并且仅有传输需求的时候) 。 s n m p :简单网络管理协议。 d n s :域名解析服务,也就是如何将域名映射城i p 地址的协议。 h t t p :超文本传输协议,网上的图片,动画,音频,等等,都是依 靠此协议【15 1 。 2 3 2s o c k e t 编程 2 3 2 1s o c k e t 简介 s o c k e t 是建立在传输层协议( 主要是t c p 和u d p ) 上的一种套接字规 范。最初是由美国加州b e r k l e y 大学提出,为u n i x 操作系统开发的网络 通信接口,它定义两台计算机间进行通信的规范( 也是一种编程规范) 。如 果说两台计算机是利用一个“通道”进行通信。那么这个“通道”的两端 就是两个套接字。s o c k e t 屏蔽了底层通信软件和具体操作系统的差异。使 得任何两台安装了t c p 协议软件和实现了s o c k e t 规范的计算机之间的通 信成为可能。s o c k e t 接口是t c p i p 网络最为通用的a p i ,也是在i n t e r n e t 上进行应用开发最为通用的a p i 1 6 】。 s o c k e t 是网络节点上可访问的逻辑实体,由在给定节点上惟一的 s o c k e t 号标识。一个分布式系统中,s o c k e t 网间地址包含s o c k e t 号、( s o c k e t 所在) 节点标识符以及( 节点所在) 网络号。o s i 中,网络层及其以下各层又 称通信子网,只提供点到点通信,没有程序和进程的概念,而传输层实现 的是“端端”通信,引进网间进程通信概念,提供了不同连接服务方式。 s o c k e t 的出现使程序员能非常方便地访问t c p i p 。 辽宁工程技术大学硕士学位论文 1 4 t c p i p 的s o c k e t 提供三种类型套接字: ( 1 )流式套接字( s o c ks t r e a m ) 提供了一个面向连接、可靠的数 据传输服务,数据无差错、无重复地发送,且按发送顺序接收内设流量 控制,避免数据流超限;数据被看作是字节流,无长度限制。文件传送协 议( f t p ) 即使用流式套接字。 ( 2 )数据报式套接字( s o c k d g r a m ) 提供了一个无连接服务。数据 包以独立包形式被发送,不提供无错保证,数据可能丢失或重复,并且接 收顺序混乱。网络文件系统( n f s ) 使用数据报式套接字。 ( 3 )原始式套接字( s o c k r a w ) 该接口允许对较低层协议,如i p 、 i c m p 直接访问常用于检验新的协议实现或访问现有服务中配置的新设 备 1 7 , 1 1 1 1 。 2 3 2 2 面向连接和无连接 通常情况下,一个协议提供面向连接的服务,或提供无连接的服务。 面向连接的服务中,进行数据交换之前,必须与通信方建立一条路径。这 样既确定了通信方之间存在路由,又保证了通信双方都是活动的、都可彼 此响应,但其特点是在通信双方之间建立一个通信信道需要很多开支。除 此以外,大部分面向连接的协议为保证投递无误,可能会因为执行额外的 计算来验证正确性,因此,进一步增加开支。而无连接协议却不保证接收 端是否正在收听。无连接服务类似于邮政服务,发信人把信装入邮箱即可。 至于收信人是否想收到这封信或邮局是否会因为暴风雨未能按时将信件 投递到收信人处等等,发信人都不得而知f 1 。】 2 3 2 3s o c k e t 的使用 创建套接字- - s o e k e t o 程序在使用套接字前,首先必须拥有一个套接字,系统调用s o e k e t o 向应用程序提供创建套接字的手段。 指定本地地址一b i n d ( ) 当一个套接字用s o e k e t ( ) 仓4 建后,存在一个名字空间( 地址族) ,但它没 有被命名。b i n d ( ) 将套接字地址( 包括本地主机地址和本地端口地址) 与所 辽宁工程技术大学硕士学位论文 创建的套接字号联系起来。 建立套接字连接- - c o n n e c t ( ) 与a c c e p t ( ) 这两个系统调用用于完成一个完整相关的建立,其中c o n n e c t ( ) 用于 建立连接。无连接的套接字进程也可以调用c o n n e c t ( ) ,但这时在进程之 间没有实际的报文交换。调用将从本地操作系统直接返回。这样做的优点 是编程时不必为每一数据指定目的地址,而且如果收到的一个数据报,其 目的端口未与任何套接字建立连接,便能判断该端口不可操作。而a c c e p t ( ) 用于使服务器等待来自某客户进程的实际连接。 监听连接一l i s t e n ( ) 此调用用于面向连接服务器,表明它愿意接收连接。l i s t e n ( ) 需在 a c c e p t ( ) 之前调用。 数据传输一s e n d ( ) 与r e c v o 当一个连接建立以后,就可以传输数据了。s e n d ( ) 调用用于在指定的 已连接的数据报或流套接字上发送输出数据。r e c v o 调用用于在指定的已 连接的数据报或流套接字上接收输入数据。 输入输出多路复用一s e l e c t ( ) s e l e c t ( ) 调用用来检测一个或多个套接字的状态。对每一个套接字来 说,这个调用可以请求读、写或错误状态方面的信息。请求给定状态的套 接字集合由一个f ds e t 结构指示。在返回时,此结构被更新,以反映那些 满足特定条件的套接字的子集,同时,s e l e c t ( ) 调用返回满足条件的套接 字的数目。 关闭套接字一c l o s e s o c k e t o c l o s e s o c k e t ( ) 关闭套接字,并释放分配给该套接字的资源【1 。 辽宁工程技术大学硕士学位论文 1 6 面向无连接的开发流程如图2 1 。面向连接的的应用程序开发流程如 图2 2 【19 1 。 图2 1面向无连接的流程 图2 2面向连接的流程 辽宁工程技术大学硕士学位论文 1 7 2 3 2 4s o c k e t 的i o 模型 共有五种类型的套接字1 1 0 模型,可让w i n s o c k 应用程序对i 0 进行 管理,它们包括:s e l e c t ( 选择) 、w s a a s y n c s e l e c t ( 异步选择) 、 w s a e v e n t s e l e c t ( 事件选择) 、o v e r l a p p e d ( 重 叠) 以及c o m p l e t i o np o r t ( 完成 端口) 。 s e l e c t 模型 s e l e c t ( 选择1 模型是w i n s o c k 中最常见的i o 模型,之所以称其为 s e l e c t 模型,是由于它的“中心思想”便是利用s e l e c t 函数,实现对i 0 的管理! 利用s e l e c t 函数,判断套接字上是否存在数据,或者能否向一个 套接字写入数据。之所以要设计这个函数,唯一的目的便是防止应用程序 在套接字处于锁定模式中时,在一次i o 绑定调用( 如s e n d 或r e c v ) 过程中, 被迫进入“锁定”状态;同时防止在套接字处于非锁定模式中时,产生 w s a e w o u l d b l o c k 错误。除非满足事先用参数规定的条件,否则s e l e c t 函数会在进行i 0 操作时锁定。 w s a a s y n c s e l e c t 模型 利用这个异步i o 模型,应用程序可在一个套接字上,接收以w i n d o w s 消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用 w s a a s y n c s e l e c t 函数。要想使用w s a a s y n c s e l e c t 模型,在应用程序中, 首先必须用c r e a t e w i n d o w 函数创建一个窗口,再为该窗口提供一个窗口 例程支持函数( w i n p r o c ) 。该模型亦得到了m f c 中c s o e k e t 的支持。 w s a e v e n t a s y n c s e l e c t 模型 和w s a a s y n c s e l e c t 模型类似的是,w s a e v e n t a s y n c s e l e c t 模型也允 许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。 该模型最主要的差别在于网络事件会投递至一个事件对象句柄,而非投递 至一个窗口例程。 重叠模型 重叠模型的基本设计原理是让应用程序使用一个重叠的数据结构,一 次投递一个或多个w i n s o c k1 1 0 请求。针对那些提交的请求,在它们完成 辽宁工程技术大学硕士学位论文 之后,应用程序可为它们提供服务。模型的总体设计以w i n 3 2 重叠i o 机 制为基础。这个机制可通过r e a d f i l e 和w r i t e f i l e 两个函数,针对设备执 行i o 操作 完成端口模型 完成端口是应用程序用来管理完成的重叠i o 请求的另一种方法。完 成端口其实就是一些函数。最开始的时候,将其传递给一个重叠i o 请求, 在一个重叠i o 请求完成时由系统调用。它们的基本设计宗旨是通过调用 者的线程,为一个已完成的i o 请求提供服务除此以外,应用程序可通 过完成例程,继续进行重叠i o 处理【2 们。 2 4 多线程编程 在w i n d o w s 的一个进程内,包含一个或多个线程,线程是指进程的 一条执行路径,它包含独立的堆栈和c p u 寄存器状态,每个线程共享所 有的进程资源,包括打开的文件、信号标识及动态分配的内存等等。一个 进程内的所有线程使用同一个3 2 位地址空间,而这些线程的执行由系统 调度程序控制,调度程序决定那个线程可执行和什么时候执行线程,线程 有优先级别,优先权较低的线程必须等到优先权较高的线程执行完任务后 再执行。在多处理器的机器上,调度程序可以把多个线程放到不同的处理 器上运行,这样可以使处理器的任务平衡,也提高系统的运行效率。 如果用户的应用需要有多个任务同时进行相应的处理,那么使用多线 程是很理想的选择,如网络文件服务功能的应用,若采用单线程编程方法, 需要循环检查网络的连接、磁盘驱动器的状况,并在适当的时候显示这些 数据,必须等到一遍查询后才能刷新数据的显示,对使用者来说,延迟可 能很长;而一个多线程的应用可以把这些任务分给多个线程,一个线程可 检查网络,另一个线程管理磁盘驱动器,还有一个线程负责显示数据,三 个线程结合起来共同完成文件服务的功能,使用者也可以及时看到网络的 变化。多线程应用范围很广,尤其现在的桌面平台上,系统的许多功能如 网络( i n t e r n e t ) 、打印、字处理、图形图象、动画和文件管理都在一个系统 下运行,更需要我们的应用能同时处理多个事件,而这些正是多线程所可 辽宁工程技术大学硕士学位论文 1 9 以实现的。 多线程的编程在w i n 3 2 方式下和m f c 类库支持下的原理是一致的, 进程的主线程在任何需要的时候都可以创建新的线程,当线程执行完任务 后,自动终止线程,当进程结束后,所有的线程都终止所有活动的线程 共享进程的资源,所以在编程时,需要考虑在多个线程访问同一资源时, 产生冲突的问题,当一个线程正在访问一个进程对象,这时另个线程要 改变该对象,这时可能会产生错误的结果,所以在编程时要考虑解决这种 冲突 2 1 , 2 2 。 2 4 1 用w i n 3 2 函数创建和终止线程 w i n 3 2 函数库里提供了多线程控制的操作函数,包括创建线程、终止 线程、建立互斥区等。首先,在应用程序的主线程或者其它活动线程的适 当的地方创建新的线程,创建线程的函数如下: h a n d l ec r e a t e t h r e a d ( l p s e c u r i t y a t t r i b u t e sl p t h r e a d a t t r i b u t e s , d w o r dd w s t a c k s i z e ,l p t h r e a d s t a r t r o u t i n el p s t a r t a d d r e s s , l p v o i dl p p a r a m e t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聚乙烯醇制造工作业指导书
- 美业员工培训课件
- 康复的护理个案
- 电商仓储合作协议模板范文
- 脑溢血的康复训练
- 2025年秋季幼儿园安全工作计划
- 追及问题课件
- 2024-2025第二学期九年级英语家校合作计划
- 新人教版三年级课堂安全保障计划
- 煤矿应急联动管理办法
- 蛋白质能量营养不良与小儿肥胖症
- 隧道工程测量
- 中信保三方协议模板
- 项目监理机构人员配置标准(试行)
- GA/T 1162-2014法医生物检材的提取、保存、送检规范
- 第三章传统农业的转变(中国近代经济史-南开大学,龚关)
- 基于大单元教学的高三电化学复习课学案
- 高一化学第一学期教学进度计划(新人教版普通高中化学必修第一册教学计划)
- 现代智力七巧板赛前培训
- 国航特殊餐食代码表
- 多媒体技术与应用ppt课件(完整版)
评论
0/150
提交评论