土地巡查执法地理信息系统的软件架构分析 |
2012-08-29 21:45 作者:高自强 苏立娟 常海 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
硅谷网8月29日消息 《硅谷》杂志2012年第14期刊文称,土地巡查执法是国土资源管理工作中的一项基本工作内容。采用什么样软件架构把GIS技术同管理信息系统统一起来,既方便于系统的设计、测试、维护,是要介绍的主要内容。
随着城镇化和工业化的快速发展,土地的价值也在成倍增加,伴之而来是受利益驱使导致的违法违纪案件时有发生。土地巡查执法主要有两方面的内容,一个事前发现,一个事后处理。不管是哪一方面,从技术的角度来讲,都与地理位置和一些相应的描述性内容有关,如何在系统中有效的管理和使用这些内容,采用的软件架构对系统的整体性能、适应性、可维护性具有决定性的作用。
在过去很长一段时间,B/S、C/S架构一度成为软件开发人员的争论焦点,随着时间的推移和软硬件技术的进步,在软件系统采用分层架构,特别是引入Rest、Soap服务之后,B/S和C/S架构之间的差异仅仅存在于客户端的不同显示方式之中。
土地巡查执法地理信息系统采用Asp.netMVC、WCF、Rest服务等技术相结合的方式,有效地把GIS和管理信息系统组成了一个整体。下面对所采用相关的技术架构进行较为详细的分析。
1GIS架构分析
本系统的GIS系统方面的数据涵盖了土地利用现状、土地利用规划、遥感影像以及执法监察等国土资源数据库等图形数据库通SDE统一存放于MSSqlserver数据库中,采用ArcgisServer作为地理信息数据发布平台,本系统中所发布的地图服务主要有三种用途:
一是用做背景地图显示,为了提高显示速度,减少客户端的响应时间,通常要通过arcgisserver所提供tilesfromacache功能对图形进行Tiles处理,用空间换时间的方式来提高地图服务的响应速度;
二是用于查询和计算需要,根据由客户端提交的条件,进行一些相应的数据查询和地理运算,最后客户所需要的结果;
三是FeatureAccess服务,通过它可以在客户端提供地图编辑,实现客户端与服务器之间的交互功能。
不管服务是用于哪种用途,所有服务均以Rest服务的方式,采用Json格式同ArcgisServer进行数据交换。Rest只是存在于客户端和WebServer之间,我们以HTTP协议将JSON请求提交给WebServer,返回的结果在WebServer上转化为JSON格式,这样就完成了整个REST会话过程。
在客户端,利用由ESRI公司提供的基于dojo库ArcgisServerJsapi通过AJAX方式访问由arcgisserver发布的服务,并与管理信息系统之间进行一些相应的数据交换。
在使用Rest服务过程中,采用的Json数据交换格式也有效的解决了管理信息系统与GIS之间的信息数据交换问题,使二者融合成了一个有机的整体。
2管理信息系统架构分析
土地巡查执法地理信息系统除了上述的GIS系统部分外,还涉及到巡查管理信息系统、手持GPS巡查子系统两个主要的子系统。
管理信息系统整体采用了以ASP.NETMVC3为基础的B/S架构和WCF相结合的方式,其中WCF除了用于管理信息系统之中,还用于手持GPS巡查子系统。在系统中使用Ninject作为IoC容器,Ninject的作用就是充当一个全局的对象的生成器,自动解决接口与对象之间的映射关系。使用AutoMapper实现model到viewmodel之间的转换。
之所以选择vs2010下asp.netmvc3作为本系统的首选基本架构,主要是基于以下几方面的考虑:
MVC(模型-视图-控制器)结构模式把一个应用程序拆分成三个主要组件:模型、视图和控制器。ASP.NETMVC框架是一个轻量级的、测试性强的描述框架,它能够与现有ASP.NET特征(例如母版页面和基于成员身份的认证)紧密集成。
ASP.NETMVC3带来了一种新的名为Razor的视图引擎,语法简单且清晰,只需要最小化的输入,容易学习。
JavaScript和Ajax改进:默认情况下,在MVC3中,Ajax和验证使用不引人注目的unobtrusive的JavaScript方式。unobtrusive不会在HTML中插入行内的JavaScript,这使得HTML更加精简和更少干扰,也使得更加容易被替换和定制JavaScript库,在MVC3中,验证助手默认使用jQuery.Validate插件完成,如果你希望使用MVC2的行为,你可以在web.config中通过配置来关闭unobtrusive。
默认启用了客户端验证在早先版本的MVC中,你需要在视图中显式调用Html.EnableClientValidation方法来启用客户端验证。在MVC3中,已经不再需要了,因为默认就会启用客户端验证。可以在web.config中关闭,为了使得客户端验证工作,你仍然需要在网站中加入对jQuery和jQuery.Validation库的引用。
JSON绑定支持:ASP.NETMVC3包含内置的JSON绑定支持,允许Action方法接收JSON编码的数据并且模型化为Action的参数。这个能力经常被用于客户端的模板和数据绑定中。客户端模板允许你通过客户端的模板来格式化和显示一个或者多个数据,MVC3允许你简单的连接客户端模板和服务器端的Action方法,通过JSON来发送和接收数据
结合asp.netmvc3的主要特点以及本系统的功能需求,经过仔细的分析,最终把把系统划分以下主要的模块(类库)或层:
2.1数据访问层(DAL)
其主要功能是在系统中负责与数据存储交互并执行业务对象检索和持久化,该层包含了数据的创建、读取、更新、删除功能,事务管理、数据并发访问以及相应的查询机制,供业务层检索符合指定条件的对象。该层不包含业务逻辑,并且在业务逻辑层中使用它时利用接口的形式,通过关注点分离原则来使得业务层无需了解底层数据访问实现策略。
本系统在数据访问层采用了Repository模式,Repository就像一个内存集合,将业务实体与底层数据基础设施完全隔离开来,这是对数据层(domainmodel)业务模式的极好补充在。
在Repository提供的持久化层入口背后,采用UnitofWork模式来维护一个由已经被业务事务修改(增加、删除或更新)的业务对象组成的列表。UnitofWork模式负责协调这些修改的持久化工作以及所有标记的并发问题,确保数据的完整性。
2.2数据层(DomainModel)
表示正在处理的领域的概念层,事物以及事物之间的关系都存在于这个模型中,domainmodel越能密切地表示真实的领域越好,这是因为更容易理解和复制组织中的复杂的业务逻辑、规则和验证过程。本模块的主要目的是用来放置应用系统中用到的各种域实体以及相应的逻辑,业务实体并不知道如何持久化自己,而且也没有必要在数据模型和业务模型之间建立一对一的映射关系。最终通过数据访问层(DAL)来建立数据存储和域实体之间映射关系。
2.3业务层
主要目的是将数据的获取和数据的表现与数据的“转换"(业务逻辑)相分离,单独进行建模,作为数据层(domain层)和数据表现层的中间层。系统中一个典型的例子是由手持gps巡查子系统现场采集坐标位置为WGS84格式,而GIS系统中所用到的数据一般为西安80或北京54格式,为了在GIS系统中正确显示由现场采集的位置信息,需要进行投影转换,而这部分工作一般在本层进行处理。
2.4服务层
服务层用来协调业务用例事务,并将工作委托给业务对象来完成所有低层的实现细节。服务层封装业务模型充当各访问应用程序的接口。它的主要作用是是给表现层提供一个完全符合表现需要的视图模型(viewmodel),有时候我们把它称作表现模型。
服务层相关联的设计模式常被称为Messaging模式,Messaging模式为复杂问题提供标准的解决方案。Messaging模式以一种统一的形式解决在众多彼此分离的系统中共享数据的问题。此类模式的具体实现采用DocumentMessage和Request-Response模式,就是将表现层提供的请求包装为Request,而将返回给表现层的响应包装为Response。而在Response里返回的视图模型,已经是完全符合表现需要的从业务层的类对象转换而来的视图类对象。
服务层ServiceLayer是典型的面模型(facadepattern)的设计模式,服务层为表示层提供了强类型视图模型,有时也称为表示模型。
2.5表示层
表示层主要负责获取数据、处理用户事件并通过视图的接口更新视图。拥有表示层的益处在于,很容易测试数据的表示以及用户和系统之间的交互,并可以在应用程序之上添加各种形式的用户体验。
视图通常映射到领域模型实体,对于需要从多个实体中获取数据的场合,可以使用ViewModel。ViewModel是一个专为在特定视图模板中使用而进行优化过的类,它提供了领域的扁平视图产,可以暴露模型中并不存在的属性。ViewModel还有助于将视图与底层的领域模型分离,在此层采用AutoMapper帮助我们实现领域实体到ViewModel的映射。
2.6用户体验层
在本层采用了AJAX技术,为了方便AJAX编程和隐藏跨浏览器DOM操作的复杂性。我们在釆用了当今广为流行的Javascript库JQuery,JQuery同时也被集成到了vs2010中。在提高了用户体验的同时也满足了开发人员的需要。
在此层采用了两种模式用于改善用户的体验:
1)PeriodicRefresh和Timeout模式:PeriodicRefresh模式按照给定的频度定期更新页面,Timeout模式确保只有当用户仍然牌活动状态时才定期刷新,它设置一个定时器,当用户一段时间内没有活动后该定时器可导致该用户超时。
2)PredictiveFetch模式:PredictiveFetch模式猜测用户最可能做出的动作,然后异步下载与该动作相关的数据,从而提供更好的用户体验。
3结束语
本系统通过采用asp.netmvc3架构和分层模式,为系统带来了以下一些主要的益处,加快了系统的开发进度,提高了系统的质量,增强了系统的扩展性以及系统的可测试性,系统具有较强的可维护性。除了上述介绍的主要内容以外,本系统还涉及到了用于支撑该系统的基础设施部分,限于篇幅不再作过多的说明。
作者简介:
苏立娟(1980-),女,汉族,河北廊坊人,河北省地矿局地质测绘院助理工程师。(原文载于《硅谷》杂志2012年第14期,硅谷网及《硅谷》杂志版权所有,未经允许禁止转载) |
|
|
|
【对“土地巡查执法地理信息系统的软件架构分析”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|