zoukankan      html  css  js  c++  java
  • 浅谈基于构件的插件式GIS框架设计

     

    浅谈基于构件的插件式GIS框架设计

    / 3Echo

    快速多变的市场特点,大规模的企业应用,如何提高工作效率?如何为企业的发展赢得时间与机会?问题、一个接一个的问题,只有在不停地思考之中快速地找到正确的应对方法,才能为我们打开一线希望之门。

    一、拥抱插件式GIS框架

    最早接触到插件式GIS框架是06年年初的事情了,到07年底独自设计完成符合这一思想的框架差不多是两年的时间。经历过几次版本的迭代,其中有些技术问题差点让自己放弃,实施的过程并不是一帆风顺。博客园的一位朋友的几篇博文(关于插件式的文章)启发了我的思维,我在前一家公司工作的经历使我知道这个框架到底要做成什么样子,同时通过多个项目的实施使我明白这个框架到底要解决哪些问题。

    去年年底的时候,蒋波涛兄弟出版了《插件式GIS应用框架的设计与实现》。虽然我没有买,我只是在他的空间中看过这本书的目录,但是我感觉还不错,对于工作经历有一两年的朋友们来讲值得一看。我的一位同事买了一本,他也觉得不错,不过私底下却对我说:“根本没必要买,把你的框架掌握了就OK了。”我回复他:“看看也是有好处的,可以加深你对这一思想的了解。”

    还有一位师弟前几天发邮件给我,说他们公司想开发一套插件式GIS框架,这个框架既要能在A行业的某管理信息系统中使用,又要能在B行业中的某管理信息系统中使用,同时还要允许自定义扩展。就如何设计的问题要我给他介绍一点经验,我给了他一些回复,经验没谈一点,还给他提了一大堆问题,估计他觉得我这个做师兄的太不够意思了(笑)。

    二、基于构件方法

    从软件从业者的角度出发,探讨提高软件开发效率的可行途径,关键在于提高软件复用能力与复用程度。那么什么样的软件体系、软件结构可以促进我们软件企业生产力的显著提高?

    我们需要一种全新的视角来重新审视软件。按照世界公认的软件界领导、信息战略家Alan W.Brown说法:“如果要在企业级软件开发中取胜,就需要一种新的方法——基于构件的方法。而事实上,在互联网时代的企业级软件解决方案是必须基于构件的。”著名的管理资源公司麦肯锡在研究了世界上最成功的100家软件企业后,得出结论——一种新的采用了标准化的重用构件技术形成的产品,最终将会取代昂贵的定制编程和集成,这种方法是未来软件生产力提高的主要来源,也将成为软件行业未来前景中的核心部分。

    我曾在自己的一篇随笔——《关于渐近式构建GIS可复用构件库的一些想法》中提到过关于构建GIS可复用构件库的出发点:软件设计是一个反复的迭代过程,在当前还看不到“银弹”希望的条件下,如何面对复杂可变的现实环境?如何构建可维护、可扩展、可复用的软件系统?如何降低开发成本、缩短开发时间?如何有利于与客户的沟通?通过成功的实施,它给公司带来的好处是显而易见。第一:分层级的应用构件代替了复杂、僵化的应用软件编码;第二:敏捷、快速的集成方式使获取需求,项目实施的时间大大缩短;第三:快速响应客户变化的效率得到了大大地提高;

    三、插件式GIS框架设计

    相信大家对数据库体系结构应该还有一个深刻的印象,数据库领域公认的标准结构是三级模式结构,其分别是外模式、模式、内模式。我们再来回顾一下它的主要设计思想:用户应用程序根据外模式进行数据操作,通过外模式——模式映射,定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变;另一方面,通过模式——内模式映射,定义建立数据的逻辑结构(模式)与存储结构(内模式)间的对应关系,当数据的存储结构发生变化时,只需改变模式——内模式映射,就能保持模式不变,因此应用程序也可以保持不变。概括起来其核心思想就是“三级模式、两级映像、保证逻辑与物理独立性”。

    在插件式框架设计中,我们应当借鉴行业优秀的设计思想与方法。通过分析将其剥离为三层:界面表现层、插件抽象层、功能实现层;通过界面表现与插件抽象层映射、插件抽象层与功能实现映射达到可扩展、可复用、可维护的目的。

    两个重要的设计原则就是:

    1界面表现层与插件抽象层分离;2插件抽象层与功能实现层分离

    主要方法与思想:

    结构化思想、OO、构件设计;

    主要技术:

    XML、反射机制、事件机制、消息机制;

    主要学习资料:

    ArcGIS帮助文档、SuperMap相关资料、企业架构设计、设计模式、构件设计

    总结:本文主要从三个方面谈了有关《基于构件插件式GIS框架设计》,1、个人经历的一些事情;2、基于构件方法是一种必然的选择;3、插件式GIS框架设计的主要原则、方法与思想;希望能够起到抛砖引玉的作用,对于技术方面的问题不能说得很详细,也希望大家能够理解。

    后记:很久就想写一篇有关于插件式框架设计方面的随笔了,却因为自己懒惰,拖至今天才总算了却一番心事。我努力想就一些设计问题把它写得详细与深刻一些,但是却事与愿违,发现它太简洁了,只是蜻蜓点水式的一跃而过,不能不说是一种遗憾。然而我也清楚地认识到,仅仅通过一笔随笔就想把这个问题说得很详细也是一件不可能的事情,算是心里上的一种安慰。

     

  • 相关阅读:
    Redis 如何保证缓存与数据库双写时的数据一致性
    Redis 缓存雪崩和缓存穿透问题
    Redis 的并发竞争 Key 问题
    【转】intelliJ IDEA集成checkStyle
    【转】hadoop深入研究:(十一)——序列化与Writable实现
    【转】Hadoop在MapReduce中使用压缩详解
    【转】JDK工具jinfo用法详解
    【转】JVM统计监控工具-jstat
    【转】jps命令使用
    基于MLlib的机器学习--协同过滤与推荐
  • 原文地址:https://www.cnblogs.com/3echo/p/1400256.html
Copyright © 2011-2022 走看看