基于WebGL的三维GIS技术平台的制作方法

文档序号:14950841发布日期:2018-07-17 22:30阅读:210来源:国知局

本发明属于信息处理领域,特别是涉及一种基于webgl的三维gis技术平台。



背景技术:

worldwind、googleearth、yahoomap、baidumap等一系列三维可视化平台软件和服务的出现,在一定程度上有效地满足了人们对空间数据多维显示和互操作的需求。但这些系统自成体系,存在着不同程度的问题,worldwind的渲染速度较慢,googleearth在数据支持、功能支持、版权等方面具有一定的局限性,特别是在数据共享和交换方面的问题较为突出。虽然各类三维平台不断涌现,但传统的空间信息网络服务模式存在诸多瓶颈问题,像在海量空间信息的存储管理、空间信息服务响应和网络带宽上都无法得到有效解决。



技术实现要素:

本发明的目的就是提供一种基于webgl的三维gis技术平台,所显示内容是以空间位置为主要组织方式的数据,不仅涵盖目前web浏览器的全部功能,还具有空间信息专业化处理的各种功能。

本发明的另一个目的是提供一种基于webgl的三维gis技术平台,既能解决海量的多源异构空间信息的数据组织问题,又明显的提升地学信息获取的效率。

本发明提供了一种基于webgl的三维gis技术平台,其包括:

数据组织与管理系统,其用于根据获取到的空间数据以四叉树结构对地理空间进行层次划分并分割成若干地理块,并根据所述地理块构建全球地理网格金字塔模型,每个地理块内的层次结构与异构空间数据采用文档进行表示和存储至数据库中;

web服务器,其用于根据所述访问请求判断所述访问请求应选择的应用组件,并通过所述应用组件从所述数据库中调取相对应的文档,并将所述文档作为反馈信息发送至所述web浏览器;

web浏览器,其用于接收用户的访问请求,并将该访问请求发送至所述web服务器,并接收所述web服务器的反馈信息并将其显示。

优选的是,所述的基于webgl的三维gis技术平台中,

所述文档中的键/值对是有序的;

所述文档中不能包含重复的键;

所述文档的值是字符串,数字,二进制文件,整个嵌入的文档或者gis中的空间数据;

所述文档包括元数据文档、栅格文档、矢量文档、和三维模型文档;

所述元数据文档分为地理网格编码文档、父网格编码文档、子网格编码文档、相邻网格编码文档和地理网格边界文档,地理网格编码文档存储网格编码值,父网格编码文档存储该地理网格在金字塔模型中父网格的编码值,子网格编码文档存储该地理网格对应的四个子网格的编码值,相邻网格编码文档按顺时针顺序存储该网格八个相邻网格的编码,地理网格边界文档存储网格的边界点,为一闭合的四边形;

所述栅格文档分为dem和dom子文档,dem子文档存储地形数据,dom子文档存储影像数据;

所述矢量文档分为点、线、面三个子文档,分别存储地理网格内的点数据、线数据和面数据,其中点数据包括注记、地物等,线数据包括河流、道路和境界,面数据包括行政区划、和建筑物底面;

所述三维模型文档分为建筑物和人工设施两个子文档,分别存储地理网格内的建筑物模型和人工设施模型。

优选的是,所述的基于webgl的三维gis技术平台中,以四叉树结构对地理空间进行层次划分,包括:

将所述地理空间划分为多个相互连接的地理块,每个所述地理块中包含对应的空间数据;

所述四叉树结构为基于四叉树的全球瓦片金字塔结构,以经纬度坐标(-90°,-180°)为原点,以经纬度跨度作为网格分辨率;

任意相邻的层从上到下分辨率以2为引子倍数递增,且每个节点对应一个所述地理块;

每个所述地理块具有唯一标识信息,包括金字塔层级、地理网络行号和地理网格列号。

优选的是,所述的基于webgl的三维gis技术平台中,

在已知坐标原点(-90°,-180°)和顶层网格分辨率lztsd的前提下,可以进行地理网格编码与地理网格坐标之间的换算,对应公式为:

已知某点经纬度坐标(lat,lon),求其所在网格在某层n的行列号rownum、columnnum;

式中——向下取整符;

lztsd——顶层网格分辨率;

已知某地理网格行列号rownum、columnnum以及所在层号n,求该网格的左下角经纬度坐标(lat,lon);

rownum×lztsd/2n-90=lat

columnnum×lztsd/2n-180=lon°

优选的是,所述的基于webgl的三维gis技术平台中,所述异构空间数据以二进制类型存储。

优选的是,所述的基于webgl的三维gis技术平台中,

所述web浏览器中采用屏幕显示缓存、数据块调度缓存、底层读取缓存的多线程三级缓存架;

所述web浏览器中采用基于小波变换和多级树集合分裂算法的累进式编码流式处理方法;

且所述web浏览器采用基于lod的渐进流式载入方法实现三维图像的显示。

优选的是,所述的基于webgl的三维gis技术平台中,所述web浏览器具有一三维地理场景构建系统,其用于根据所述反馈信息确定处理模块,所述处理模块对目标进行模型重建,建立景观的显示列表,定义室内外景观相互链接的节点区域,将视点与室内外场景坐标进行匹配,并显示相应的场景,当视点到达室内外景观的节点区域时,则显示并切换视点至相应的区域。

本发明具有以下有益效果:

(1)可以实时、动态的对地表进行观察,能够促进定性和定量的进行地球空间物质与能量演变规律及运动机制的研究,对于地学的理论研究具有重要意义;

(2)可以促进地学、测绘遥感、计算机学科、管理学科等多学科的交叉融合,对学科体系的建设具有重要意义;

(3)可以解决空间数据库和各种专业功能模块快速、高效、安全数据衔接问题,创新了传统的空间数据组织与管理模式,提高了应用效率,具有重要的实践意义;

(4)可以解决空间数据的网络传输共享、海量数据快速可视化、地学信息3d表达、海量地学信息的存储与交互式分析等多学科的技术难题,具有重要的技术创新意义;

(5)可以促进各学科最新研究成果的转化,能够促进大众对地学空间信息及与其相关联的环境、生态、规划、城建等信息的使用,具有重要的现实意义。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

图1为根据本发明提供的基于webgl的三维gis技术平台的一个实施例的技术路线示意图;

图2为根据本发明提供的基于webgl的三维gis技术平台的一个实施例中的文档结构示意图;

图3为根据本发明提供的基于webgl的三维gis技术平台的一个实施例中的文档的物理模型示意图;

图4为根据本发明提供的基于webgl的三维gis技术平台的一个实施例中的地理块中的空间数据示意图;

图5为根据本发明提供的基于webgl的三维gis技术平台的一个实施例中的地理块中的空间数据层次结构示意图;

图6为根据本发明提供的基于webgl的三维gis技术平台的一个实施例中的地理块编码示意图;

图7为根据本发明提供的基于webgl的三维gis技术平台的一个实施例中的web浏览器中三维地理场景构建示意图;

图8为根据本发明提供的基于webgl的三维gis技术平台的一个实施例中的web服务器的结构示意图。

具体实施方式

下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不配出一个或多个其它元件或其组合的存在或添加。

如图1所示,本发明提供了一种基于webgl的三维gis技术平台,其包括:

数据组织与管理系统,其用于根据获取到的空间数据以四叉树结构对地理空间进行层次划分并分割成若干地理块,并根据所述地理块构建全球地理网格金字塔模型,每个地理块内的层次结构与异构空间数据采用文档进行表示和存储至数据库中;

web服务器,其用于根据所述访问请求判断所述访问请求应选择的应用组件,并通过所述应用组件从所述数据库中调取相对应的文档,并将所述文档作为反馈信息发送至所述web浏览器;

web浏览器,其用于接收用户的访问请求,并将该访问请求发送至所述web服务器,并接收所述web服务器的反馈信息并将其显示。

本发明实现超大规模多源异构空间数据一体化管理和高效调度。分析空间系统中各类型数据的特性及文件结构,设计一体化存储模型,构建编码方式、数据管理模型及索引方式,从而实现快速高效的空间数据存储与访问,从多线程并发连接等方面设计连接池结构以实现数据库的快速连接;

本发明内核包括框架模块和管理模块两个部分,其中框架模块负责整个系统的调度运行,管理模块辅助框架模块,对功能操作及其任务完成状态进行管理。

本发明分析现有空间数据可视化的各种瓶颈,从缓存设计、数据量传输模型、前端可视化技术等几个层次分别进行设计改进和优化,研制基于多级缓存的、支持二维、三维及全景等多种数据的地学空间数据浏览器客户端;

本发明深入研究探讨了uninpho三维平台的有关理论问题,提出了构建支持海量数据的高效的uninpho三维平台的技术方法体系,丰富了地学信息表达的理论研究,实现了影像、矢量、全景、三维模型、文本等全息地学数据的组织管理与集成应用;

本发明借鉴微服务技术思想,采用基于总线的对等系统架构模式,实现了一种松散的系统体系结构,支持功能服务的分散组合,提升系统的扩展性、伸缩性;

本发明从系统构建方法学上,研究了支持海量数据的高效uninpho三维平台内核引擎构建的关键技术,解决了对uninpho三维平台进行高效的功能操作和状态管理两大技术难题;

本发明采用webgl、gpu硬件加速技术、浏览器三维标准为基础,以地理数据三维交互可视服务为核心,对webgl三维可编程渲染流程、gpu高性能着色模型进行研究,在web浏览器上运用html5和web3d技术实现无插件、轻量级的多源海量空间信息三维可视化;

本发明基于文档的空间数据组织形式,实现超大规模多源异构空间数据的一体化管理和高效调度。摒弃传统的关系数据模型管理方式,利用基于文档的空间数据组织模式,采用“地理块”作为基本地理单元,实现3d模型、全景影像、4d数据等超大规模多源异构空间数据的一体化管理和高效调度;

本发明基于流式传输机制,设计场景一体化高效协同运算方案,解决多源异构数据尤其是非结构化数据高效浏览的技术难题。基于流式传输框架,实现功能的安全可靠迁移和数据运算的均衡负载,有效提高了地学数据可视化与运算效率;

本发明基于小波变换和多级树集合分裂算法的累进式编码流式处理技术,增强场景流畅性,提升数据调度效率;

本发明构建线程级并行和流水线数据访问模式,突破传统数据并行策略,有效提高用户访问效率;

本发明研制了集数据存储、数据协同访问、地学信息三维可视化为一体的高效三维uninpho三维平台,实现了超大规模多源异构数据网络环境下的有效管理和应用。

本发明实现了3d模型、全景影像、矢量图像等非规格化海量空间信息的一体化存储、管理与访问和高效协同显示,增强了场景浏览流畅性和地学信息的表现力。

本发明基于统一的lod和地理格网,提出了多源异构空间数据集成的解决方案,从异构数据的同质化与异构数据的融合可视化两个层次入手,从根本上解决了多源异构三维空间数据共享问题。

本发明基于流式传输与webgl技术,将公网与专网的多源异构数据服务在前端进行融合展示,实现了交互式多尺度三维地理场景的快速构建。

本发明基于异构数据的共享方案,设计了场景一体化高效协同运算技术路线,有效解决了多源异构数据在地理分析中高效计算的技术难题。

本发明构建了支持海量异构三维空间数据的web3dgis技术体系,实现了具有自主知识产权的、集空间数据存储、数据统一高效访问、地理分析及协同可视化为一体的web3dgis平台。

在本发明提供的所述的基于webgl的三维gis技术平台的一个实施例中,如图2所示,

所述文档中的键/值对是有序的;

所述文档中不能包含重复的键;

所述文档的值是字符串,数字,二进制文件,整个嵌入的文档或者gis中的空间数据;

所述文档包括元数据文档、栅格文档、矢量文档、和三维模型文档;

所述元数据文档分为地理网格编码文档、父网格编码文档、子网格编码文档、相邻网格编码文档和地理网格边界文档,地理网格编码文档存储网格编码值,父网格编码文档存储该地理网格在金字塔模型中父网格的编码值,子网格编码文档存储该地理网格对应的四个子网格的编码值,相邻网格编码文档按顺时针顺序存储该网格八个相邻网格的编码,地理网格边界文档存储网格的边界点,为一闭合的四边形;

所述栅格文档分为dem和dom子文档,dem子文档存储地形数据,dom子文档存储影像数据;

所述矢量文档分为点、线、面三个子文档,分别存储地理网格内的点数据、线数据和面数据,其中点数据包括注记、地物等,线数据包括河流、道路和境界,面数据包括行政区划、和建筑物底面;

所述三维模型文档分为建筑物和人工设施两个子文档,分别存储地理网格内的建筑物模型和人工设施模型。

文档是面向文档数据库的核心概念,也是面向文档数据库的基本组成单元,是多个键及其相关联值(可以是各种复杂的数据类型)的有序组合,类似于关系模型中的“行”,但是更加灵活,也更加复杂,它支持内嵌文档或者数组,一条文档可以表示复杂的层次关系。

不同编程语言对文档的实现方法不尽相同,在javascript中,文档表示为对象,如下所示是一个简单文档的表示:

{“greeting”:“hello,world!”}

这个文档只有一个键“greeting”,其对应的值为字符串“hello,world!”。绝大多数情况下,面向文档非关系型数据库中的文档比这个简单例子要复杂得多,表达的结构也更加复杂,经常包含多个键/值对,其中不乏内嵌的文档,如图3所示。

面向文档非关系型数据库的特点是模式自由,在面向文档非关系型数据库中文档的键不会事先定义也不会固定不变,由于没有模式需要更改,因此不必将所有的数据放到一个模子里面。这些特点使文档能够同时存储异构的空间数据。

文档空间数据组织的逻辑模型中,每一个节点都是一个文档。

基于大规模影像数据金字塔,建立根文档对地理网格的内容结构进行层次表达。

在本发明提供的所述的基于webgl的三维gis技术平台的另一个实施例中,以四叉树结构对地理空间进行层次划分,包括:

如图4所示,将所述地理空间划分为多个相互连接的地理块,地理块可以理解为地理空间的基本组成单元,固定的地理空间可以表示成一组地理块的集合。每个所述地理块中包含对应的空间数据,具体如图5所示,每一地理块中都有地形、地貌信息,可能还包含道路、河流、建筑物、人工设施等要素,在gis中,这些分别对应空间数据中的栅格数据或tin数据、矢量数据、三维模型数据等,;

所述四叉树结构为基于四叉树的全球瓦片金字塔结构,以经纬度坐标(-90°,-180°)为原点,以经纬度跨度作为网格分辨率,按照四叉树原理递归地对地理空间进行四分,由此划分全球地理格网框架,并以此作为面向文档空间数据组织的全球地理网格剖分模型;任意相邻的层从上到下分辨率以2为引子倍数递增,父瓦片与子瓦片之间有固定的对应关系,确定顶层瓦片分辨率以及坐标原点之后,整个金字塔模型可用数学方法表达,这样可以很方便的使用四叉树索引技术进行快速定位,且每个节点对应一个所述地理块,这样分层分块的组织方式,有利于多尺度空间数据的表达。面向文档空间数据组织的全球地理网格剖分模型综合了瓦片金字塔与经纬度格网剖分模型的优点,容易理解,易于实现。同一金字塔层级中地理网格实现了无缝拼接,相邻金字塔层级间地理网格存在可用数学方式表达的父子关系,这样对全球地理空间进行层次性的、分块的划分,构建了全球多尺度空间数据的高效组织管理框架。

如图6所示,每个所述地理块具有唯一标识信息,包括金字塔层级、地理网络行号和地理网格列号。全球地理格网剖分模型中每一个地理网格都有固定的金字塔层级和在该层级中唯一的行列号,所以用金字塔层级、行号和列号这3个网格特征就可以唯一标识一个地理网格,成为地理网格的“身份id”。

空间实体编码是空间数据组织的关键,是空间信息查询、检索和数据挖掘的基础。编码可以对地理网格进行唯一标识,有助于空间数据的查询、定位,所以,为面向文档空间数据组织设计一种全球地理格网编码方案是必要的。

在面向文档空间数据组织中,全球地理网格编码是在地理空间分层分块剖分时对每一级网格赋予编码的过程和结果,它应具备数据标识唯一性、可靠性和稳定性等特点。以位置为索引是空间数据组织和使用的基本途径,空间数据中绝大多数信息与空间位置相关,所以全球地理格网编码最好能够反映地理网格的位置和坐标信息,这样可以在地图显示时便于空间数据的调度。

在面向文档空间数据组织的逻辑模型中,大范围地理空间按照四叉树金字塔构建原则被划分成多尺度地理格网,每一地理网格对应的异构空间数据按照层次结构被统一存储在文档中。面向文档空间数据组织的逻辑模型构建了大范围地理空间的多尺度划分框架,以面向文档的方式实现了地理网格中异构空间数据的统一组织,对大范围多尺度异构空间数据的高效组织与管理有十分重要的意义。

在本发明提供的所述的基于webgl的三维gis技术平台的一个实施例中,

在已知坐标原点(-90°,-180°)和顶层网格分辨率lztsd的前提下,可以进行地理网格编码与地理网格坐标之间的换算,对应公式为:

已知某点经纬度坐标(lat,lon),求其所在网格在某层n的行列号rownum、columnnum;

式中——向下取整符;

lztsd——顶层网格分辨率;

已知某地理网格行列号rownum、columnnum以及所在层号n,求该网格的左下角经纬度坐标(lat,lon);

rownum×lztsd/2n-90=lat

columnnum×lztsd/2n-180=lon°

本文设计的全球地理网格编码对全球地理网格剖分模型中每一个地理网格能够进行唯一标识,并且能反映地理网格的行列号坐标和经纬度坐标信息,为面向文档空间数据组织中空间数据的定位、检索、调度提供了有力的支撑。

在本发明提供的所述的基于webgl的三维gis技术平台的一个实施例中,所述异构空间数据以二进制类型存储。不必改变原有的数据结构,当提取出地理网格对应的空间数据之后,通过该模型可以简洁、高效的实现空间数据的入库管理。

在本发明提供的所述的基于webgl的三维gis技术平台的一个实施例中,

所述web浏览器中采用屏幕显示缓存、数据块调度缓存、底层读取缓存的多线程三级缓存架;本研究采用了多线程多级缓存结构,实现了海量影像数据的快速可视化。在设置了合适大小的缓存区后,无需每次都直接从硬盘中读取所需的数据,从而实现影像的快速浏览。由于存储的数据比较大,而用户大多数时候浏览的只是其中的一部分,这部分数据由客户端显示的分辨率和显示范围来决定。当用户浏览数据时,预先利用后台线程从服务器缓存中拷贝数据,如果缓存中没有再从磁盘文件中读取,这样,由于每幅影像数据都比较大,而每次需要的数据只是很小的一部分,且从内存中读取的速度比从硬盘直接读取要快很多,从而大大提高数据传输效率。在客户端浏览时,可以设置一个三级缓存机制,包括客户端屏幕影像块缓存、影像块缓存和gdal块缓存。gdal块缓存就是当读取的影像块,再为gdal块缓存分配的内存中有的话,就可以直接从中读取;影像块缓存,指在当前的浏览窗口中的每一个像素对应的影像块都被放到了缓存区中,因此,其影像块的值可以直接读取;屏幕图像缓存,即是将当前的屏幕作为一张图片放到内存中,这样可以被用户重新利用。对数据的传输和可视化采用了多线程开发技术,即在后台采用了多个线程负责与外部的进程进行交互,有的线程负责地图漫游、放大、缩小操作时地图数据的请求并根据请求回应控制地图的显示,有的线程用于向服务器发送数据预取请求并维护数据接收缓存区,并按一定的算法规则进行缓存区管理。

所述web浏览器中采用基于小波变换和多级树集合分裂算法的累进式编码流式处理方法;可以将某个指定客户端交互漫游所生成的流式三维地形数据以广播的形式发送出去,这样每个接收端用户都能够同步接收到流式三维地形数据,在客户端准确高质量地显示出演示者的漫游内容。在交互进行三维地形漫游时,用户还可以将流式三维地形数据逐帧存放到本地文件中,以便将来脱离服务器也能在客户端或者其它机器上重放交互漫游的过程。由于流式地形数据文件是以帧为单位记录的,交互漫游记录的编辑可以像数字视频的编辑一样简单。在生成了流式地形数据文件后,流式地形服务器可以向客户端提供这些流式地形数据文件的广播和点播服务,类似流媒体服务器提供的视频广播和视频点播服务。在广播和点播服务中,客户端接收的流式地形数据虽然是事先录制的既定路线交互,也仍然可以采用客户端的服务质量控制策略来实现服务质量控制。空间数据在网络中渐进传输需遵循传输数据的精确性、确定性、单一性、可恢复性和可持续性。精确性指只传输符合当前精度要求的数据,如合适分辨率的金字塔层级的数据块;确定性指只传输有必要的数据,尽量减少不相关的数据;单一性即要求传输过的数据不可再传;可恢复性指传输前压缩的数据,传输后可以恢复过来;可持续性指要保证客户端用户感受到的数据浏览是持续稳定的。

本发明在三维场景数据方面采用渐进传输的流式机制。流式传输的方式采用网络媒体传输形式,网络媒体传输也就是流媒体播放,它不需要下载整个文件再播放,而是随时传输随时播放,具有等待时间短、节省磁盘空间等特点。

且所述web浏览器采用基于lod的渐进流式载入方法实现三维图像的显示。超大规模地形数据不能一次性把所有的数据读入内存,为了实现数据的高效渲染,构建适用于不同投影坐标的大容量地形数据模型,该模型能够支持水平分块,纵向分层(lod),并能对大容量地形数据的预处理和组织,可以进行地形的分割、替换与组织,支持地形预处理和地形编辑。

对于地表纹理数据采用基于小波变换的图像压缩技术,也就是jp2,jp2具有压缩比高,压缩图像质量高,并且可以渐进式传输数据进行显示。其他的模型数据等采用google的快速压缩snappy技术。

1)地形和地表纹理数据在同一帧的场景下具有不同水平的细节层次,也就是所谓的多分辨率模型。这样不但能满足视觉效果,而且也减少了需要绘制的数据量。

矢量数据根据比例尺大小和显示的范围,对其需要绘制的数据范围内进行水平分块和纵向分层,然后在若干个大小尺寸的一致的矩形范围内对其绘制并保存图片在缓存中,然后显示引擎对此图片集进行调度显示。这种显示方式避免了矢量数据不断进行实时绘制,从而提高绘制效率。

对于模型数据在纵向方向对其建立lod模型,根据显示比例尺调度不同的粗、精模型;在横向方向,把整体模型分解成若干个简单模型。显示引擎根据其是否位于视窗范围内,控制其是否显示。

在本发明提供的所述的基于webgl的三维gis技术平台的一个实施例中,如图7所示,所述web浏览器具有一三维地理场景构建系统,其用于根据所述反馈信息确定处理模块,所述处理模块对目标进行模型重建,建立景观的显示列表,定义室内外景观相互链接的节点区域,将视点与室内外场景坐标进行匹配,并显示相应的场景,当视点到达室内外景观的节点区域时,则显示并切换视点至相应的区域。

webgl是一项利用javascriptapi呈现3d计算机图形的技术,有别于过往需加装浏览器插件,通过webgl的技术,只需要编写网页代码即可实现3d图像的展示,显然,webgl技术标准免去了开发网页专用渲染插件的麻烦,可以用于创建具有复杂3d结构的b/s系统,这样web3d系统可以借助显卡的性能来更流畅的浏览空间数据,还可以创建更加复杂的导航和数据视觉化。

webgl基于opengles2.0,提供了3d图像的程序接口,它使用html5canvas并允许利用文档对象模型接口,通过增加opengles2.0的一个javascript绑定,webgl可以为htmlcanvas提供硬件3d加速渲染,除此之外,webgl可利用部分javascript实现自动存储器管理。

本发明采用微服务的架构模式,如图8所示,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。相对于单体架构和soa,它的主要特点是组件化、松耦合、自治、去中心化。

一个微服务架构需要具备以下条件:(1)基础监视测量和健康检查;(2)分布式日志跟踪;(3)针对每个服务,不只是隔离代码,还需要在构建+测试+打包+提交整个环节隔离;(4)能清晰定义每个服务的上下游、编译时间和运行依赖;(5)掌握如何构建、暴露和维护好的api和合约;(6)需要尊重b/w和f/w兼容性,即使你可能不同时是你生产的服务的消费者;(7)好的单元测试和更具有可读性;(8)注意微服务与模块和库包区别,以及分布式整体型monolith,协同版本发布,数据库驱动继承的区别;(9)知道基础设施的自动化;(10)需要基于ci/cd持续集成/持续递交的基础设施。

微服务架构有以下优点:(1)通过分解巨大单体式应用为多个服务方法解决了复杂性问题。在功能不变的情况下,应用被分解为多个可管理的分支或服务。每个服务都有一个用rpc-或者消息驱动api定义清楚的边界。微服务架构模式给采用单体式编码方式很难实现的功能提供了模块化的解决方案,由此,单个服务很容易开发、理解和维护。

这种架构使得每个服务都可以有专门开发团队来开发。开发者可以自由选择开发技术,提供api服务。这种自由意味着开发者不需要被迫使用某项目开始时采用的过时技术,他们可以选择现在的技术。甚至于,因为服务都是相对简单,即使用现在技术重写以前代码也不是很困难的事情。(3)微服务架构模式是每个微服务独立的部署。开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度。ui团队可以采用ab测试,快速的部署变化。微服务架构模式使得持续化部署成为可能。(3)微服务架构模式使得每个服务独立扩展。可以根据每个服务的规模来部署满足需求的规模。甚至于,可以使用更适合于服务资源需求的硬件。

每一个应用功能区都使用微服务完成,另外,web应用会被拆分成一系列简单的web应用。这样的拆分对于不同用户、设备和特殊应用场景部署都更容易。每一个后台服务开放一个restapi,许多服务本身也采用了其它服务提供的api。ui服务激活其它服务来更新web页面。所有服务都是采用异步的,基于消息的通讯。

这些应用并不直接访问后台服务,而是通过apigateway来传递中间消息。apigateway负责负载均衡、缓存、访问控制、api计费监控等等任务,可以通过nginx方便实现。

这种微服务架构模式深刻影响了应用和数据库之间的关系,不像传统多个服务共享一个数据库,微服务架构每个服务都有自己的数据库。这种模式意味着多份数据,如果你想获得微服务带来的好处,每个服务独有一个数据库是必须的,因为这种架构需要这种松耦合。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1