论文部分内容阅读
随着航运业与互联网的快速发展,将人们带入一个航运信息数据爆炸的时代,各项航道数据,如船舶动态数据、船舶历史数据、航标历史数据,以及港口信息等数据都呈现爆炸式的增长,如何高效地存储、处理和提取海量航道数据成为一个亟待解决的问题。传统的关系型数据库在应付这些问题时已显得力不从心。一方面,传统的关系型数据库在对数据的高并发读写和可扩展性发面存在缺陷;另一方面,传统的关系型数据库在处理地理位置查询时效率较低。MongoDB的出现为解决上述问题,构建高性能的Web应用数据库提供了新的方法。本文基于MongoDB与Node.js的诸多特性,对基于MongoDB的航道数据Web服务和应用进入了深入研究,完成的主要工作如下:(1)基于MongoDB的航道数据建模根据MongoDB数据库的设计原则以及航道数据的应用特点,为船舶、航标和水位分别构建数据库,并基于常规索引和地理索引研究了MongoDB航道数据库的优化方案。此外,以传统关系型数据库Oracle为例,研究了以csv为中间数据格式,将航道数据从关系型数据库迁移到MongoDB数据库的方法。(2)基于MongoDB和Node.js的航道数据服务接口基于MongoDB和Node.js的特点,研究了航道数据服务的基本数据操作接口,以及RESTful Web Services接口,使得MongoDB数据库中存储的航道数据可以方便地通过通用的Web Services接口进行查、改、增和删操作。(3)Web船舶监控应用以航道数据服务接口为基础,研究了在Web地图上进行指定区域查询、坐标点临近查询和复合地理空间查询及航迹查询等一系列船舶监控功能。这些监控功能以地理索引为基础,具有很高的查询效率,并可进一步封装为高层次的WebServices接口,以供各种类型的前端应用。