(水利水电工程专业论文)分布式vrgis的消息传递机制研究.pdf_第1页
(水利水电工程专业论文)分布式vrgis的消息传递机制研究.pdf_第2页
(水利水电工程专业论文)分布式vrgis的消息传递机制研究.pdf_第3页
(水利水电工程专业论文)分布式vrgis的消息传递机制研究.pdf_第4页
(水利水电工程专业论文)分布式vrgis的消息传递机制研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

华中科技大学硕士学位论文 = = = = = = = = = = = = = = = ;= = = = = = = = = = ;自 摘要 虚拟现实地理信息系统( v r g i s ) 是随着计算机图形技术和人机接口技术的发展。 在传统二维g i s 系统基础上发展起来的新型g i s 系统。v r g i s 在扩展g i s 应用领域的 同时,也给g i s 设计带来了新的问题。本文结合地理信息技术,虚拟现实及网络通讯 等技术,以现在行业中广泛应用的a r c 1 n f 0 和v e g a 软件环境为基础,设计了套耦 合技术方案,实现了将两者合二为一的v r g i s 系统。此v r g i s 系统分为地理信息子模 块和虚拟现实子模块,两模块相对独立,消息传递技术是将分布在网络上的两子模块 耦合,形成新系统的关键,本文着重讨论了这一技术并提出了一套适用于v r g i s 系统 的消息传递机制,在以f 方而有所创新: 1 设计了一利,实现v r g i s 的可行办案; 2 方案的实现进一步丰富了v r g i s 理论; 3 利用w p i 思想设计了一套适用于此v r g i s 系统的消息传递机制; 4 克服了已有v r g i s 数据格式独立,需重新建模带来的不便,可继承使用原有 的a r c i n f o 和v e g a 模型数据。 c 此方案以华中科技大学校园为实验对象,以c 语言为丌发语言,建立一套校园 v r g i s ,实现了基本的地理信息系统功能。本消息传递机制以数据流套接口为基本手 段,对抑i 的消息传递思想进行研究,并提出了套适用于本系统的消息传递机制。 在此机翩中;对消息传递的格式、传递函数及在系统中的应用方法都做了详细的规定。 经实验证明,此消息传递机制在此系统中稳定的工作,可靠地完成了消息传递任务; 并大大简化了代码编写量并降低了系统维护工作量。此消息传递机制可应用于数字校 + 、 园、数字城市、数字流域等的研究丌发工作。纱7 关键字:虚拟现实地理信息系统v r g i s 消息传递套接口 i 华中科技大学硕士学位论文 a b s t r a c t w it ht h ed e v e l o p m e n to ft e c h n o l o g i e so ft h ec o m p u t e r g r a p h i c sa n d c o m p u t e r h u m a ni n t e r f a c e ,an e wk i n do rg e o g r a p h i c a lt n f o r m a t i o ns y s t e m , v i r t u a lr e a lit y ( ;i s ( v r g i s ) ,w h ic hisb a s e do nt h et r a d it i o n a l2 - d i m e n s i o n a l g e o g r a p h i c a li n f o r m a l i o ns y s t e m ,ise m e r g i n g v r g i se x t e n d st h eu s a g eo fg i s , a tt h es o m et i m e ,b r i n g snewp r o b l e m sf o rt h ed e s i g no ft h eg i s i nt h ep a p e r , ac o u p li n gs c h e m ei sd e s i g n e dt oc r e a t eav r g i sb a s e do nt h ep o p u l a r l yu s i n g a r c i n f oa n dv e g ae n v i r o n m e n tw i t ht h eg i s ,v i r t u a lr e a l i t ya n dn e t w o r k c o m m u n i c a t i o nt e c h n o l o g i e s t h es y s t e misc o m p o s e dw i t hag i sm o d u l a ra n da v rm o d u l a r t h em e s s a g ep a s s i n gi st h ek e yt e c h n o l o g yt h a tc o u p l e st h et w o m o d u l a rd is t r i b u t e do nt h en e t w o r ka n dm e r g e st h e mi n t oaw h o l eo n e w ef o c u s o nt h i st e c h n o l o g ya n dp r o p o s e dam e s s a g ep a s s i n gm e c h a n i s mt h a ts u i t st h e v r g i ss y s t e mw ed e s ig n s w ei n n o v a t ei nt h ef o l l o w i n gp o i n t s : 1 af e a s i b l es c h e m ejsp r o p o s e df o rt h ev r g i sr e a li z a t i o n : 2 t h ee x t e n s i o no fv r g i st h e o r y : 3 am e s s a g ep a s s i n gm e c h a n i s mi sd e s i g n e df o rt h ev r g i sw i t ht h em p i i d e o l o g y 4 t oo v e r c o m et h ei n c o n v e n i e n c eb r o u g h tb yt h ei n d e p e n d e n td a t af o r m a t o fo r i g i n a lv r g i sb yi n h e r i t i n gt h ea r c i n f oa n dv e g ad a t a ac a m p u sv r g i si sb u i l ta n dr e a l i z e dt h eb a s i cf u n c t i o no fg i su s i n gt h e c a m p u so ft l u a z h o n gu n i v e r s i t yo fs c i e n c ea n dt e c h n o l o g ya st h ee x p e r i m e n t o b j e c t ,a n dcl a n g u a g ea st o o ls t h em e c h a n i s mp r o p o s e sas t a n d a r df o rv r g i s m e s s a g ep a s s i n gb a s e do nt h es t r e a ms o c k e ta n dm p im e s s a g ep a s s i n gi d e o l o g y i nt h es t a n d a r dw ed e f i n et h em e s s a g ef o r m a t ,m e s s a g ep a s s i n gf u n c t i o na n d i t sa p p l i c a t i o nind e t a i l a st h ee x p e r i m e n tp r o v e d ,t h em e s s a g ep a s s i n g 华中科技大学硕士学位论文 m e c h a ms mcarw o r ki nt h ev r g i ss t e a d i ly ,a n dc o m p l e t ei t st a s kw e l l a n di t s i m p li f l e dt h ep r o g r a m m i n ga n dt h em a i n t e n a n c eo ft h es y s t e m t h em e s s a g e p a s s i n gm e c h a n i s mc a nb ea p p l i e dt ot h ed i g i t a lc a m p u s ,d i g i t a lc i t ya n d d i g it a l v a ll e yp r o j e c t k e yw o r d s :v i r t u a lr e a l i t y ,g e o g r a p h i c a li n f o r m a t i o ns y s t e m ,v r g i s ,m e s s a g e p a s s in g ,s o c k e t i i i 华中科技大学硕士学位论文 1 1 研究背景 第一章绪言 大约十年前丌始,地理信息系统( g e o g r a p h i c a li n f o r m a t i o ns y s t e m ) - 丌始在许 多应用领域扮演起越来越重要的角色。随着各个方面信息量的不断增长和功能需求 的逐渐深入,这些应用系统丌始变得越来越复杂,系统维护工作要求越来越高,这两 项要求对操作者的水平要求,特别是计算机方面要求越来越高,这点与g i s 面向人众 的推j “应用产生了矛盾。如何提高g i s 系统的易用程度,使它们能够面对更多的非专 业用户,传统g i s 简单的二维界面已经难以满足要求,将g i s 以一个更亲切、商观的 方式展示在用户面前是当务之急。1 。据统计,人类8 0 的信息是通过听觉和视觉从客 观世界获取。因此,从人类对事物认知的角度米看,如果能建立一个虚拟世界,使用 户能直接利用现实世界的感官和经验,在一个虚拟世界中完成对各类信息的查询,这 样的操作无疑将是一种最为有效的人机交互方式。虚拟现实技术( v i r t u a lr e a l i t y , 简称v r ) 正是这样一种借助于计算机图形学,对真实世界进行三维建模,让使用者能 身临其境在这个模拟世界中进行参观游览的技术。虚拟现实可以给用户同时提供诸如 视觉、听觉、触觉等各种商观而又自然的实时感知交瓦手段,让用户与虚拟世界最大 限度地方便地接触,f 能汽接操纵= = l ;巾的客休。虽然这两项技术的研究丌始都可以追 溯到上个世纪七十年代,但是将两者的长处融合起来,充分发挥g i s 的大信息量特点 与v r 的亲切直观感受特点,形成一套新的虚拟现实地理信息系统( v r g i s ) 的研究是从 最近十年才玎始发展。 在国外,v r g i s 的第一次应用高潮是在1 9 9 5 年,由f a u s t 主持开发的乔治亚技术 学院的校园v r g i s ;由于有大量的数据需要进行运算,整体工作都是在高性能工作站 甚至巨型机上完成。如今,它已经应用到城市建设规划、军事模拟仿真、经济、教育 等符个领域:们足这啪应用f i 前卜要集中神:,i l 荚及欧洲等少数高度发达的围家。在我 国,利用可视化技术进行城市规划和建筑设计,将实时三维仿真图形与c a d 、g i s 信息 华中科技大学项士学位论文 集成在一起,也已引起充分的重视,在广州、武汉、南京、北京等地的研究机构和大专 院校都u 川继丌展这项研究。但是,拒闲内外v r g i s 的概念及麻圳功能新时没有形成 一一个标准体系,其枷关各项研究都处于方兴未艾的阶段。 近年来国内许多城市在投巨资进行城市信息化建设,其目标从根本上说就是建立 成为虚拟现实的地理信息系统。但由于缺乏统一的标准体系和基本的技术支撑,信息 共享、数据获取与更新机制和技术没有解决,许多必要的数据标准规范没有建立起来, 致使一监已建成的:r 程成为演示系统,造成人力、物力资源的浪费“1 。如果能建曲:起 一套统一的数据结构和标准的消息传递机制,将大大推动“数字城市”的建设。 1 2 研究预期目标及意义 由于目前v r g i s 明确的国际标准暂时尚未建立,本文所研究的分稍式v r g i s 的消 息传递机制,是基于a r c i n f o 和v e g a 组建而成的v r g i s 系统的。a r c i n f o 是目前市 场上地理信息系统中功能最完善,市场占有率最高的产品,v e g a 是m u l t i g e n p a r a d i g m 公司用于实时视景仿真、声音仿真、虚拟现实及其它可视化领域的世界领先级软件环 境。这两者的结合可以说足在两个领域强者的联合,另一方面也可借助于它们的普及 率提高本v r g i s 的通用性。由于a r c i n f o 和v e g a 本身是完全独立的两个应用系统, 要在虚拟现实世界中实现各项g i s 的分析查询功能,以及由两者结合而产生的许多新 的功能,如何建立一套可靠而高效的消息传递机制,完成两个系统之问的通讯,使它 们紧密地结合在一起,是本文所研究的重点。 本文拟采用数字校园作为实验对象,以a r c i n f o 的o d e 开发完成g i s 端功能的 实现,v e g a 的a p i 应用作为三维景观漫游的控制手段,然后在两者之间建立一套完整 的消息传递机制,并结合统一的用户界面管理,实现两者的“无缝连接”。这一套消 息机制,是在通过对m p i 的研究以及结合v r g i s 两端系统特点的基础上创建而成的新 的消息传递方法,并利用库的形式将消息传递函数进行封装,形成一套专门针对于由 a r c i n f o 和v e g a 组合的v r g i s 的处理舰范。 分和式v r g t s 系统的研究,其意义不仅仅是在于实时、交互式的三维查询,还在 华中科技大学硕士学位论文 于它在此基础上提供了其他传统表现方式无法比拟的、崭新的信息交流界面:在亲身 体验三维空| 、口j 的同时通过实时三维场景涧整、信息查询以及多媒体信息集成技术,可 以为城市建设及设计等方案比较推敲、设计思想、特点以及相关信息的展示提供了强 有力的工具。利用普通g i s 作为后台空间数据的管理工具,而将虚拟现实作为前台用 户与地理空间信息交流的渠道,为用户提供更便捷高效的查询、分析功能和结果反馈 途径。 本消息机制的研究,从不同的方丽来讲都有重大的意义。 l 就其本身功能来说,将是a r c i n f o 和v e g a 连接的重要手段,完成系统内的 通讯,保持两者的同步,起着桥梁作用,使分布在网络的两端合并成整体丽 成为v r g i s 的关键; 2 从系统开发的角度来说,依照此标准而建立的消息传递库将大大简化消息传 递程序的) 下发,使整个流程简洁,功能划分清晰,减少编码工作量,降低系 统维护难度; 3 就其对后续研发的影响来说,无疑将对同类v r g i s 系统提供一个范例,以及 一套丌发的程序接口,大大降低系统功能分析时间,简化工作流程,提高开 发速度与效率。 华中科技大学硕士学位论文 第二章理论分析 本章将介绍v r g i s 系统理论及本文中所实现的7 r g i s 系统对此理论的引申,以 及在实现其消息传递机制中所用到的技术及软件思想方法。 2 1v r g i s 概念及其引申 2 i 1v r g i s 概念简介 简短而苦,v r g i s 可以定义为利用传统地理信息系统( g i s ) 的数据存储与处理能 力,以虚拟现实( v r ) 为主要人机交巧:界而,实现地理信息的查询与分析等功能的系 统。 传统的g i s 数据库和人机交互界面目 j i 主要是二维系统,当它描述空间分布数据 时,是通过以一系列不同的颜色和图案来表示空间对象,并在一张地图上以高空俯视 的角度进行描画显示。这种方法主要有两个缺点:一是信息不够直观,造成非专业使 用者理解上难度的增加;二是缺乏一个更加友好的人机界面,使操作难度增大。虚拟 现实技术正是能克服这些缺点,利用计算机图形学,使用户可以身临其境地与复杂的 地理环境信息交互的一项技术。但它除了地形和地面建筑物等直观信息外,内涵的其 它信息量( 如人口密度、资源分布状况等) 太少,不能满足用户的信息需求量。v r g i s 的出现集中了两个系统的优点,使它们互为有力的补充:虚拟现实技术解决了前端交 互界面与三维信息的直观表示:而g i s 后台强大的数据库可以完成各类信息的存储与 查询。 关于v r g i s 的定义及其应具备的特征,到目前为止国际上没有一个公认的标准。 1 9 9 5 年,f a u s t 描述一个完善的v r g i s 应具备以下特征”: 1 能真实的再现真实地理区域; 2 用户能自由在选定地理区域内移动,观测: 3 以3 d 数据库存储信息并能完成标准的g i s 功能( 查询、选择、空问分析等) : 4 华中科技大学硕士学位论文 4 人机交互时,应当有能够逼真反映真实世界的效果,这是系统不可或缺的一 部分。 但是纵观现已丌发的系统,暂时没有一个完全符合上述四个条件。目的在v r g i s 领域的一个发展趋势是在现有的g i s 系统与v r 系统之间建立一个连接,由g i s 系统 来录入并处理地理数据,然后通过可传输的文件格式,按照一定的标准发送给v r 处 理端来显示。这种v r g i s 是一种基于耦合的系统,可清晰地分为个g i s 模块和一个 v r 模块。| 大l 此,1 9 9 6 年b e r g e r 等人j :1 9 9 6 年将v r g l s 的l i 要特征总结为”: i 系统数据库为传统的g i s 数据库; 2 虚拟现实功能作为对g i s 图形功能的补充; 3 v r m l 标准( 地理信息数据传输文件格式) 的广泛应用; 4 依靠桌面g i s ,向p c 机系统进行移植; 5 松散耦合的虚拟现实和地理信息软件系统,图像数据通过一种公用的文件格 式,并利用通讯防议使两端系统达到同步。 2 1 2v r g i s 概念在本系统中的引申 f a u s t 所描述的是一种理想状态的v r g i s ,目前为止没有一个公司或科研单位宣 称自己所研究的系统完全达到这些要求;b e r g e r 等人所描述的v r g i s 在现有的技术条 件下显得更加现实,可行性程度更高。但是,他们所提出的用v r m l 标准传递三维地 理信息的v r g i s ,是针对于i n t e r n e t 而提出的一种模型。三维模型将按照v r m l 标准 通过计算机网络来传递给用户。尽管为了支持在i n t e r n e t 上地理信息的表达,v r m l 标准丌辟了专门的地理学扩展,增加了地理坐标参照信息节点和其他与地理信息表达 有关的节点。但是如果要逼真的反映真实世界,虚拟现实的三维模型将拥有相当大的 数据量,当把这些数据全部通过网络传递给用户时,数据传输的最大速率将是这一系 统的瓶颈:而且而对多用户的同n 寸访问时,服务器如要能满足如此大量的数据传递, 性能要求特别高。为了降低数据流量,只能通过降低模型的精度减少数据量。因此, 目前能通过v r m l 传递的模型相对于用户需求来说还显得较为粗糙,利用v r m l 在w e b 华中科技大学硕士学位论文 空问中充分表达地理空制三维信息还存在凼难。 本文所提的v r g i s 模型在继承了_ j 二述两种模型的基础上,又与两者有所不f 日, 这是一种基于i d e s k 显示的分布式v r g i s 系统。它的目标不是将v r g i s 移植到 i n t e r n e t 上,供多用户远程连接使用,而是更着重于虚拟现实部分能更加逼真反映真 实世界,能成为二维g i s 更加有力的补充,这一点电j 下是f a u s t 所定标准中再三强调 的观点。本系统将沿用传统的二维g s 数据库完成信息查询分析等功能,利用v e g a 完成虚拟现实功能。山1 二g i s 端存储人量的f 膏息,f :执行查询分析等功能需要人量的计 算时间,同时虚拟漫游也需要占用足够多的c p u 资源,如果将整个系统集成在一个二l 三 程序- h 在1 台l 机上运行,势必会造成对土机负担急刚增加。l 斟此我们决定采川分 柿式的体系结构,将v r g i s 系统的地理信息功能和虚拟现实功能清晰划分为两个模块, 使系统分布在两台甚至多台主机上,并利用本文所研究的消息传递机制,完成两个模 块之问的消息传递,达到两个子模块的同步与互桐控制的日的。此v r ( ;i s 模型具彳丁以 下特征: 1 逼真的反映真实世界的地理特征; 2 沿用传统的地理信息系统二维数据库,保证对原有数据的继承利用: 3 能在本系统中完成地理信息查询、分析等标准g i s 功能; 4 允i :地理信息予模块与虚拟现实子模块各自建模,并能够在后期建立剥应 关系; 5 本系统属于由地理信息系统和三维景观仿真系统松散耦合而成,子系统问 可扩展功能强,节点资源可单独升级。 较b e r g e r 等人提出的v r g i s 特征而言,本文认为此模型向f a u s t 提出的理想模 型走近了一步,并具有更高的可实践性与可操作性,其主要优点有: 1 资源可重复利用。在国内外,地理信息系统与三维景观漫游工作也已经丌展 多年,地理模型、信息数据库已经具有相当规模:如果为新的v r g i s 系统再 次建模与信息录入,将是人力,资余等各方面巨大的浪费。而本系统可直接 继承已有数据,避免了信息资源的浪费。 2 对网络传输性能要求降低。山于三维景观与地理信息系统各自建模,系统无 华中科技大学硕士学位论文 i 薪将人殴的:三维模型数据租嘲络1 u 进 j - 1 譬递,极人减轻l 删络的负担,凶此划 l j i ) 9 络一淞宽的要求人大降低,消息传递畦的减少也为两边系统的同步通讯 提供了钉力的保障。 3 可实现多平台系统的耦合。在本消息传递标准建立完成后,可以在异构的操 作系统环境下进行实现。只要按照本标准来建立连接并进行消息传递,可实 现不同操作系统下的地理信息予模块与虚拟现实子模块的耦合,充分利用可 利j i j 资源,兼容性强。 小v i s 模型足种切实i 们j :的办案,其一l t 消息机制的建立与实现足将桐对独立 的两个子模块一一地理信息子模块与虚拟现实子模块进行松散耦合,保证两端子模块 状态的同步,实现两者间的相互功能调用,形成一个整体的关键技术。下文将着重讨 论蜘i 何设讣并建屯这一消息传递机制。 2 2 消息传递基本原理 2 2 1t c p i p 协议与s o c k e t 简介 t c p i p 协议是一个应用于i n t e r n e t 重要的协议簇,它包括i p 协议、t c p 协议、 u d p 协议、 c m p 协议等”。其中,i p 协议是网络层协议,负责将消息从一个网络设备 传送到另一个网络设备,而不管这两台设备是否处于同一网络中,它为高层协议提供 了一个丽向非连接的和不可靠的消息传递服务,u d p 协议和t c i ) 协议都是建立在它的 基础之上。t c p 协议应用于网络的传输层,它是一个而向全双工的连接的协议,保证 从一台机器发出的字节流无差错地发往网络上的其它机器;在发送过程中,它按照把 输入的字节流分成报文段的方式传递给网络层,再在接收时利用t c p 接收进程把报文 重新组装还原成输出流:t c p 还要处理流量控制,以避免快速发送方向低速接收方发 送过多报文而使接收方无法处理。u d p 防议也是一个应用于传输层的协议,它提供不 i i f 讵的、i f m 连接的数据报服务,亿客户机j 服务器之刚没有砌定的通道,每次 的请求;应答都是申对独立的,多用于对响应时问要求较高,不需要协议的消息排序 华中科技大学矾士学位论文 和流量控制能力i 面是i h c v 部控制实现这些功能的应用程序中。 n i j 安照i :述m 义进 j :网络m 的沁息f 簟递之i mn 先必须创建个s o c k el 。s o c k e t 即套接ii ,它足访n u 低层网络汾汉的接lj 。实际一| | 它i u 描述为个通信端点的种软 件形式抽象,提供了一种通过网络的消息发送和接收的机制,它支持多种协议,每一 种协议用不同的套接口地址结构。针对每一个特定的连接,每台计算机上都有一个套 接口;这个连接可以具体化为条虚拟的电缆,套接口则是电缆两端的接入插口。根 据数据传输的模式,s o c k e t 可分为两种”:数据流套接口,是一种基于t c p 协议,面 向连接的可靠服务,在传输前建立一条虚电路连接,可实现无差错无重复的顺序数据 传输;数掘报套接l i ,足基于u d p 哳议的无连接的服务,数掘通过相互独立的报文进 行传输,在网络软件发生故障或网络负载太重时,分组可能会丢失,数据可能被破坏。 l r i x 操作系统下创建一个套接口的操作主要是:在内核中创建一个套接几数据结 构,然后返删一个套接门描述符标i : 这个套接i :l 数据结构。这个套接 1 数据结构包含 连接的各种信息,如对方地址、t c p 状态以及发送和接收缓冲区等。t c p 协议中,完 全标识一条连接仅仅用连接双方的i p 地址是不够的,需要用4 个参数:本地i p 地址、 本地端口号、对方i p 地址和对方端口号。连接一端的i p 地址和端口号组成一个套接 口数据结构,连接双方的套接口组成一个套接口对,一个套接口对唯一地标识一条t c p 连接。t c p i p 协议根据这两个套接口数据结构的内容来控制这条连接完成消息传递工 作。 2 2 2i r i x 系统下套接口基本函数 i r i x 是一种与u n i xs y s t e mvr e e a s e4 兼容的操作系统,也是本v r g i s 系统的 实验运行平台。在i r x 操作系统下利用套接口完成消息传递,主要通过在c 语言中 调用下列函数实现。 1 i n ts o c k e t ( i n td o m a i n ,i n tt y p e ,i n tp r o t o c 0 1 ) s o c k e t 函数建立一个消息传递端点并返回一个套接e l 描述符,参数d o m a i n 指定 要创建的套接口的协议簇;参数t y p e 指定套接口类型是数据流方式还是数据报方式; 华中科技大学硬士学位论文 参数p r o t o c o l 指定使用何种协议。 2 i n tc o n n e c t ( i n ts o c k f d ,c o n s ts t r u c ts o c k a d d rs h a k o ,i n tn a m o i e n ) 用于客户机向服务器发出连接请求,如果成功,则在一个指定的套接口s o c k f d 上建立一个与服务器连接;服务器地址及端口等参数在结构n a m e 中指定,a d d r l e n 指定套接口地址长度。 3 in tb i n d ( i n ts o c k f d ,s t r u c ts o c k a d d r * m y a d d r ,i n ta d d r l e n ) 将存有t p 地址与端口的结构体m y a d d r 与指定套接口s o c k f d 绑定;参数a d d r l e n 是套接口地址结构的长度。服务器和客户机都可以调用此函数来绑定套接字地址,但 一般是用作服务器绑定自己的公认端口号。 4 i n tl is t e n ( i n ts o c k f d ,i n tb a c k l o g ) 为了接受一个连接请求,利用1 i s t e n 调用将一个套接口转换为倾听套接口,以 便接收客户机请求。s o c k f d 指定要转换的套接口描述符:参数b a c k l o g 设簧请求队列 的最大长度。 5 i n ta c c e p t ( i n ts o c k f d ,s t r u c ts o c k a d d r * a d d r ,i n t * a d d r l e n ) 此函数从倾听套接口的完成连接队列中接收一个连接。如果完成连接队列为空, 那么这个进程阻塞。s o c k f d 指定要接收的倾听套接口描述符;a d d r 结构变量在调用 成功执行后,存储客户机i p 地址及端口;参数a d d r l e n 指向的整形变量中存储客户 机地址长度。 6 i n tw r i t e ( i n ts o c k f d ,c o n s tv o i d * b u r ,i n ti o n ) 此函数完成向套接口中发送数据功能。参数s o c k f d 指定写操作的套接口描述符: b u f 指定消息发送缓冲区;l e n 为接收或发送的消息数据量大小。 7 i n tr e a d ( i n ts o c k f d ,v o i d * b u f ,jn tl e n ) 此函数完成从套接口中接收数据功能。参数s o c k f d 指定读操作的套接口描述符; b u f 指定消息接收缓冲区;i o n 为接收的数据量大小。 8 j n tc l o s e ( i n ts o c k f d ) 关闭指定的套接 1s o c k f d 。 9 华中科技大学硕士学位论文 这些函数是本系统中的消息传递幕础。本文将利用这些函数加以创造性的应用, 完成一套基- j :a r c i n f o 与v e g a 建立的v r gi s 系统的消息传递机制。 2 2 3 套接口在本系统中的应用 在本v r g i s 系统中,如果消息命令不能及时传递给对方,或者不能按照发送顺序 到达,都将造成严重的后果:轻者,两姆点l 状念信息不一致,如两侧画面不能对应 吻合:更糟糕的情况下,可能使某些命令不能证常完成甚至被完全忽略,造成两个子 模块的脱离。根据b e r g e r 的理论,在v r g i s 系统中,虚拟现实端应是地理信息系统 显示手法有力的补充,如果两子模块状态不能及时更新保持同步,这与v r g i s 的设计 规则是完全背道而驰的。 出于t c p 协议提供的连接可以保证通信的可靠性,不会i 土i 现包丢失情况,且可保 持数据字节的顺序,无需对重传、超时等错误进行处理,能够满足v r g i s 系统对消息 传递的及时、顺序到达及可靠性的要求。因此,本系统决定采用数据流套接口来实现 予模块问的消息传递。采用服务器客户机的分柿式结构,在地理信息予模块内建立 服务器端口来进行消息命令的侦听,在虚拟现实予模块内建立一个与服务器端的连 接,作为客户端。连接建立后,两者之间可以实时地进行的消息数据发送与接收。 如果直接利用上述函数及流程完成模块间的消息传递工作,系统开发人员将不得 不对计算机网络有定程度的了解且熟悉各种协议的特性。在系统编码过程中,需要 完成对大量的网络参数进行配置等繁琐的:r 作;更重要的是,当重新建立一个类似的 平台时,不得不重新对这一部分进行编码实现,代码的重用率低移植性差。出于本 :消息传递机制是专门针对以a r c i n f o 和v e g a 耦合而成的v r g i s 而设计,系统中有许 h 多消息传递参数为固定值,可用常量来代替,无需每次都重新进行设簧。 利用数据流套接口所建立的服务器客户机模式的套接口建立流程如图2 一l 所示: 华中科技大学硕,士学位论文 服务器端释j 1 端 刚刚s o e k e t ( ) 枞训 | 女厶化一个服务器套接e l 士 i 利川b i n d ( ) 将建立的套l 胺e l 绑定在一个端e 1 i i j 用l i s t e 羔1 陟鼙蚶椭1 。:! ! ;一“ 忉始化s o c k a d d ri n 变最,l 险警罂! 乎收远穰主叫 陋接请求一;“ 。蔓。m 川c o n n e c t ( ) 将套接e l 础 阻塞t 等篇户端连接 瞄茹s 。k a d d ? :藉盂巍i i l 1 1 r 一“ t 消息数据交换消息数据交换 l 、v r i t e ( ) 发送数据卜_ 小a d ( ) 接收数据 p a d ( ) 镁收数据卜i 十i 把( ) 发送效据 士士 i 调_ jc i o s e ( ) 关闭所建删i 调川c l o s e ( ) 关闭所建客户 | 务器套接口i 端套接口 图2 - 1 数据流方式服务器客户端消息通讯流程 因此本文所研究的消息传递机制决定以套接u 为基本工具和实现手段,以图2 1 所示消息传递流程为参照,建立一套专为v r g i s 系统设计的消息传递机制,简化消息 传递在丌发中的实现方法,降低丌发维护的工作量,提高系统的可移植性,并达到将 地理信息系统和虚拟现实两个子模块耦合的目的。另外,由于本系统为服务器客户 端模式的分斫j 式系统,两个子模块不在同一台计算机上,从系统的可扩展性角度来说, 两个子模块的操作平台应该可以分抑在不同的操作系统平台下实现。而目前所流行的 操作系统都有自己的套接口相关函数,并按照相同的标准实现,在设定好协议的各参 华中科技大学硕。士学位论文 数前提下,跨平台的通讯不存在任何障碍。所以,为实现不同操作系统下的子模块的 耦合,捉商系统的通j 1 】性,使川套接【i 作为j 氏) a n 9 支撑是1 个明智的选择。 2 3 利用肿i 思想建立v r g i s 消息传递机制 2 3 1m p i 概要 m p l 即消息传递接口( m e s s a g ep a s s i n gi n t e r f a c e ) ,它设计的目标是为进程间 消息传递的程序开发一个应用标准,被广泛应用于分布式计算。随着计算机网络技术 的发展,在网络联结的计算机集群系统中进行分斫j 式计算也已经成为一种趋势。计算 结点不再局限_ 多c p u 机的各个c p u ,还可以是一个网络上的各个主机。但这时程序 员必须直接j 网络打交道,编制与网络的接1 i 1 1 1 # ;同时要负责嘲络上计算机悯数 j ; : 格式的转换,防止网络延时给它的程序可能造成的不可靠性。这必然成为分布式计算 推广应用的一大障碍。 m p i 提供了一种与语言和平台无关,可以被广泛使用的编写消息传递程序的标准。 它为用户提供了一种可靠的消息传递机制,用户无需处理网络通讯中可能发生的各种 错误,用它来编写的消息传递程序,实用、可移植、高效而且灵活。 它的内涵和外延包括以下三个方面”: 1 m p 是一个库,而不是一门语高。山予它经常被nj f _ i n 并行计算中,经常被人 误认为它是一门并行语言。m p i 库可以被c 和f o r t r a n 语言调用,它遵守所有对库函 数、过程的调用规则。 2 m p i 是一种标准或规范的代表,而非特指某一个对它的具体实现。 3 m p i 是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准。 它最终目的是服务于进程间通信这一目标的。 在m p i 在分布式计算方面被广为接受之后,为了扩充m p i 功能,根据m p i 的发展 和要求,m p i 沦坛又推u j 了m p i 一2 ,增加了动态进程管理、远程存储访问和并行文件 o 。新的动态进程管理功能允许没有父子关系的独立的进程之间进行通信和将 华中科技大学硒士学位论文 s o c k e t 通信转化为组问通信域通信的调j j ,使m p 思想在本系统中的应用成为可能。 2 3 2 _ p i 中的消息传递机制 m p i 标准定义了一组核心库程序的语法和语义,这些库程序可满足用户进行消息 传递程序设计的各种需要。由于本v r g l s 系统为主从式的分布式系统,消息传递为服 务器和客,、机之问的两点通讯,因此本文j i 刈m p l 的点点通信做小详细介绍。 m p l 点对点的消息传递利用一组消息发送和接收函数来完成。使用这些函数时, 要求用户给出消息数据的类型描述( m p i _ c h a r 、m p i r e a l 2 等) ,m p i 利用这些信息在 异构环境通信时对数据做必要的格式转换。m p i 的接收操作从指定的源进程内接收消 息,并乳该消息所包含的数据类型和消息标识和本接收进程指定的类型和t a g 相一致, 匹配要求非常严格。 从语义上讲,m p i 的发送和接收可以分为阻塞方式和非阻塞方式。在阻塞方式中, 发送操作的完成意味着消息缓冲区的数据已经可以被其它的操作更新;接收完成意味 着用户的缓冲区中要接收的数据已经完整,可以被正确引用。为了实现计算与通信的 币叠,提高整个程序的执行效率,m p 也支持:t t n 塞方式的发送接收操作。这时操作 分为两个阶段,即首先发出m p i 发送或接收请求,但非阻塞返回后并不意味着通信的 完成,用户要通过m p i 提供的各种非阻塞的完成方法和测试方法最终完成该发送接收。 在具体实现时,由于数据缓冲区大小和数据拷贝次数的限制,底层采取的协议往 往有多种。即如果以减少缓冲和数据拷贝次数为目的,那么m p i 发送的完成至少意味 着接收方已发出接收操作,这在一定程度上表现为同步的副作用。川。若为了尽可能减 少用户调用m p i 函数时的阻塞时间,底层系统在接收到用户发送的数据及相关信息后, 调用立即返回。 为了在消息传递标准化的同时不损失性能,m p i 采用了4 种方式的发送。标准方 式:其完成可以在接收方接收操作发出之前,数据是否进行缓存由m p i 自身决定:缓 冲方式:l h ) l j f x t 数据缓冲区进行申请、使用和释放,直接控制通信缓冲区空间;同 步方式:同步发送返回,意味着发送缓冲区q 1 的数据已经全部被系统缓冲区缓存,并 华中科技大学硕。士学位论文 且已经丌始发送;就绪方式:只有当接收进程的接收操作已经启动时,j 可以在发送 进程启动发送操作,否则,发送操作将出错。 m p i 的消息传递过程可以分为三个阶段,如图2 - 2 所示 图2 - 2 m p i 消息传递过程 ( 1 ) 消息装配,将发送数据从发送缓冲区取出,j j | l 上消息信封等形成一个完整的 消息; ( 2 ) 消息传递,将装配好的消息从发送端传递到接收端; ( 3 ) 消息拆卸,从接收到的消息中取出数据送入接收缓冲区。 2 3 3 消息传递中的数据打包与解包 打包和解包操作是为了发送不连续的数据,在发送前地把数据包装到一个连续的 缓冲区,在接收之后从连续缓冲区中解包。由于在v r g i s 系统中,发送一个消息中将 包含有不同类型的数据,如何将这些不同类型的数据组织分配在一个数据包中,并在 接收方按照类型及数量顺利分析出这些信息,将需要一套合理的数据打包解包机制。 m p i 中的打包和解包工作分别山m p i p a c k 和m p i u n p a c k 两个函数来完成。 m p i p a c k 将指定大小和数据类型的数据放到某一指定连续空间,并可根据位置参数来 确定放到该连续空问的具体位置,通过连续几次对不同位置的消息调用打包操作,就 可将不连续的消息放到了一个连续的空问;m p i u n p a c k 从指定缓冲区空问将不连续消 息解丌,放到另寸旨定缓冲区【卡l 。个打包堆元可以用m p i p a c k e d 作为类型发送, 4 华中科技大学硕士学位论文 发送方式可以是任何点到点通信或者组通信调用。用m p i p a c k e d 发送的数据在接收 方可以用任意数据类型来接收,只要它和实际接收到的消息的数据类型相匹配。以任 何类型发送的消息都可以用m p i p a c k e d 类型接收,并通过调用m p i u n p a c k 束解包。 接收到的数据包可以被解包成几个不连续的消息,这是通过几个连续的对m p i u n p a c k 调用来实现的。 本文所提出的消息传递机制就是利用f :述介绍的设计、丌发思想建立一套适月】于 本v r gi s 系统的消息传递标准。 2 3 4i i p i 思想与v r g i s 系统的结合 为了实现v r g s 系统中两个子模块m 的消息传递,可以有多种实现方案。其r f i 一 种方案是在程序中直接利用套接口编程。套接口提供了访问网络的方便途径,使用户 不必了解t c p 的细节,通过设置套接口的属性并调用其方法就可轻易地连接到一台远 程机器上,并可实现双向数据交换。但如果在程序中直接使用套接口,这样开发的程 序代码数量庞大并且结构混乱,使程序流程控制比较困难,而且对于网络的拥塞也不 好控制,这样丌发的程序常常会因为网络的拥塞而造成数据的丢失。 另- - 羊【1 方案是可以利用s o c k e t 建立个地理信息子模块与虚拟现实漫游予模块 间的连接;再调用在m p i 一2 中的新函数m p i :_ c o m m j o i n 将原来通过s o c k e t 连接的进 程,包含在一个组问通信域之内;最后调用m p i b c a s t 和m p _ g a t h e r 来实现组间的 消息传递,达到将控制消息互相传递而保持两个模块同步的目的。虽然m p i 是一个通 用性很高的消息传递标准,但它是针对基于分布存贮网络而设计,丽不是专门为v r g i s 系统而设计的。本v r g i s 系统又是一个专业针对性很强的系统,除了消息传递外,还 利用了地理信息系统和虚拟现实系统的a p i 函数,因此程序结构比较复杂。如果勉强 地利用m p i 完成两个子模块问的消息传递,将不可避免地造成予模块的程序结构混乱 而难以维护。 因此,本系统决定采取利用m p i 的思想和结构原则,以s o c k e t 为消息交换手段, c 语言为丌发工具,来开发一套

温馨提示

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

评论

0/150

提交评论