面向服务的城市管网综合管理系统设计

2015-03-28 06:11李宏伟杜泽欣马雷雷连世伟
测绘工程 2015年3期
关键词:客户端管线用户

周 海,李宏伟,杜泽欣,马雷雷,连世伟

(信息工程大学 地理空间信息学院,河南 郑州450000)

城市各类管线是城市重要的基础设施,担负着信息传输、能源输送等工作,也是城市赖以生存和发展的物质基础[1]。管线管理信息系统在规划、石化企业、自来水公司、消防、煤气、天然气等部门有着广泛的应用。建立城市管线管理系统,实现城市管线数字化管理,不仅是城市经济和社会发展的需要,也是城市规划、建设和管理的需要,更是抗震、防灾和应对突发性重大事故的需要。

作为地理信息系统的重要应用方向之一,城市管网综合管理GIS系统的理论和实践研究已经取得很大进展,但仍然存在诸多问题[1-3]:系统多为单机版或C/S架构,通用性有限,无法实现跨平台应用和服务级别的共享;系统的功能虽然丰富,但是专业性和功能的可扩展性差;对系统和数据安全性方面考虑较少。针对这些问题,本文基于SOA[4-6]架构和Arc GIS Ser ver平台,设计一种面向服务的城市管网综合管理系统,探讨系统实现中使用的Silverlight富客户端技术、Arc GIS Ser ver服务扩展技术及服务权限控制技术。

1 系统设计

1.1 系统基本架构

系统架构包括数据层、服务层、网络层、服务调用层及用户层5层,如图1所示。

图1 系统基本架构

数据层:包含业务数据库和管线数据库。业务数据库可以被业务应用直接访问,管线数据库通过空间数据引擎(Arc SDE)中间件连接关系数据库访问空间数据。

服务层:包括Arc GIS Ser ver服务和业务应用服务。Arc GIS Ser ver的服务发布是面向服务设计的关键,用户可以直接发布Arc GIS Ser ver支持的地图等类型的GIS服务,或是通过服务器端编程扩展Arc GIS Server服务。经过封装的服务对外公布接口以供调用,充分体现SOA封装性好、松散耦合的特点[7]。在服务类型的选择上,鉴于 REST[8]风格服务易用性、灵活性和可供Arc GIS f or Silverlight API直接消费的特点,本文采用REST风格服务(通过Arc GIS Server Rest API服务接口)。系统的业务应用服务主要具有限定用户权限管理功能,完成用户验证、令牌申请(通过访问Arc GIS Ser ver的Token服务)等工作。服务以Web Ser vice服务的形式提供给用户。

网络层:即互联网或局域网。

服务调用层:即基于Silverlight的富客户端,用户可以通过安装有Silverlight的浏览器登录系统,完成各种业务操作和消费服务。在访问业务应用服务和管线服务时,参数的传递分别使用XML和JSON数据交换技术。在实现系统功能时可能是对服务的直接调用,如地图浏览;也可能是各种服务的组合,如爆管分析,需要地图服务、查询服务及爆管服务来共同完成。这种调用方式充分体现SOA高度的易集成性。

用户层:即系统用户。

1.2 系统功能设计

系统功能设计面向城市管线的各个管理部门和市政综合管线数据的维护部门。根据管线数据特点和用户需求,系统GIS功能概括起来主要有以下3个模块:①基本操作模块:提供城市基础地图和各专业部门管线图的浏览、放大、缩小、漫游、查询、定位等功能。②管线分析模块:针对各管线提供不同的管线分析功能,如埋深分析、排污分析、寿命分析、爆管分析、连通性分析、断面分析、缓冲区分析等[1-2]。③数据打包、在线制图输出模块:数据打包是根据用户选择范围和格式将数据打包发送到客户端,在线制图允许用户根据选择范围和模板在服务器端生成的地图,并以一定格式下载到客户端。

2 系统开发关键技术

2.1 Arc GIS Server服务扩展技术

城市管线的地理系统信息服务内容除了常规的地图浏览、查询定位、数据打包和在线制图(可以通过地理处理服务发布)等常规GIS功能外,还包括一些专业分析功能,如爆管分析、开挖分析等,这些功能Arc GIS Server并没有现成的模型和方法。系统需要对Arc GIS的服务进行扩展。

在Arc GIS 10.1中Arc GIS Ser ver不再支持DCOM方式的连接,无法通过本地方式的连接使用Arc Objects提供的更多功能。为了实现功能的扩充,可以使用SOE(Ser ver Object Extension)服务器对象扩展。一个SOE就是一个包含一组方法的类,这个类可以在SOC(Arc GIS 10.1 for Server进程,全称ArcSOC.exe)中运行,并且可以被web应用程序调用。Server Objects是粗粒度的AO组件,是一个可以执行特定操作的高级对象,它隐藏了细粒度的Arc Object,可以利用SOE编程实现服务扩展。

Arc GIS在Visual Studio 2010中为开发者提供了SOE开发的模板,其主要继承了IREST-Request Handler和IServer Object Extension两个接口,IServer Object Extension里的方法主要负责获取IServer Object Helper对象,IRESTRequest Handler里的方法主要用来获取请求参数和返回SOE的资源列表。利用SOE编写的程序生成的文件添加到Arc GIS Server后,将出现在Arc GIS Services Directory之内,并将提供特性设置、基本类型等Arc-GIS APIs能够理解的典型对象类型。在本系统中连通性分析和爆管分析等使用SOE开发。

2.2 服务权限控制技术

由于城市管网综合管理系统面向用户的角色不同,不同的角色允许访问的服务也不同,如给水管线、电力管线、通信管线,对应的角色自来水公司、电力公司和通信公司,所能访问的地图服务也就不同,本角色只能看到本部门自己的管线图。用户所能使用的功能可能也受到数据的限制,如电力部门并不涉及到爆管分析的功能。因此应当对GIS的各种服务进行权限控制。

Arc GIS Server有自己的安全策略,一般的安全模型为:用户请求资源——身份验证——角色映射——角色评估和授权。此外,Arc GIS Server还可以进行复杂的集成安全配置。

本系统考虑到城市管线管理系统的安全性要求及与其他系统集成的便利性,采用了用户+Token令牌的方式来进行服务的权限控制,用户登录到城市管线综合管理系统时,系统会根据用户的角色申请到角色对应的所有服务的令牌,当用户要访问某服务时,出示令牌就可以访问服务,用户-角色-服务映射关系如图2所示。

图2 用户权限对应关系图

本系统中,为了方便在Arc GIS外部实现权限控制,在Arc GIS Ser ver创建了与角色一一对应的用户(记为用户A),赋予不同的角色对应的服务访问权限。在Arc GIS Ser ver外,创建了单独的业务用户表B(记为用户B),并建立它和Arc GIS Ser ver用户A的映射关系,这样用户B登录成功后获取用户A的用户名和密码,然后访问Token服务得到对应角色的令牌,最后携带令牌便可请求系统给对应角色分配的服务。令牌实际上是一长串字符,访问服务时出示令牌便可以实现服务的顺利调用,Token方式实现权限控制的流程如图3所示。

2.3 Silverlight富客户端技术

图3 Token方式实现权限控制的流程

RIA(Rich Internet Application)技术由 Macr o media于2001年提出,即“富互联网应用”,具有表现力强、内容丰富、异步处理、交互性好等特点。传统的网络程序的开发是基于页面的、服务器端数据传递的模式,事件处理能力差,当用户与其交互时,其用户体验差,局部刷新等技术实现困难,这样使得Web应用程序难以使用、成本高,无法发挥作用[9]。在这样的背景下RIA技术发展起来,它通过HTTP进行传递,并采用异步的方式与后端服务器进行通信。随着众多RIA产品的推出使得利用RIA开发的应用越来越广泛[9-10]。HTML5的推出虽对RIA技术构成挑战,但当前RAI技术应用的成功将使RIA今后相当时间内继续得到广泛应用。

现在主流的RIA技术包括:Silverlight,JavaScript,Flex 等。目 前,ESRI对 Arc GIS Server REST API接口对三种RIA形式的API都提供支持。Silverlight是微软公司推出的一个跨平台、跨浏览器的插件,它不但具有矢量图形、动画和视频功能等良好的开发体验,还将界面显示和功能代码分离,提供灵活的编程模型,并可以集成到现有Web应用程序中[5]。Arc GIS Silverlight API是构建在微软Silverlight平台之上,通过Arc GIS Ser ver Rest API消费Arc GIS Server服务的应用程序编程接口,包含很多和地图有关的类库和Arc GIS Server REST API,可以很方便的消费Arc GIS Server的服务,并在浏览器中实现显示和交互。如在Visual Studio2010下使用.Net编程,通过简单的URL地址便可轻松消费各种服务。

在城市管网综合管理系统中,无论是基础地图、管线图还是管线分析结果都要求系统具有较好的可视化效果,而管线分析、数据打包制图等功能则需要用户和地图的交互完成。Silverlight富客户端技术的采用,可满足城市管网综合管理系统的要求。

3 系统实现

3.1 实现过程

本系统作为洛阳市地下空间综合管理系统的一部分,实验数据为洛阳市高新区给水、电力、通信等管线数据和城市基础地图数据。系统业务数据库和管线数据库均使用SQLSer ver2008管线数据库通过Arc SDE导入管线数据建立。

系统管线服务采用Arc GIS Ser ver10.1发布,主要包含地图服务、地理处理服务及扩展服务。管线地图服务为最基本的服务,其包含地图浏览、查询等功能;地理处理服务用来发布管线制图和数据打包等服务;扩展服务使用C#在Visual Studio2010下进行SOE扩展编程,然后添加到地图服务中,Arc GIS Server发布的服务见图4(a),服务扩展见图4(b)。

图4 Arc GIS Server服务及扩展服务

系统客户端功能利用Arc GIS API f or Sliverlight3.1在Visual St udio2010下使用C#编程,调用管线服务结合客户端编程实现。某些功能需调用多个管线服务才能完成,表1列出部分功能所调用到的服务。

表1 部分系统功能访问的服务

系统权限主要是对服务权限实现控制。首先在Arc GIS Server中创建一一对应的用户和角色,并给服务分配角色(见图5);然后在Silverlight客户端编程中调用Web Service访问业务数据库验证用户,取得Arc GIS Server内部用户并申请Token服务获得令牌;最后在访问服务时出示令牌便获得许可。

图5 Arc GIS Server用户表及服务角色分配

本系统作为城市空间综合管理系统的一个模块嵌入到该系统中。系统的UI界面使用Silverlight搭建(见图6(a)、图6(b)),主界面左侧为功能菜单,通过点击以加载对应的工具条,用户通过工具条及地图与系统交互完成操作。

3.2 功能展示

本系统实现了系统设计的各功能,以下对系统的部分功能进行展示和介绍(见图6)。

地图浏览:如图6(a)所示,地图浏览允许用户查看城市基础地图、管线地图。后台地图浏览通过在Silverlight中使用瓦片地图服务及动态地图服务来实现。界面左下角为“通用工具条”,提供了放大、缩小、漫游、全图及客户端地图打印(客户端完成)等功能。使用系统其他功能时均可使用此工具条。

查询定位:如图6(b)所示,查询定位界面提供了模糊查询和依街道查询两个工具,输入并点击查询后将返回候选列表,点击列表中的记录便可高亮定位到相应要素。后台查询主要使用Quer y服务。

爆管分析:如图6 c所示,该功能通过服务扩展开发实现,扩展主要通过ITraceFlowSolver GEN接口实现,用户在图上输入管线上爆管点,系统将分析得出爆管后应当关闭的阀门以及下游影响的范围。在后台,由于爆管分析不仅要得出爆管后影响的下游管线还要得出缓冲区内可能受影响的居民区,因此不仅使用到爆管分析服务,还用到Geometry及Query服务,最后采用Silverlight可视化呈现。

缓冲区分析:如图6(d)所示,该功能可以用于道路扩建分析,选择道路并输入距离,可以得到道路两侧受影响的居民区。后台实现时使用Geo metr y服务建立缓冲区,在使用Quer y服务获得缓冲区内的要素。

在线制图:如图6(e)所示,用户输入图名、范围、纸张大小及制图格式(PDF、JPG等)等参数,服务器返回文件。后台使用Arc GIS Server发布的制图Geoprocessing服务。该功能强于“通用工具条”中的客户端制图。

图6 系统部分功能

数据打包:如图6(f)所示,用户选择要输出的图层、范围及输出格式(GDB、Shap File等),服务器端将返回符合要求的管线数据包,供用户下载。后台采用Arc GIS Ser ver发布的数据打包处理地理服务结合SOE扩展来实现。

4 结束语

本文研究B/S架构下,面向服务的城市管网综合管理系统设计及系统开发的关键技术,为包括城市管网在内的web端GIS系统的构建提供了一种良好的解决思路。面向服务的设计增强了系统的灵活性、可复用性和易集成性。Arc GIS Ser ver作为基于Web的企业级GIS解决方案,用户可以快速发布多种GIS服务并搭建基于Web服务的GIS应用。Arc GIS Server服务扩展SOE的服务器端编程技术扩展了Arc GIS Ser ver现有的服务,使得Arc-GIS能够发布满足专业用户的复杂服务。Silverlight可简单快捷地在浏览器中实现地图显示等GIS功能,并实现良好的交互性,而使用Arc GIS API f or Silverlight使得客户端编程非常方便。GIS服务无论是功能还是地图数据都同用户密切相关,本文提出了Arc GIS Ser ver服务权限管理的技术,使GIS服务同用户角色挂钩,实现对服务权限的控制。组合服务并结合客户端编程实现系统功能的方式体现了系统面向服务设计的优势。今后,要在增强系统功能易用性、实现服务器端和客户端的负载均衡、系统企业级安全策略、系统集成安全等方面开展进一步研究。

[1] 董绍环.城市地下综合管线管理信息系统研究与实现[D].青岛:中国石油大学,2011.

[2] 柳宇刚.城市地下综合管线信息管理系统设计与实现[D].济南:山东大学,2013.

[3] 苏丽然.地下管线信息管理系统方案设计[D].上海:复旦大学,2012.

[4] 李德仁.面向服务的数字城市共享平台框架的设计与实现[J].武汉大学学报:信息科学版,2008,33(9):881-885.

[5] 易敏.面向服务架构(SOA)的空间信息服务研究[D].上海:华东师范大学,2008.

[6] 陈珂,张献州,杨曦,等.面向服务的网络化移动勘测办公系 统 设 计 与 实 现 [J].测 绘 工 程,2014,39(4):145-148.

[7] 张新成.基于Silverlight的 Web GIS开发研究[D].昆明:云南大学,2010.

[8] 毛峰.基于REST面向资源的地理信息服务设计[J].计算机工程,2011,37(8):238-240.

[9] 贾静.基于Rest和RIA技术的城市地下综合管线信息系统的设计与实现[D].南昌:江西理工大学,2013.

[10]袁怀月,侯澄宇.基于Arc GIS Flex API的工厂基础地理信息共享服务系统设计[J].测绘工程,2011,20(2):61-65.

猜你喜欢
客户端管线用户
如何看待传统媒体新闻客户端的“断舍离”?
高级别管线钢X80的生产实践
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
浅谈通信管线工程建设
浅谈通信管线工程建设
关注用户
关注用户
关注用户