GIS应用系统开发模式探讨
2010-09-10高慧卿樊兰瑛
高慧卿,樊兰瑛
(1.山西省农业科学院现代农业研究中心,山西太原030031;2.山西省农业科学院农业资源综合考察研究所,山西太原030006)
地理信息系统(Geography Information System,GIS)起源于20世纪60年代,它是一门集计算机、测绘、遥感、地理学、空间科学、信息科学和管理科学于一体的新兴边缘学科。作为一门新兴的空间信息技术,地理信息系统在国防、交通、城市管理等各个领域都有广泛的应用,在处理空间信息方面有着无可比拟的优势[1-2]。随着技术的进步,地理信息系统也逐步发展完善起来,产生了一批具有代表性的专业地理信息系统,如ESRI的ArcGIS,MapGIS,SuperMap等。尽管GIS发展得很快,但在属性数据的管理方面仍然没有达到现在的关系型数据库的地步。
管理信息系统(Management Information System,MIS)经过长时间的发展,由于数据库技术、网络技术等相关技术的发展,管理信息系统已经非常成熟和完善。然而,对于空间信息的管理,管理信息系统却心有余而力不足,这是由于空间信息的复杂度以及空间信息的拓扑关系是关系型数据库无法表达而造成的。管理信息系统在海量空间信息的处理以及进行空间信息的操作与分析上也很难得到满意的专业GIS的效果。在开发应用系统的过程中,如何根据不同的需求特点,将GIS与MIS结合起来就成为系统能够取得成功的关键。
1 开发的技术模式
随着地理信息系统理论的发展以及计算机技术的发展,地理信息系统在技术上的开发模式也不断地丰富[3]。目前,地理信息应用系统在技术上的开发模式主要有完全的底层开发;基于现有的商业地理信息系统的二次开发;基于COM标准的组件式开发以及基于网络的网络地理信息系统即WebGIS等。
1.1 完全的底层开发
完全的底层开发指的是不基于任何已有的GIS软件,应用C++等高级语言对所要实现的GIS及MIS功能进行开发,实现图纸的管理、海量空间数据的管理等GIS功能。这种模式的好处是具有极强的开发灵活性和可操作性,因此几乎能够实现所有的功能。而且完全从底层做起,形成的成果具有完全的自主知识产权,能够避免产权纠纷,在系统开发的成本上可节省购买专业GIS软件的资金。完全的底层开发有利于使GIS与MIS功能相结合。由于完全的控制,在功能上更容易满足需求。但是,完全的底层开发也有其劣势。正是由于其极大的灵活性,不可避免地带来共开发工作量的增加。所有的GIS功能都必须从零开始,对系统设计人员以及编程人员的素质要求很高,大大增加了工作量,而且在效果上很难与专业的GIS软件相媲美。
1.2 完全的二次开发
完全的二次开发指的是在已有的商业GIS软件的基础上进行二次开发。随着GIS的不断完善和发展,出现了一批功能强大的GIS软件,并且都提供了二次开发功能,如ESRI公司的Arc View提供了Avenue语言,ARC/INFO的AML,Intergraph则有MicroStation Development Language(MDL),MapInfo公司研制的 MapInfo Professional提供了MapBasic语言等。二次开发的技术模式可实现与原有平台的界面风格一致,结构紧密,并可以充分利用软件提供的先进GIS空间分析功能。这种开发模式可以大大减小开发的工作量,在扩展空间分析功能方面也比较容易。但是,使用二次开发模式需要学习专门的二次开发语言。由于对属性数据的处理能力较弱,这种开发模式很难实现MIS的功能。所开发出来的系统严重依赖原系统,不能独立运行,可移植性较差。
1.3 组件式开发
GIS工具软件生产厂家采用COM等技术,将地理信息功能以组件的形式提供给客户。开发人员只需要调用相关的函数就能实现专业的地理信息功能。这方面有ESRI公司的MapObjects及ArcObjects,MapInfo公司的MapX等。以Arc Ojects为例,它是ESRI公司ArcGIS家族中应用程序 ArcMap,ArcCatalog和 ArcScene的开发平台,基于Microsoft COM技术。通过AO可以完成空间数据显示、查询检索、编辑分析,创建各种专题图和统计报表,高级的制图和输出功能等。使用组件开发技术很容易在用可视化编程工具VC,VB等上将GIS与MIS集成起来,实现高效无缝的系统集成。使用组件技术无需专门GIS开发语言就能开发出强大的GIS功能。而且组件小巧灵活、价格便宜,因此受到了广泛的欢迎。
1.4 WebGIS
WebGIS将GIS与Web及数据库技术相结合,以新的工作模式和数据共享机制,广泛应用于各种涉及地理信息的领域,为全球范围用户提供数据、通讯和其他信息服务[4]。目前主要产品有:ESRI公司的 MapObjects和 Internet Map Server(IMS),MapInfo 公司的 MapInfo Pro Server,Intergraph公司的 GeoMediaWebMap,Autodesk公司的MapGuide以及韩国仁荷大学开发研制的GeoWeb等。WebGIS实现了数据和应用彻底分离,通过XML或SOAP等传递消息来构建应用。WebGIS将GIS与网络相结合,具有系统的开放性、满足数据的共享与远程操作、广泛的访问范围以及平衡高效的计算负载等优点,成为GIS开发的热点。
2 GIS与MIS二者的集成方式
根据不同的应用,GIS与MIS二者结合的方式基本上分为3类,即:以MIS为主,集成GIS基本功能的信息系统;结合GIS与MIS各自所长的专业应用系统;以实现GIS为中心的专业系统。
2.1 以MIS为主,集成GIS的基本功能的信息系统
这种开发模式是以数据库管理系统为主,集成GIS的查询、显示等基本功能,满足用户对数据可视化的基本要求,它适用于那些对GIS功能要求不高,只需要对空间信息进行简单的显示、查询等功能,对空间数据的精度不做过多要求的系统。在这种开发模式下,可采用完全的二次开发方式进行开发。由于只需要实现简单的GIS图形显示、查询等功能,采用完全的底层开发的方式,在技术上并不难。而且能够实现MIS系统的功能,使得GIS与MIS系统能够很好地结合起来,我们研究的旱农决策管理信息系统就是这样的一种应用。在该系统中,要解决的问题是如何利用先进的信息技术来管理不断增加的旱农项目管理信息,构建一个基于Internet的多角色、多用户的统一的旱农信息交换平台,从而提高旱农项目决策的科学性和日常项目管理的效率。在深入分析ArcSDE和Oracle Spatial的存储机制的基础上,全面分析、比较二者的优缺点,结合系统的实际情况,选用ArcSDE+SQL Server 2000的存储方案,实现了空间和属性数据的一体化存储。
MIS功能由数据库访问控件来实现,GIS功能则由GIS基本功能Web Service访问空间数据服务器来实现。具体过程是:Web服务器收到请求后先分析该请求,如是业务数据请求,使用业务数据访问控件访问数据库服务器,数据库服务器根据用户的请求进行相应的处理后,以XML数据流的形式逐级返回结果;如是地图数据请求,使用GIS基本功能Web Service访问空间数据服务器,空间数据服务器再访问数据库服务器,数据库服务器根据用户请求进行相应的处理后,以地图数据流的形式逐级返回结果;如是模型计算请求,使用模型计算Web Service进行相应的处理,如有必要再通过业务数据访问控件或GIS基本功能Web Service访问数据服务器或空间数据服务器,处理结果以XML数据流或地图数据流的形式逐级返回(图1)。
在这种开发模式下,也可以采用组件的开发方式。由于大部分GIS功能都由GIS组件来提供,开发人员在开发MIS系统时直接调用这些组件,从而提高开发速度,降低开发难度。
2.2 专业模型应用系统
一些专业模型的应用系统在GIS与MIS功能的基础上实现某专业模型。这种开发模型需求,可以结合数据库管理系统与GIS各自的长处分别实现,并集成到一起,这一类应用系统的实现主要依赖于GIS组件的功能。专业模型应用系统的核心在于其专业模型的实现上。针对不同的专业模型,可能对GIS与MIS的功能要求有所不同。比如我们现在正在开发的产业空间分析软件,对于二者的要求都并不是很高,其核心是空间分析应用模型的实现。因此,在开发中,我们将GIS的显示功能及MIS的管理功能结合起来,将空间分析模型以Web服务的形式提供给客户。其过程如图2所示。用户将数据以及所要进行分析的请求发送到服务器端,服务器端应用相关的分析模型对用户所提交的数据进行分析并将结果返回给用户,用户通过客户端GIS浏览器查看分析结果。在本系统中处于核心部分的空间分析模型的实现,既涉及到产业的空间属性,又涉及到产业的属性信息。因此,在实现模型时,就必须将GIS与MIS二者结合起来。将结果返回到用户的客户端时,还需要具有浏览GIS功能的浏览器浏览结果。
当一些专业模型对MIS功能要求不高甚至没有时,可以考虑在GIS系统上的二次开发,在GIS软件平台上实现专业模型。如王若成等[5]在MapBasic开发环境中实现了由二维矢量地图生成数字高程模型(DEM)和由数字高程模型(DEM)生成坡度图和坡向图。专业模型应用系统的开发也可采用组件式的开发方式。魏加华等[6]在MapObjects技术上实现了GIS功能与地下水数值模型的完全整合。
2.3 以实现GIS为中心的专业系统
以GIS为中心,由GIS管理所有的数据,实现空间数据与属性数据的一体化,利用GIS的各种空间分析与处理能力建立专业的应用模型,满足用户的复杂需求。这一模式主要适合于具有超大空间数据(如大数据量的遥感图像)的环境资源应用领域。李航等[7-8]利用基于COM的GIS组件开发客户端应用程序,利用ArcSDE开发后台遥感图像数据库,实现了对遥感图像数据的有效存储和管理。在这种开发模式下,也可采用基于已有GIS软件的二次开发。由于所涉及到的MIS功能很少,在已有的专业GIS软件上进行二次开发,能够满足MIS方面的需求。而且由于商业的GIS软件在GIS功能的实现上有着极大的优势,进行二次开发,可以极大地提高开发效率。对于一些特殊的功能,选择开源的开发方式也是一个不错的选择,如可以在开放源代码OpenGL的基础上实现山区地形地貌的跨平台的三维浏览。
2.4 GIS与其他的专业系统集成
对于一些特殊的专业系统,需要集成GIS功能,如多媒体数据与GIS空间数据集成等。罗平等[9-10]利用VB进行MapGIS和Authorware二次开发,完成了基于GIS和多媒体集成方式的佛山旅游信息系统的设计和开发。
3 结束语
根据GIS应用系统的功能需求的侧重点,GIS与MIS在结合的方式上可以分为3种类型:以GIS为主、以MIS为主以及二者都有侧重。这3种结合方式在实际的开发过程中都有广泛的应用,而且都能够取得不错的效果。因此,开发GIS应用系统过程中,应根据功能需求确定开发模式。在技术层面上,每种开发模式都有多种技术开发方式供选择。在技术开发模式中,基于组件式的技术开发模式有着广泛的应用,因而成为目前开发GIS应用系统的主流。需要指出的是,开源技术也是开发GIS功能的一种不错的选择。
[1] 李翔,杨宝祝,郭天财,等.基于WebGIS和ES集成技术的农作物管理地理信息系统研究 [J].华北农学报,2003,18(2):106-109.
[2] 郭常莲,樊兰瑛,张爱莲.山西农业企业及资源配置分析系统研究与开发[J].山西农业科学,2008,36(5):93-96.
[3] 俞侃,卢俊波,邓天平.GIS应用软件开发模式分析[J].计算机与数字工程,2005,33(3):24-27.
[4] 常乐,彰晖,陈宏盛.WebGIS应用系统设计[J].计算机工程,2001,27(4):51-53.
[5] 王若成,董吉文.基于MapBasic下MapInfo地形分析功能的扩展[J].信息技术与信息化,2005(1):37-39.
[6] 魏加华,李慈君,王光谦,等.地下水数值模型与组件GIS集成研究[J].吉林大学学报,2003,33(4):532-538.
[7] 李航,岳丽华.基于COM和ArcSDE的遥感图像数据库开发[J].计算机应用,2005,25(5):12-14.
[8] 白似雪.GIS与MIS结合的研究[J].南昌大学学报,2002,26(1):61-63.
[9] 许海成.GIS应用软件开发方法探讨[J].蒙自师范高等专科学校学报,2001,3(4):15-20.
[10] 罗平,黄耀丽,何素芳.基于GIS和多媒体集成的旅游信息系统开发与实践[J].测绘通报,2001(12):25-27.