海洋物联网云服务软件体系采用面向服务的体系结构(Service-Oriented Architecture, SOA)。SOA是云计算各类资源能够泛网络接入、按需使用的技术基础,作为服务计算领域内的一个可伸缩、松耦合的服务发布和消费平台,让应用开发者通过动态的集成或组合已有的服务至新的云服务中,降低应用开发的难度,从而提高资源的利用率,降低维护成本。
在面向服务的体系结构中,所有功能都经过服务定义,成为独立的服务对外发布。这些服务带有定义明确的可调用的接口,服务之间可通过接口相互调用,并且能够根据海洋物联网业务流程进行组织,对业务应用提供单一或综合服务。同时由于面向服务的体系结构针对不同功能单元进行拆分,天然具备了可动态扩展或动态裁剪的能力,以适配不同应用场景。海洋物联网软件体系架构如图3-4所示,包括基础层、平台层、服务层、应用层和表现层五个层级。
基础层软件由云计算平台厂商提供,提供计算、存储、网络等云计算平台资源虚拟化以及虚拟化管理等功能,为上层应用提供支撑。云计算机平台主要由云服务器和云操作系统构成,云操作系统是运行在云服务器上的虚拟化操作系统,它将云服务器的计算、存储、网络等资源虚拟化,为海洋物理联网应用提供基础的、统一管理的、独立的计算存储单元。云计算平台功能结构如图3-5所示。
图3-4 基于云服务的海洋物联网软件体系架构图
图3-5 云计算平台功能结构图
云计算平台还具备数据加密存储、系统安全隔离的功能,它在实现信息共享的同时,还能控制数据私密性与安全性。资源池化后能够任意地扩容设备,并根据业务系统的需求进行动态的分配资源。这样一来,在故障发生时,任务就能够被迅速迁移到其他主机上,保障了数据的高可靠性和应用的高可用性。
云计算平台在部署上可分为数据中心和用户终端两部分。数据中心云操作系统用于物理资源的统一管理,形成安全可靠的资源池。其采用的服务器虚拟化技术,可以将服务器隔离成多个独立的单元。每个单元都有中央处理器(CPU)、内存、磁盘、网络资源,在其中可以安装完整的各类操作系统,如Windows、Linux、实时操作系统等。操作系统可提供服务器虚拟化和桌面虚拟化功能,两种虚拟化功能可分开部署,也可联合部署。用户终端支持多种终端,如个人计算机(PC)和瘦客户机等。
在基于云服务的海洋物联网软件体系架构中,平台层软件为用户提供一整套开发和运行应用软件,包括基础支撑服务、开发框架、中间件、业务支撑服务等。其中,基础支撑服务包括容器管理、数据库等;开发框架包括分布式系统开发框架、分布式并行计算框架等;中间件服务包括用户界面集成框架、信息集成中间件、消息队列等;业务支撑服务包括三维GIS引擎、大数据平台与智能分析引擎等。
服务层软件是海洋物联网应用系统业务处理的核心,其集成了各类海洋数据储存与管理、数据分析挖掘、数据可视化,以及海洋物联网数据安全共享、运行状态监控等保障数据安全的能力。鉴于其功能的全面性、算法的复杂性、涉及业务的广泛性、涉及数据的多样性和时效性,而各服务间又有其独立性,结合业务需求本身具有弹性伸缩的特点,服务层的设计采用微服务的架构。其本身是轻量级的服务,每个服务实例只提供一种或者密切相关的几种服务,粒度小、轻量级,便于快速开发、部署、测试和升级。微服务之间的调用仅限于接口层的耦合,服务之间依赖性低,具备松耦合的特点;微服务被设计为小粒度的逻辑单元,完整的业务流程可通过合理编排微服务完成,复用性强,具备积木式的特点;在负载均衡的支持下,无状态的微服务可通过增加实例的方式提升整体的吞吐量,具备平滑扩容能力。服务层微服务架构原理如图3-6所示。
图3-6 服务层微服务架构原理图
服务层微服务架构如图3-7所示,整个微服务集群由应用层、服务注册表以及多个节点进程组成。构建于平台层的分布式系统开发框架上的微服务(如数据采集服务、数据智能分析服务、设备管理服务等)可以由一个可扩展标记语言(XML)文件描述,通过命令行工具可以完成微服务的部署、升级、服务启动、服务停止等管理功能。
图3-7 服务层微服务架构图
节点进程运行在集群中的每个由基础层虚拟化出来的虚拟机上,负责启停和监控本机上的所有进程盒,进程盒中装载的就是数据采集、数据智能分析、通信设备管理等微服务,每个进程盒都是单独的进程。进程盒提供启动API创建一个具体的远程进程调用服务对象,将它绑定到网络通信组件上并开始提供服务;进程盒提供停止API、停止和销毁远程服务对象并释放资源的功能。应用层的请求通过服务别名机制将请求按忙闲状态分发给当前可用的微服务实例,实现微服务架构中的负载均衡机制。
应用层面向海洋物联网业务应用,在基础层、平台层、服务层的支撑下,利用经融合处理与挖掘分析形成的海洋目标、海洋环境等信息与相应的功能软件,为海洋航运、海洋执法、海洋渔业、海洋生态环境保护等各类应用提供软件集成应用服务。例如,海洋航运管理应用软件根据用户和业务需求,提供船舶航行状态监控、航道目标综合态势监控、海洋气象水文信息服务和辅助决策支持等功能集成服务。海洋执法管理应用软件提供海上动态监视、船舶预警、执法行动规划等功能集成服务。
表现层承载了系统界面程式代码,分为浏览器和客户端两类,提供了操作员与系统之间交互的接口。海洋物联网应用系统在应用层与表现层间,采用客户机/服务器(C/S)与浏览器/服务器(B/S)相结合的架构模式,客户端为通用Web浏览器或者客户端软件,使用各类开源远程过程调用的方法实现信息的交互,在实现上统一了应用层对表现层的接口形式,从而在功能上满足特定的业务需求。