搭建式GIS开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 GIS开发现状

1.1.1 GIS开发现状分析

随着软件行业发展至今,软件架构也在不断发展进化,经历了面向过程的体系架构技术(POA技术)、面向系统的体系架构技术(EOA技术)、面向服务的体系架构技术(SOA技术)三个阶段。

SOA技术为弥补面向对象、面向组件两种软件框架的缺陷而生。在SOA的应用程序中,开发者只需关注业务逻辑的编写,以及通过可交换的、可互操作的服务终节点暴露业务逻辑;客户端调用这些终节点,而不是服务代码或它的实现包。因此,SOA具有更高效率的代码重用机制,可以动态按需构建应用系统,更有助于实现业务敏捷。

地理信息系统是一种特定的空间信息系统。它是由计算机硬件,空间数据库,数据输入、输出、转换和通信设备等组成的计算机系统,用来采集、量测、分析、存储、管理、显示、传播和应用与地理和空间分布有关的数据和信息。归根结底,地理信息系统也是一个软件系统,是一种面向GIS行业的空间信息软件。与普通业务系统的不同之处在于,GIS软件不仅涉及各类GIS行业数据,还包含空间信息数据。因此注定了基于GIS行业的软件开发将面临更大的困难,丰富多样的应用、复杂多变的行业逻辑,以及种类繁多、结构复杂的空间信息、数据资源等,都是GIS软件开发需突破的难点。而最大的难点则是如何利用与表达这些空间信息资源。空间信息资源具有分布性、异构性、基础性、共享性和综合性等特点,并由不同行业和组织机构所拥有。

采用现有的软件开发模式开发GIS软件,面临如下困难:

(1)采用旧的开发模式开发GIS软件具有规模大而复杂、开发周期长、维护困难、成本高、扩展性差等缺点,是制约GIS开发重要因素。

(2)人力资源成本持续上升。现今GIS软件开发主要通过编码实现,即根据不同项目功能编写不同代码实现,出现类似的需求时,由于代码的重用性很差,又需重新编码。因此,软件开发的成本居高不下。

(3)系统的可重用性有待提高,系统中的功能很难单独升级和替换。

(4)各个系统的数据和功能不能共享,不能实现信息之间的互联、互通、互操作,信息之间相对独立,从而导致了一个又一个“信息孤岛”的出现。

(5)各种空间信息服务的单一化,也造成了信息服务的门槛问题,已经不能适应用户对空间信息多样化服务的要求。

(6)开发难度大,对从事GIS软件开发的人员素质要求较高,既需精通软件开发,又需熟悉相应的GIS业务知识。

(7)与业务脱节,由于GIS项目开发过程中程序员为主导,而这些程序员又非GIS专业出身,因此研发GIS软件时重在实现功能,而不能更深入应用于GIS行业。

为解决上述问题,亟需一种新的开发模式,具备良好的开发架构、方便快捷的开发特性、良好的扩展开发能力、较强的通用性、较高的代码重用率等特性让GIS行业需求深入到整个开发过程,在保证软件开发的效率、成本、质量的同时,满足各行各业应用所需。

1.1.2 GIS开发发展趋势

面对机遇与挑战,是选择迎难而上,还是停滞不前?答案当然是前者。一个行业要发展,当然需要具备迎难而上的勇气。当一个软件项目立项后,将面临项目按时交付、项目资金、项目成本的控制、项目成败与否的风险控制等各方面的压力,若想开发一个通用的软件产品,则还需面临软件开发的扩展性、重用性、二次推广能力等多方面的压力与挑战。为缓解这些压力,涌现了众多的软件开发新技术。

SOA技术、分布式技术、云技术等软件技术的出现,多层高性能硬件产品的支持,以及GIS技术应用领域的拓宽,用户需求的不断膨胀,催生了新一代GIS软件开发的模式的诞生。它具备如下特点:

(1)新一代GIS软件开发模式构建于性能稳固的GIS开发平台之上,提供符合各行业需求的功能服务支持。该GIS开发平台需具备云架构体系,提供从硬件架构到软件选型、项目研发、市场推广为一体的产业链支持。

(2)新一代GIS软件开发模式具有快速、高效、易用的开发框架支持,以降低软件开发的周期,提供软件开发的效率,降低软件开发的成本。

(3)新一代GIS软件开发模式具备较好的通用性,可面向不同的开发群体,提供不同的开发模板与资源库。还需具备较强的扩展能力和较高的重用性。以保证软件的二次开发能力,增加软件的二次销售。

(4)新一代GIS软件开发模式具有专业性,深入研究各行业应用,提供行业特色功能支持与扩展操作。以行业应用为前提指导程序员开发,或让终端用户直接参与行业软件的开发,以减少软件开发过程中,因需求不明确而造成的返工现象。

(5)在面对不同的行业需求、开发需求时,新一代GIS软件开发模式还具备多模式开发的特点,以满足多层次的需求。

在此环境下,新一代GIS软件开发模式——搭建式GIS开发模式应运而生。搭建式GIS开发借用“搭建式”的概念,以搭建积木的形式搭建应用系统,不需大量的程序编码,也不再需要专业的程序员支撑。处于GIS产业链上的各部分人员,都可以参与GIS软件开发,甚至终端用户也可以完成GIS软件的研发。

基于搭建式GIS开发模式开发的GIS软件,可以方便、快捷地将业务系统与GIS系统对接,从而开发出符合业务应用所需的综合应用系统。基于搭建式GIS开发软件时,所有功能只需设计一次,就能应用于C/S和B/S两种开发模式。搭建式GIS开发框架中包含了各行业应用功能模块,以及普通GIS功能构成的各种功能资源库,用户在进行程序开发时,可任意选择功能库的资源,通过搭建的方式组建应用系统,且该应用系统不受操作系统、浏览器等条件的约束,具有跨平台、跨域等特性;不但支持聚合同类型功能、数据等资源,而且支持聚合其他异构功能与数据资源,共享网络上所有的资源,还支持功能、数据等资源的云共享功能。