基于Winsock的网络地理信息系统的研发

2015-03-11 02:39邓澄
建材与装饰 2015年49期
关键词:服务器端线程浏览器

邓澄

(江西省地矿测绘院 江西南昌 330000)

前言

地理信息系统是在近十几年当中所发展起来的一种具有综合性的应用系统,将各种信息数据和地理位置以及相关视图实现了有机的结合,并将多媒体技术、虚拟技术等相融合,通过计算机实现了数据的采集、存储、编辑、转换以及输出等。伴随着社会的不断发展,传统的地理信息系统已经无法满足人们日益变化的实际需求,为了尽可能的实现信息传输和共享,避免出现“信息孤岛”的问题,应该利用互联网技术还对其进行完善,实际上就是构建网络地理信息系统,一方面可以保证地理信息的实时更新,另一方面还可以为用户的使用和管理提供方便。

1 Winsock技术在网络地理信息系统中的应用

1.1 Winsock技术和网络GIS

WinsockAPI在Windows系统中针对于网络开发提供了一个协议无关的接口,其中主要包括了一组网络I/O和获取信息的库函数,应用程序通过对这部分函数的调取可以实现不同的功能,而且还为服务器程序的编写提供了不同的平台渠道。网络地理信息系统实际上是由互联网所连接的多个独立的GIS系统所组成的,在数据信息传输和响应的过程中,与Winsock的编程模型具有较大的相似点,因此基于Winsock技术的网络地理信息系统的研发是现阶段的设计热点。

1.2 使用Winsock技术构建网络GIS模型

Winsock控件为编程人员提供了更加便捷的访问TCP和UDP的途径,程序员只需要通过设置其控件的属性就能够和远程计算机实现双向的数据传输。采用Winsock的编程模型来构建C/S结构的网络地理信息系统,通常情况下,服务器只是对数据进行管理,而其他的任务则被分配到客户机上面,使得服务器和客户机之间通过网络协议来实现通信,这种模式不仅使得客户机的性能实现了较大程度的提高,而且服务器和客户机在物理层面上是比较容易实现扩充的。

1.3 网络GIS的服务分析

网络地理信息系统的服务主要包括了功能性服务和数据服务这两种。其中,功能性服务实际上就是实现地理信息系统的网络服务功能,只需要开发出与用户进行交流的界面,就可以实现网络服务功能的调用,对本地数据信息进行上传和下载,但是一般情况下要在特定的条件下才能使用;另一方面,数据服务,就是使得用户能够直接进行数据的浏览和下载,开发人员可以直接调用数据等;且对于只能浏览,不能下载的保密性数据信息而言,则不能够对其进行地理信息的分析和处理。

2 基于Winsock的网络地理信息系统的研发

图1 基于Winsock的网络地理信息系统结构模型示意图

2.1 系统框架与功能

2.1.1 地图管理模块

地图管理模块,为用户提供地图操作的界面以及与服务器端实现通信的接口们主要包括了地图的管理和视图的管理;其中地图的管理则是对其各部分的组成要素图层进行绘制、保存、添加等具体的操作;而视图的管理则是实现图像的放大与缩小等操作;通信接口方面则负责连接和关闭相互之间的连接与数据的传输等。

2.1.2 操作命令响应模块

这一功能模块是按照自定义的命令协议格式来生成不同的操作命令,并将其传输到数据的通信模块当中,再由其传送到服务器端。对于请求端而言,其协议是较为简单的,首先是将请求类型按照相应的格式传送到服务器端,在对所需要的数据进行读取之后,客户端将其进行有效的组合,且校验位还对数据的正确性进行了较大程度的保证。

2.1.3 数据通信模块

用户端数据通信和Server端数据通信是数据通信功能模块中的重要组成部分,通过服务器和客户端的接口来实现二者之间的数据传输,从根本上来说,其实现了数据发送队列和接受队列的维护。同时,在对系统进行设计的过程当中,为了防止主程序出现阻塞的问题,需要在连接套接字上单独设置一个子线程,从而保证程序的运行效率;需要注意的是,在对流式套接字进行使用的时候,在用户进行发送和接受数据的操作之前应先建立连接。

2.1.4 数据解析模块

数据解析模块,对通信双方的通信规则进行解析,也就是对协议的分析,对于通信系统的运行和维护具有十分重要的作用,将数据打包的格式作为依据,对命令请求的类别进行判断,之后再由服务器对其进行处理,将结果重新传送到用户端。

2.2 客户端浏览器

2.2.1 地图浏览器界面的设计

浏览器是客户端的一种的应用软件,主要是为用户提供一个可以和网络进行连接的信息检索平台。在本研究中的客户端浏览器主要包括了远程请求和本地部分的功能,按照用户对地图使用的习惯,同时与桌面的GIS功能界面框架相结合,地图浏览器界面主要包括了工具栏、标题、状态栏、菜单以及显示区等五个部分,如图2所示。

图2 地图浏览器主界面示意图

2.2.2 文件的更新机制

在本次对网络地理信息系统的设计当中,对文件数据进行更新,主要采用的是向后追加的方法,一般情况下主要利用图形元素的类别和识别ID就可以实现,但是需要注意的是,由于在文件中已经存在了同样的对象,因此要将原有的对象按照现在的属性进行重新绘制,而且由于文件的数据量大小具有较大的差别,因此更新的过程可能不会一次性完成。

2.3 服务器端系统

2.3.1 并发服务器的多线程机制

并发服务器的线程主要包括了主线程和子线程两种类别,其中的主线程与客户端之间不会直接进行通信连接,而是由子线程完成,且每个子线程只与一个客户进行通信;当通信请求到达的时候,需要对其监理一个子线程来对请求进行及时的处理,待当完成响应之后,这一子线程就会自动退出,并重新为客户创建新的通信线程;另外,为了避免出现大量线程同时开启的问题,在本次研究中采用了套接字数组的方法对其进行了限制。

图3 服务器主线程和子线程结构示意图

2.3.2 图幅的维护与共享

图幅的维护是地图管理人员的工作内容,在基于Winsock的网络地理信息系统当中,地图的管理人员可以使用远程终端对服务器当中的地图库内的文件进行实时的动态管理。当管理人员取得使用权限之后,用户可以在自己的操作权限之内对图幅进行本地下载,将编辑好的图幅重新进行上传,这种图幅的维护和共享极大程度的保证了数据的实时性。

3 结束语

综上所述,基于Winsock技术的网络地理信息系统的研发,具有简单实用、投入成本低、可扩展性强的优势,且在系统的研发过程中,还实现了以下几方面的功能:①采用了C/S结构来对网络地理信息系统中的数据和文件类型进行了统一的制定;②在客户端和服务器端之间建立了通信协议,用户可以远程实现对信息的处理;③对于服务器的设计,则进一步实现了对其的维护管理和实时更新等;④在网络通信层面上还保证了客户端和服务器端的相互协调性。当然,网络地理信息系统的研发还需要实现进一步的完善,工作人员应该加大研究力度,逐渐实现系统功能的完善。

[1]薛晨曦,陈荦,李军.基于高性能计算平台的地理信息系统算法调度引擎的研究[J].现代电子技术,2015,22:44~47.

[2]谢斌.计算机网络安全中虚拟网络技术的应用分析[J].电子技术与软件工程,2015,22:211.

[3]孔德川.基于WebGIS的库站地理信息系统设计与实现[J].河南科技学院学报(自然科学版),2014,01:62~66.

[4]高晗,官云兰.基于云计算的移动地理信息系统的研发[J].测绘与空间地理信息,2014,04:145~147+150.

[5]何磊,陈圣波.网络地理信息系统的应用和开发——以长春市地图查询信息系统为例[J].国土资源遥感,2004,02:72~76.

猜你喜欢
服务器端线程浏览器
Linux环境下基于Socket的数据传输软件设计
基于国产化环境的线程池模型研究与实现
反浏览器指纹追踪
浅析异步通信层的架构在ASP.NET 程序中的应用
浅谈linux多线程协作
基于Qt的安全即时通讯软件服务器端设计
环球浏览器
线程池技术在B/S网络管理软件架构中的应用
网页防篡改中分布式文件同步复制系统
么移动中间件线程池并发机制优化改进