(计算机应用技术专业论文)基于com技术的远程数据传输和存储系统的研究.pdf_第1页
(计算机应用技术专业论文)基于com技术的远程数据传输和存储系统的研究.pdf_第2页
(计算机应用技术专业论文)基于com技术的远程数据传输和存储系统的研究.pdf_第3页
(计算机应用技术专业论文)基于com技术的远程数据传输和存储系统的研究.pdf_第4页
(计算机应用技术专业论文)基于com技术的远程数据传输和存储系统的研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机应用技术专业论文)基于com技术的远程数据传输和存储系统的研究.pdf.pdf 免费下载

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

文档简介

北京化二e 大学硕 学位论义 基于c o m 技术的远程数据传输和存储系统的研究 摘要 随着网络浪潮浪高过一浪的今天,越来越多的公司部门也在加大力度进行 弼终建设,计划不久豹将来要实现砖海关、银行、工商、政府等部| 豹甄络互联, 包罗万缎信息共事。开发远程传输系统是对现有系统有益的,必要的补充。本 文针对纂于两层c s 体系结构在效率、安全性、可靠性、稳定性等方面的不足, 提出了熬予三层c s 傣系结构的勰决方案,并避萼亍了系统架构,包括系统的慧体 设计、模块设计,对系统的核心技术进行了分析,提出了技术难点,并对系统的 模块化提出了解决的方案。论文主要剖析了基于w i n d o w sd n a 三层结构的逻辑及 功能剡分,弗通过慰微软豹醚组彳孛技术进行了谗缨深入豹分辑并运瘸到系统的 开发中,对数据库访问技术做出了深入的探讨,最终开发出本系统来实现了由多 个远程客户端向中心服务器统一传递数据并保存的功能,解决了远程数据传输和 存储的闽鼷。 关键词:三层结构,m i s ,c o m ,c s ,s o c k e t ,t c p i p ! ! 皇些王墨兰竺! 兰些丝! r e s 兰a r c ho nr e 隧o t ed a t at r a n s 雏ls sio na n ds t o r a g e b a s e du p o nc o mt e c h n o l o gie s a b s t r a c t n o w 嚣d a y sr ri n d u s t r yi sb o o s t i n gw e bw a v 髂t oah j g h e rl e v e l ,m o f ea n d 棚o f e b h 心跚so rc o m p 强i c sa r e 瓤她r i n gb e t l e rm 柚a g c m s y 秣e l n sw 娃hw 曲b u j l li n 。k t h ec o m i n gd a y st h e ya r cp 0 s e dt oh l c m e tw i n lo 也e r 卸t i t i e s1 0s i l a | ca l lb 聪e d so f i n f o r m a t i o nw i 1t l l el a t t e r s u c h鹕 c l l s t o m s ,b a n k s ,i n d u s l i i a l a l l dc o m m e r c l a l 咖i t - 墩等n c c d觚t l l o f i i i 毒s ,卸dg o v 亡舢c n t s a t a n 1 e v e l s 重t j s u s e f l | la n d c o 用p l e m e n t 雒y 沁d e v e l o pt h er e m o t 。出耋a t f 粕s m n t e ds y s 把m t h 括t h e s 抵p u 扭 咖a r dt h e l u 垃o nb a 辩d 册3 i 虹e rc 格删t e c t u 瓣a i m i n ga tt h es b o r 重c 嘲i n g so n 蛔 p r o d u c t j v i t y ,s a f e t w m ds t a b i l i t yo ft h cs t c r c o t y p i c a l 2 t i r c dc 幅a i c h n c c i u r ca n d c a r r i e so u tt h e 仃帅e w o r ko ft l ,es y s i e m ,i n c i u d i n gt h eg e n b r a ld e s i 印柚dm o d u l e d c s i 鲫,a lt h cs 锄el i 扛l eh 舡s op u l sf 0 刑a r dt kd i 蚯c u l t i e so ft e c h l o g ya n d 恤 i u 疽衄sf o rs y s 耄c mm o d 毪i 撕穗蛙瓣p h 黜s i v em i y so fl h ec o m p o 瞰 t e c h i l i q ec o mo fm i a _ 0 s o f t ,t l l ed e i a i l e di n t m d u c t j o 珏o fl l l ct b r 明* t k rs 删u r eb a s e d w 抽d o w sd n a i 刈i sm a d ed c e p l yr 髓e a i c l l i n gi t ot h et e d m o l o g yo fd a l 曲a s e a c c e 鼯f 址a u yd 吖c l o p e d ( 陋ss y s t e ml or e a l i l z em ef i l n c t i o nt h a tm 卸y 坞m o l ec l i c n t s s e n dd a t 孵t ot kc 据阻l 蝴v e rt os a v eu n i f o 】f i l y 姗v i g 也e 驴e s t o no f 咖o t e d 矗t a t l 勰s m i s s i o n 柚ds l o f a g e x e yw o r d s t h m e - t i e fs t n l c t t i f e ,m l s ,c o 髓( s ,吐e t ,1 1 c w 礤 日 北京化工大学颌士学位论文 北京化工大学 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工佟所取得的成果。除文中已经注明弓l 用的内容终, 本论文不含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确力 式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:杨羹 2 0 0 6 年5 月1 0 日 北京化丁人学顺,论文 1 1 论文的选题背景 第一章绪论 现代企业的经营、销售、管理数据不再j ,限于本地,许多企业各分支机构 遍布世界各地,地理t 的分散给企业内部数抓共享和数据信息及时分析提变造 成了相当的困难。i n t r a n e t ( 企业内部网) 被称为i n t e r n e t ( 互联网) 在企业端 的延伸和拓展,所以大型企业大多利用建设i n t r a n e t 来解决数据传输的问题, 但是无论是铺设还是租用专线,都需要相应的资金投入,由于网络服务的技术 含量很高,还需要相当的技术人员来开发、管理和维护。这些都是一些中、小 型的企业不能负担的。 传统的管理方式中的对分布在各个分部的数据的管理与统计往往要用电话 或电子邮件手工来完成,这对任何一个具规模的企业来说,都要浪费大量的人 力和物力,而信息计算和统计人员则面临工作量大、枯燥、繁琐的管理。如何 利用企业现有的网络条件来安全、经济、可靠的实现企业总部与各分支机构间 的数据的传输存储己经成为各企业信息系统建设中迫切需要解决的一个课题。 一些专业的商品化软件能够较好的实现数据的传输,但是其功能庞大、设置复 杂、没有考虑到具体企业的实际应用环境,而且价格昂贵,需要相当的资金投 入。另外有些软件则功能过于简单这些都不太适用于企业信息系统的建设。 对于传统管理和处理数据方式的缺点,奉论文开发远程数据传输和统一信 息存储的m l s 系统。3 1 来解决,各个分公司只需要用5 6 k 的m o d c m 连接到 i n t e m e t 。然后总公司用一条d d n 专线来对数据的统一传输和存储。既节省了 公司的资金投入,又为数据管理员和分析员带来了方便,更为公司高层做出正 确的管理或销售决策带来极大的利益。 1 2 本课题的研究现状 在过去十几年里 可磨灭的贡献。然而 息技能的普及和提高 息技能的普及和提高 眦s 对于企业完善管理、提高生产和工作效率做出了不 随着信息技术的进步、人们信息意识的增强以及操作信 传统m 上s 的不足之处越来越突出,其封闭的特点使人们 传统m i s 的不足之处越来越突出,其封闭的特点使人们 北京化t :大学颅i 。学位论文 难以实现建荭完整信息网络的设想。传统m i s 的不足“”主要订以下几点: 1 、系统为封闭式,限制信息资源开发的深度和利用的广f 篷; 2 、系统维护性差,过多依赖开发者的维护和修改: 3 、系统闵户赛萄作用繁杂,不统一,无法攥广使用; 4 、系统软件开发周期长,且糕于某一操作系统; 5 、系统的生命周期短,移植困难,升级麻烦; 6 、系统信意内容与形式过于单一,系统震登难以保证; 如何减轻m i s 开发者的:_ 作量,有效地利用以往m i s 建设中的成功经验, 避免低效熏复劳动,自动生成应用系统程序;如何建设高效、可靠、应变能力 强的m i s 应用系统,使之功能强太,维护简单;成为赫i s 建设中极需解决的闻 题。组件( c o m d c 嘣) “。1 技术就是在这一需求的推动下应运而生。软件组件的产 生是对软件的生产方式作一次根本性的变革。软件缎件是具鸯特殊功能的、自 主的软件模块,这静模块按照一定的接口蕊范掰阻实现互操作。与瓣蒙相眈, 组件是自主的、组件化不需要代码的重新编译和连接,而直接作为功能模块在 二进制级用于软件系统的装配。进入9 0 年代以来,组传方法融成为工业界普遍 接受的箍商软释质耋、可靠性与软件生产力豹行之有效豹方法和技术,即_ ;蘼过 装配可重用软件的方法来构造应用程序。就客户来说,希望这种软件组件能“即 插即用”,即能从所提供豹软件组传霹中获取最会逶盼组件并充分重用现有成熟 的软件代码,而且这种组俘必须便于增减,便于维护和重构。 随着网络及相关技术的不断发展和完善,i n t e r n e t 成为了一个庞大的分布 式计算平台。鞑b 浏赞器由于具有良好的跨平台和图形能力,避几年来尤为舞 发者所脊妹。以1 】e b 技术为基础,应用系统结构逐渐从传统的_ | ;盂计算枫为中心 向以网络为中心发展。基于w e b 的分布式系统使得用户可透明地共享出不同运 行平台缀成的异构计算环境,扶两使得用户可在千羞万别的信息资源的基础上, 构造信息共享的分布戏系统,并有效地实现了威用系统与分布式处理的集成。 软件组件化思想和代码重用优势以及组件用于m i s 应用所形成的三层结构 体系和分布式处理,给软件工程带来了叛的活力。 2 北京化f 大学碗i ,学他论t 3 本论文的主要工作 本课题针对企业饿患化的需求,充分利用企业总部和各分公司现有的网络 条j 孛,提出建设基于远程馥据传输嗣存储信息系统的方案,即总部服务器存放 总部数据以及各分公司数掂备份;分公司按照总部的要求,定时将分公司数掳 : 备份到总部服务器上;备分公司设立服务器,分公司数据存放在当地,各分公 司目常撵律本遣服务器上豹系统,按照总部要求,定隧将数据透过远程数攒传 输备份到总部服务器,分公司与总部的定时数据传输利用t c p i p 编程实现,实 时通信贝q 用s o c k e t 编程实现。 本文以轷i n 面w s 转凇为体系蘩构,研究将c o 辩组传对象模黧技术和多线程 技术运用到远程传输和存储系统的软件开发中。研究如何利用s o c k e t 来实现集 团总部与分公司间的实时通信以及基于t c p i p 协议定时数据传输设计与实现 的其体技术纲节。提出的方案充分考虑蓟企监潮络和硬终的蜜嚣情况在不增加 企业额外条件下,利用s 0 c k e t 编稷灵活方便适含实时通信的特点,整个系统采 用1 】i n d o w sd n a 体系架构,具有较强的灵活性,能够适应企姚业务处理上的多 样往要求。 3 北京化t 学枷i 学位跑文 2 。 网络体系结构 第二章数据传输 计算机网络是计锋机技术和通信技术的结合,其组成结构非常的复杂,但 其本质就是若干协议的组合。这些协议或者由物理的硬件实现,或者由软件来 实现。为了简亿协议设计的复杂性,大多数网络都按屡或级的方式来组织暾用 程序,每层实现一组功能。每一罄的功能都是建立在下一层豹服务之上的。每 层的服务由一组服务原语( p r i i t i v e ) 描述。习惯上将这些屡和协议的集合称为 网络体系结构。 为了方便全世界范围内的计算机进行开放式的互联和通信,国际标准化组 织( i s o ) ”创建了一个有助于开发和理解计算机逶信的网络体系结构模型一开 放系统甄联模型( o s i ) 。在该模燮中,网络被分为七层,包括物理层、数撵链路 层、网络层、传输层、会话层、表示层和应用屡,该模型如图2 一l 所示。 艨用层 表示层 会话层 传输层 网络层 数据链接层 物理层 图2 一lo s i 模型 o s i 模型是对发生在网络中两节点之间过程的理论化描述。它并不规定支 持每一鼷豹硬件或软佟的模型,毽蠢关网络抟每彳孛事均戆对应瓢模型中的一层, 因此,它是开发新的阏络协议时的一个重要参考,也有助于学习已有的协议。 在实际中,t c p i p 协议是使用最多的网络模型,正在蓬勃发展的i n t e r n e t 的核心貉议就是罩e p i p 。除我蠢外,镬用较多豹协议还氧括i p x s 默( 阙舔氛交 换序列交换协议) 、n e t b i o s ( 网络基本输入输出系统) 和a p p l e t a l k n “协议,这 些协议也有自己的通信模型,但是都可以对应到0 s i 模型中。 4 北京化。r 人学钡十学位论文 ,t 分瑶豹瘸络体系结掏中,下层能淘上层提供载服务璇分为两种不鞫的形 式:l i ,j 连接的服务和无连接的服务。前者在使用时,刖户必须先建立连接然 后才能使用连接提供的服务,在使用结束后必须释放连接。无连接的服务则没 育建囊和器放连接的过程。酲向连接豹驻务是磷靠的,宅可以保证发送方豹数 据包最终按照发送顺序准确的到达接收方,而在无连接的服务中,数据包w 能 丢失,也可能乱序,或者两者兼脊。 窝觅的嚣向连接服务包括丁c p i p 中的t c p 和s p i i 瓤中的s p x ,它们的服 务是可靠的,而u d p ( u s e rd a t a g r a mp r o t o c 0 1 ) 和i p x ”1 则是无连接服务的协 议。 西囱连接豹服务w 以建立在无迤接豹服务之上,通过确认、定时器超时重 传、序列号和滑动窗阴等机制在不可靠的传输服务之上提供可靠的服务。t c p i p 协议中的传输层协议t c p 就是一种建立在无连接服务之上的筒向连接的协议, s p x i 疆协议中的s p x 携议氇是这徉。 2 2s o c k e t 编程原理 2 2 1t c p l p 协议族和网络通讯方式 t c p l p 起源于美匿国防部高级研究规划嚣( d a r p a ) 的一项研究计划实现 若干台童桃的相互通债。现在p i p 已经成为i n t e r n e t 上遥信的工业标准。 t c p i p 模型包括4 个层次应用层、传输层、网络屡和网络接口层,是i n t e r n e t 所采用的进行网骣互遮的通讯协议,包括了工体在不同层次上的孵络协议:i p 互连协议、u d p 用户数据报协议、a r p 地址解斩协议、r a r p 反向地址解析协议。 应用层协议包括f t p 文件传输协议、s 婀p 简单邮件传送协议、t e l n e t 终端协议、 h t t p 超文本传输协议等。 t c p i p 是一种对计算机通讯数据进行打包和罨址的标准方法,它把数据分 成若干个小数据包,并给每个数据龟加上特定的标志。当数据包到达目的地后, 去掉其中的i p 地址信息,去检查数据是否有缺援。然后再将务个数据包重新组 合,还原成原来的数据文件。另外t c p i p 协议还擒供了良好的不同种类计算机 之间进行甄连的能力,而且在各种计算机网络和操作系统上都可以实现,因此 5 北京化 二大学碗 。学位论奠 戎i n t e r n e t 上褥到了广泛豹应雳。 网络通讯既可以疑面向连接的,妇可以是面向无连接的。t c p “1 属_ j _ “面 纠连接,可靠传输”的类型,在进行通信之前,需要在两个系统之间建立逻辑连 接,在每个数据传输豹过程中都需要进行应答议保证数攒包的完整。这种疗法 可以保诞数据传输的可靠性。目前纂于t c p 的多种应用如丁e l n e t ,h t t p ,f 1 p 和 s 旧p 等。 u 辨也即用户报文携议。它属予“面向无连接,不可靠佟输”的类型,此 协议只负责接受和发送由上层协议传递的消息,它本身不进彳子任何检测,修改 和应答,上层协议要自己去处理这糍事务,因此在良好的网络环境中其工作效 率比t c p 嚣离。嚣前u 卿豹应焉主要集中在网络广播等方面遥有聊天软件等。 网络层负责分组在网络中的活动,包括i p ( 网际协议) ,i c m p ( i n t e r n e t 互 连网控制报文协议) 以及i g m p ( i n t e r n e t 组管瑾协议) 。链路层通常包括操作系 统中的设备驱动程序和计算橇中对癍的网络接口卡,它们一起处理与电缆豹物 理接口协议。t c p i p 协议协议的核心部分是t c p 和u d p i p 和物理层。这v ;兰层 通常在操作系统内核实现。用户遇过应用程序使用这些协议。应用程序对这些 协议豹调用逶过编程界鬣。编程界面有两重形式:内核直接提供豹系统调爝和 以库函数方式提供的备种函数。t c p i p 环境下的应用程序是通过网络编程界面 ( 即套接字) s o c k e t 来实现的。 2 2 2s o c k e t 套接学 s o e k e t s ( 又简称为w i n s o 豳e t 载w i n d 渊ss o c k e t s ) 悬髯i n d o w s 基于i s o 模 型的网络连接规范,它在传输层建藏网络接黯郝件,是一个粕s a ( w i n d a w so p e n s e r v i c e sa r c h i t e c t u r e s ) 类型的部件,提供网络传输服务,是应用程序与隧络 之闻的标准接臼。s o c k e t s 是在u e 。b e r k e l e y 大学的b s du n i x “”基础之上发 展起来的游络通信接口,驻着u n i x 搡作系统的广泛使用,它成为当前最流行韵 网络通信应用程序接口之一,并由m i c r o s o f t 等凡家公司共同制定了一套标准, 即并i n d 渊ss o c k e t s 髋范。s o c k e t s 套接字是通信的螯五。根据网络特性可分 为流套按字和数据撤套接字。流套接字提供双向的,寄序的,无重复并且觅记 录边界的数据流服务,通信双方进行数据交换之前,必须建立一条路径,这样 6 北京化t 人学硕士学位论文 翳能确定它们之渊存在的路由,又保证了双方帮起活动并可彼疵确应。数掘报 套节字不保证数据传输的可靠性,有序性和无重复性。套接字存在于通信区域 中。通信区域也叫地址族。它是一个抽象的概念,主要用于将通过套接字通信 豹进程豹共有特性综合在一起,套接字逶常只与同一区域的套接字交换数据( 也 有可能跨区域通信,但这只在执行了某种转换进程后才能实现) 。w i n d o w s s o c k e t s 只支持一个邋信区域:网际域( a f - i n e t ) ,这个域被使用网际域协议族 通信的避程使霜。不网的计算机存放多字节值的颓序不同,有的机器在开始地 址存放低位字节( 低位先存) ,有的机器在开始地址存放高位字节( 高位先存) 。 基于i n t e l 的e p u ,常用的p c 机采用的是低位先存。为保证数据的正确性,在 翔络协议中需要指定网络字节颓序。k i p 携议使用1 6 位整数移3 2 位熬数的 高位先稃格式。 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 。s o c k e t 是可以被命名和寻址的通信端 熹,一个正在使用的s 0 c k e t 都有它豹类羹和与其相关的进稔。 由于电脑主机问的通信是通过运行于主机的一个或数个进程来实现的,因 此要进行i n t e r n e t 中不同主枫或进程之间的通信,首先要解决舱问题是对通信 进程的标识。在单枫环境中,每个进程可雨其进程号“”1 来唯一标识,但在网 络环境申,仅仅一个进程号已经不能用来唯一标识某个进程,还必须辅以对进 程所在主帆的说明。弗且,出于进穗是操作系统中盼一个概念,因此必须使用 一个比进程更低级和更稳定豹对象就是端日( p o r t ) 。 端口是一种抽象的软件结构( 包括一些数据结构和i o 缓冲区) 。应用程序 通过系统调用与某端嗣建立连接( 8 i n d i n g ) 后,传输层传绘该端岛的数据被相应 的进程所接收,相应进程发给传输层的数据都通过该端口输出。端臼用一个整 数型标识符来表示,即端口号。端口号跟协议相关,t c p i p 传输层的两个协议 p 和u d p 是完全独立的两个软彳孛模块,因此菇囊的端口号也相互独立。壤目 使用一个1 6 位的数字来表示,它的范围是o 一6 5 5 3 5 ,1 0 2 4 以下的端口号保留给 预定义的服务。例如:h t t p 使用8 0 端口,f t p 使用2 l 端口。 7 北京化工大学坝i 学位论t 2 2 3 鞭i n s o c k 在e s 开发上的馥用 首先介绍c s 的开发模式一在t c p 1 p 网络应用中,通信的两个进程问相互 作用的主要模式是客户机服务器模式( e s ) ”,及客户向服务器提出请求, 服务器接收到请求后,提供相应的服务。客户机服务器模式的建立基于以下两 点:首先,建立网络的起因是网络中软硬件资源,运算能力和信息不均等,需 要共享,从箍造就捆肖众多资源豹主搬提供服务,资源较少的客户请求服务这 一非对称作用。其次,网间进程通信完全是弊步的,相互通信的进程闻既不存 在父子关系,又不共事内存缓冲区,为二者的数据交换提供同步,这就是基于 客户机服务器模式豹t c p i p 。蔷先是服务器方要先宸动,并根据请求提供相 应的服务:打开一个通信信道并告知本地主机,它愿意在某个地址和端口上 接受客户请求。等待客户请求到达该端口。接收到重复服务请求,处理该请求 势发送缴答信号。接受到劳发服务请求,要激活个凝豹进程( 或线程) 来处理 这个客户请求。新进程( 或线程) 处理此客户请求,弗不需要对其他请求作出应 答。服务完成后,关闭此新进程与客户的通信链路,并终止。然后等待另一个 客户请求。关溺鼹务器。打开一令道信逶道,并连接劐瑕务器艨在豹主槐豹特 定端口,向服务器发送请求报文,等待并接收威答;继续提出请求,请求结束 后关闭通信道并终止。通常情况下,s o c k e t 套接字可以根据所服务应用程序的 透信性质进行分类。蘩予运行在i n t e r n e t 模型运输屡酶逶信协议是透信性质豹 反映,因此,依据所支持的通信协议,w i n s o c k 可分为: ( 1 ) 流式套接字( s t r e 鲫s o c k e t ) 它楚一种基于墨c p 势议豹套接字,捷供了一个嚣淘连接、双自传输、可靠 和无差镄的字节流通信服务。由于采用了面向连接的通信方式,从而保证了数 据无重复的发送和按发送顺序的接收。这种类型的套接字具有流量控制的功能, 能够有效缝避免数掇流量超隈,无需保持信息边界。滚式套接字采援客户机 服务器架构,是一种丽向“数据流”的传输方式。当应用程序在服务器端成功 创建s o c k e t 后立即使其处于等待状态( 即l i s t e n i n g 监诉状态) 。”,位于客户端 的s o c k e t 在成功建立器通过调用c o n n e e t 命令主动去帮溅务器端的s o e k e t 进 行连接。连接成功后,客户s o c k e t 洋口服务器s o c k e t 便成为两台主机上的进程 间进行通信的访问工具。客户端的进程或者服务器端的进穰可以通过各自的 8 北京化1 “大学碳 学位论文 s 。c k 。t 遴行数据的发送都搂送工稚。待数据收发r 作完戏后立睁拆除所建立豹 连接,相应地客户端与服务器之间的一次通信过程便告结束。 ( 2 ) 数攒报套接字( d a t a g r a f f s o c k e t ) 与浚式套接字不嗣,数据报套接字是一种基子i n t e r n e t 运输层另一秘通信 协议u d p 协议的套接字。它提供了一个无连接的通信,每个数据包内都含有目 的地址。这些数据包以独立包的形式在网络中传送,具有不保证顺序、不保证 不重复的特点,特剐是在发生错误的情况下,不会进行重新传送,属于单向的 发送类型。常用于传递有大量图像数据的系统中。 本系统中使用的是流式套接字使用s o c k e t 按曰进行网络通信时要遵循以 下的步骤:对套接字编程的过程溉矧如下:服务器蕾先启动,逶逑调用s o c k e t ( ) 建立一个套接口,然后调用b i n d ( ) 将该套接口和本地网络地址联系在一起,再 调用l i s t e n ( ) 使套接口做好侦听的准备,并规定它的请求队列的长度,之飚就 调用a c c e p t ( ) 来接收连接。客户在建立套接口疆就可调用c o n n e c t ( ) 和服务器 建立连接。连接一旦建立,客户机和服务器之间就可以通过调用r e a d ( ) 和 盯“e ( ) 来发送和接收数据。最后待数据传送结束后,双方调用c l o s e ( ) 关闭套 接口。套接字接匿谲月l 流程如下圈2 2 所示。 图2 2 流套接字编程时痒图 9 北京化1 二火学颇 j 学位论文 3 1 系统设计原则 第三章系统的总体设计 根撼信息系统的特点,应按照下列设计原则: ( 1 ) 以软件工程设计理论为根据,以信息系统设计的理论基础为标准,以数据库 设计璞论为指导,对整个系统进行绫一豹模块划分和设计,系统采用三层结构; ( 2 ) 系统成具有适用性、应用集成性、通用性、安全性及可靠性; ( 3 ) 灵活报表设计,满足客户个性化需求: ( 4 ) 掇表分析与综合查询功能,满怒客户各令箧次的决策需要。 3 2 系统的总体设计方案 3 2 1 三种分布式对象技术流派及本系统的选择 分布式对象技术是伴随网络技术发展丽逐步完善的一种豫向对象技术,它 为基于湖络化信惠系统开发提供了强有力静解决方案,成为建立服务应周框架 和软件构件的核心技术。 目前分布式对象技术有3 种主流技术一c o 艇、j 8 v a 和c o r 卧【2 ”】 以及基于此 形成豹d n a 、e j b 、c o r b a 分布式对象体系。c 榨b a 技术是1 9 9 1 年颁布,特点是 出现时间翠,技术全鲻,但标准更新缓慢;接潜是微软的c 伽技术,特点怒效 率高,有瓤套开发工具,开发筒单,但是跨平台娆力较差;髓s u n 公司的j a v a 平台推戡最晚,特点是纯语言桎,踌平台性。 由于w i n d o w s 操作系统在当前的p c 机上的绝对优势,c 例d c 伽c + + 组传技 术得到广泛应用,目前已有大量系统基于此组体技术,且随黄n e t 技术的如现 及发展,此体系结构跨平台的能力越来越强,因此在最终开发中,我们选择了 d n a 体系作为分布系统的开发方法为基于生命周期c 0 l 组件软件工程方法。 w i n d o w sd n a 体系以中间业务逻辑层为核心,丽中闻业务逻辑层的核心技 术是e 洲组件,可以说c 侧组件是微软w i n d o w sd n a 体系的核心的心脏。c 伽 组件的可重用性为开发人员提供了一种不同于传统信息系统开发的崭新的软件 开发方案,即基于组件,以组件为中心的软件工程方法。纂予传统生命周期的 北京化工火学硕l 学位略殳 c 渊维 牛软 牛工程疗法侧重f 缝件静产生与集成。在需求分析与数据库设汁豹 基础上,完成组件必要性分析,合理地划定事务缀件,然后划分组件功能,确 定组件接口,即完成缎件设汁;对组件进行测试与部署。最后是整个系统的测 试,运行维护与评徐。在概要设计除段将主要采用传统的结构优设计方法,丽 在详细设计阶段将以c o m 组件的设计方法为主。 3 。2 2 三屡结梅 三层结构是在分布式对象技术陋”1 成熟之后建立起来的,它的基本思想是 将用户晃面同企业逻辑分离,把信息系统按功能划分为表豕、功能和数据三大 块,对疯的软件层: ( 1 ) 客户层( 表示层) ,表示层是应用的用户接口部分,它掇负着用户与应用 闻的对话功能。它用于检查用户输入的数据,嫩示赣出的数据。一般在客户层 不存放渡务逻辑或存放很少。 ( 2 ) 中间层( 业务逻辑层) ,通常由应用服务器戚w 髓服务器实现,中间层提 供业务逻辑、事务调度,并与数据麾有连接,它充当客户与数据库之闻的桥梁。 盯s 等事务服务器都建中间层服务器,e 嘲或c o r 8 a 对象可以嵌入其中提供渡务 逻辑。 ( 3 ) 数据库层,即d 酬s ,受赏管理对数据摩数据的读写,能迅速执行大量 数据库系统( 鞠麟s ) 。 三层应用体系结构改进了可伸缩。”的应用程序。为了创建高伸缩性的应用稷序, 数据库连接之类的资源必须可以共事。对可伸缩性疲羯程序,每一个溃耗资源 的客户应用程序并不赢接访问数据霹服务器,丽是由客户应用程序与商业服务 进行通讯。一个商业服务实例可以向多个客户提供服务,这样就降低了资源消 耗,并提高了伸缩性。霹为商业服务劳不直接管理数据,所以很容易复制这些 服务,以便支持更多豹客户。 服务往往可以独立于任务特定的客户应用程序来设计和实现。这样,对于 银多应嗣稷序来说,就提供了缀大的灵活健和重复使用斡潜力。通过在定义磐 的公共接口之后封装波务逻辑,开发人员可以刨建可重复使耀的服务的一个载 体。这必服务可以很容易地用新的方式来组合,以创建新的殿用程序。此外, i l 北京化工凡学颂卜学位涂史 公共功能缀容易被更新,以适应藏我需求的变 乞,j 羝不必需要影臻那些依赖f 一 该功能的客户应用程序。这就降低了因商业需求的变化而导致的管理和部署方 面的开销。当然这需要保持应用逻辑层中组件接口的稳定性。三层应用体系结 匈还可以帮助开发人受处理现有的系统,开发人员呵以把现蠢系统蘸访闷封装 在业务逻辑或数据访问服务中。客户应用程序只需关心怎样访问业务逻辑,而 不用关心怎么访问他们可能依赖的器种不同的降i 日系统。丽如果某个遗爨系统 被更改或者替换了,在保持接口稳定性豹情况下,只需要将包装程序更薪就可。 单纯的采用三层应用体系结构并不能保证应用系统开发的成功。在这之外,还 需要注意一些影响系统成功与否豹关键因素。 3 2 3w i n d 伽sd 的概念 | f i n d o w sd n a 体系是微软的分布式对象技术解决方案。w i n d o w sd n a m “1 是 再i n d 伽sd i s t r i b u t e di n t e r n e ta p p l i c a t i o n sa r c h i t e c t u r e 的缩写,如聚直 译成中文,是“w i n d o w s 分布式集成网络应用体系结构”的意思。 孵i n d 明sd n a 的核心是将轷曲和客户机服务器豹应用开发模型通过一套公 共对象模型集成起来。w i n d 0 w sd n a 使用一套公共服务集,如组件、动态啊札、 w e b 浏数器和服务器、脚本、事务处理、消息队列、安全性、目录、数据库和 数据访阍、系统管理以及震户界西等。这些服务在各个层次上以同一种方式开 放给应用程序使用。稠用w i n d w sd n a 提供的优势,开发人员可以构建全新的 应用程序,包括电子商务和其它个人之间及企北之间的通信殿用,由于充分利 用了标准霹终服务和先进的基于缀律的开发模式,开发人员可以比以往更快地 开发出全新的应用。w i n d o w sd n a 为网络应用提供了所有毁基本的组件,所以 开发人员可以把精力集中在产品的创薪上,而笼须关注底层结构和服务的构造。 3 3 系统整体结构 由于本系统划分为客户端程序和服务器端程序,在多个客户端有共间的发 送模块以及在服务器端有一个接l | 殳模块。如图3 一l 所示 北京化t 天学坝 j 位论殳 图3 一l 系统的总体模型 】3 北京化t 大学硕 学位论殳 4 1c o 隧技术介绍 4 1 1c o m 概念 第四章c o m 组件对象模型 缨传对象模型( c o m p o n e n to b j e c t 鹾。d e l ) ,靼3 篱称为c o m ,是一项将软 件拆分成各个彼此独立的二进制功能模块文件,各文件之间通过二进制调用来 完成复杂功能的软件开发技术。它的优点是允许对软件的局部进行修改,并替 换相应的文俘,恧不影响软传整体的运行。 一般的讲,一个应用程序总是由单个的二进制文件组成。在以前,如果这 个程序需要做一些改进就要修改源代码,然后编译,生成新的文件,然后取代 飘来盼文件。现在,我钔用一种全新的惫度来看婀题:把原先攘个的e x e 珂执 行文件,分割成功能不同,但相对独立豹几个部分,把它们拼装起来,组成程 序,组成软件。在未来程序发布以后,如果意识到需要对他进行修改,只要替 换有翔题豹或是需要奔缀扮缀传就可以了。甚至可戳傲到在零影响程序正常运 行的情况下替换其中的部件。在w i n d o w s 系统中,d l l 似乎具有这些特性:可 以动态连接。事实上,c 伽正是充分利用了霄i n 3 2d l l 的灵活性才得以真正在 详i n d 觯s 平台主实琨豹。 这样做有很多优点,首先:用户一般希望能够定制所用的应用程序,丽组 件技术从本质上讲就是可被定制的,因而用户可以用更能满足他们需要的某个 组佟来替换原来豹那个。其次,由于组件是相对应翅程彦猿妻的部镩,我们可 以在不同的程序中使用同一个组件砸不会产生任何问题,软件的可重用性将大 大的得到增强。第三,随着网络带宽及其重要憔的提高,分布式网络应用程序 毫无疑润豹成为软传越来越重要的特点。组搏絮构霹以使褥搿发这类应用骡序 的过程得以简化。 c 伽是一个说明如何建立可动态互变组件的规范。它定义了一些为保证能 互搡俸客户( 一令术语,撵需要菜种组 孛的程浮) 缀伴必须遵键煞标准,e 蹦援 范就是一套为组件架构设置标准的文档形式的规范。c o m 的发布形式是:以 w i n 3 2 动态链接库( d l l ) 或者可执行文件( e x e ) 的形式发布的可执行代码组成。 1 4 北康化r 大学硕士学位论殳 c 酬组件是动态连接的,瘫置c 删缎馋是完全与语言无关豹。同对,c 侧缀件 町以以二进制的形式发布。c o m 组件还可以在不妨碍老客户的情况下被升级成 新的版本。c o m 所能提供的服务类似c + + 中的类。不过类是纂于源代码的,c 洲 则不是。 4 1 2 维件的产生 在软俘开发的初期,一个戏蔫系统往往是个单独豹瘦用程序。应用越复 杂,程序就越庞大,系统开发的难度也就越大,而且,一旦系统的某个版本完 成以后,在下个版本出来之前,应用程序不会再有所改变。褥对于庞大的程序 来讲,更新敝本豹周期缀长,在两个版本之问,如果由于操作系统发生了变化, 或者硬件平台有了变化,则软件系统就很难适成这样的变化。所以这类单体应 用程序已经不能满足篙要。 从软俘模型角度来考虑,把一个庞大的应用程程序分成多个模块,每一个 模块保持一定的功能独立性,在协同工作时,通过相互之间的接口完成实际的 任务。缚个这样的模块称为组件。每个组件可以单独开发,单独编译,甚至单 独调试和测试。当所有的组俘开发完成后。把它们组会在一超就得到了完整的 应用系统。当系统的软硬件环境发缴变化或者用户的需求有所更改时,并不需 要对所有的组件进行修改,而只需对受影响的组件进行修改,然后重新缀会得 到新的升级软件。 4 2c o 靖技术剖析 c + + 一直是程序员的编程利器,它是一种灵活的程序设计语言。随着c + 十 程序员数量的日益庞大,许多有关遮门语言的缺陷也都逐渐为人们所熟知。c + + 的一个主要嚣标是允许程痔员建立用户自定义类塑。面显这些类墅霹敷在原始 实现环境之外被重复使用。因此c + + 类库”1 的市场就出现了。但c + + 的类库是 基于源代码基础上的,不能跨语言使用。而且,人们逐渐发现,重用其他开发 人员的代褥往往看起来眈简单魏重新实现这些代码要付出更多的代价。不仅需 要理解封装在类库内部的底层技术,还需要理解类库本身强加的抽象概念。重 用性是恧向对象编程的一大优点,但是,要编写个很容易被黧用的c + + 类非常 北京化一大学硕士学位论史 困难。“f 瓤洋缨分绍c + + 类做出可蘼用维件将会露临怎祥的丽难,这些困礁如 何被二进制兼容概念的组件对象模型所解决。 4 。2 1 软件发毒闷题 为了理解“把c 十+ 作为组件的基础底层结构”所带来的问题,必须说明自 8 0 年代盾期以来c + + 类库是如何被分发的。比如我开发了一个连接数据库的类, 凡是需要用刭对数据痒搡作的应粥程净都可以使用该类。这个类的头文件如下, 其中包含类定义: d b c o n n h c l a s sd b c o n n 定义变量: p r i v a t e : 添加一个指向c o n n e c t i o n 对象的指针 e o n n e c t i o n p t rh t p e o n n e c t i o n : 添期一个指向r e c o r d s e t 对象的指针 一r e c o r d s e t p t r 瑚j r e c o r d s e t : 定义方法: p u b l i c : d b c o n n ( ) :构造函数 v i r t u a l d b c o n n ( ) ;折构滋数 扔始化一连接数据库 v o i d0 n i n i t d b c o n n ( ) : 执行查询 一r e c o r d s e t p t r g e t r e c o r d s e t ( b s t r t b s t r s q l ) : 执行s q l 语句,i n s e r tu p d a t e v a r i a n t t : b o o le x e e u t e s 姥( j s t r _ tb s t r s 睡) ; v o i de x it c o n n e c t ( ) : 备份数据库 北球化1 u _ 大学硕 学位论空 v o i d8 8 c k u p ( ) : 恢复数据库 v o i dr e s t o r e ( ) : ; d b c o n n c p p 文件 类的实现文件从略。从传统意义上讲,c 十+ 库一囊以源代码的形式分发。使用类 霹静应羽程序可以把实现代码热入翔工程中,然后用c + 编译器在本迪重新编 译库的源代码。假定类库只用到c + + 编程语言中被广泛支持的一个子集,那么 这将是一种非常可行的做法。结果是,类库的可执彳亍代码将成为客户应用巾不 可分割的一部分。 假设对于前面提到的d b c o n n 类,它的方法所产生的机器码将在目标可执 行文件d b c o n n o b j 中占有大约2 m b 的空间( 实际占用空间数量要根据算法的 复杂度髓定) 。如果霹个应用都使溺舀粥o n n 类,那么每个可执行文件都将包含 2 m b 婚类库代码,这意味着,如果一个业务员根据工作需要安装了所有这四个 应用程序,那么d b c o n n 类的实现将会占用2 船的磁盘空间。更严重的是,如 采他同时运行这疆个程序,郡么d 黼o n n 类代鹦将会占用躐的虚拟内存,因 为操作系统不能够检测到多个可执行文件中重复出现的代码。这种情况下产生 的另个问题是,一量开发人员发现了d b c o n n 类中的缺陷,没有任何办法能 替换部分实现代码,旦d b e o n n 代码己经被链接戮客户应用中,我们就不可 能在最终用户的机器上直接替换d b c o n n 代码。相反,开发人员必须重新编译 这四个应用程序后,再为业务员薰颛安装。这就是说,一旦客户运行了链接器 并且产生了最终可执行代码之后,d b c o n n 组件就没有模块讫的特征了。 4 2 2 动态链接库 | 2 王上问题的解决方法是改变类瘁的静态编译摸式,使用动态编译的方法, w i n d o w s 系统提供的动态连接库( d l l ) 1 的机制就可以完成这样的工作。用一 个类层次上的编译器撵示蓰,强追d 8 c o n n 豹所有方法都从睫l 中g | 出去。c + 十 为这种用法提供了一d e c l s p e c ( d l l e x p o r t ) 关键宇,上面的代码应改为: c l a s s d e c l s p e c ( d l l e x p o r t ) d b c o n n 数据库连接类 北京化r 大学硕士学位论文 cl a s sd 转o n n 定义变量; p r i v a t e : 添加一个指向c o n n e c t i o n 对象的指针 c o n n e c t i o n p t r 艮p e o n n e c t i o n : 添拥一令撵向r e c o 列s e t 对象的指锌 一r e c o r d s e t p t r 毗p r e c o r d s e t : 定义方法: p u b h e : d b c o n n ( ) :构造函数 v i r t u a l d b c o n n ( ) ;析构函数 初始化连接数据库 v

温馨提示

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

评论

0/150

提交评论