正在读取数据,请稍侯

               

                

[引]一篇关于UGC介绍很好的文章 

--------------研发中心UGC项目经理 曾志明/文

共相式GIS起源与简介
  GIS作为信息技术的重要组成部分,必须紧跟信息技术发展的浪潮;而每一次信息技术的重大变更,都会有一批GIS开发商倒下,也会有一批GIS开发商崛起。超图公司就是在上个世纪末期,抓住了组件式技术和Internet技术发展的机遇,迅速成长为亚洲最大的GIS平台提供商。
  有人说:“一旦进入了信息技术的领域,就永远没有停止的脚步”;虽然GIS开发商不断投入巨资升级换代产品,以跟上信息技术的快速发展的步伐,但成熟的/商品化的GIS平台软件总是落后于主流信息技术一大步。从DOS到Windows、从文件到数据库、以及组件技术的应用,莫不如此。国外某知名GIS品牌在花费数年,耗资上亿美元,把以前基于Unix操作系统的GIS平台迁移到成为主流PC操作系统的Windows,并绑定于COM技术后不过一两年,却发现微软已经推出了用以取代COM的.NET技术。
  超图公司在2001年完成包括组件式GIS、桌面GIS、空间数据库、Internet GIS、嵌入式GIS的全线产品布局后,也敏锐的发现.NET、Java、Linux等新的信息技术发展潮流,也在思索如何从根本上解决这一GIS开发商所共同面临的困境。通过一系列的探索和思考,并借鉴柏拉图哲学中“共相”和“殊相”的概念,提出“共相式GIS”体系结构,即对GIS平台软件进行共相式的概括和抽象,提炼出独立于具体技术环境之外的GIS技术框架和核心功能,这部分可以和信息技术的发展变化相对分离,只关注于GIS核心技术的发展和功能扩展;而外围部分则可以以较小的代价紧随信息技术的发展潮流,以避免因为技术变革导致整个软件的重新构造。超图在“共相式GIS”理念的指导下,确定了下一代GIS平台——SuperMap GIS Universal的产品体系结构。

共相式GIS内核
  共相式GIS的本质在于通过精心设计的软件构架,把GIS所特有的功能、分析处理算法和所依赖的信息技术进行有效的隔离,使得两者可以各自独立的发展而不会相互牵连制约,不会因为信息技术的发展变化而导致整个软件从头再来。因此,共相式GIS的核心思想,就是要建立一套具有普遍适应性的共相式GIS内核(Universal GIS Core, UGC),实现那些相对稳定的、远离易变的技术环境的GIS核心功能。并在UGC基础之上扩展那些与不断发展的技术环境关系紧密的外围功能模块和人机交互界面。一旦相关技术环境发展变化,仅仅需要重新实现或调整外部功能模块即可,这将大幅度降低技术升迁的代价。这种模式也可以简单地概括为“核-壳”分离。
  就当前技术环境而言,共相式GIS就是能够支持当前存在的任何计算设备(Any device)、任何操作系统(Any operation system)、任何开发语言 (Any programming language)、任何数据库(Any database) 和任何数据格式(Any data format)的GIS软件,并可以以很小代价来支持未来的计算设备、操作系统、开发语言、数据库和数据格式的GIS平台软件。
  UGC除了要求保持相对稳定以外,还需满足三个条件:首先,UGC必须支持多种操作系统;其次,UGC必须能被多种程序开发语言调用,以封装各种语言版本的GIS软件产品;最后,UGC必须有很高的运行效率,以满足复杂空间分析运算和大数据量处理的性能要求。
  有的厂商试图基于COM组件来构造适应当前技术变化的GIS软件平台,他们在现有COM组件GIS平台上,用Java封装了Java组件的开发接口,用.NET封装了.NET组件的开发接口,以实现对包括Java和.NET在内的多种二次开发语言的支持。但.NET语言和Java语言调用COM接口在平台支撑和性能上都存在很大的风险。微软推出的.NET技术以取代COM,而为了实现基于COM内核的跨平台能力,采用第三方为其提供的建立在Java虚拟机上的中间层,把COM组件调入Java虚拟机运行以支持多种操作系统,从而实现COM内核的跨平台能力。那么,使用这样的平台在Linux/Unix上用Java语言开发一个应用系统,那么调用的顺序将是这样的:Java二次开发语言→GIS的Java组件→基于COM的GIS内核→第三方中间层→Java虚拟机→操作系统,其性能实在令人担忧,而一些应用项目的实践也印证了这一点。
  综合考虑多种因素,C/C++语言无疑是构建共相式GIS内核的最佳选择。几乎所有的操作系统都支持C/C++,如果说Java程序的特点是“编写一次,到处运行(Write once, run anywhere)”,用C/C++编写的程序则具有“编写一次,到处编译 (Write once, compile anywhere)”的特点。C/C++程序库的跨平台性,早已被STL、boost、fox、wxWidgets等多个知名C++库所验证。C/C++不仅具有支持多种操作系统的特点,而且成熟、标准,还可以被其它多种开发语言调用,更重要的是C/C++作为系统级开发语言,程序的效率远高于Java。
  超图公司早在2001年国家863课题“面向网络海量空间数据大型GIS”的支持下,就开始了在Unix操作系统上用C/C++语言开发跨平台GIS的研究和尝试。并于2005年推出共相式GIS的第一个版本:SuperMap IS Java 1.0、SuperMap Objects .NET 1.0(beta1)和SuperMap Objects Java 1.0(beta1)。其中SuperMap IS Java 1.0在全国产化项目中,和国产操作系统红旗、国产数据库人大金仓合作,构建北京市怀柔、大兴等区县的全国产化应用项目,获得了专家的一致好评。
共相式GIS内核的新进展
  2006-2007研发年度,共相式GIS系列产品正在紧张的进行2.0版本的开发,与1.0版本相比,除了服务器产品SuperMap IS Java升级到2.0外,还会推出SuperMap IS .NET 2.0(UGC)以及SuperMap Objects Java2.0和SuperMap Objects.NET2.0的正式版本,全面丰富共相式GIS产品线。
  UGC作为共相式GIS系列产品的共同内核,在很大程度上决定共相式GIS的功能和品质。UGC在2.0版本中,在保持1.0版本优秀框架的基础上,增加了许多重要的特性。
在基础结构方面的进展
  ◆支持64位平台
  64位CPU在前几年主要还是应用在服务器上,但随着AMDx64 CPU和Intel安腾CPU的推广,以及微软最新操作系统Windows Vista也支持64位,对于GIS这样需要处理海量空间数据和密集空间运算的系统而言,64位平台能有效的解决应用中数据存储和管理的问题。目前虽然部分GIS平台可以利用操作系统WOW,以32位兼容的方式在64位平台上运行。但这就类似于在Windows上运行DOS程序一样,没有充分发挥系统平台的能力。
UGC在2.0中,充分研究了64位开发的相关技术,全面检查了在64位平台上可能出现的问题,并会对Windows x64、SUN Solaris 64、IBM Power 64等64位平台进行全面测试。
  ◆针对双核(多核)CPU的优化
  随着CPU制作工艺的持续提高,摩尔定律也在悄然发生着变化,CPU厂商不再只关注于CPU频率的提高,而是开发和推广普及多核CPU。这种发展趋势,标明软件开发人员“免费性能大餐”的结束,不能再依靠硬件性能的提高来提高系统的性能,而是要使用多进程、多线程等并发处理方式来充分发挥多核CPU的优势。
UGC 2.0在空间数据引擎、地图显示方面,使用多线程进行优化处理,并做到线程安全,在组件和服务器产品中就能使用多线程来提高性能,充分利用多核CPU的优势。
  ◆支持更多操作系统
  UGC2.0在支持Windows2000、Windows XP、Windows 2003 Server、RedHat、RedFlag操作系统的基础上,还将增加对Windows Vista、SUSE Linux、Solaris等操作系统的支持,以适应用户在更多操作系统上开发、部署GIS系统的需要。
  ◆支持更多类型的CPU
  UGC 2.0将支持包括:x86、x64、SUN Sparc、IBM Power等更多类型的CPU,以满足用户不同硬件环境的需要。
在数据模型和数据引擎方面的进展
  ◆更丰富的GIS数据模型
  UGC 2.0在已有点、线、面、文本、复合数据集的基础上,新增加拓扑数据模型、网络数据模型和多分辩率TIN数据模型。拓扑数据模型将提供一套点、线、面的规则,可对多个点、线、面数据集进行拓扑检查,然后把拓扑错误展现出来,供用户进行编辑修改,并自动维护编辑后产生的“脏区”,实现局部拓扑。这对于国土相关行业有很大的实用价值。网络数据模型是可以在不改变已有数据的情况下,对多个点、线数据集建立网络拓扑关系,更符合实际应用中数据管理和维护的状况。多分辨率TIN数据模型则可以存储、管理和分析千万级别以上点构建的TIN,并建立类似于栅格金字塔的不同细节层次,以提高TIN在显示、分析上的性能。多分辨率TIN数据模型在LIDAR等高效获取大数据量高程点技术出现后,具有非常高的价值。
  ◆增加版本管理
  UGC2.0内置的SDX+在支持长事务和时空模型的基础上,新增加版本管理。如果说长事务功能类似于SourceSafe悲观锁定,那么版本管理则类似于CVS的乐观处理,即用户可以在数据的主版本之上,建立版本的分支,在分支版本上进行数据的编辑处理;这时,主版本上的数据仍然可以被其他用户所编辑。在分支版本编辑处理完毕之后,再进行数据的合并,并检查和按照一定规则处理两个版本之间可能存在的数据冲突。这对于大型应用项目中数据分布式的管理有很大的实用价值。
  ◆支持外接属性表
  在统计等行业GIS应用中,往往用户已经有了一套信息系统和数据库,并且不希望导入到空间数据库中,因为这些数据还会持续更新和维护。那么,UGC 2.0中新增加的外接属性表,能直接打开使用这些数据表,给这些行业的应用带来极大的便利。
  ◆直接打开浏览其它格式的数据
  支持使用符合WMS、WFS标准的网络数据服务
  ◆对SDE引擎的支持
  超图一直秉从FOCI(Focus,专注;Open,开放;Cooperation,合作;Internationalization,国际化)的战略思想,直接打开浏览其它格式的数据、支持OGC规范、对SDE引擎的支持正是这一战略思想的体现。可以让用户充分利用已有的数据成果,保持用户已有的价值。
在地图显示方面的进展
  ◆提高Unix/Linux上的显示效果和效率
  Unix/Linux由于长期以来被主要作为服务器使用,其图形、文字显示的效果和主要作为PC机的Windows相比,在API级别上就有不小的差距;但是,对于服务器GIS平台而言,出图确是服务端的重要工作。UGC 2.0将让在Windows环境下配置的美观地图,可以直接在Unix/linux上打开,并且有同样的效率和美观的效果,大大改进了用Unix/Linux作为GIS后台服务器的出图效果。
  ◆EPS输出
  GIS地图的打印能力,一直困扰着GIS系统的用户。在UGC 2.0中,将利用内置的虚拟显示引擎框架,增加EPS显示引擎,可以把地图直接输出到EPS文件中,而EPS所采用的、由Adobe公司定义的Post语言,被大多数打印机所直接支持。EPS输出,将大大改善GIS地图打印能力较弱带来的苦恼。

在查询分析方面的进展
  ◆支持中文地址模糊查询。
  UGC2.0新增加中文地址模糊查询模块,即根据中文的特点,设计和优化中文词典,提高分词效率和效果,让地址查询的结果更加符合中国人的习惯,例如:输入“银监会”进行地址查询,就能查询出“中国银行监督委员会”;输入“发改委”,就能查询出“中国发展与改革委员会”,这一效果超过了国内主要相关的门户网站。
  ◆全新打造空间查询体系。
  在UGC2.0中,将全新打造空间查询体系。空间查询算子具备严格的定义,并在提供几种最基本算子的基础上,用户可以根据自己特定的需要扩展查询算子;空间查询的实现也采用新的思路,在效率上大大提高,计算复杂度下降到线性附近。
其它方面的进展
  ◆数据兼容性
  GIS系统的升级,用户最关注考虑的问题之一就是对已有数据的兼容性。如果兼容性做不好,就会导致用户巨大的工作量,甚至数据丢失。UGC 2.0在设计上充分考虑到这一点,无论是空间数据库还是工作空间等数据,都将保持和SuperMap GIS 5.x之间的数据兼容。
  ◆工作空间对象支持分组
  在GIS应用中,要管理的数据量越来越大,那么和存储等相关的如数据源、数据集、地图、图层等数量也越来越多,给用户管理对象带来困难。UGC 2.0将提供对于这些对象的分组能力,这样就可以按照文件夹的方式来分门别类的管理。
  UGC2.0在各个方面的进展还有很多,这里限于篇幅,就不一一介绍。

  最后,“乘风破浪会有时,直挂云帆济沧海”,UGC将在共相式GIS思想的指导下,承担起GIS发动机的责任,支撑SuperMap GIS系列产品未来十年、二十年的发展,为用户提供一个强大、高效、稳定、高品质的“GIS芯”。


            I'm 蝴蝶情人 Pirate...X.       

  • 标签:GIS RS GPS UGC 共相式 
  • 发表评论:
    正在读取数据,请稍侯

                 

                     
    正在读取数据,请稍侯