没有合适的资源?快使用搜索试试~ 我知道了~
GeoRocket:大型地理空间文件的云数据存储
SoftwareX 11(2020)100409原始软件出版物GeoRocket:用于大型地理空间文件的可扩展和基于云的数据存储米歇尔·克雷默弗劳恩霍夫计算机图形研究所IGD,64283达姆施塔特,德国ar t i cl e i nf o文章历史记录:收到2018年收到修订版2019年10月25日接受2020年关键词:地理空间数据云大数据分布式计算a b st ra ct我们介绍GeoRocket,一个用于在云中管理非常大的地理空间数据集的软件。GeoRocket采用了一种新的方法来处理任意大的数据集,将它们分成单独处理的块。该软件具有现代反应式架构,并利用现有的服务,包括Elasticsearch和存储后端,如MongoDB或Amazon S3。GeoRocket与模式无关,支持多种异构地理空间文件格式。它也是格式保留的,不会以任何方式更改导入的数据。GeoRocket的主要优点它的性能、可扩展性和可用性使其适用于处理非常高的数据量、复杂的数据集和高速度(大数据)的许多科学和商业用例。GeoRocket还为地理空间数据管理领域的进一步研究提供了许多机会。©2020作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本Git SHA ace352a用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2018_173法律代码许可证Apache-2.0使用git的代码版本控制系统使用的软件代码语言、工具和服务Java、Vert.x、Elasticsearch编译要求、操作环境依赖性JDK 8如果可用,链接到开发人员文档/手册https://georocket.io/docs/技术支持邮箱michel. igd.fraunhofer.de软件元数据当前软件版本1.3.0此版本可执行文件的永久链接https://github.com/georocket/georocket/releases/tag/v1.3.0合法软件许可证Apache-2.0计算平台/操作系统Linux,macOS,Windows安装要求依赖关系Java 8如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://georocket.io/docs/user-documentation/1.3.0技术支持邮箱michel. igd.fraunhofer.de1. 动机和意义全球数据量不断增长。到2025年,它将达到163泽字节(或163万亿千兆字节)[1]。这一数据增长的主要驱动力是移动电子邮件地址:michel. igd.fraunhofer.de。网址:https://georocket.io。https://doi.org/10.1016/j.softx.2020.100409手机、自动驾驶汽车、卫星和其他内置位置传感器的设备[2]。这些设备收集的数据可以在时间和地点上定位,称为时空数据(或地理空间数据,地理数据)。Kitchin McArdle将地理空间数据视为大数据,其特征在于其体积,种类和速度[4]。这意味着地理空间数据集通常很大,异构,并且在很短的时间内获得地球2352-7110/©2020作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2M. Krämer/SoftwareX 11(2020)100409例如,观测卫星、机载激光扫描仪和地面移动测绘系统每秒记录数十万个样本[5],产生的数据高达几千兆比特几个小时内就能达到几个TiB [6]。随着数据量的增长,用户面临着新的挑战,因为他们当前的计算机系统缺乏存储空间和计算能力。与此同时,他们需要能够处理这些数据的新软件解决方案。在我们之前的工作中,我们研究了使用云和微服务架构来处理大量异构地理空间数据的可能性[7,8]。我们关注的是来自不同领域的用例,例如土地管理、城市规划、规划和海洋应用[9,10],我们可以显示如果有足够的计算能力、足够的存储资源和合适的软件,地理空间数据可能具有很大的价值。为了补充这一点,我们现在探索以可扩展,高效和廉价的方式存储,索引和查询大地理空间数据的新方法。我们开发了一种名为GeoRocket的新型软件解决方案,使用户能够存储大量的地理空间矢量数据,并在分布式环境中访问、分析和共享这些数据-在我们的案例中是云。GeoRocket的关键属性是其可扩展性,索引功能,以及模块化架构和轻量级接口。同时,它是模式无关的和格式保持的,并为用户提供了一种实用的方式来存储数据。通过GeoRocket,我们追求一条与现有软件解决方案不同的新道路:PostGIS[11]是PostgreSQL [12]的扩展,为应用程序开发人员提供了一个低级接口,用于在传统的关系数据库中存储和分析地理空间矢量数据。相比之下,GeoRocket是一个高级数据存储,它使用了其他存储技术(参见第2节)。GeoRocket中的地理空间实体是语义特征而不是几何。GeoRocket不是关系数据库。它还使用自己的查询语言,而不是SQL(见2.3节)。GeoServer[13]和Dedeg [14]是具有悠久历史的地理空间数据存储解决方案。它们有一个单石架构,使用传统的客户机/服务器方法。GeoRocket拥有现代的反应式和分布式架构。它被设计为在云中运行,并利用性能,可扩展性和成本效益方面的可能性3DCityDB[15] 是 一 个专 门 用 于 存 储 描 述 3D 城 市 模 型 的CityGML文件的数据库[16]。CityGML是地理标记语言( GML ) 的 一 个 应 用 模 式 , GML 本 身 基 于 XML 。 与3DCityDB相比,GeoRocket支持多种文件格式,并且与模式无关,因此它可以处理CityGML,但也可以处理GML,甚至是任意的XML文件。此外,3DCityDB再次采用了单片架构。rasdaman[18]是大型地理空间栅格数据的存储和分析解决方案。 它在分布式环境中 运行,专为大 数据而设计。 与GeoRocket的主要区别是存储数据的类型。GeoRocket支持矢量数据,而rasdaman是为栅格数据而设计的。Cesium ion[19]是一种商业解决方案,用于在云中托管大量3D数据集,并使用JavaScript框架Cesium [20]在浏览器中有效地将其用于3D上传到Cesium ion的数据将被处理、优化和平铺,以提高流和可视化性能。原始数据无法访问。相反,GeoRocket允许访问未修改的数据。它还图1.一、 GeoRocket服务器、客户端和后端服务概述。支持2D和3D数据(尽管支持的文件格式不同)。它是一种更通用的解决方案,可用于各种应用程序,而铯离子专注于3D网络可视化。这两种解决方案相互补充,可以串联使用。本文的主要贡献是处理任意大数据集的新方法(见第2节)。我们描述GeoRocket我们还展示了GeoRocket查询语言的示例第3节描述了一个说明性的例子,我们在现实世界的应用程序中使用我们的软件。GeoRocket为进一步的研究和商业开发提供了潜力,我们将在第4节中讨论。本文在第5节中得出结论。2. 软件描述图1显示了GeoRocket部署的一般概述。主要组件是GeoRocket服务器、存储后端和索引。服务器负责导入和导出地理空间文件。实际数据保存在存储后端。GeoRocket支持多个后端,如Amazon S3 [21],MongoDB [22],分布式文件系统或本地文件系统(通常用于测试目的)。除了存储后端,GeoRocket还保留了一个关于导入文件中信息的倒排索引。有了这个,用户可以搜索一个大的数据集,并提取与他们的用例相关的部分。该索引由开源框架Elasticsearch维护 [23]。导入、索引和查询的过程在第2.1节中描述。除了服务器、存储后端和索引之外,还有一个名为GeoRocketCLI的命令行界面它允许用户导入和导出文件,以及管理标签和属性(参见下面的定义列表)。GeoRocket服务器还有一个HTTP接口,可供其他客户端使用在详细介绍GeoRocket的架构之前,我们定义了一些常用术语。区块区块表示导入文件中的地理空间对象(也称为特征)例如,在包含3D城市模型的CityGML文件中,块表示建筑物(由cityObjectMember元素指定)。类似地,在GeoJSON文件[24]中,块是特征集合中的特征。在导入过程中,GeoRocket将地理空间文件拆分为单独的块(参见第2.1节)并将其保存在其存储后端。层层是一个用户定义的标签(或文件夹或目录),可用于在GeoRocket的存储后端构建大量的块。一个块总是放在一个层中。如果用户在·····M. Krämer/SoftwareX 11(2020)1004093导入时,块将被放入名为' / '的根层。 层是分层结构的,父层总是包括其子层的所有块。属性属性是用户定义的钥匙是独一无二的。标签标签是一个用户定义的标签,可以自由地附加到一个或多个块上以结构化数据。基本上,标记是一个没有值的属性。元数据元数据对象包括用户定义的标签和属性,以及其他自动派生的信息(例如导入文件索引属性索引属性是GeoRocket在导入过程中检测到的键值对。与属性不同,它们不是用户定义的,而是直接从导入的文件中提取的(例如CityGML通用属性或GeoJSON属性)。请注意,块、层和索引属性是不可变的。如果要更改地理空间要素(即,如果要修改其属性或几何图形,或者要将其从一个图层移动到另一个图层),则必须删除该要素,并重新导入修改后的要素。但是,用户定义的元数据(如属性和标记)可以在以后更改这也是我们开发一种新的查询语言而不是使用SQL的原因之一 。 联 接 和 更 新 将 过 于 复 杂 或 不 可 能 实 现 , 特 别 是 因 为GeoRocket不是如上所述的关系数据库。2.1. 软件构架GeoRocket已经通过Vert.x实现,Vert. x是一个用于构建反应式应用程序的开源工具包[25]。它的体系结构由所谓的vertebra组成,vertebra是通过事件总线发送消息来相互通信的独立组件。软件设计遵循反应式宣言[26]。GeoRocket是响应,弹性,弹性和消息驱动的。这意味着即使在高负载下也能够及时响应,并且在数据量和用户/并行请求数量方面提供了良好的可扩展性。同时,它具有容错性,可以快速从故障中恢复。响应性、可伸缩性和弹性是基于Vert.x的事件驱动架构设计和新颖的导入和索引方法的结果。容错是通过隔离、异步超时、快速故障和重试等模式实现的我们参考Nygard以获得有关此主题的更多信息[27]。请注意,这些属性允许将GeoRocket部署到云,并利用它提供的好处可以将单个虚拟机(或GeoRocket的多个实例)部署到云中的分布式虚拟机(甚至容器),以实现高性能,可靠性和可扩展性。事件驱动的架构与松散耦合的vertebra(或实例)允许GeoRocket按需弹性扩展,这可以帮助优化资源使用并最终降低运营成本。图 2描述了导入和索引地理空间文件的过程以及数据如何在vertex之间流动。为了能够处理任意的数据量,GeoRocket使用了一种新颖的流式处理方法,该方法应用了分治范式。在开始时,地理空间文件被Splitter垂直分割为单独的块Splitter还将用户定义的元数据对象附加到每个块。块保存在配置的存储后端中。当所有块都被写入后端时,导入过程完成。图二. 索引地理空间文件:将文件拆分为块,然后将其发送到存储后端。之后,索引过程异步运行图三. 从GeoRocket导出文件:合并器从索引器检索块ID,并从存储后端合并匹配的块一旦第一个块被写入,索引过程就异步启动。Indexerverticle从存储后端读取每个导入的块,并查找已知的模式,如属性、几何图形或边界框。 为此,它使用轻量级的基于流的解析和常规表达式。这种方法比将块完全加载到内存中并对其进行语义解释更快且更具可伸缩性。它还帮助GeoRocket以模式不可知的方式解释地理空间数据。解析后,Indexer将提取的信息保存到索引中。请注意,可以有多个索引器,每个索引器负责特定类型的模式。这允许GeoRocket扩展可插入索引器,并支持异构数据集的索引从GeoRocket查询和导出文件的过程如图3所示。在这个图表中的主要组成部分是合并垂直。它向索引器发送一个查询(参见2.3节),索引器又在索引中搜索与查询匹配的块ID4米Krämer/SoftwareX 11(2020)100409的搜索.块ID然后被发送回Merger,Merger又从存储后端加载匹配的块。这些块被连接到一个有效的输出文件,该文件最终被呈现给客户端。2.2. 软件功能从上述软件描述中,我们可以推导出软件的以下关键功能:GeoRocket是为云而设计的。它有一个分布式架构,由独立的组件(versatile)组成,可以冗余地部署,以实现可扩展性,性能和容错。这是相对涉及通常具有单片架构的现有替代软件产品。它由开源框架Elasticsearch支持,该框架允许以灵活的方式和高性能对非常大的数据集进行索引和查询。Elasticsearch本 身 被 设 计 为 在 分 布 式 环 境 中 运 行 , 并 且 非 常 适 合GeoRocket的架构。GeoRocket是模式无关的,这意味着它不需要特定的数据模式来正常工作。相反,它试图识别大型异构数据集中的常见模式,并使用提取的信息进行索引。由于GeoRocket的数据存储是不可变的,是保持格式的。这意味着每个导入的文件都可以在以后的导出过程中按原样重建(除了块之间可能的微小空白更改)。2.3. 示例查询在本节中,我们将演示如何使用GeoRocket的查询语言来检索数据。语言的结构是轻量级的。它由项、逻辑运算符和比较运算符组成。 术语可以是简单的字符串、日期或边界框(由四个数字最小X、最小Y、最大X和最大Y定义的空间区域)。也可以使用逻辑运算符AND、OR和NOT。下面的示例检索位于给定边界框内并包含字符串Berlin的所有块(例如,作为索引属性或特性之一中的值)或标记有标记Berlin:13. 378,52。515,13。380,52。517Berlin)还可以使用比较运算符将术语约束到某个索引属性或特性。下面的复杂示例将逻辑运算符AND与比较运算符EQ(equals)和GTE(greater or equal to)组合在一起,以搜索(a)位于给定边界框内的块,(b)其索引属性或属性名称等于Berlin的块,以及(c)其索引属性或属性importedDate大于或等于2018-02-13的块(即在此日期或之后导入的块):13. 378,52。515,13。380,52。517EQ(nameBerlin)GTE(imprtedDate2018-02-13))请注意,在本例中,name和importedDate要么是用户定义的(如果它们是属性),要么它们的存在取决于导入的数据(如果它们是索引属性)。默认情况下,它们不是由GeoRocket创建的。GeoRocket的查询语言的更详细的描述表1我们的GeoRocket集群在AWS上的备份描述类型vCPU RAM卷大小1× GeoRocket 1.3.0 c5.xlarge 4 8 GiB 40 GiB3× Elasticsearch 6.4.0 m5.2xlarge 8 32 GiB 100 GiB1×MongoDB 4.0.2 m5.large 2 8 GiB 100 GiB3. 说明性示例在 本 节 中 , 我 们 将 描 述 一 个 真 实 的 用 例 , 演 示 如 何 使 用GeoRocket在公共云中存储非常大的地理空间数据集并保持其最新。该用例涉及德国北莱茵-威斯特伐利亚联邦州(Land NRW)提供的3D建筑模型数据集。 数据集采用CityGML格式(细节级别2),并在 dl-de/by-2-0 ( Datenlizenz Deutschland - Namensnennung -Version 2.0,www.example.com)下获得许可www.govdata.de/dl-de/by-2-0可 从 www.opengeodata.nrw.de/produkte/geobasis/3d-gm/3d-gm_lod 2/下载。为了演示如何保持此数据集的最新状态,我们使用Amazon WebServices(AWS)设置了一个GeoRocket集群。表1显示了我们创建的EC2实例及其配置。我们的集群由五个实例组成(1个用于GeoRocket,3个用于Elasticsearch , 1 个 用 于 MongoDB ) , 运 行 在 AWS 区 域 eu-central-1b(法兰克福)。装载到实例中的卷是由Amazon ElasticBlock Store(EBS)提供的SSD。所有实例都运行Ubuntu 16.04LTS AMI(Amazon Machine Image)。我们使用结构即代码(IoC)工具Terraform [29]部署和提供它们。在设置集群之后,我们使用GeoRocket的命令行应用程序(CLI)导入了完整该数据集的总大小为224.3 GB,分为35,022个文件。由于CLI在上传过程中使用GZIP压缩,因此只需传输23.7 GB。我们还记录了EC2实例上的空间使用情况。MongoDB数据库的大小为69.7 GiB。分片后的Elasticsearch索引大小为36.7GiB。默认情况下,Elasticsearch为每个索引创建一个副本,因此Elasticsearch存储的总大小为73.4 GiB,分布在三个EC2实例上。MongoDB和Elasticsearch分别使用Snappy和LZ4压缩,这就是使用的空间低于我们数据集总大小MongoDB和Elasticsearch都包含10,529,668个区块的条目,这意味着数据集中有这么多的地理空间对象为了演示如何使用GeoRocket管理如此大的数据集,我们执行了一个现实的该数据集包含细节等级2(LoD2)的建筑物,这意味着它们仅由墙壁和屋顶几何图形表示假设数据集需要更新,并且需要添加更详细的建筑模型:为了城市营销,科隆著名购物街“Schildergasse”的LoD2模型进一步假设旧对象不应该从数据集中删除,而是由于历史原因而保留首先,我们使用命令行应用程序将科隆Schildergasse中的建筑物标记为过时的,方法是添加一个属性deleted,表示建筑物被替换的日期。由于数据集包含xAL 2.0地址[30],我们可以在命令中使用Schildergasse和Köln11如果 在Unix shell(如bash)上 运行CLI,则 需要用 反斜杠转 义圆括 号。而Windows命令提示符则不需要它们。为了可读性,我们省略了这里的反斜杠。····M. Krämer/SoftwareX 11(2020)1004095georocket属性集-道具删除:2018 -09 -13\AND(SchildergasseK<$ln)然后我们引进了新的建筑:georocketimportSchildergase_update。gml在此之后,我们能够下载科隆的完整城市模型,不包括Schildergasse的旧模型,并提供以下查询:georocketsearchAND( NOT( LTE(delleted2018-09-13))K<$ln)此查询匹配Cologne中的所有对象,但不匹配那些已删除属性的值小于或等于2018-09-13所有操作都进行得非常快。 设置属性是在几毫秒内完成。新文件只有几个MiB大,导入它是几秒钟的事。下载科隆完整城市模型的延迟同样非常低(几毫秒)。如果市政当局或联邦机构希望定期从数据集中删除旧数据(例如,在每年年底),他们可以使用以下命令:乔罗基特删除LT(2018年删除)此命令将从数据集中删除在2017年或更早时间标记为已删除的所有对象GeoRocket能够自动解析ISO格式的日期,并相应地比较它们的值4. 影响如第1节所述,地理空间数据正变得越来越庞大和复杂。用户面临着 与数据量和 异质性以及 获取数据的 速度有关的 开发GeoRocket的目的之一是通过利用云的可能性来分析和共享这些这开辟了许多新的研究方向,并有可能改变用户和公司使用大地理数据的方式。首先,我们目前正在开发新的可视化分析方法,用于大型地理空间数据集。在欧盟委员会资助的研究项目DataBio中(赠款协议编号732064),我们使用GeoRocket作为农业领域数据的存储。在此基础上,我们正在开发一个可视化工具,以交互式地探索数据集,并执行分析和聚合。我们还在智能城市云领域使用GeoRocket首次在智慧城市中收集的信息,例如城市规划或交通管理。在这方面,我们已经扩展了GeoRocket,使其能够在云中加密数据,同时保持使用可搜索对称加密(SSE)进行搜索的可能性[31]。我们还探索了在智能城市云中以安全的方式共享地理空间数据的可能性,用于与安全相关的应用程序[32]。此外,我们还讨论了在土地监测或城市规划等用例的大型地理空间数据处理领域使用GeoRocket的可能性。48除了研究机会,我们相信GeoRocket也有利于用户和公司。如第1节所述,现有的产品可以管理地理空间数据,但它们通常具有单一的软件体系结构,并假定在传统的客户端/服务器设置中运行。另一方面,GeoRocket被设计为在云中运行,并利用其可能性,不仅在性能和可扩展性方面,而且在成本效益方面。对于用户和公司来说,将GeoRocket部署到云端比维护专用的本地硬件要便宜得多。这尤其适用于公共行政部门或中小型企业。5. 结论在本文中,我们介绍了GeoRocket,一个可扩展的基于云的地理空间文件数据存储.我们将其与现有产品进行了比较,并描述了其体系结构和查询语言。我们还提供了一个说明性的例子,展示了如何在现实世界的应用程序中使用最后,我们讨论了我们的软件对科学研究和商业开发机会的影响计算机科学正在向云计算转变。这尤其适用于地理信息学,它刚刚开始成功地利用云。GeoRocket是第一个专门设计用于管理地理空间数据并在云中运行的应用程序之一在本文中,我们能够证明我们基于将文件拆分为块并单独对其进行索引的数据处理新方 法 在 性 能 , 可 扩 展 性 和 可 用 性 方 面 具 有 许 多 优 点 由 于GeoRocket是模式不可知的,它支持广泛的地理空间数据集,并可用于多种应用程序。它还保留了格式,避免了在不同模型之间转换数据时通常会发生的信息这些特性使GeoRocket优于现有的解决方案。本文中给出的示例只是触及了GeoRocket的表面。在第4节中,我们已经简要地提到,我们还在研究视觉分析方法和安全数据存储。在未来,我们将专注于通过大数据方法和可视化分析来增加GeoRocket管理的大量数据的使用的新方法。我们还将进一步提高GeoRocket的性能,并探索其用于时间序列和其他时空数据的用途竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作引用[1] Reinsel D,Rydning J.,2025年数据时代-数据到生命关键的演变。Tech.代表,IDC白皮书,由Seagate赞助;2017年。[2] Goodchild MF.公民作为传感器:志愿地理学的世界。GeoJournal 2007;69(4):211-21. http://dx.doi.org/10.1007/s10708-007-9111[3]2005年10月27日,李国伟.大空间数据时代的时空数据挖掘:算法与应用。第一届ACM SIGSPATIAL大型地理空间数据分析ACM; 2012,p.1-10。网址://dx.doi.org/10.1145/2447481.2447482网站。[4] Kitchin R,McArdle G.是什么造就了大数据,大数据?探索26个数据集的本体特征。BigDataSoc2016;3(1):1-10.http://dx.doi.org/10.1177/2053951716631130网站。[5]Cahalane C,McCarthy T,McElhinney CP.MIMIC:移动映射点密度计算器第三届地理空间研究和应用计算国际会议论文集 。ACM;2012,p.15:1-9. http://dx.doi.org/10.1145/2345316.2345335网站。[6]PaparoditisN,Papelard JP,Cannelle B,Devaux A,Soheilian B,David N,etStereopolis II:用于街道可视化和3D计量的多用途和多传感器3D移动测绘系统。Rev Fr PhotogrammTélédétect2012;200(1):69-79.[7]克雷默·M一个用于处理大型geospa的微服务架构云 计 算 中 的 原 始 数 据 [Ph.D. 论 文 ] , 达 姆 施 塔 特 工 业 大 学 ; 2018 年 ,http://dx.doi.org/10.13140/RG.2.2.30034.66248。[8] 克雷默·M·塞纳岛用于在云中处理大地理空间数据的模块化软件架构。ComputGraph 2015;49:69-81. 网址://dx.doi.org/10.1016/j.cag.2015.02.005网站。[9] [10] Böhm J,Bredif M,Gierlinger T,Krämer M,Lindenbergh R,LiuK,et al.IQmulus城市展示:在巨大的移动地图点云中进行自动树木分类和识别。Int Arch Photogramm Remote Sens Spatial Inf Sci 2016;XLI-B3:301http://dx.doi.org/10.5194/isprs-archives-XLI-B3-301-2016。6米。Krämer/SoftwareX 11(2020)100409[10]Belényesi M,Kristóf D. IQmulus公共项目可交付成果D1.2.3 -修订的用户需求。Tech.代表,2014年。[11] PostGIS。2019,https://postgis.net/,[2019年10月25日访问]。[12]PostgreSQL。2019,https://www.postgresql.org/,[2019年10月25日访问]。[13] 地理服务器。2019,http://geoserver.org/,[2019年10月25日访问]。[14] 度2019,https://www.deegree.org/,[2019年10月25日访问]。[15]3DCityDB。 2019,https://www.3dcitydb.org/,[2019年10月25日访问]。[16]Gröger G,Kolbe TH,Nagel C,Häfele K-H,editors. OGC城市地理标记语言(CityGML)编码标准2.0. Tech.代表, 开放地理空间联盟; 2012年,URLhttp://www.opengeospatial.org/standards/citygml。[17]Portele C编辑OpenGIS地理标记语言(GML)编码标准3.2.1. Tech.代表,开放地理空间联盟; 2007年,URLhttp://www.opengeospatial.org/standards/gml网站。[18] 拉斯达曼2019,https://www.rasdaman.com/,[2019年10月25日访问]。[19] 铯离子。2019,https://cesium.com/cesium-ion/,[2019年10月25日访问]。[20] CesiumJS。2019,https://cesiumjs.org/,[2019年10月25日访问]。[21] 亚马逊S3。2019,https://aws.amazon.com/s3/,[2019年10月25日访问]。[22] MongoDB。2019,https://www.mongodb.com/,[2019年10月25日[23] ElasticSearch 2019年,https://www.elastic.co/de/products/elasticsearch,[于2019年10月25日生效[24]管家[10]杨文,杨文,李文,李文. RFC 7946 -GeoJSON格式。Tech.代表,互联网工程任务组(IETF); 2016年,URLhttps://tools.ietf.org/html/rfc7946。[25] Vert.x. 2019,https://vertx.io/,[2019年10月25日[26]张文辉,王文辉,王文辉.反应式宣言V2.0。2014年,https://www.reactivemanifesto.org/,[2019年10月25日访问]。[27] 尼加德山放开它!设计和部署生产就绪软件。Pragmatic Bookshelf;2007.[28] 克雷默·MGeoRocket用户文档。2018,https://georocket.io/docs/user-documentation/,[2019年10月25日访问]。[29] 地球化2019,https://www.terraform.io/,[2019年10月25日访问]。[30]W3C DTD/schema的可扩展地址语言(xAL)标准描述文档-版本2.0。Tech.代表 , 结 构 化 信 息 标 准 促 进 组 织 OASIS; 2002 年 , URL https://www.oasis-open.org/committees/tc_home.php? wg_焦距v =ciq.[31] Hiemenz B,Kramer M.用于在云中存储地理空间数据的动态可搜索对称加密。IntJInfSecur2019;18(3):333-54.http://dx.doi.org/10.1007/s10207-018-0414-4网站。[32] Krämer M,Frese S,Kuijper A.使用微服务在智慧城市云中实施安全应用。未来一代计算系统2019;99:308-20.http://dx.doi.org/10.1016/j.future.2019.04.042网站。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功