一种数据监测平台技术架构设计思路

      平台技术架构采用业界最为成熟的SOA(面向服务的架构)框架,遵循统一技术路线,架构设计注重层间的松耦合与层内的高内聚,通过对业务的抽象、映射实现业务对象组件化和统一的服务调用,充分考虑了系统的可扩展性、可复用性、可配置性,降低开发和维护成本使得系统能够随需而变,快速灵活满足业务变化的需要。

     平台分为四个层次:数据处理、数据存储、数据应用和数据展示。依据系统开放性原则,本平台所采用的技术均为开源软件或者技术框架,保证平台开发没有任何技术壁垒,也不会带来额外的软件版权费用和问题,同时也能够给第三方对接提供最好的开放性,技术选型支持通用的操作系统和多种硬件平台环境,每个层次采用的技术如下图所示:

技术架构图

数据处理层:采用ETL对数据进行质量校验、脏数据清洗,采用支持向量机模型对数据质量进行提升,包括异常点发现和处理、缺失数据补全等。统计分析包括发电指标统计、光资源指标统计、组件关键运行指标统计、逆变器关键运行指标统计、系统效率指标统计等,提供分类汇总、同比环比、偏差分析、排名分析等统计维度。除了常规的数据统计方法,本项目还采用聚类分析、时间序列分析和趋势分析等模型算法,对数据进行深度挖掘,为用户提供决策支持。

数据存储层:提供三种数据存储方式:实时内存数据库Redis、关系型数据库Oracle和文件存储系统。

选择Redis作为内存数据库,主要原因如下:

超高的性能:Redis的处理速度非常快,不少数据显示它可以每秒进行数十万次的操作。

支持多种数据类型:这是Memcached所不具备的。除了最基础的字符串,Redis还支持多数开发人员常用的散列(Hash)表、列表(List)、集合(Set)、有序集合(Sorted Set)。丰富的数据结构选择,使得设计者们可以更容易地解决多样的业务需求。这点与MongoDB对复杂文档对象的支持是颇为相似的。

持久化存储:这也是Memcached暂不支持的。Redis支持两种持久化方式,即RDB镜像和AOF日志。

选择关系型数据库Oracle作为原始数据库、历史数据库和统计数据库。主要基于Oracle最为成熟,具备完成的数据管理功能,轻松实现数据仓库的操作,可用性、可扩展性、数据安全性和稳定性强。按照招标文件中的要求,开启Oracle数据库审计功能,对用户所执行的数据库活动的跟踪记录,便于事后监督、检查,提高了数据库的安全性。采用RAC、读写分离、归档、灾备技术,搭建Oracle集群应用,当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能和高可用性。

文件系统传输技术采用HTTP、FTP、CDN、P2P四种方式。HTTP利用服务器的带宽和存储传输分发文件,适合网页、图片这类的小文件;FTP也是利用服务器带宽进行分发,适合相对于HTTP传输较大的文件、图片传输;CDN和P2P是在较大规模应用的情况下,文件传输服务器搭建的策略。

数据应用层:数据应用层提供数据服务接口、消息推送服务、统计报表、工作流引擎、VR引擎等应用。

其中,数据服务接口采用RESTful技术实现,为前端应用提供周期性数据访问接口,第三方系统也可以实现与平台的高度集成,从而提高功能模块的复用性,并降低不同系统之间的集成难度;WebSocket提供数据推送方式,实现运行监测、实证监测数据在网页端秒级刷新显示;工作流引擎基于Spring Activiti技术实现。

数据展现层:提供门户网站(Element-UI、Vue.js、Axios)、图表应用(Echarts)、移动应用(Mint UI)和可视化大屏展示(SVG、WebGL、OpenLayers)等。PC浏览器应用采用Element-UI技术实现,Element-UI是一套为开发者、设计师和产品经理准备的基于Vue2.0的桌面端组件库;移动端应用采用Mint UI技术实现,Mint UI是基于Vue.js的移动端组件库; Mint UI是Element-UI在移动端的技术实现方式,二者之间可以快速移植,且都可以部署在Node.js环境运行,Node.js是一个JavaScript运行环境,用于方便地搭建响应速度快、易于扩展的网络应用,同时对桌面电脑、笔记本电脑、平板和手机等访问本系统页面可自适应分辨率,保证不同分辨率模式下的用户体验;

VR引擎基于openVR技术实现;GIS引擎基于OpenLayers技术实现。

移动APP开发采用Hybrid App模式(混合模式移动应用),介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”,既能快速生成Android和iOS应用,又能兼具良好的用户体验,可根据请求终端的类型或屏幕分辨率自适应调整界面布局。更重要的是,这种模式极大的降低了开发时间,而且能够做到web、Android、iOS三种应用快速更新。

你可能感兴趣的:(一种数据监测平台技术架构设计思路)