今天看到SuperMap中一直提到共相式GIS,于是乎搜索一下……SuperMap的共相式怎么理解呢?iServer Java有咋理解呢???

再谈共相式GIS和ArcObjects:ttp://www.cnblogs.com/maweifeng/archive/2007/04/27/730427.html

共相式GIS:http://blog.sina.com.cn/s/blog_4dff486201000asx.html

  对于真实的软件而言,真正的“共相GIS”是不存在的,我们不妨称这样的GIS 为“共相式GIS(Universal GIS)”。就当前技术环境而言,共相式GIS 就是能够支持当前存在的任何计算设备(Any device)、任何操作系统(Any operation system)、任何组件模型(Any component mode)、任何开发语言(Any programming language)、任何数据库(Any database)和任何数据格式(Any dataformat),并可以以很小代价来支持未来的计算设备、操作系统、开发语言、数据库和数据格式的GIS 平台软件。

  共相式GIS 体系架构 共相式GIS 的本质在于通过精心设计的软件架构,把GIS 所特有的功能、分析处理算法和所依赖的信息技术进行有效的隔离,使得两者可以各自独立的发展而不会相互牵连制约,不会因为信息技术的发展变化而导致整个软件从头再来。因此,共相式GIS 的核心思想,就是要建立一套具有普遍适应性的共相式GIS 内核(Universal GIS Core, UGC),实现那些相对稳定的、远离易变技术环境的GIS 核心功能。并在UGC 基础之上扩展那些与不断发展的技术环境关系紧密的外围功能模块和人机交互界面。一旦相关技术环境发展变化,仅仅需要重新实现或调整外部功能模块即可,这将大幅度降低技术升迁的代价。这种模式也可以简单地概括为“核-壳”分离。
  基于UGC,可以封装各种GIS 软件产品,包括组件式GIS、Internet GIS、桌面GIS。其中组件式GIS 与Internet GIS 既可以使用.NET 技术封装,也可以使用Java 技术开发。即使以后出现新的组件技术或高级开发语言,也可以基本不修改UGC,而通过重新封装人机交互接口的方式提供新的组件式GIS 或其它GIS 软件平台。由于这些软件产品具有同一个内核,因此内核功能升级后,基于其上的各种软件产品都得到同步升级,大幅度减少了软件维护的代价。 归纳起来,可以总结出共相式GIS 的研发步骤: 第一步,剥离GIS 中严重依赖技术环境的部分。比如:依赖于操作系统的可视化引擎和软件界面,依赖于程序语言的二次开发接口,依赖于数据格式或数据库的数据引擎等。 第二步,提炼出具有普遍意义的GIS 的核心功能、算法,形成共相式GIS 内核(UGC)。 第三步,在UGC 基础上,扩展那些严重依赖于具体技术环境的外围部分。比如第一步中提到的可视化引擎和软件界面、二次开发接口、数据引擎等。 第四步,封装适用于多种技术环境的各种类型的软件。如组件式GIS、Internet GIS、桌面GIS 和嵌入式GIS 等,以至于未来的其他GIS 软件形态。一旦有新的技术出现,UGC 仅需要进行少量改动,主要重复第三步和第四步工作即可应对IT变化,大幅度缩减了适应技术变化的周期。 共相式GIS 的内核 UGC 除了要求保持相对稳定以外,还需满足三个条件: 首先,UGC 必须支持多种操作系统;
  其次,UGC 必须能被多种程序开发语言调用,以封装各种语言版本的GIS 软件产品; 最后,UGC 必须有很高的运行效率,以满足复杂空间分析运算和大数据量处理的性能要求。Java 是一种在跨平台方面有很强优势的开发语言,实际上已经有一些企业基于Java 编写了GIS 软件,但Java 在性能方面天生的不足影响了基于Java 内核的GIS 软件的进一步发展。与一般的信息管理系统不同,GIS 应用系统不仅处理数据量大,而且分析算法复杂,对性能要求很高。此外,基于Java 的组件在被包括.NET 在内的其它开发语言调用方面也存在不足,因此Java 不适合作为UGC 的开发语言。
 

共相式GIS的更多相关文章

  1. SuperMap iObject入门开发系列之一组件式GIS开发平台介绍

    本文是一位好友“炀炀”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢.平台介绍:SuperMap iObjects Java/.NET 是面向GIS应用系统开发者的组件式GIS开发平台,具有强 ...

  2. (1)从底层设计,探讨插件式GIS框架的实现

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 研一时,听当时的师兄推荐,买了蒋波涛的一本关于GIS插件框架的书.当时 ...

  3. GIS在水利中的应用

    摘要  GIS具有数据存储.查询.统计.图形显示.分析.模拟.决策和预测等功能,在水利中得到越来越广泛的应用,可谓水利现代化的“火车头”. 关键词 GIS 水利 应用 地理信息系统GIS通常泛指用于获 ...

  4. GIS专业书籍、文档、数据、网站、工具等干货

    整理.分享一些个人整理的GIS专业书籍.文档.数据.网站.工具等.也希望大家将自己的心得也分享出来,一起交流,共同进步. 如果下载链接失效,请到这里去:地信网 一.原理应用类 GIS基础类 01.地理 ...

  5. GP的使用心得

    在ArcEngine时,GP无疑是GIS开发者的神器.自ArcEngine9.2开始新增一个程序集ESRI.ArcGIS.Geoprocessor,它能调用包含扩展模块在内的所有Geoprocessi ...

  6. 单源最短路径——Dijkstra算法学习

    每次都以为自己理解了Dijkstra这个算法,但是过没多久又忘记了,这应该是第4.5次重温这个算法了. 这次是看的胡鹏的<地理信息系统>,看完之后突然意识到用数学公式表示算法流程是如此的好 ...

  7. WebGIS博客文本分析(词频分析)手动扒取 去除格式 词语分割 统计分析

    1.      [置顶](一)开篇—杂谈WebGIS 摘要: 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.前言 ...

  8. GDAL线面互转换(2)

    在上一个文章中介绍了线转化为面和面转化为线,其主要的实现思路就是把面中的点取出来构成线,把线中的点取出来构成面,实际上就是一个硬拷贝,无奈客户的实际需求并非如此,客户想要线转面的时候几条相交线构成面, ...

  9. Cordova+Asp.net Mvc+GIS跨平台移动应用开发实战1-系统初步搭建(附演示,apk,全部源码)

    1.前言 身处在移动互联网的今天,移动应用开发炙手可热,身为程序猿的我们怎么能错过开发一款我们自己的APP.本人算是一个基于.net的GIS开发入门者(马上就大四啦), 暑假在学校参加GIS比赛有大把 ...

随机推荐

  1. Mtk Camera

    MTK6577+Android之Camera驱动 http://blog.csdn.net/loongembedded/article/details/41695205 MTK Camera 开机启动 ...

  2. eclipse集成SVN插件-----复制添加插件

    首先从网上下载一个svn的插件包, 将插件包解压, 打开eclipse的文件夹, 将svn插件中features文件夹中的jar复制到eclipse中features文件夹中去: 将svn插件中plu ...

  3. Linux集群基础

    Linux集群基础 作者:Danbo 时间:2015-7-12 集群概述 什么是集群?集群是一组协同工作的服务器实体.用以提供比单一服务实体更具扩展性和可用性的平台. 集群的分类 1.HPC(High ...

  4. 解决LoadRunner超时错误

    在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同. 错误现象1:Action.c(16): Error -27728: Step download timeout ...

  5. 安装python解释器

    Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,超简单 打开官网 https://www.python.org/d ...

  6. html5--5-11 绘制文字

    html5--5-11 绘制文字 学习要点 掌握文字的绘制方法 文字的绘制方法 strokeText("文字",x,y,maxWith) 绘制(描边)空心文字 fillText(& ...

  7. 机器学习: Canonical Correlation Analysis 典型相关分析

    Canonical Correlation Analysis(CCA)典型相关分析也是一种常用的降维算法.我们知道,PCA(Principal Component Analysis) 主分量分析将数据 ...

  8. angular之两种路由

    安装angular npm install -g @angular/cli ng new myapp ng g component componentName 自带路由 引入:angular-rout ...

  9. Python之Numpy详细教程

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前 ...

  10. 条件变量pthread_cond_wait()和pthread_cond_signal()详解

    条件变量        条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起:另一个线程使"条件成立" ...