bj20090202
路人甲
路人甲
  • 注册日期2009-02-04
  • 发帖数35
  • QQ
  • 铜币332枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1251回复:0

GIS平台软件技术发展の展望篇

楼主#
更多 发布于:2009-03-11 15:22
<DIV>从软件技术角度来看,GIS平台软件新的发展趋势包括组件多样化、服务化、跨平台化和三维化几个方面。<BR><BR>2.1. 组件多样化<BR>组件式GIS影响了过去十年的GIS应用开发方式,直到今天,组件式GIS还是胖客户端应用系统的主要开发平台,同时也是WebGIS和后文将提到的Service GIS的技术基础。目前,组件式GIS技术还在进一步发展。<BR><BR>早期主流的组件式GIS都是基于COM组件技术开发的,但曾经带来GIS技术变革的COM技术也存在诸多不足。因“动态库地狱(DLL Hell)”所导致的组件版本冲突,因对象无法继承而导致的二次开发扩展能力局限,甚至有人评价COM不是真正的面向对象技术,这都影响了基于COM的GIS技术向更深层次的发展。<BR><BR>为了与Java竞争,微软公司推出了.NET技术和.NET组件技术。.NET组件技术显然比COM更加完善,经过简单封装,原有基于COM的组件式GIS仍然可以在.NET和Java环境中调用,就保护GIS平台厂商已有的投资而言,这是一个不错的策略。微软公司也计划逐步用.NET组件技术淘汰COM,并最终将形成.NET组件技术与Java Beans组件技术并行发展的局面。但基于这种方式提供的不是真正的Java Beans和.NET组件,其COM内核的局限仍然没有突破,在跨平台问题上它将面临更多困难。<BR><BR>另一种更佳的方案是基于标准C++而不是COM重写GIS内核,从更底层封装Java Beans和.NET组件。超图的SuperMap Objects Java和SuperMap Objects .NET采用了后一策略。2008年,中国铝业集团的生产应急救援指挥系统采用SuperMap Objects Java进行了开发实施,从而与企业基于Java的MIS应用系统采用了相同的技术路线。可以预见,无论作为独立的应用开发工具,还是作为Service GIS和WebGIS的技术基础,Java Beans和.NET组件都是未来的方向!<BR><BR>2.2. 服务化与Service GIS<BR>软件工程方法的发展总能带来GIS技术架构的革命,在从面向对象(Objects Oriented)向面向组件(Components Oriented)发展的过程中,催生了组件式GIS技术。在解决了面向对象中无法跨开发语言复用代码问题的基础上,面向组件的GIS技术带来了更加高效的系统开发能力。<BR><BR>目前,面向服务的体系架构(Service Oriented Architecture, SOA)正在逐步成为主流的软件工程方法。SOA是一种软件工程思想,要在GIS应用系统中成功实现SOA,不仅需要系统架构师按照面向服务的思想来构建系统体系架构,同时还需要GIS平台的良好支持,可降低应用系统开发的工作量。在已有的组件式GIS基础上,研发面向服务GIS软件开发平台,是GIS应用大规模实践SOA所必需的。<BR><BR>面向服务(Service Oriented),是软件工程方法在面向组件基础上的又一次革命性升级。服务是一种升级的组件,面向服务强调粗粒度和松耦合。粗粒度提高了通过网络远程调用组件(即SOA中的服务)的效率;松耦合则降低了应用系统各模块之间的依赖度,这使得局部的系统修改不会影响更大范围的代码变动和重新部署,提高了代码维护和局部升级的灵活性和效率。因此,面向服务提高了应用系统的业务敏捷(Business Agility)特性。所谓业务敏捷包含两层含义:第一,信息系统在业务提出变化之后一个恰当的时间段里响应这种变化;第二,信息系统所做出的变化能够恰当地反映出业务的需求。<BR><BR>服务式GIS (Service GIS),是产生于面向服务软件工程方法的GIS软件技术。服务式GIS脱胎于组件式GIS,是在组件式GIS基础上的质的飞跃,也是对组件式GIS自然的顺理成章的升级。在组件式GIS功能强大的组件群基础上,服务式GIS采用面向服务的软件工程方法,把GIS的全部功能封装为Web服务(Web Service),从而实现了被多种客户端跨平台、跨网络、跨语言地调用,并具备了服务聚合能力以集成来自其他服务器发布的GIS服务。<BR><BR>服务式GIS继承了组件式GIS所具备的一系列优点,如跨语言二次开发、所见即所得的应用开发方式、与其他IT技术继承的强大能力、高度可伸缩型等。除此以外,Service GIS还具备一些新的特性:<BR><BR>l 跨网络集成与应用。服务式GIS最重要的革命性之一,就是把组件式GIS具备的强大集成应用能力扩展到了网络上。通过Web服务开放的所有接口,这些功能都可以在网络上被调用。在这种模式之下,我们可以把通过网络连接在一起的多台计算机组成一台强大的计算机来使用,因而构建分布式的GIS应用系统对我们而言,将更加容易。<BR><BR>l 业务敏捷。业务敏捷是SOA的真正内涵,也是服务式GIS为GIS应用开发领域带来的惊喜。基于服务式GIS构建应用系统,能够通过聚合和集成已有的应用服务,快捷地构建新的应用系统或升级已有的应用系统,以满足快速变化的用户需求。<BR><BR>服务是特殊的、更高级别的组件,因此我们也可以说,服务式GIS是面向服务的组件式GIS,是更高级别的组件式GIS。尽管服务式GIS与WebGIS看起来都是B/S结构下的GIS应用开发平台,但二者还是具有相当大的差异。从定位上看,WebGIS主要用于地理信息的发布和共享,用于开发简单的GIS应用系统;而服务式GIS,除了发布和共享地理空间信息外,更重要的是能够通过Web Service发布整个GIS平台的功能,能够在更大限度上替代原来的组件式GIS能够完成的应用系统。<BR><BR>服务式GIS不仅带来了GIS应用开发的革命性变化,同时也引发了第三代地理信息共享革命,带来了全新的、面向服务的地理信息共享新模式。第三代地理信息共享不仅解决了异构GIS平台之间的共享与集成问题,还提供了数据共享与功能共享并举的独特优势。基于SuperMap iServer这一服务式GIS开发平台,重庆市地理信息中心和西安市信息办正在实施面向服务的数字城市地理信息共享平台。(详见超图通讯2008年10月期《Service GIS引发第三代地理信息共享革命》)<BR><BR>可以说,服务式GIS是专门为GIS应用的SOA实践而生的下一代GIS开发平台。随着SOA在GIS应用领域的进一步推广,服务式GIS将成为影响未来十年应用系统开发的重要的GIS软件技术。<BR><BR>2.3. 跨平台化<BR>在以客户端为中心的GIS应用时代,服务器主要用于空间数据库管理,GIS平台的大部分功能则主要在客户端上实现。众所周知,当前客户端计算机的操作系统是Windows一统天下的格局。从二十世纪九十年代中期开始,主要的GIS厂商大都经历了一个GIS平台软件从UNIX到Windows的移植过程,而没有来得及完成移植工作的个别品牌已经惨遭淘汰,Windows顺理成章地成了GIS平台的主要操作系统。<BR><BR>伴随WebGIS应用的大范围普及以及新兴的Service GIS迅速崛起,GIS应用的功能重心从客户端向服务器端转移,以服务器计算(Server Computing)的GIS应用格局正在形成。这种应用格局对GIS软件跨平台提出了新的要求。<BR><BR>尽管从2005年开始,Windows已经超过Unix成为第一大服务器端操作系统,但Unix的份额还是非常大(如图1),占到了整个市场份额的11.7%。因为Linux价格低廉,若换算成装机数量,Linux所占的份额会大幅度提高。所以,从这方面考虑,服务器端操作系统基本上还是处于Windows, Unix和Linux三足鼎立的局面。<BR><BR><BR><BR>长期以来,GIS厂商都在尽量引导用户使用Windows作为GIS服务器。但近几年来,GIS厂商再也无法忽视GIS软件的跨平台问题了。更为重要的是,GIS的高端服务器如小型机,通常采用像IBM AIX、HP UX和SUN Solaris等的Unix,另外一部分则采用Linux。因此,若不能友好地支持Unix和Linux,GIS平台厂商将失去进军高端市场的机会。跨平台已经成为GIS软件技术不得不面对的发展趋势。<BR><BR>如何实现跨平台,对GIS平台软件厂商而言,是个不小的挑战。因为GIS厂商已经在Windows上投入了大量人力和财力,如果放弃这些代码,重新开发包括桌面GIS、组件式GIS、WebGIS和Service GIS在内的一系列跨平台GIS软件,代价将十分巨大。就中国GIS企业而言,完成整个体系的调整可能意味着上亿元人民币的投资,对美国企业而言这个数字将是上亿美元,而且至少需要4~5年才能完成。<BR><BR>有没有这样的办法,既能保住在Windows上的投资,又能实现跨平台应用呢?一些专门从事代码迁移工作的公司提供了这样的策略:通过软件工具,把基于Windows的Visual C++的代码迁移到Unix或Linux上,充分利用在Windows上已有的庞大代码资产,从而以较小的代价实现跨平台。比如,有些GIS平台厂商就在第三方的代码迁移工具支持下,把整个基于COM的组件式GIS,移植到Unix和Linux上。<BR><BR>尽管从理论上讲,一些基本的C++代码移植到Unix和Linux上进行本地编译后的效率很高,但事实上同样的C++代码在不同操作系统上还需要进行针对性的性能优化。因此依赖于第三方的移植,在效率上仍然大打折扣。更为重要的是,移植后的组件式GIS软件将在一个第三方的运行时刻(Runtime)库基础运行。由于这个运行环境要负责在Unix和Linux上实现COM/DCOM、ATL、WinSock这些Windows原生技术,所以在性能上具有不可掌控的明显损失,这对GIS这种计算密集型的软件而言,是难以接受的。再者,这种跨平台的策略究竟支持哪些操作系统,还取决于第三方技术的限制,不能由GIS厂商自己掌控。<BR><BR>鉴于以上原因,超图选择了重写GIS内核的跨平台策略,尽管这种方案的研发代价极其巨大,但所带来的用户价值也是明显的。在继续升级发展Windows上GIS软件的同时,超图于2001年开始基于标准C++研发下一代跨平台GIS内核UGC(Universal GIS Classes)。2005年发布了UGC 1.0,还发布了基于UGC的跨平台组件式GIS软件和跨平台WebGIS软件;2007年发布了跨平台GIS产品线2.0版,并新增了跨平台的服务式GIS产品,在越来越多的行业得到应用;2009年,超图将推出跨平台GIS产品线6.0版。近十年的跨平台研发实践证明,重写GIS内核确实是一项代价巨大的工程,但是它给用户带来的软件在各个操作系统上的高性能以及在无限扩展支持其他操作系统方面的能力,却是非常值得的。<BR><BR>2.4. 三维化<BR>近年来,基于虚拟现实技术的三维地理信息系统(GIS)技术获得了较快地发展,并被应用于规划、房产、测绘、军事等诸多领域。Google Earth和Microsoft Vitual Earth等三维GIS网络服务的推出,不仅有利于GIS技术的普及,也推进了三维GIS技术在面向个人服务领域的应用。<BR><BR>但总体而言,当前基于虚拟现实技术的三维GIS,其应用水平仅相当于十多年前的二维GIS应用,还停留在可视化阶段,只满足了“看一看”和“查一查”的最基本需求层面,有些人把它称为“面子工程”阶段,无法满足高端GIS应用系统的应用需求,无法解决面向政府、企业、军事业务管理和辅助决策,阻碍了三维GIS应用推广的步伐。原因主要有以下几方面:<BR><BR>l 与主流大型二维GIS平台割裂。在当前的三维GIS软件中,与主流大型二维GIS软件在技术底层上也存在相互割裂的现象。三维GIS的应用离不开业已成熟的二维GIS,但由于从数据底层无法实现高效共享与集成,二维GIS强大的分析功能无法通过三维方式得到高效展现。尽管在一些三维软件中可以连接二维GIS的空间数据库,但效率较低。三维GIS与二维GIS的一体化,不仅需要在三维GIS开发方面作出兼容二维GIS的努力,同时在二维GIS软件技术方面也需要作出必要的改进,在二者协同努力下,才能彻底解决底层割裂带来的应用障碍。<BR><BR>l 缺乏高端GIS分析功能。当前基于虚拟现实技术的三维GIS尚缺乏高端分析功能,阻碍了三维GIS的应用发展。<BR><BR>目前,市场上还没有真正与二维一体化的、面向管理和分析的三维GIS软件。虽然为了跟进三维化的潮流,一些GIS平台厂商在结合二维GIS的空间数据引擎的基础上,采用第三方的三维可视化引擎推出了三维GIS <BR></DIV><BR>
喜欢0 评分0
游客

返回顶部