开放架构,无限价值——漫谈SuperMap GIS的开放式体系架构

开放架构,无限价值——漫谈SuperMap GIS的开放式体系架构


这是一篇2012年的老文章,今天看来还有价值。 前端

开放平台已经成为一个大趋势。本文将探讨开放平台概念的内涵,SuperMap GIS的体系架构组成和为开发者提供的开放平台价值,介绍SuperMap平台扩展应用的多种技术方式以及GIS应用系统随着架构发展升级的技术路线图。 算法

开放体系架构简介
     

    致力于建设一个支撑性和兼容性高、稳定性和适应性强、灵活性和扩展性好的架构,是GIS基础平台厂商一致追求的最高目标。由于,只有稳定的架构,才能很好 地支撑业务系统的不断发展,保护二次开放商和最终用户的投资,让其IT资产不断增值,带来足够的回报,从而造成良性的循环,并进一步支持软件平台的持续发展。 数据库

      1. 开放平台基本概念

    开放平台将系统的API经过标准化的方式来实现,让更多的人能够直接调用系统平台的功能,从而能够实现更好的融合和个性化定制,更好地知足最终用户独特的业务需求。
    开放平台不是简单地开放系统的函数或者直接开放源代码就能够实现的,而是须要付出更多的努力,才能彻底实现方便的数据集成、功能融合和流程整合的用户体验,达到真正开放的效果。成为一个开放平台,须要知足下面的五点基本要求:
首先,开放平台要有存在的核心价值。有很多的系统采用了开源的形式,可是没有什么应用价值,就很难做为一个平台长期发展下去。一个成功的开放平台,第一位的是它所实现的业务功能和所存在的价值。例如GIS基础平台,它自己比较复杂,开发成本很高,维护难度较大。但开发者借助其所具有的基础的通用功能及扩展 灵活性,能够缩短GIS应用开发的周期、下降开发成本,并能够得到良好的技术支持和持续的版本升级,实现功能不断丰富,保障系统稳定运行。这就意味着二次 开发者能够一万元的价格买到可能须要一百万元以上的成本才能开发出的软件,并且还有后续的支持服务。这样的平台软件就有很是好的存在价值。
    其次,开放平台要有稳定的体系架构。做为基础支持,开放平台要有足够坚实和稳定的架构才能长期发展。就像一座高楼,地基的强度和框架结构决定了这 座楼能建到多高,会建成什么样子,能支撑哪些功能。GIS基础平台要考虑操做系统、网络技术、数据库、中间件、开发语言、开发环境、应用环境、使用习惯, 再参考发展历史等不少因素,仔细地设计和选择合适的技术路线。
    第三,开放平台要有很好的持续性。很多平台的数据格式、框架结构和API接口都在不断变化,虽然每一个版本都“开放”了,但不只没法带给二次开发商 和用户真正的平台收益,反而会让他们感到无所适从,并增长开发和使用的成本,缩短应用系统使用的生命周期。一个真正的开放平台是有“生命”的,能够不断地 完善,但要保持核心架构的稳定和发展的持续性,能最大限度下降不一样技术变迁的影响。
    第四,开放平台要遵循通用的标准接口。开放平台必须开放接口标准,接口标准须要你们一致地遵照,而且从技术上确保系统之间的接口是彻底一致的。开 源是开放的一种技术方式,但因为开源代码可随意修改,致使接口标准难以有效地落实。例如如今不少开源系统已经衍生出不少版本,甚至不少版本之间也不兼容, 这就违背了开放系统建设的初衷,因此主要用于教育、研究领域,在工程应用上就可能带来不少麻烦。固然,也有Apache、Eclipse等开源项目,因为 采用了很是好的管理、协调机制,获得了很好的发展。做为开放平台,必定要在接口的制定上下足够的功夫,而且创建一种严格的管理机制,确保这个接口可以真正 一致起来,才能实现真正意义上的“开放”。
    第五,开放平台要实现双向多层的开放。开放平台须要既提供组件对象模型和服务的API供调用集成,也提供对底层数据存储格式、数据结构、算法模块 等的扩展来加强系统功能,还要充分考虑到这些组件对象和服务的编程模型的一致性。GIS基础平台既须要创建一个成熟的框架,用户能够扩展和加强这个框架; 也须要提供开发组件和服务模块供你们使用,实现一体化的业务集成;同时,还须要对数据访问、服务引擎、基础算法等实现便捷的扩展,这个扩展要有充分的功能 支持和灵活性,又要足够的简单和稳定,以便于快速地扩展和长久地使用。
    使用开放平台的好处是显而易见的。应用系统的建设成本更低、构建更快,架构和接口是稳定、一致的,多种系统和模块、服务能够更好地集成和协做,可 以更好地进行功能扩展,能够随着新技术的变化不断进行升级。更重要的是,平台厂商所提供的服务和技术支持,能够为业务系统的长期持续运行提供更好的保障。
      编程

       2. SuperMap GIS架构体系

    SuperMap GIS从研发之初,就被定位为一个开放平台,其内部是一个遵循接口标准的微内核架构,外部是一个多层次的开放架构。通过多年的发展,其体系的完备性、功能 的健壮性、架构的开放性、接口的规范性都逐步加强,已经成为主流的GIS基础平台。SuperMap GIS 6R(2012)是2011年最新发布的版本,其技术与产品组成架构如图1所示。
    SuperMap GIS底层由支持多平台的GIS核心数据结构和算法内核组成。SuperMap GIS内核有仅用于Windows平台的SFC系列和可用于多种系统的UGC系列两种,这是随着技术发展的影响而造成的,其中SFC是基于微软的MFC 库,因此很难移植到其它平台,而UGC是基于STL(标准模板库)的,能够支持不少种操做系统。因为UGC也能够同时支持全部的Windows系统,所以 目前超图软件已重点发展UGC系列内核及其系列产品。
    基于GIS内核,上层封装了组件产品,同时包括了COM、.NET和Java三种主流组件技术形态,可以使用Visual Studio、Eclipse以及其它支持组件化集成的软件开发环境进行高度定制化系统的快速开发。鉴于COM技术已经被其提出者微软公司宣布再也不继续发 展,所以组件将重点发展Objects .NET和Objects Java。这两个产品如今已经有多个平台的版本,Java版能够在Linux、Unix甚至AIX系统上运行。.NET和Java版本的组件产品还有一个 很大的好处,就是再也不须要注册表了,能够经过快速拷贝实现绿色部署,在一个系统中也能够共存多个版本,在使用的便捷性、安全性、可管理性上都是一个质的飞 跃。 浏览器


图1   SuperMap GIS 6R技术与产品体系架构示意图 安全


    组件能够很是便利地建立高度业务化的应用。而在不少场合,用户也须要可以即装即用的桌面GIS软件。SuperMap GIS系列中有两个桌面软件产品,一个是推出较早的Deskpro,主要用于数据处理、编辑等工做,支持C++级别的插件开发,内置功能丰富但开发难度相 对较大;另一个是2009年推出的Deskpro .NET新一代桌面GIS软件。它已不只是一个桌面工具,而是一个功能至关强大的可扩展桌面框架,能够支持基于 .NET技术的多种语言进行插件扩展,也能够快速地进行界面的定制和模块的组装。最新发布的2012版本还能够经过网络插件中心进行插件资源的上传、下 载、安装的共享操做,为群组协同和大量生产性任务的完成提供了很好的技术支撑手段,同时也架起了插件模块开发者和使用者之间的桥梁。
      服务器




    创建在组件之上,SuperMap还开发了两个重量级的GIS产品,即服务器GIS平台SuperMap IS .NET和SuperMap iServer。服务器GIS可让用户象用组件同样使用远端的GIS服务,客户端使用Web浏览器或移动终端就能够了,全部的数据在服务器上统一管理, 客户端不需安装,部署应用很是简单。基于UGC内核的SuperMap iServer支持Java语言和Eclipse、JavaBuilder、JDeveloper等多种开发工具,并支持丰富的客户端。SuperMap iClient产品不只支持流行的AJAX、Flex、Silverlight等主流Web RIA的开发,还支持浏览器上的三维GIS应用开发,最新的版本还支持HTML 5,能够在更多的移动设备上使用GIS功能。 网络




    面向移动应用市场的兴起,SuperMap GIS 6R的2012版本还增长了一个新的产品SuperMap iMobile,能够支持Android、iOS上的移动GIS应用开发。同时,将已普遍应用的eSuperMap从新归入SuperMap总体系统之 中,再加上专门用于导航系统开发的SNE(SuperMap Navigation Engine),SuperMap GIS平台产品体系更加完整,让用户能够在各类移动设备上使用GIS功能。 数据结构




    从组件到桌面,从服务器到Web端、移动终端,自2012版本开始,SuperMap GIS已经成为全球GIS基础平台软件中所包含的产品形态最为齐全的GIS平台软件。这意味着,用户不只能够根据须要综合集成各类运用形式搭建本身的大型 乃至超大规模GIS服务平台和应用系统,并且能够根据状况将应用从桌面向Web或者移动终端迁移,或者根据需求的变化来不断扩展已有的系统来知足业务增加 的须要,从而更好地适应各类不一样的应用技术和应用场景。 架构


图2  SuperMap SDX+开放式空间数据库技术架构


    数据是应用的基础。超图软件的空间数据库引擎(SDX+)技术的设计理念与IT架构保持了高度的一致性,而不是特立独行,这是极为朴实又极具智慧 的架构选择。因此随着SDX+空间数据库技术的不断发展,始终可以保持与主流数据库技术的一致性和融合性,从而为用户提供了一个统一的技术方案,既能简化 管理,又能在不一样数据库间进行迁移;同时,经过统一的数据库存储可以全方位地知足组件、桌面、服务器、Web和移动设备的应用须要。
    SDX+技术已经为成千上万的应用提供可靠的空间数据库支撑,为了推进GIS数据交换共享和互操做的发展,超图软件进一步将研发多年的空间数据库 技术进行开放,提出并联合多家GIS软件商制定GDB/CLI空间数据互操做标准规范,经过创建Provider/Consumer模型,实现标准化的接 口扩展机制。同时,超图软件还基于该规范提供了一个GDB/CLI的参考实现,内置了多种数据访问的Provider,还为数据提供者和使用者提供了开发 示范程序,方便进行新的数据格式的扩充。目前这一标准已逐步获得使用,国家气象局已基于该规范扩充了气象数据格式访问引擎,支持这一规范的客户端程序无需 进行修改便可实现对这些数据的访问,实现了真正的开放型互操做。
    SuperMap服务器GIS平台采用当下很是流行的REST接口做为系统默认的服务接口协议,其特色是使用很是简单、适用面很广、计算负担小,很是适合 基于Web的应用开发,也支持基于SOAP的地理信息服务用于企业系统集成,同时还支持OGC制定的WMS、WFS、WPS等标准。对于一些新的协议,还 能够经过扩展服务引擎或者封装现有的服务来提供。
     

      3. SuperMap GIS平台价值

    早期的GIS功能(数据转换、制图、输出等)都经过独立的EXE软件工具来完成,没有GIS平台这个概念。在二十世纪九十年代末,随着技术的发 展,尤为是组件化技术的发展,经过将GIS基础功能独立出来,规范化为平台能力,并经过平台再进行应用系统的开发,从而大幅度下降了GIS应用系统的建设 和维护成本,加强了应用系统的规范性、扩展性、稳定性,给业务带来更好的持续能力。
    SuperMap GIS也正是在这个时期,经过SuperMap Objects全组件式GIS平台的推出而快速发展起来,也让GIS技术进入了更为普及应用的时代。今天的SuperMap GIS产品系列已经全面涵盖组件、桌面、服务器、Web、移动终端等软件形态;实现了对Windows、Linux、Unix以及Android、 iOS、WinCE等多种操做系统的统一支持;可以在小型机、服务器、工做站、PC机、笔记本、平板电脑、智能手机、手持GPS以及车载电脑上运行,经过 网络实现动态地获取地理空间信息;支持经过.NET、Java等开发语言和工业标准的开发环境进行快速定制和扩展功能的深度开发。
    SuperMap GIS基于规范的SOA和OOP模型进行设计,提供完整的组件对象模型、桌面插件式扩展框架、可扩展应用服务器架构、Web可扩展编程模型、移动GIS组 件对象模型等可编程体系和扩展接口,提供完整的二三维一体化GIS开发和应用流程,支持多类型移动应用和Web应用的开发。接口的标准化为二次开发商的软 件资产增值和用户业务持续发展提供了很好的保障。
    SuperMap GIS经过统一的数据管理技术创建了可让数据不断增值的体系,随着外围软件和应用方式的不断增多,数据的价值也不断获得提高,其重要性不断增强。经过大量应用的推广,数据的增值效应也愈来愈明显。
    除了传统的项目应用外,用户也能够借助SuperMapCloud在线服务平台经过云服务方式使用GIS功能。在这个平台上数据和功能融为一体,经过服务 接口或者在线Web界面来提供使用。在SuperMapCloud中全部的开发模型和API与基础软件平台保持一致,这样很是方便用户把现有的服务应用迁 移到云上或者进行反向迁移,部署到私有云,实现两者的相互连通等。
    咱们看到,从组件到服务、到云计算和移动应用,已经成为技术发展的大潮流。SuperMap GIS技术和产品架构的设计已经考虑到这一演进的特色,能够帮助二次开发商和用户以最小的代价跟上时代的步伐,从而保护用户和开发商的投资,也实现GIS 开发者的智力投资的不断增值。




    随着云计算浪潮的来临,云GIS和GIS云服务也获得GIS业界的快速响应,新的技术、平台和应用以更快的速度获得发展,超图软件也推出了全面支持云计算的GIS平台软件和GIS云解决方案,并创建了SuperMapCloud在线服务平台。
    正所谓“一花独放不是春,百花齐放春满园”,GIS产业只有在上、中、下游全面发展的环境下才能实现真正的发展。超图软件在云计算上的策略不只是要推出云GIS基础平台,更要实现与用户、开发商等合做伙伴一块儿实现云计算技术的全面应用,并一块儿推进GIS产业向新的服务模式发展。同时,经过各类培 训、与高校合做共建实验室等方式培养人才,也经过GIS开发大赛锻炼和选拔人才,以及倡导每一年的9月15日为GIS节,推广GIS文化和技术,让GIS得 到更为普遍的认知和应用。


GIS平台扩展技术

      1. 应用扩展的多种方式

    对于IT主流的软件开发方式,SuperMap GIS都提供了很好的支持。包括桌面扩展和组件开发、基于Web浏览器的应用开发、基于移动设备的应用开发等三种最为主流的开发模式,同时支持服务引擎和 数据库引擎级别的底层扩展,还能够经过SuperMapCloud在线服务进行快速应用开发,本地服务和在线服务也能够实现聚合访问。

      2. 组件和桌面的集成




    桌面应用的开发扩展包括使用SuperMap Objects .NET/Java进行专业应用开发和使用SuperMap Deskpro .NET进行深度界面和模块定制两种方式。使用Objects组件适用于进行深度应用集成开发,能够建立彻底一体化的应用和100%的专业化用户界面,是 建立专业行业应用的不二之选。
    经过桌面框架的定制则拥有一个标准化的运行框架和插件支持机制,定制很是方便,能够当即见到效果,还能够经过插件扩展和插件共享实现新功能的增长和群组化管理,适合于专业的生产型用户和需求常常变更的高级咨询性项目的使用。

      3. Web应用开发与扩展




    Web应用后台由SuperMap iServer和IS .NET服务器提供支撑,前端的浏览器应用开发主要经过SuperMap iClient来完成。iClient可使用AJAX、Flex、Silverlight等多种RIA技术来进行开发,实现了与Objects相似的组 件对象模型。用户既可使用提供的API进行Web应用功能开发,也能够扩展底层功能,好比实现一个新的栅格地图访问协议的扩展,就能够加载其它的图片地 图服务了。
    SuperMap iClient还包含一个功能强大的产品,即Realspace三维地理场景发布模块,能够快速将服务端的三维地理场景经过浏览器进行呈现,也支持面向对象的开发。
    此外,即将推出的HTML 5客户端,不只支持最新的W3C标准和最新的浏览器技术,简化Web应用开发和提升安全性,还能够支持大量装载有移动浏览器的智能手机,大大扩展GIS应用的范围。

      4. 移动应用开发与扩展




    为了更加全面地支持移动应用,超图软件在SuperMap GIS 6R(2012)版本中新增了一个专用于移动设备原生GIS应用的iMobile产品系列,更加适合一些较为专业的GIS应用开发,能够支持采用 WinCE、Android、iOS等系统的手持机、车载设备、手机和平板电脑等移动设备。
    超图软件还有一个移动应用产品即导航引擎(SNE,SuperMap Navigation Engine),支持WinCE和Android系统的各类设备,具有高效率的导航图显示、快速搜索和基于交通规则的路径分析。用户能够直接使用基于 SNE开发的智行通导航软件,也能够调用SNE的组件建立与业务功能彻底整合的一体化导航与位置移动平台,实现物流配送、位置监控、路径引导等多种定制化 功能。

      5. 空间数据库访问扩展 

   超图软件的SDX+空间数据库技术是与IT主流技术彻底融合的一套技术,目前支持多种商用数据库系统。它有一个开放的架构,能够很是容易地扩充新的数据库 引擎。上层经过SuperMap Workspace的一系列组件对象实现编程访问,使用很是简单,并且能够在多种数据库之间以及数据库和文件系统之间方便地进行空间数据的迁移或者混合访 问。
    目前SDX+的体系架构设计思想即将成为GDB/CLI标准规范,让全部GIS使用者能够共享,并搭建起不一样数据库和GIS系统进行地理空间数据 交换和统一存取的桥梁。GDB/CLI是一个遵循Provider/Consumer模型的中间件,超图软件提供了技术框架的实现,而且免费开放了多种数 据访问引擎。用户既可使用Provider接口来开放本身的格式供其余人访问,也能够经过使用Consumer接口来存取众多的数据格式,甚至包括之前 从未出现的格式。

      6. 空间信息服务访问扩展

    在网络上,应用服务和数据服务都是经过GIS服务器如SuperMap iServer来提供的。除了支持丰富的GIS应用服务功能和异构集群技术、服务聚合技术等关键技术外,SuperMap iServer支持服务引擎扩展、Web层服务扩展以及多种服务的聚合应用,能够进行核心层的应用算法等服务扩展。

      7. 云GIS服务访问集成

    经过使用SuperMapCloud云服务,能够简便地开发各类基于云服务的应用。SuperMapCloud采用SuperMap GIS基础平台软件进行构建,因此SuperMap iClient和iMobile系列产品均可以做为客户端SDK进行开发,包括Realspace、HTML 五、AJAX、Flex、SilverLight等Web应用和Android、iOS(iPhone/iPAD)移动设备应用,是支持客户端类型最多的 地理空间信息在线服务平台。


图3 Supermap云地图服务



    除了Web和移动应用以外,组件和桌面框架软件也能够访问SuperMapCloud的服务,用户能够直接存取SuperMapCloud的地图,开发插件扩展功能,与本地数据和功能实现联合应用,或者将多种服务进行组装来完成须要的业务工做。
    开发者所采用的API与传统的软件开发是彻底一致的,几乎不须要从新学习便可当即投入云GIS应用的开发,也能够将之前的服务器GIS应用经过简单的修改移植到云服务平台上运行。
    在大型项目中,二次开发商和集成商也可使用云服务进行前期的开发工做,或者租用云服务建设原型系统,在设计和开发成型后再移植到最终使用的环境中,能够大大下降项目前期运做的成本,集合多方资源实现网络化的协同开发,快速展现成果实现敏捷开发。

GIS应用发展路线展望

    在工具式GIS时期,超图软件经过SuperMap Objects组件式GIS的推出将GIS行业带向一个快速集成、普遍应用的时代;在网络快速发展的时期,超图软件推出SuperMap IS .NET让网络用户经过简单的浏览器便可访问远程的地理空间信息;在SOA概念大行其道的时候,超图软件推出SuperMap iServer实现了全方位GIS的服务式存取和总线式集成;随着Web技术的发展,超图软件的iClient开发SDK全面覆盖主流的RIA开发技术; 在云计算和移动终端应用的大潮下,超图软件凭借支持异构集群与服务聚合的服务器产品和iMobile移动GIS开发套件,为高性能、高可用、高并发的 GIS共享应用和云服务系统的建设提供全面的平台。开放的SDX+空间数据库技术也随着大型数据库技术的发展而不断演进,始终为GIS应用提供最为坚实的 支撑。


图4  GIS从组件向云计算模式演进与应用的发展现意图


    在技术的不断发展过程当中,超图软件秉承对技术创新的不懈追求,经过前瞻设计的双赢、开放的架构体系,与合做伙伴共同推进GIS产业的不断发展。未 来还将在保持稳定架构的基础上不断地丰富和完善产品功能,加强在线服务、开发文档、开发例程、插件共享等服务机制,实现服务的融合和充实,为合做伙伴提供 最好的GIS基础平台。同时经过技术大会、技术培训、人才培养、开发大赛、GIS节等多种活动持续推广GIS应用和GIS平台。
    超图软件期待与合做伙伴开拓更多的GIS应用新领域,共同建立GIS产业发展的新时代。

                                                                                    [做者: 超图软件总架构师 王尔琪,2012年]

相关文章
相关标签/搜索