这是一篇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 5、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年]
来源:oschina
链接:https://my.oschina.net/u/2306127/blog/617400