基于 Silverlight 技术的插件式 GIS Server 架构研究

2015-12-29 05:38刘兴明,汤力,王大雪
测绘工程 2015年6期
关键词:插件架构用户

基于Silverlight技术的插件式GIS Server架构研究

刘兴明,汤力,王大雪

(辽宁省冶金地质勘查局物探测绘大队,辽宁鞍山114000)

摘要:针对传统WebGIS开发复杂度高,交互体验贫乏,扩展性差,运行效率低等不足,提出基于Silverlight技术的插件式GIS Server架构设计方案。对RIA/Silverlight技术和Flex技术进行比较,并提出基于Silverlight技术的插件式GIS Server架构模型,对实现该架构的插件技术进行详细阐述。以阜新市旅游地理信息系统的开发为例,验证此架构的可行性。

关键词:插件技术;瓦片地图;地理信息服务;框架设计

中图分类号:P208

收稿日期:2014-09-06

作者简介:刘兴明(1987-),女,硕士研究生.

Silverlight technology-based plug-in GIS Server architecture researchLIU Xing-ming,TANG Li,WANG Da-xue

(Liaoning Metallurgical Geological Exploration Bureau Geophysical Surveying and Mapping Brigade,Anshan 114000,China)

Abstract:Aiming at the defect of high complexity of traditional WebGIS development,the paucity of interactive experience,poor scalability,low operating efficiency a Silverlight technology-based plug-the GIS Server architecture design is proposed.Comparing the RIA/Silverlight technology and flex technology,it proposes a plug-GIS Server architecture model based on Silverlight technology.Then the realization of plug-in technology is elaborated.Finally,Fuxin City tourism geographic information system development is taken as an example to verify the feasibility of this architecture.

Key words:Silverlight;plug-in technology;tile map;geographic information service;frame design

随着互联网技术和地理信息系统技术的迅速发展,使社会对地理信息有了巨大的需求,更多更广泛的群体意识到要利用地理思考和空间服务的思维来为自己服务[1]。但现有的网络地理信息系统的实现技术大都基于传统的Web技术,过多依赖服务器端的处理能力,扩展、更新难度大[2]。

基于富互联网应用程序(RIA)/Silverlight技术的插件式GISServer架构的提出,克服了上述不足,采用“平台+插件”的设计理念,实现框架的设计和开发,简化开发难度,提高用户体验,同时便于系统的更新和扩展。

1Sliverlight技术

Silverlight技术作为微软公司首推的新一代跨平台、跨浏览器的RIA实现技术,能够为用户提供具有专业图形、视频、音频等多媒体的网络应用程序[3]。Silverlight具有和桌面一样的丰富的用户体验和交互能力,支持多线程,拥有良好的后台语言框架,可以大大提高客户端计算能力,同时增强对浏览器的自适应[4]。Silverlight的另一优势是将前台界面设计和后台逻辑处理完全分开,具有低耦合性,提高系统的可扩展性和重用性,为聚合和集成多源的异构GIS网络服务提供基础架构。与Flex相比,Flash插件的安装率比Silverlight多,但Silverlight平台基于精简的.NET框架,支持更多开发语言,具有混搭(Mashup)网络服务能力,可以更好地表达多源、多尺度地理空间信息[5]。同时,Silverlight更注重开发人员,.NET程序员无需学习新的开发技术,可以在现有基础上很快的开发Silverlight应用程序,降低学习成本,提高开发效率。

2系统总体架构

基于Silverlight技术的插件式GISServer架构采用层次化设计思路,包括Web表现层(User Interface,UI)、业务逻辑层(Business Logic Layer,BLL)和数据访问层(Date Access Layer,DAL),整体架构如图1所示。

图1 系统整体架构图

Web表现层是系统功能的直观表达,也是用户与系统直接交互的窗口[6]。用户通过浏览器即可方便的访问系统提供的功能。对开发人员而言表现层是系统功能的具体实现。表现层包括前端用户界面、后台逻辑和功能插件三部分。前端用户界面的设计使用可扩展应用程序标记语言XAML,它简化了.Net Framework 编程模式上的用户界面创建过程。后台逻辑采用高级程序语言C#设计,根据后台逻辑的不同,划分为地图容器、操作容器、功能插件容器及可扩展容器等。功能插件主要是在前端用户界面、后台逻辑定制好后,将系统欲实现的各个功能单独定制,以插件的形式加载到主程序中,各功能插件利用接口技术实现与主程序连接,供主程序调用。

业务逻辑层作为响应客户端请求的核心层,主要负责接收来自客户端的请求,并根据用户请求类型做出相应的响应[7]。采用ArcGIS Server服务器和.NET应用服务器相应用户对空间数据和属性数据的请求,并对空间数据进行分析和控制。同时利用应用网关、远程服务与业务数据库进行交互,完成业务数据的查询。业务逻辑层作为整个架构的核心,负责完成对地理信息公共服务平台数据资源(服务资源)的抽象工作,GIS Web Service被抽象为地图服务、地理编码服务、地理数据服务、空间分析服务、Global服务、影像服务、网络分析服务、几何服务等类型;扩展服务被抽象为简单数学计算服务、复杂数学计算服务、数据统计服务、数据验证服务、输出打印服务,OGC标准的WMS、WFS、WCS等类型。服务访问接口以REST类型接口为主。IIS7.0作为Web服务器,承担GIS服务器程序托管和Silverlight应用程序托管。

数据访问层作为网络地理信息服务架构的最底层,用来存储和管理空间数据、属性数据和多媒体等数据,维护各种数据之间的关系,并提供数据备份、存档及数据安全机制,为系统提供数据源,保障系统的正常运行[8]。数据访问层的主要功能包括:①根据系统欲实现功能和相关数据标准设计数据关系及属性结构表;②根据数据结构表制作数据,注意有较高要求的数据的定制与表达;③数据测试、优化、维护和备份[8]。

基于这种层次化设计思路使得整个架构配置灵活、易于部署,部件间具有低耦合特性,基于标准的XML文件,更改后无需重启服务器;采用异步服务通讯模式,用户操作不会被中断,可进行多任务并行操作。插件技术的应用使系统更易于扩展,开发人员可以根据需求独立设计相应功能,封装成插件,供主程序调用。

3插件技术

插件的本质是在不修改主程序的情况下灵活地进行软件功能扩展[9]。在软件项目开发领域,需要改进软件的架构来提高软件复用性、模块化、封装性和扩展性,使软件不同功能模块之间能够无缝集成。插件技术以其松耦合性、代码重用率高、扩展性强、移植性强等优点而被广泛应用。

插件技术一般有3种实现方式,即基于组件对象模型(COM)的插件技术、基于动态链接库(DLL)的插件技术和基于.NET反射机制的插件技术。

本文研究的是基于动态链接库的插件技术。它是一个包含可由多个程序共同使用的代码和数据的库。DLL不是一个可执行文件,它本身也不能独立运行,但它可以通过被其他程序调用的方式来实现。用户无需了解DLL文件内部函数的处理逻辑,仅通过DLL提供的实现方法,来调用DLL提供的函数即可。DLL 还有助于共享数据和资源。多个应用程序可以同时访问某个DLL文件中的内容。每一个插件都是基于主程序接口进行定制,其定制过程相对独立,互不影响,可根据不同需求设计界面(XAML)和编辑后台逻辑(C#),完成后生成新的解决方案,将新生成Bin/Debug文件夹下的.dll文件复制到主程序自动生成的ClientBin文件夹下,再通过标准的XML对该插件功能的实现进行配置[10],最后在主程序中调用该插件,完成该插件对应功能的实现。图2中各功能插件对应的XML文件如图3所示。

使用基于动态链接库的插件技术,程序可以实现模块化管理。此外,它在不影响应用程序其他内容的情况下,就可以完成对各个模块的更新。

图2 基于插件的网络系统功能结构图

图3 标准XML文件

4实验

基于上述架构,本文开发了阜新市旅游资源管理信息系统。系统采用ArcSDE10和SQL Server2008创建和管理空间、属性数据库,由ArcGIS Server10发布地图服务、影像服务、要素服务和几何服务,在创建地图服务时将旅游相关矢量数据集按设计的专题图发布为动态地图服务,通过Silverlight富客户端在执行相关空间服务请求实时生成;电子地图数据作为底图的地图服务,为提高服务器响应效率,按照ArcGIS Server缓存模式建立13级不同比例尺的缓存切片包,并将其存储在GIS服务器上,建立地图缓存服务。同时利用ArcGIS Silverlight API和ArcGIS REST API及C#高级语言,开发具有丰富交互体验的用户界面和完备地理信息功能的插件式地图服务功能[11],系统功能有:地图导航、动态地图管理、可配置化的功能控件(图层管理,游、住、食、行、购、娱、医等信息查询,自驾游路径分析,书签,专题图制图,地图编辑,地图打印等)。在此基础架构上,开发人员可以根据用户需求实时扩展和更新功能插件。基于插件式架构的旅游系统功能实现,如图4所示。

图4 基于插件式架构的旅游系统功能实现图

上述实验表明,基于silverlight技术的插件式GIS Server在此架构上增加了旅游专题信息,即旅游相关功能插件(景点查询、自驾游等),开发成旅游系统。开发人员可以依据此架构通过添加和修改插件的形式开发地价、房产、工商等用户需求的各专题系统。系统界面友好,用户体验丰富;基于瓦片地图技术的网络地图解决方案大大提高了地图的出图效率;“平台+插件”的设计理念使系统更加稳定,更易于扩展。

5结束语

本文提出的基于silverlight技术的插件式多进程GIS Server解决方案,具有以下几个特性:

1)基于silverlight技术使得本架构具有RIA技术特点,将部分服务器负载转移到富客户端,减轻应用服务器端的压力,提高系统性能。绚丽的用户界面,超强体验的动画功能等将增强用户交互体验能力。

2)采用“以空间置换时间”思想的瓦片地图技术,使地图服务更加人性化,提高系统地图服务效率。

3)插件技术的应用使得业务功能和服务器本身相对独立,在一定程度上提高架构的可扩展性和灵活性。

4)基于REST和SOAP的服务聚合和通信机制为系统提供安全、顺畅的服务保障。

参考文献:

[1]钱继来.基于REST与RIA的Web应用研究与实现[D].武汉:武汉理工大学,2011.

[2]陆亚刚,邱知,游先祥,等.基于Silverlight和REST的富网络地理信息系统框架设计[J].地球信息科学学报,2012,14(2):192-198.

[3]施佺,陆春龙,王恒山.基于Silverlight 的海洋环境监测信息平台设计与实现[J].计算机应用与软件,2010,27(12):82-85.

[4]曾蔚.基于Silverlight和MVVM模式的移动商业智能系统研究[J].太原师范学院学报,2011,10(2):77-81.

[5]吴信才,吴亮.面向服务的分布式空间信息支撑平台[J].地球科学:中国地质大学学报,2006,31(5):585-589.

[6]高晓蓉,徐丹,雷瑛.基于Flex和REST服务的WebGIS系统开发-以陇西县地理空间信息应用系统为例[J].遥感技术与应用,2011(1):123-128.

[7]SAYAR A,PIERCE M,FOX G.IntegratingAJAX Approach into GIS Visualization Web Services Telecommunications,2006.AICT-ICIW’06.International Conference on Internet and Web Applications and Services[Z].2006.

[8]马妮,李维功.ArcSDE for Oracle优化实践[J].测绘通报,2007(10):50-53.

[9]杨之江,扈震,常晓婕.基于插件技术的GIS Server架构模型的设计[J].地球科学:中国地质大学学报,2010,35(3):475-479.

[10]张瑞军,姜雪娇.一种基于WebGIS的网络地图数据采集方法研究[J].测绘工程,2014,23(2):24-28.

[11]RICHARDSON L.Restful Web Services[M],Sebastopol,Califoenia:O’Reilly Media,2007,1-21.继来.基于REST与RIA的Web应用研究与实现[D].武汉:武汉理工大学,2011.

[2]陆亚刚,邱知,游先祥,等.基于Silverlight和REST的富网络地理信息系统框架设计[J].地球信息科学学报,2012,14(2):192-198.

[3]施佺,陆春龙,王恒山.基于Silverlight 的海洋环境监测信息平台设计与实现[J].计算机应用与软件,2010,27(12):82-85.

[4]曾蔚.基于Silverlight和MVVM模式的移动商业智能系统研究[J].太原师范学院学报,2011,10(2):77-81.

[5]吴信才,吴亮.面向服务的分布式空间信息支撑平台[J].地球科学:中国地质大学学报,2006,31(5):585-589.

[6]高晓蓉,徐丹,雷瑛.基于Flex和REST服务的WebGIS系统开发-以陇西县地理空间信息应用系统为例[J].遥感技术与应用,2011(1):123-128.

[7]SAYAR A,PIERCE M,FOX G.IntegratingAJAX Approach into GIS Visualization Web Services Telecommunications,2006.AICT-ICIW’06.International Conference on Internet and Web Applications and Services[Z].2006.

[8]马妮,李维功.ArcSDE for Oracle优化实践[J].测绘通报,2007(10):50-53.

[9]杨之江,扈震,常晓婕.基于插件技术的GIS Server架构模型的设计[J].地球科学:中国地质大学学报,2010,35(3):475-479.

[10]张瑞军,姜雪娇.一种基于WebGIS的网络地图数据采集方法研究[J].测绘工程,2014,23(2):24-28.

[11]RICHARDSON L.Restful Web Services[M],Sebastopol,Califoenia:O’Reilly Media,2007,1-21.

[责任编辑:张德福]

猜你喜欢
插件架构用户
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
自编插件完善App Inventor与乐高机器人通信
基于云服务的图书馆IT架构
WebGIS架构下的地理信息系统构建研究
基于jQUerY的自定义插件开发
关注用户
关注用户
关注用户
基于Revit MEP的插件制作探讨