
大家下午好!非常高兴今天有机会把中地MapGIS K9的集成开发平台跟大家做分享,前面北大的方老师就网格地理信息系统给大家做了交流,刘老师把MapGIS K9的产品体系和架构做了介绍,让大家有了更多的了解,让大家知道我们MapGIS K9有哪些内涵。下面我把MapGIS K9里很重要的内核我们叫做数据中心集成开发平台,给大家做一个介绍。与MapGIS共建,与MapGIS共赢,体现了我们数据中心集成开发平台的理念。
首先回顾一下,今天在座的有机构研发和机构管理人员,还有科研专家和二次开发的增值商。机构提供商也好、软件提供商也好,都不断提升自己的开发业务和软件的商业价值,我们希望能够开发出更多的具有附加值的软件产品。具体做软件开发和项目研发的相关人员也能理解到,在具体实施过程中有很多很重要的要素,我们可以简单的把它概括成人、项目和过程,这也是我们在具体实施一个工程时要考虑的三要素。在项目方面特别是国内在做具体项目时往往都会有这样一种困境,我们怎么样快速的把握需求,也就是说需求现在已经成为软件业务化实现非常关键的一个方面。很多时候我们在泛滥或者困惑的是怎么评估一个需求,哪些该做、哪些不该做,具体做实施的人员都会有这样一种困惑。现在大家也知道有很多种开发模式,敏捷式的开发方式,现在已经提供了很好的开发理念,我们称之为适时、适量的需求采集。
数据中心集成开发平台正是整合了刚才讲的敏捷式开发模式来提供相关的很好的开发方法。这个开发方法重点是我们关注业务,让项目实施过程中更多的关注业务,而不是更多的关注于技术。在新业务的时候许多用户想看原形系统,有时候项目周期比较短,制约因素也很多,在整个实施过程中会提出一些新的需求。刚刚讲到目前的开发环境,MapGIS K9正是整合了相关的一些技术因素包括我们在具体技术研发实施过程中20多年沉淀下来的经验体会,研制出了这个我们称之为极超大型分布地理信息系统软件平台和数据中心集成开发平台为一体的新一代的GIS架构和模式。
这几个词汇大家已经非常熟悉了,我们称之为“零编程”、“微编程”进行快速的搭建。我今天把涉及到数据中心开发平台里面的三个部件或者说三个关键技术跟大家做沟通。首先在了解数据中心之前看一下大家非常熟悉的物流的组成模式。物流中心的概念也是从国外翻译过来的,大家知道物流中心很重要的是进行相关大批量货物包括集中存储、加工以及管理,现在它有很多特点,大家也可以看得到,比如对于物流集散的一种管理,它的定位不仅仅就是怎么样储备货物,应该是怎么样专业化、标准化以及多功能化的去发展物流产业,提供了一些工具、方法甚至信息技术来实现对于物流的支撑。简单看一下这个物流中心的发展模式。
以此映射数据中心的概念,跟我们刚才讲的物流中心有很多相似的地方。首先它是对目前这一些基础数据或者数据库里的资源进行有效的管理,使得它能够被发现进行相关数据信息的获取,在这之上成为了数据仓库的概念,把接口层面上的管理提供相关的服务方法。这个地方特别强调的是称之为专业数据的维护插件,这是GIS技术厂商所不具有的,靠业务开发专业人员在这个层次架构之上提供专业的数据维护工具,来实现具体GIS的业务功能。在功能仓库之上我们提供了可配置的平台,包括配置库、数据的处理。然后实现运行系统的搭建过程。
首先看一下数据仓库的特性。数据仓库主要是解决了PPT上列的三个问题,第一个问题是对于海量数据的存储,另外是对于异构数据的管理和多元数据的集成。在K9架构中详细论述了我们的存储管理方式,我再讲一下数据管理的形式。大家知道我们处理业务的时候除了空间数据以外有很多非空间数据或属性数据,我们要把这么多空间数据和非空间数据进行有效的管理或组织,实现数据资源的共享,需要我们提供很好的运行环境。数据中心集成运行平台首先在数据层方面做了很好的整合,包括常规的一些空间数据和标准的非空间数据进行有机的整理,实现多元异构数据管理能力的增强。
讲到数据仓库,大家可能都会有这种理解,平时在我们的数据库里都会有一些数据,我经常也碰到一些业务,在数据库里都达到了以前说的TB级,现在都到了PB级的数据了。我们怎么在数据库里进行有效信息的发现或挖掘,如果数据放在数据库里没有挖掘的话是死的数据,无法进行信息化的发展或信息化的管理,这时候提出了数据的层次化管理。数据中心在数据仓库里提供了这样一种工具,我们称之为数据统一的管理包括提供目录的管理进行有效数据资源的存储。这张图里简单描述了一下对于具体空间数据和非空间数据的存储方式,这里面包括我们比较熟悉的矢量数据、影像数据、三维数据、遥感数据,根据不同数据的层次化管理,包括多级别、多联度、多专题的数据表达方式。
下面给大家展示一下具体数据中心数据仓库所能够管理的数据展示。在做这样一个仓库数据管理的时候不需要我们做很多的一些开发和编程,基于这个搭建平台会很快的搭建这个系统。我们可以简单的进行总结,在目前MapGIS K9数据仓库数据管理的模式上,我们能够以比较好的统一方式集成管理二维、三维的空间数据包括一些文档诗句和原数据的信息。
下面看另外一个功能模块,我们称之为“功能仓库”。功能仓库可以简单的理解成对于大量不同来源异构的功能资源进行集中的管理、调用和发布,对于目前K9提供的功能仓库一个比较好的特点我们称之为高度的可扩展性和复用性。下面看一下功能仓库资源的一些特点,在功能仓库资源里,目前已经提供了组件库、插件库、流程库三种功能仓库的模型。具体开发上可能会问到这个开发库是不是一个很封闭的系统呢?我给大家简单介绍一下,对于整个功能仓库而言,我一直强调我们的开发模式是一种非常柔性的开发模式,把目前主流的开发技术都融合到功能仓库的开发模式中,包括大家熟悉的一些组件的开发、JAVA的小程序和SOA面向外部服务的功能库,都可以很好的集成在这个功能仓库里。目前K9里还有一个很好的特性,我们把这种分布式的功能资源整合到统一的系统平台中去,我们称之为远程调用的实现模式。从调用方式来讲,K9数据中心提供了比较灵活的功能调用方式,大家比较能够理解的传统开发方式都可以有效的进行调用,待会儿我会讲到也可以利用我们的开发环境进行有效功能的整合。
我再强调一下对于功能复用的技术,功能复用技术从实现上来讲有很多模式,比如实现代码级的功能复用,比如写一些代码进行重载和代码级服用。也可以实现模块级复用。在这种基础之上还有搭建级别的功能复用技术,在这样一个功能复用层面上把刚才讲到的功能仓库里的资源,基于这样一个搭建功能包括工作流搭建,形成了很多的系统功能,这个系统功能又可以被多次复用,形成更高一级的功能调用。所以说我们在具体实现这样一些业务功能的时候,开发者或者是支持人员更多的就可以关注于它的业务需求,而不需要过多的关注具体实现的方式方法。
刚才我给大家介绍了一下数据仓库和功能仓库。在这个层面之上,数据中心里还有一个非常好的模块,我们称之为数据中心集成运行器,它能够把刚才讲到的两个仓库有机的整合到一起。这个数据中心集成运行器是一个可视化的配置环境,在整个运行器里能够非常好的实现灵活功能的搭建方式。基于下面的事例我们可以看一下它的特点,这是模拟数据中心设计器的运行模式,大家可以从右边看到,它提供的其实是一个解决方案,它提供了包括初始化的过程、目录系统和P处理过程、UI界面以及框架交换的模式,在解决方案里提供了很清晰的方式。我们可以在功能仓库里把插件库、组件库、流程库进行合适的搭建形成我们的功能。这个系统可以实现数据目录的管理(见图),包括框架管理、程序运行模式的控制。
这里面有两个简单的例子看一下数据中心工作流的开发过程,就是一个可视化的开发过程。现在我们看到在数据中心里有一个工作流的编辑器,我们可以把功能仓库里的功能进行有效的搭建,基于工作流的搭建,然后来实现相关的数据功能。这个基本不需要研发人员介入,只需要技术支持人员就可以做出这样的功能实现。刚才搭建一个流程,现在是搭建相关的界面,实现的是路径规划缓冲区的功能,这是运行后的结果(见图)。从这个小的事例程序可以体会到基于这样一个功能搭建或这个环境的方便性、可适用性,这是基于搭建以后的数据结果。
下面我们再看一个简单的例子,这是BS搭建过程。这里快有两个运行环境,一个是VFD表单环境搭建,这是中地推出的一个集成可视化搭建环境,可以进行有效的功能搭建。左边是.NET环境搭建,可以把我们的搭建环境构建到.NET里进行搭建。这两套搭建是实现同样的功能,可以实现空间数据的简单发布。基于BS的搭建,我们做很多BS系统的时候会把一些基础的地理信息功能快速构建到业务系统里去,从业务功能上讲是非常方便的,比如以前有些系统里可能没有GIS模块,通过这种模式能够快速的去完成,不用过多了解GIS方法,可以很快的增强业务功能。现在演示的是刚才基于搭建以后,通过Web页面浏览形成的功能展示。相信大家可以非常直观的了解到基于这种开发模式的特点和优越性。
另外在业务系统中很重要的一点是我们称之为权限系统或权限管理系统,这是非常重要的一方面,对重要的业务系统或应用系统讲的话,它提供了权限管理环境,基于数据资源和仓库资源基于功能上的实现。通过这张图大家可以了解一下,我们提供了权限规则和权限控制的模块,实现了数据功能的安全控制和界面控制两方面的整合,实现应用系统的权限管理。这个权限管理可以针对数据级的,也可以针对功能的,都可以进行权限的控制。
以上把数据中心的简单技术做了交流。刚刚讲了这么多,最终为什么要选择数据中心?这张图表达了数据中心的特点,从这张图上可以看到,我们做很多业务或系统的时候往往是从这六个方面关注我们的项目,首先我们想尽量的质量效果评估比较高;二是互动性,开发者与业主之间的互动性比较高;三是系统的扩展性比较好,项目层面和软件层面上的期望值;四是我们希望开发成本能够越低越好;五是开发周期越短越好;六是开发层面上技术越简单越好。数据中心的开发模式就能够很好的把思想和理念进行有效的实现。
从这几个层面提升软件项目开发的水平,一是降低它的难度,基于零编程或微编程高可视化的搭建。二是可重用性高,基于这种流程的搭建,我们可以更好的重用我们的业务模块。有这样一个搭建的应用流程,使得更多人员去重视业务,而不需要过多的重视技术实现。从维护方面和质量保证上大家也能够体会得到,因为我们更多是基于流程型的搭建,可以减少代码的出错率。
从开发模式上讲,我这里简单列了三大条:一是从人员结构调整,改变具体做软件开发时以成员为主体的人员配置,我补充一点,以后做具体应用的时候程序上更多关注核心代码的研发,对于业务代码的控制我们更多可以让技术支持人员或业主共同进行业务工作流的实现或重组,也就是说它能够更好的把系统开发从实现细节上转为关心业务的转变,通过这种开发模式也能够很好的从沟通上更好的进行交流,最大的特点是用户可以比较好的参与到我们的开发过程中。另外还有个特点,刚刚讲到业务系统易于扩展,是三大块:一是数据类型,在K9里数据类型已经提供了一整套完整的基于空间数据和非空间数据的扩展模型,我们也定义了一整套开放式的数据管理标准,然后实现自定义数据类型的扩展;二是在它之上定义了一些目录规则,就可以进行有效的数据资源目录规则的驱动、展示;三是在功能资源上能够把异构功能资源进行有机的组合,形成更加大的颗粒度的功能资源的复用。
总结一下,基于数据开发平台做几个很好的积累:第一是经验的积累,可视化的开发能够与业主之间实现更好的交流,提高我们对于专业或行业业务能力的掌握;二是功能的积累,我们可以把一些很好的功能注入到我们的功能仓库,实现功能的复用;三是质量的积累,刚刚讲到通过减少软件的开发量提高整个软件的开发质量,在这之上可以更多的做一些业务积累,这也是每个增值开发商所希望的结果,不断挖掘业务领域,成为相关行业的咨询专家。
下面简单的总结一下就是基于这样一个数据中心的开发技术或开发方法所具有的一些特点,列了六大特点,一是面向服务的框架体系架构,在上面有很好的应用定制系统,不局限于CS、BS,在异构环境下搭建相关的应用系统,也可以很好的进行多元异购数据的管理,在它之上可以构建搭建级别所复用的仓库,实现应用系统,包括再上面也很好的权限管理和开发方法。在传统的开发模式之上能够把数据中心开发平台引入到具体的业务生产中或业务开发中去,就能够更好的提高我们软件开发或软件产品的生命力。
下面做一个简单的展望,这是我们目前开发模式的发展方向,大家知道传统的最初是面向结构化的开发方式,逐步转向面向于对象的开发模式。中地基于数据中心新一代开发模式可以在这之上更好的构建相关的系统或实现我们软件开发新一代的开发方法。我们最终的目标是能够让程序员从纷繁的开发中解脱出来,让他成为知识人员或业务人员很好的朋友,这也是我们的一个很好的目标。
最后,刚才讲到了我们能够与MapGIS共建、与MapGIS共赢,共同创造我们GIS美好的明天!我的报告就到这里,谢谢大家!