论文部分内容阅读
摘要:基于微服务架构的民航综合信息显示系统的设计是通过三层分离和微服务架构提供的细粒度化模块构建方式将民航综合信息显示系统所包含的应用功能进行分解,将系统所包含的航行情报信息、气象信息、飞行计划信息等功能模块拆分为独立的运行模块,各运行模块之间的部署、运行、故障处理等相互独立并且以消息交互的方式接入到由微服务架构提供的注册中心进行统一监控维护以提高系统设计的敏捷性、可伸缩性和可用性,同时通过网关隔离、断路器、回退等机制提升系统的安全稳定性,通过配置管理提高属性的快速编辑。
关键词:微服务架构;民航综合信息显示系统
1引言
依据Martin Fowler 在Microservices 中的描述,“微服务架构”一词是在过去几年里涌现出来的,它用于描述一种独立部署的软件应用设计方式。微服务这种架构风格就是把一组小服务演化成为一个单一的应用的一种方法。每个应用都运行在自己的进程中,并通过轻量级的机制保持通信,就像HTTP这样的API。这些服务要基于业务场景,并使用自动化部署工具进行独立的发布。可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。
民航综合信息显示系统旨在采用信息化的手段为空管局提供一套包含气象数据、情报数据、飞行计划数据等信息数据的采集、存储、显示管理等功能的信息一体化显示系统为管制席位提供可视化的、直观化、综合化的信息服务,提高席位的信息数据共享,提供信息数据的历史查询、及时消息推送与重要信息告警等功能,避免管制员“错”、“忘”、“漏”,提升管制员的工作效率和工作质量。为适应信息技术的发展,系统采用层次化、组件化的软件体系结构,要求具有体系结构稳定、可移植性好、易于扩充等特征。
综合考虑微服务架构的特点及民航综合信息显示系统的要求,基于微服务架构的设计将能更好的满足民航综合信息显示系统的需求,提升民航信息化建设的水平。
2正文
由于民航综合信息显示系统需要处理的信息种类比较多,信息量大,一般化的信息系统建设难以满足系统运行所需的高稳定、低耦合的要求,结合系统需要采集、存储、显示管理等功能的要求本文将系统分为信息引接、信息存储、信息发布三层分别建设。
2.1 信息接入层设计
信息接入层包括气象数据、情报数据、飞行计划数据等部分,这些数据在引接过程中数据源千差万别,比如气象数据来自机场自观系统、情报数据来自情报中心、飞行计划数据来源于飞行计划集中处理中心等,同时各种数据之间在引接过程中相互关联性较弱甚至没有任何关联,在引接过程中处理的方式也因业务的不同有所差异,因此可以将每个数据引接类别建立成一个独立的微服务客户端(Service),如下图:
每个微服务客户端(Service)负责各自的数据接收、格式转换、数据清洗等工作,并将处理完的符合要求的数据同步到数据存储模块中,相互之间相当于互相独立的程序系统,可以独立开发、部署和运维,信息交互完全隔离。
2.2信息存储层设计
信息存储层负责信息数据的长期有效保存,在整个系统中起到承上启下的作用,既可以实时接收并且保存信息接入层的数据,同时可以实时响应信息发布层的索取响应,提供有效的数据服务。该部分可以采用关系型数据库,如Oracle、SqlServer等,也可以应用非关系型数据库如HBase、MongoDB等,不管哪种数据库,里面的表结构设计都可以依据业务划分设计成独立表或是独立表空间,下面是基于Oracle 11g的数据表简要设计:
2.3信息发布层设计
信息发布层主要负责获取信息存储层的信息数据,经过业务逻辑处理后,实时响应外部请求,是整个系统对外发布信息的窗口,与信息接入层在业务功能上不存在必然的信息数据交互,因此建立独立的微服务服务器,监视管理信息发布层的微服务客户端(Service)。
信息发布层根据不同的数据业务同样划分为气象信息交互模块、情报信息交互模块、飞行计划信息交互模块等微服务客户端,充分分离业务提高程序的稳定性和伸缩性,每个模块独自获取数据并且依据微服务网关转发的请求进行数据的业务逻辑处理并且向微服务网关移交处理后的信息数据。由于对信息发布层的微服务客户端的访问存在两级及以上信息转发的过程,短暂的网络故障、服务器宕机、网络负载过大可能会造成单节点无法及时响应,从而产生各级的级联故障,为最大程度的提高程序的可靠性与稳定性,每个信息交互模块中加入断路器、回退等机制控制模块内部的特殊异常。
信息發布层由于面向多种用户,多种业务交错调用,网络环境复杂,直接访问既提升了访问的难度,同时加大了安全隐患。微服务网关提供身份验证和安全性、观察和监控、动态路由、负载分配、静态响应处理、路由多样化等功能,通过网关将信息请求过程划分为内外两个部分,将集群的服务都隐藏到网关后面,屏蔽内部结构的复杂性并且对外提供统一的网络访问端口,提高访问便捷性,同时提升了集群的安全性。
配置服务器中包含每个模块的端口、服务名、转发路由等属性信息,当发生属性变更时,配置服务器可以在程序不间断运行的情况下通过消息通知的方式将配置属性传递到相应的微服务客户端,实现属性的在线更改,提高属性修改的效率。
3结语
基于微服务架构的民航综合信息显示系统的设计是综合考量民航综合信息显示系统的业务需求和微服务架构的特点,在三层分离的基础上将系统化整为零、充分分解为独立运行的客户端,每个客户端的业务、故障、稳定性等的处理相互独立,在信息接入层和信息发布层上分别由微服务服务器统一监控并且管理。高度的解耦使系统的敏捷性、可伸缩性、可用性及运行效率等等得到极大的提高。网关的安全隔离、断路器/回退的局部故障分离、配置服务器的动态属性变更等策略进一步提升了系统的安全性和运行稳定性。随着业务的变更,整个系统可以在不间断运行的情况下,撤销、增加相应的业务客户端,极大的提升了民航综合信息显示系统的适应性。
参考文献:
[1]Martin Fowler,Microservices,2014.3.
[2]杨恩雄,疯狂Spring Cloud微服务架构实践,2018.1.
[3]《中国民航国际通信手册》.
(作者单位:南京莱斯信息技术股份有限公司)
关键词:微服务架构;民航综合信息显示系统
1引言
依据Martin Fowler 在Microservices 中的描述,“微服务架构”一词是在过去几年里涌现出来的,它用于描述一种独立部署的软件应用设计方式。微服务这种架构风格就是把一组小服务演化成为一个单一的应用的一种方法。每个应用都运行在自己的进程中,并通过轻量级的机制保持通信,就像HTTP这样的API。这些服务要基于业务场景,并使用自动化部署工具进行独立的发布。可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。
民航综合信息显示系统旨在采用信息化的手段为空管局提供一套包含气象数据、情报数据、飞行计划数据等信息数据的采集、存储、显示管理等功能的信息一体化显示系统为管制席位提供可视化的、直观化、综合化的信息服务,提高席位的信息数据共享,提供信息数据的历史查询、及时消息推送与重要信息告警等功能,避免管制员“错”、“忘”、“漏”,提升管制员的工作效率和工作质量。为适应信息技术的发展,系统采用层次化、组件化的软件体系结构,要求具有体系结构稳定、可移植性好、易于扩充等特征。
综合考虑微服务架构的特点及民航综合信息显示系统的要求,基于微服务架构的设计将能更好的满足民航综合信息显示系统的需求,提升民航信息化建设的水平。
2正文
由于民航综合信息显示系统需要处理的信息种类比较多,信息量大,一般化的信息系统建设难以满足系统运行所需的高稳定、低耦合的要求,结合系统需要采集、存储、显示管理等功能的要求本文将系统分为信息引接、信息存储、信息发布三层分别建设。
2.1 信息接入层设计
信息接入层包括气象数据、情报数据、飞行计划数据等部分,这些数据在引接过程中数据源千差万别,比如气象数据来自机场自观系统、情报数据来自情报中心、飞行计划数据来源于飞行计划集中处理中心等,同时各种数据之间在引接过程中相互关联性较弱甚至没有任何关联,在引接过程中处理的方式也因业务的不同有所差异,因此可以将每个数据引接类别建立成一个独立的微服务客户端(Service),如下图:
每个微服务客户端(Service)负责各自的数据接收、格式转换、数据清洗等工作,并将处理完的符合要求的数据同步到数据存储模块中,相互之间相当于互相独立的程序系统,可以独立开发、部署和运维,信息交互完全隔离。
2.2信息存储层设计
信息存储层负责信息数据的长期有效保存,在整个系统中起到承上启下的作用,既可以实时接收并且保存信息接入层的数据,同时可以实时响应信息发布层的索取响应,提供有效的数据服务。该部分可以采用关系型数据库,如Oracle、SqlServer等,也可以应用非关系型数据库如HBase、MongoDB等,不管哪种数据库,里面的表结构设计都可以依据业务划分设计成独立表或是独立表空间,下面是基于Oracle 11g的数据表简要设计:
2.3信息发布层设计
信息发布层主要负责获取信息存储层的信息数据,经过业务逻辑处理后,实时响应外部请求,是整个系统对外发布信息的窗口,与信息接入层在业务功能上不存在必然的信息数据交互,因此建立独立的微服务服务器,监视管理信息发布层的微服务客户端(Service)。
信息发布层根据不同的数据业务同样划分为气象信息交互模块、情报信息交互模块、飞行计划信息交互模块等微服务客户端,充分分离业务提高程序的稳定性和伸缩性,每个模块独自获取数据并且依据微服务网关转发的请求进行数据的业务逻辑处理并且向微服务网关移交处理后的信息数据。由于对信息发布层的微服务客户端的访问存在两级及以上信息转发的过程,短暂的网络故障、服务器宕机、网络负载过大可能会造成单节点无法及时响应,从而产生各级的级联故障,为最大程度的提高程序的可靠性与稳定性,每个信息交互模块中加入断路器、回退等机制控制模块内部的特殊异常。
信息發布层由于面向多种用户,多种业务交错调用,网络环境复杂,直接访问既提升了访问的难度,同时加大了安全隐患。微服务网关提供身份验证和安全性、观察和监控、动态路由、负载分配、静态响应处理、路由多样化等功能,通过网关将信息请求过程划分为内外两个部分,将集群的服务都隐藏到网关后面,屏蔽内部结构的复杂性并且对外提供统一的网络访问端口,提高访问便捷性,同时提升了集群的安全性。
配置服务器中包含每个模块的端口、服务名、转发路由等属性信息,当发生属性变更时,配置服务器可以在程序不间断运行的情况下通过消息通知的方式将配置属性传递到相应的微服务客户端,实现属性的在线更改,提高属性修改的效率。
3结语
基于微服务架构的民航综合信息显示系统的设计是综合考量民航综合信息显示系统的业务需求和微服务架构的特点,在三层分离的基础上将系统化整为零、充分分解为独立运行的客户端,每个客户端的业务、故障、稳定性等的处理相互独立,在信息接入层和信息发布层上分别由微服务服务器统一监控并且管理。高度的解耦使系统的敏捷性、可伸缩性、可用性及运行效率等等得到极大的提高。网关的安全隔离、断路器/回退的局部故障分离、配置服务器的动态属性变更等策略进一步提升了系统的安全性和运行稳定性。随着业务的变更,整个系统可以在不间断运行的情况下,撤销、增加相应的业务客户端,极大的提升了民航综合信息显示系统的适应性。
参考文献:
[1]Martin Fowler,Microservices,2014.3.
[2]杨恩雄,疯狂Spring Cloud微服务架构实践,2018.1.
[3]《中国民航国际通信手册》.
(作者单位:南京莱斯信息技术股份有限公司)