GIS自主创新十年路(七):Universal GIS

news/2024/11/9 18:29:46

GIS自主创新十年路(七) Universal GIS

转载自:http://songguanfu.blog.ccidnet.com/blog-htm-do-showone-uid-33694-type-blog-itemid-187878.html
作者:宋关福
原文发表时间:2007年9月19日

SuperMap 2000和SuperMap IS 1.0发布之后,eSuperMap 也在从原型到产品化的轨道上正常运行,再过几个月,SuperMap GIS的产品线即将建成。从产品研发的角度,似乎可以松口气了,接下来只需要把这一系列产品在应用的检验中逐步完善,就可以达成超图的平台软件发展战略目 标了。但在信息技术飞速发展的21世纪,唯一不变的就是变化本身,如果此时停下脚步,必将会被滚滚而来的IT车轮碾过,我们必须思考未来将有什么新的技术 变革!

4 年前,超图抓住了GIS组件化的技术变革机遇,基于微软的COM/ActiveX技术开发了SuperMap 2000,并以此作为国产GIS后来者进入GIS领域。但若不能抓住下一次技术变革的机遇,我们就会面临被新技术淘汰的危险!对于GIS厂商而言,要完成 一次大的技术变革,需要好几年的时间,并耗费大量人力和物力。GIS领域的国际老大哥ESRI从启动基于COM的ArcGIS 8到于1999年12月正式发布,花了将近4年时间;超图从ActiveMap到SuperMap 2000正式发布,也历经了差不多4年。而且产品从第一个版本正式发布到完善成熟,还需要几年。因此,如果不提前看到新的趋势并做好准备,当新技术已经成 为主流的时候在启动升级换代,为时已晚!

作为GIS研发人员,除了具备扎实的的地学知识以外,还应有三只关注变化的眼睛:第一只眼关 注用户需求变化,要随需而变,这是根本;第二只眼关注IT变化,不管GIS软件中蕴含多专业的地学知识,但它首先是软件,IT的所有新的变化都可能给 GIS软件带来不可低估的影响;第三只眼关注同业变化,此举不是为了要跟着先行者走,那是追星族,没有战略的表现,而是留意同行举动背后蕴藏着什么样的用 户需求变化,以便采取更有效途径去满足。前两只眼是预见性的,最为重要,第三只眼用于亡羊补牢,要尽量争取用前两只眼发现问题和机会。那么,在GIS软件 的应用方面有什么新的需求?在组件式GIS、WebGIS和嵌入式GIS之后,究竟还隐藏着什么新的技术变革?其实,就在我们研发SuperMap 2000和SuperMap IS 1.0期间,一场巨大的技术变革风暴正在逼近我们!

1999年12月,SUN公布了J2EE(即 后来的Java EE)技术规范的第一个版本,这是一个瘦客户端的多层企业开发架构;2000年6月22日,微软公布了其.NET战略,.NET不仅要提供新的开发语言、 新的组建模型,更重要的也是要把Internet/Intranet建设成可以交换组件、共享服务的地方。这初看起来似乎没什么特别之处, SuperMap IS之类的WebGIS不正式朝着这个方向发展吗?但实际上,其中蕴涵着几个对GIS有严重影响问题:

首先,在这 种面向服务的多层企业开发架构中,软件系统的计算重心从以PC/工作站为主的客户端,向服务器端偏移。但不巧的是,90年代中期以来,由于看到PC和工作 站的操作系统已经被Windows垄断的趋势,国内外的GIS厂商纷纷把源自Unix上的GIS 软件移植到Windows,并且都花了巨大代价,超图的产品内核也构建在Windows上。但当时服务器的操作系统仍是Unix和Linux的天下, Windows就算以后在服务器上会有更大的进步,但也很难说几年后Windows也会垄断服务器端,如果GIS功能重心真的转移到服务器上,那么下一代 GIS必须解决跨操作系统的问题!

其次,即使在Windows操作系统上发展,.NET组件技术将逐步取代COM组件模型,那么超图和其他国内外同行刚刚在COM上构建的组件式内核岂不很快面临挑战?!

最后,J2EE和.NET,我们应该选择哪条路?

在 最后一个问题上,我们最初倾向于.NET。2001年年中,钟总找我商量中科院知识创新工程项目申报题目的事,我建议做《面向.NET框架的地理信息服务 关键技术预研究》,7月该项目获准得到支持。超图以该项目为基础提出了下一代SuperMap的研发计划,即SuperMap .NET计划。2002年年初,我们感到放弃J2EE就等于放弃Unix和Linux服务器市场,必须同时考虑支持J2EE和.NET!当时超图刚中标科 技部863招标课题《面向网络海量空间信息大型GIS》,该课题明确要求支持Unix。于是我们决定合并执行科技部和科学院的这两个项目,提出一套框架, 同时支持Unix、Linux和Windows操作系统、支持J2EE和.NET两套多层企业级服务架构、支持.NET组件和Java Beans组件对象模型。

为了达到上述目的,并能灵活应对未来新的技术变化,我们提出了Universal GIS架构,即基于标准C++构建全新的跨平台GIS内核 ,我们称之为UGC(Universal GIS Classes),然后分别使用.NET技术和Java技术,基于UGC封装.NET组件和Java Beans组件,最后在此基础上开发Internet GIS和桌面GIS软件。整个体系就像一株鸳鸯树,UGC是共同的根基,主干分为Java和.NET两支,在每一支主干上分别生长着Internet GIS和桌面GIS等组成的树冠。参考了哲学中共相(Universal)和殊相(Particular)概念,Universal GIS后来被翻译为共相式GIS。关于共相式GIS的具体思考路径,以前写过专门文章介绍,此处不再详述。

Universal GIS是一个以不变应万变的技术架构,如果以后出现新的二次开发语言,或新的组件模型,甚至药支持新的操作系统,只需要进行相应的调试和封装,就可以快速 支持新技术,而内核可以保持相对稳定。实际上,各数据库厂商基本采用这种架构,数据库系统平台的内核基本上都采用C/C++编写,只不过需要在不同的操作 系统和硬件上编译调试,不管应用于.NET还是Java开发环境,提供相应的接口即可,内核不需重大改变。数据库一直在服务器端发展,所以这个体系一直延 续至今。而GIS则经历了从大型设备到PC的发展历程,而后又重回大型设备,GIS追着IT绕了个大圈。

这个技术架构看似简单,但要 实现跨操作系统,GIS 软件比数据库的难度要高得多。数据库主要在服务器上提供数据管理功能,可视化功能要求不高(对CPU的计算压力较小),因此可视化部分完全可以用Java 之类的跨平台语言在内核的外围完成。而GIS则不同,不仅数据管理的计算负荷大,而且可视化的计算量也非常大,因此可视化不能采用Java在外围完成,必 须也在C++级实现。不同操作系统之间的可视化技术差别很大,因此一个完善的Universal GIS内核开发工作量,比在某种操作系统上重构一个GIS内核要大得多。加之GIS产品线长,产品种类多,因此整体开发工作量极其巨大。 (声明:本人无意比较GIS软件和数据库软件的技术含量高低,更无意贬低数据库这一伟大的软件平台。此处仅想说明,由于GIS在可视化方面的要求太高,导致GIS软件在实现跨操作系统方面的复杂程度更高,仅此而已)

从2002 年提出Universal GIS架构,到2005年公开发布这个架构,2006年年初发布第一个基于该架构的产品SuperMap IS Java 1.0,前后历经将近4年 时间,而且产品线还远远没有完成。到2007年上半年,除SuperMap IS Java已经升级到1.2以外,还没有更多基于该架构的产品发布。因此有朋友在网上提出质疑:超图是不是仅仅在炒概念?共相式GIS研发计划是否能进行到 底?借此机会我想告诉大家,这个计划不仅没有被放弃,而且进展顺利。时值超图公司成立十周年之际,从2007年年底开始,很快就会有一系列基于 Universal GIS架构的产品陆续跟大家见面。

五六年的研发时间,数千万人民币的资金投入,使得Universal GIS成为超图历史上投入最大的研发项目,相信该项目将会给业界带来令人激动的成果。  



http://www.niftyadmin.cn/n/3656068.html

相关文章

HikariPool-1 - Interrupted during connection acquisition

HikariPool-1 - Interrupted during connection acquisition问题描述临时解决办法根本原因最近在压测springboot服务的是时候,遇到 HikariPool-1 - Interrupted during connection acquisition,先记录一下临时解决办法,后面有时间在review这个…

GIS自主创新十年路(三): 超图成立

GIS自主创新十年路(三) 超图成立转载自:http://songguanfu.blog.ccidnet.com/blog-htm-do-showone-uid-33694-type-blog-itemid-187064.html作者:宋关福原文发表时间:2007年9月18日完成香港综合地理信息系统后不久,科学院为推动地…

postman黑屏问题 mac电脑

文章目录方法一、设置全局变量方法二、卸载重装,清除用户数据最近运气确实不咋地,水逆的不行,postman用的好好的,然后突然打不开了,打开加载一会就是黑屏,然后也关不了,只能通过任务管理器kill掉…

kafka大量堆积故障复盘(生产环境)

kafka大量消息堆积故障复盘一、前言二、过程复盘三、总结1、产生原因2、解决方案2.1、优先处理堆积数据,恢复生产环境2.2、处理堆积数据一、前言 这个事是上个老东家遇到的,我是一个旁观者的角度目睹整个故障的产生和修复,过后也未进行总结复…

GIS自主创新十年路(一):缘起ActiveMap

GIS自主创新十年路(一) :缘起ActiveMap转载自:http://songguanfu.blog.ccidnet.com/blog.php?doshowone&itemid187062&typblog作者:宋关福原文发表时间:2007年9月18日从 最初默默无闻的课题组,到今天在GIS自主…

kafka重复消费(总结)

kafka重复消费(总结)根本原因解决方法关键参数配置根本原因 已经消费的数据,但是offset没有成功提交 具体情况: 消费者宕机、重启,导致消息已经消费但是未提交offset。消费者处理比较耗时,一次poll的数据…

GIS自主创新十年路(二) :牛刀小试

GIS自主创新十年路(二) 牛刀小试转载自:http://songguanfu.blog.ccidnet.com/blog-htm-do-showone-uid-33694-type-blog-itemid-187063.html作者:宋关福原文发表时间:2007年9月18日推荐ActiveMap并没有被立即派上用场。当时我们正在给解放军驻…

qtextcodec file not find 问题解决

项目文件.pro中添加 QT core5compat头文件中添加 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)#include <QtCore/QTextCodec> #else#include <QtCore5Compat/QTextCodec> #endif