基于ArcGIS的自然灾害协同标绘系统分析与设计

2013-09-08 10:18马得生闫冬梅陈世荣
计算机工程与设计 2013年6期
关键词:服务器端客户端传输

马得生,王 刚,闫冬梅,陈世荣,尤 杰

(1.中国科学院对地观测与数字地球科学中心 中国科学院数字地球重点实验室,北京100094;2.中国科学院研究生院,北京100049;3.民政部国家减灾中心,北京100124;4.中国地质大学,土地科学技术学院,北京100083)

0 引 言

自然灾害应急监测需要在地图上表达的空间对象主要包括自然灾害、承灾体和救援力量三大类[1]。这些空间对象信息主要获取方式是从灾区遥感影像提取和实地调查。遥感影像的数据量巨大,需要专业人员目视解译,而目前的灾害信息标绘方式为单机标绘,所以快速高效的提取出灾情信息并不是一件轻松的任务。海量遥感影像的处理费时费力,需要建立分布式的遥感影像处理平台,使专业技术人员能够协同工作,快速处理所获取的遥感影像,缩短数据处理时间,提高效率[2]。如何将信息资源优势快速有效的转化为抗灾减灾的资源优势,以便于决策人员参考 (如救灾物资分发、灾情预测和人员调动等),是需要解决的关键问题。

目前协同标绘技术在军事方面应用比较广泛[3-6]。本文基于ArcGIS平台,将协同标绘技术应用到自然灾害信息提取,系统利用计算机和通信技术建立协同工作环境,使多用户在统一平台下进行协同工作。协同标绘的客户端完成了协同标绘、信息获取和信息处理等,网络传输端和服务器端保证了数据传输和管理的高效、准确。

1 系统架构设计

1.1 逻辑框架

本文设计了一种基于会议方式的主席-用户模式的灾害遥感图像协同标绘体系结构,参加协同工作的人们 “聚集”在一起,围绕一个共有的任务进行讨论,交换信息、相互协商、交换意见、达成共识、做出决定即完成任务[7]。用户首先登陆服务器,创建一个新会议,会议创建者默认为该会议主席,即会议的召集者和主持者。在客户端的协同工作参加者称为协同工作的 “用户”,即与会者。系统的逻辑架构如图1所示,该框架有以下优点。

图1 系统逻辑框架

(1)权限分明:会议主席负责建立、管理会议组,更新用户信息,以及管理和分配工作区。其中,工作区的管理是主席端的重要功能,主席将需要标绘的遥感底图合理划分工作区给各个用户。普通与会者,则负责按照会议主席的分工,对各自 “辖区”的灾情信息进行目标提取。

(2)便于统一管理:各个与会者通过网络传输端与服务器连接,仅通过服务器来实现信息交互,便于信息的统一管理,避免了松散耦合系统的管理混乱的缺点。

(3)便于信息传递:服务器只需将各种信息进行组内传递,便可及时有效的传给该会议的各个在线用户,增强了多用户操作的实时效果。

1.2 物理框架

协同标绘系统分为三层结构:客户端,网络传输端和服务器端。各层架构分工明确,联系清晰。客户端实现了系统的主要功能,是整个系统的核心部分。网络传输端实现各种信息的安全传输,是整个系统的桥梁。服务器端负责数据管理和分发,是整个系统的重要组成部分。

系统物理框架如图2所示。

图2 系统物理框架

2 系统功能设计

2.1 客户端功能设计

自然灾害协同标绘系统的基本任务是通过建立协同工作开发环境和运行环境,使网上各参加单位对同一幅灾情遥感影像图进行同步或异步标绘操作,其各个显示终端都具有相同显示。

客户端的主要功能包括:协同标绘,协同感知,标绘信息收发,协同工作区设置和各种信息显示等。

(1)协同标绘功能主要是对多种对象进行多种操作。灾情对象主要包括点 (如路标,水井等),线 (如河流,道路等)和面 (如倒塌房屋,湖泊等)和其他标绘对象 (如文字标注等)。用户可根据实际需要,将这些标绘图形设置不同属性,如样式、大小、颜色、形状等。用户标绘动作,包括对图元的增加、删除、修改等。协同标绘功能还要能按照图元属性信息,将原用户操作的图形信息,“复制”到同一工作组其他用户显示端,从而实现 “你见即我见”(what you see is what I see,WYSIWIS)的交互环境。

(2)协同感知功能主要是指实时捕捉各种图元的各种操作,并解译该操作图元的各种属性信息。用户的标绘动作类型和标绘图形类型都有多样性,协同感知功能要能对这些类型加以区分识别。协同感知功能还要能感知用户信息 (登陆、退出)的变化。

(3)标绘信息收发功能是指将协同感知到的图元信息在数据发送模块生成规定格式文件,经由网络传输端传给服务器。用户接收模块接收服务器发送来的各种信息文件包,并进行解码,然后将之传递给其他模块进行处理。

(4)协同工作区设置是将标绘区域合理划分给与会者。用户的首要任务是标绘本用户区域的灾情信息,工作区在主席端进行分配。

(5)信息显示功能主要包括:不同用户标绘图元采用不同颜色加以区别显示,个人标绘对象的颜色在用户登陆系统时由系统统一分配,用户无法更改;同一工作组的用户信息 (包括工作区,登陆时间,编辑的图元等)可以随时查看;可查看当前工作组信息 (会议主席、会议简介和创建时间等);所有用户的各种操作都简短显示在日志中,当用户选择日志中某行操作时,显示端将该操作对象 (如果存在)进行响应 (闪烁显示)。

2.2 网络传输端和服务器端功能设计

客户端的各种操作信息都要经由网络传输端,传送给服务器端。

网络传输端主要包括:①网络传输协议,客户端和服务器端之间的大量数据传输,要求稳定、快捷,用户的各种操作都准确重现在工作组的所有用户后,才能保证各个显示终端的统一,这要求网络传输过程不能遗失任何数据文件;②数据格式,用户操作图元类型和标绘动作类型都有很多种,还有用户进行的其他操作类型,针对这多种类型的数据传输,需要保证各种传输数据易于识别,互不混淆。

服务器端主要为数据库。其需要根据操作类型,将操作结果保存在不同的表格。同时,针对用户在客户端对图元的增加、删除和修改,服务器端需要对数据库进行相应操作,完成数据的更新。

2.3 标绘功能流程

协同标绘的工作流程 (以用户新增图元为例):用户1利用协同标绘模块新建某个灾害信息图形后,协同感知模块感知到该用户的当前操作,并获取到其对应的信息包括标绘动作类型 (此处为增加)、操作图形类型的属性 (颜色、大小、顶点坐标等),然后将这些信息转给数据发送模块,该模块按照一定格式将这些信息生成标准传输文件,经由网络传输发送到服务器端。服务端接收到该消息后,首先将该信息保存到数据库中,同时赋予该图形一个唯一标识码ID,然后将这些信息重新生成传输标准文件,传给工作组的各个用户。用户接收模块接收并还原该信息,利用协同标绘模块将用户1的标绘行为进行重现。整个流程如图3所示。

图3 用户新建图元流程

当用户在客户端执行新建一个标绘图元时,该新建图元将首先被删除。服务器统一发送该标绘信息,每个用户(包括创建该图元的用户)利用协同标绘模块进行统一标绘。这样的机制可以充分利用服务器为各个图元统一分配ID,避免ID赋值混乱重复等现象,便于统一管理。

3 系统构建

3.1 客户端构建

客户端是整个系统最核心的部分,协同标绘、协同感知、发送和接受数据以及各种信息显示功能,都在客户端具体实现。其中,协同感知、消息响应和标绘重现是客户端的关键技术。

(1)协同感知技术

面向标绘对象的协同感知是底层的协同感知[8]。基于ArcGIS平台,用户进行标绘的图形类型有两种:Feature和Element。所以,需要对协同感知的用户及时知道协同工作的最新进展并以显式的方式体现在协同结果上[9]。用户对这两种图形的操作动作类型包括增加、修改、删除等,图形标绘主要是针对这两种图形的3种操作。标绘行为是非连续的过程,且用户的每一次标绘动作和下一次标绘动作之间,可能存在着一系列其他操作。系统必须及时捕捉本用户的标绘行为,并能识别该标绘动作类型和操作图形类型。

针对这些问题,结合ArcGIS Engine,本系统采用事件响应机制。该机制将事件和标绘操作对象绑定,对标绘动作进行实时捕获,实现标绘行为感知。ArcGIS Engine针对Feature和Element的标绘行为采用不同的事件接口,如Feature图元的IEngineEditEvents_Event接口,Element元素的IGraphicsContainerEvents_Event接口。当用户感知到标绘操作后,同时也将捕获到该图形,即标绘行为动作的结果,然后对图形进行属性信息识别,从而可以实现协同感知。

(2)消息响应技术

消息响应技术是指客户端能实时接收网络传输的消息。用户不仅要感知机器的反应,更重要的是要感知其他用户的异地通馈 (feedthrough)。其他用户的标绘信息都经由网络传输到客户端,但网络传输的文件信息具有不定时性和多样性,客户端必须实时监听接收。

本系统引入windows窗口的消息机制,该机制已为窗口界面所实现,它实时接收传递到窗口的所有消息,方便快捷。在构建本系统时,首先定义网络传输消息 (message)的接收窗口,当数据传递到该窗口时,自动触发其消息处理函数,在函数内部将信息进行获取、解码、区分后,通过事件代理机制,将消息传递给协同标绘模块进行响应。

(3)标绘重现技术

标绘重现是指将客户端的各种操作信息 “复制”到同一工作组的其他客户端。系统通过消息响应技术获得各种操作信息,这些信息中包含所要 “重现”的标绘动作类型、图形类型和图形属性信息 (大小,颜色,顶点坐标等),标绘模块需要根据这些信息进行标绘重现。

本系统依据信息类型,采取消息分类法进行响应。根据消息的标绘动作类型 (增加、删除和修改),设置3种标绘动作响应类,在各种响应类中按照图元类型建立相应标绘重现函数。对接收到的标绘消息进行处理后,首先根据标绘动作类型,调用对应的标绘动作类,然后根据标绘图元类型,将各种属性信息传递给相应处理函数,进行具体图形的标绘重现。

3.2 网络传输端和服务器端构建

网络传输端和服务器端,是系统各用户进行标绘通信和数据管理的部分。

3.2.1 网络传输端

根据本系统的功能需求,用可扩展标记语言 (extensible markup language,XML)作为传输数据语言,采用TCP/IP网络传输协议。

(1)用户对图形的标绘行为类型有新建、删除和修改,标绘图形类型有Feature和Element两种,而Feature对象里又有点对象、线对象和面对象子类型,Element要素里有点标注、线 (贝塞尔曲线,折线)标注、面标注和文字标注等子类型。

为了区别各种标绘动作类型和标绘图形类型,系统采用 “标绘动作类型_标绘图元类型”的格式进行标识,例如用户新增一个Feature的面对象,则该操作总类型为:“Add_PolygonFeature”,若用户修改一个Element的贝塞尔曲线,则该操作总类型为: “Update_BezierLineElement”。众多类型的文件传输须在传输文件中设置类型格式。系统采用XML语言进行网络传输,该语言具有良好的数据存储格式、可扩展性、高度结构化、便于网络信息组织和网络传输等优势[10],并且可自定义标记及属性名。系统在XML文件中以每次操作的总类型作为标识,然后将该操作图形的其他属性信息按照格式依次写入XML文件。

(2)灾情协同标绘系统中,为保障 “WYSIWIS”的工作环境要求,用户传输的所有数据在网络传输中要严禁丢失或重复。用户的每一次操作都要向服务器发送操作信息,服务器也要发送各种消息给用户,因此会产生大量的网络传输请求,为减少系统更新响应的延时,必须选择高效的网络传输协议。

本系统采用TCP/IP协议,它是网络通信的标准协议,技术成熟稳定。为保证传输的准确性,TCP传输过程具有捎带确认机制,具有极高的安全可靠性,且传输效率也足以满足客户端响应需求。

3.2.2 服务器端

网络传输端将各种XML文件包传给服务器端,由服务器进行数据管理和转发。

服务器接收到XML文件包后,要进行解码处理,获取文件载有的信息类型,并对该消息进行入库更新,然后将该消息生成XML文件再传递给同一工作组的各个用户。本系统的服务器端采用高效率的C++语言编写,数据库为易于管理和维护的Microsoft Office Access。数据库采用分组管理,不同的会议列入不同的会议组。传递的XML文件里含有该消息所属的会议,便于信息的对号入库。

4 测试结果

根据系统实现功能,本系统在Visual Studio 2008平台上,采用C# 语言,利用ArcGIS Engine9.3二次开发构建。在100M 局域网上的PC (2GB内存,3.0GHz CPU)和WindowXP 32环境下,500个虚拟在线用户进行同时编辑操作,测试结果如图4所示。

图4 用户数-响应时间曲线

该测试结果表明,事务响应时间不足0.001秒,且在第150-200个用户参与交流时响应时间突增,达到峰值,但总体呈持续降低的态势。所以本系统的各个用户之间的通信交流快捷迅速,能实时响应用户的操作。

用户数-CPU使用率曲线如图5所示。

图5 用户数-CPU使用率曲线

该结果表明,曲线在参会用户数不断增加的过程中,在175-200个用户参与交流时CPU使用率急剧上升,达到峰值,总体呈持续增长态势。最大CPU使用率小于75%,通常情况下CPU使用率小于40%,证明目前的硬件可以适应测试的负载。所以本系统对CPU占有率在可接受范围内,系统客户端稳定高效。

系统响应时间和CPU使用率曲线在180个用户附近出现一个峰值,说明该时刻存在密集的计算负载,这主要是虚拟内存发生换页操作导致的。本系统的设计使用了内存池机制,在服务启动后系统会申请约200M左右的内存作为内存池,当在线人数达到200人左右,该内存池耗尽,系统会尝试申请需求量2倍的内存来扩建内存池,这将超出测试机器剩余的空闲物理内存容量,操作系统会尝试从其它程序中交换出物理内存,从而发生内存换页操作,这种操作极为耗费CPU时间,从而形成一个系统响应的峰值。

5 结束语

本文基于XML即时通信语言,在TCP/IP网络传输协议下利用C++语言构建了服务器系统,基于ArcGIS Engine二次开发,在Visual Studio 2008平台上利用C#语言构建灾情协同标绘的客户端。系统基于主席-用户模式的体系结构,采用三层结构,支持多用户实现标绘信息交流和可视化感知,强化了灾情信息的快速提取能力,改变了灾情信息提取的单机单用户标绘的传统方式,解决了如何将海量遥感数据快速变为信息的难题。经测验,在500个在线用户之下,该协同标绘系统能很好的满足协同标绘的应用。

系统还有很多工作需要继续开展,如支持多媒体通信,实现海量遥感数据的点对点传输等。

[1]ZHAO Hong,LI Tao,HE Yawen.Study of information dynamic graphical on disaster response [J].Geospatial Information,2011,9 (5):32-34 (in Chinese). [赵宏,黎涛,何亚文.灾害应急空间信息标绘技术 [J].地理空间信息,2011,9 (5):32-34.]

[2]ZHAO Fujun,CAI Shan,CHEN Xi.Application of rapid seismic damage assessment based on remote sensing to Wenchuan earthquake [J].Journal of Naturaldisasters,2010,19 (1):1-7 (in Chinese).[赵福军,蔡山,陈曦.遥感震害快速评估技术在汶川地震中的应用 [J].自然灾害学报,2010,19 (1):1-7.]

[3]ZHENG Liangong.A research on the theory and technology of collaborative virtual battlefield discussion environment [D].Zhengzhou:Information Engineering University of the Peoples Liberation Army,2007 (in Chinese). [郑炼功.协同虚拟战场研讨环境构建理论及技术研究 [D].郑州:中国人民解放军信息工程大学,2007.]

[4]XIE Guowen,WU Qiuyun,ZHONG Zhinong,et al.Military plotting system based on ArcGIS graphic element [J].Ordnance Industry Automation,2011,30 (9):93-96 (in Chi-nese).[谢国文,吴秋云,钟志农,等.基于ArcGIS图元的军事标图系统 [J].兵工自动化,2011,30 (9):93-96.]

[5]WU Yanyan,WANG Yumei.Study and design of activity-centric collaborative plotting integrated system [J].Computer Engineering and Design,2009,30 (22):5248-5252 (in Chinese).[武严严,王玉玫.基于以活动为中心的协同标绘集成系统 [J].计算机工程与设计,2009,30 (22):5248-5252.]

[6]MA Fangfang.Design and implementation of collaborative plotting system based on XML [J].Computer & Digital Engineering,2011,39 (12):51-53 (in Chinese). [马芳芳.基于XML的态势图协同标绘系统设计与实现 [J].计算机与数字工程,2011,39 (12):51-53.]

[7]LIAN Lanping,QIU Jianwei.The research and design of the collaborative plotting system based on XMPP [J].Control &Automation,2010,26 (2-3):41-43 (in Chinese). [廉兰平,仇建伟.基于XMPP的协同标绘系统的研究与设计 [J].微计算机信息,2010,26 (2-3):41-43.]

[8]LIU Haitao.The research of GIS collaborative plotting technology [D].Jinan:Shandong University,2010 (in Chinese).[刘海涛.GIS协同标绘技术研究 [D].济南:山东大学,2010.]

[9]WANG Bo.Research on awareness-based effective cooperation in collaborative editing systems [D].Hangzhou:Zhejiang University,2008(in Chinese).[王博.协同编辑系统中基于感知的有效协作研究 [D].杭州:浙江大学,2008.]

[10]LIU Hong.The Research on the network’s transmission of the special vector subject for forestry which is based-on XML [D].Changsha:Central South University of Forestry and Technology,2009(in Chinese).[刘红.XML格式林业矢量专题图网络传输的研究 [D].长沙:中南林业科技大学,2009.]

猜你喜欢
服务器端客户端传输
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
Linux环境下基于Socket的数据传输软件设计
如何看待传统媒体新闻客户端的“断舍离”?
关于无线电力传输的探究
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于Qt的安全即时通讯软件服务器端设计
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线