APP下载

基于SOA的民航广域信息管理架构的研究与设计

2016-02-23赵汨龙罗喜伶王忠波

计算机技术与发展 2016年2期
关键词:广域数据服务航班

赵汨龙,罗喜伶,王忠波

(1.北京航空航天大学 电子信息工程学院,北京 100191;2.通用航空技术北京实验室,北京 100191;3.网络化协同空管技术北京市重点实验室,北京 100191)

基于SOA的民航广域信息管理架构的研究与设计

赵汨龙1,2,3,罗喜伶1,2,3,王忠波1,2,3

(1.北京航空航天大学 电子信息工程学院,北京 100191;2.通用航空技术北京实验室,北京 100191;3.网络化协同空管技术北京市重点实验室,北京 100191)

为了满足民航各系统和空管部门的信息服务能力需求,解决当前民航业务系统间存在的紧耦合、灵活性差、可重用和可扩展性不足等缺陷造成的“民航信息孤岛”现象,实现高效、标准、灵活的民航信息数据服务,文中基于面向服务架构(SOA)的设计原则和思想,进行了民航广域信息管理(SWIM)的功能架构设计和技术架构设计。同时采用服务组件架构(SCA)作为以服务为核心的SWIM构建技术,对服务实现的关键技术,包括基于SCA规范的服务构建和发布、递归组合和服务重用、服务的多通信协议和模式、分布式服务部署等进行了分析研究。最后,结合企业服务总线(ESB)作为服务虚拟化平台,给出了一个基于SOA的SWIM框架下的实现实例。

面向服务架构;服务组件架构;民航广域信息管理;企业服务总线

0 引 言

当前民航运输业的高速发展,使得空中交通流量迅猛增加,对民航信息共享和空管服务能力的要求不断提高。现代民航信息共享和空中交通服务高度依赖信息技术,信息来源涉及广泛,包括通信、导航、监视、气象情报、流量和空域管理、航空公司、机场等各类应用业务系统,这些民航信息是向空管部门、航空公司、机场等行业用户和公众用户提供精确信息服务的基础[1]。但是,传统的业务系统及其之间的信息数据交换共享存在如下缺陷:

(1)各系统软硬件平台各异,兼容性差。

(2)数据结构、格式不同,接口不一致,信息数据的交换共享不顺畅。

(3)安全管理和维护机制不完善,各自为政。

传统系统间缺乏从上而下的统一规划,反映出的灵活性差、可扩展性不强、开发维护成本激增、紧耦合等信息系统的瓶颈问题日益严重,难以适应以数据服务和信息共享为中心的发展趋势[2],制约了信息的高效共享,影响了民航运行效率和质量水平,成为亟待解决的关键难点。

面向服务架构(Service-Oriented Architecture,SOA)是一种企业级大型信息系统的架构思想[3],是以服务驱动的松耦合、强标准的IT架构方式。基于SOA的信息系统中,服务是最核心的抽象手段,业务和功能被划分为一系列粒度粗细不同的可重用的服务或流程,而服务继续被划分为粒度粗细不同的可重用的组件。组件化的服务架构使得信息系统具有很好的高灵活性、松耦合性、可重用性。

文中基于面向服务架构,针对当前民航信息系统遇到的瓶颈问题,开展民航广域信息管理(SWIM)架构的研究,并将重点放在SWIM的功能和相应技术架构的设计以及在SOA中有着核心地位的可重用、高灵活度的基于SCA的组件化服务的研究和实现。

1 面向服务架构(SOA)

SOA概念最先由Gartner公司提出。Gartner将SOA描述为“软件设计的一种方法,不同之处在于强调软件组件的松散耦合,并使用独立的标准接口”。发展至今,SOA仍没有确切定义,它只是一种IT软件架构框架[4],支持将业务转换为一组相互链接的可重用服务,以通过网络访问。该网络可以是本地网络或Internet,该重用服务可以是分散在各地且采用不同平台、语言开发的,通过对组件和服务进行组合装配完成特定业务和功能[5]。

SOA的核心是服务,用“服务”来完成一个或多个任务、业务功能或以流程为中心的应用或系统。它通过服务间定义良好的接口和契约,将不同功能单元如服务(service)联系起来。接口以中立方式定义,与具体实现服务的硬件平台、操作系统和语言无关,使得构建的服务可以使用统一和标准的方式进行通信。这种具有中立接口定义的特征被称为服务之间的松耦合[6]。这种特征也使得SOA具有更低的开发成本、更强的可扩展性以及更低的维护费用。

SOA的核心构建单元是服务组件和组合服务。组件是构成服务的最小组成单元,“组合服务”则是由细粒度的一个或多个组件或服务组合而成。组合服务用于进一步抽象业务功能,通常是粗粒度的服务。细粒度的组件和服务更容易被重用,使得系统灵活性增强,更加敏捷和可管理,这是传统信息系统所完全不具备的能力[7]。

2 民航广域信息管理(SWIM)架构设计

2.1 SWIM的背景

SWIM最初由美国和欧洲提出。20世纪90年代欧美民航高速发展,FAA和欧控意识到现存民航信息系统将不能满足需求,须建立一个可促进信息共享和管理的现代民航信息系统,提供高效、安全的信息服务。随后,该信息系统被美国和欧洲分别列入“下一代航空运输系统(NextGen)”和“单一欧洲天空实施计划(SESAR)”,作为各自系统互联和信息共享的基础。国际民航组织(ICAO)也将SWIM列入航空系统组块升级(ASBU)规划,作为改进全球民航系统互联与数据共享的重要支撑[8]。

国际民航组织对SWIM的互操作框架定义[9]自下而上分别是:SWIM支持的应用层(SWIM-enabled Applications)、信息交换服务层(Information Exchange Services)、信息交换模型层(Information Exchange Models)、SWIM基础设施层(SWIM Infrastructure)和网络连接层(Network Connectivity),各层分别代表对应互操作机制和标准的功能和组合。

将各层抽象后,得到SWIM框架的分层概念[10],如图1所示。图中灰色部分的三层是SWIM框架的核心架构层,也是文中研究和讨论的重点部分。

作为世界未来民航发展的最大市场,SWIM的研究和发展得到了我国的高度重视。SWIM是我国新一代空中交通管理概念中重要的技术支撑平台,被列入《中国民航新一代空中交通管理系统发展总体框架》。旨在将民航的各信息和业务系统改造和建设成一个松耦合、灵活性好、可重用性强、易于扩展和管理的新型信息系统,以一种安全、高效的方式来进行包括航班、流量、气象、航行情报、机场运行等在内的民航信息数据共享[11]。

2.2 基于SOA的民航广域信息管理功能架构设计

根据图1中SWIM框架的分层概念,以及我国民航信息系统现状及业务需求实际,基于面向服务架构的思想和设计原则,将民航广域信息管理整体功能架构自上而下设计为民航业务信息系统层、业务数据服务层、SWIM核心服务层以及SWIM技术基础设施层;同时还设计了企业治理和管理服务两大模块,作为未来SWIM商业化推广、部署和运行的治理架构参考,如图2所示。

图2 SWIM功能架构

(1)民航业务信息系统层:各系统是民航数据服务的提供者和消费者,包括了空管部门、航空公司、机场、公众等各利益相关方的业务系统;

(2)业务数据服务层:根据SWIM核心服务进行服务组合和协调,提供标准服务接口,屏蔽异构系统和基础设施,暴露民航业务数据服务;

(3)核心服务层:使用底层的技术和基础设施,为业务数据服务层提供基础核心服务,包括消息服务、接口管理、安全服务、企业管理服务,实现民航信息的交换和共享[12];

(4)技术基础设施层:提供物理网络连接和必要的硬件设备、软件技术,是整个SWIM运行的基础。

2.3 基于SOA的民航广域信息管理技术架构设计

SWIM的根本目的是提供一个高效的民航信息交换共享平台或系统,且该平台或系统需要解决目前民航业务系统中存在的一系列问题,以达到松耦合、灵活性高、可重用性强、可扩展性好的目的,推进民航信息化进程。

根据图2中SWIM的功能架构、目前各业务应用和系统的技术基础以及SOA的核心思想和原则,将民航广域信息管理整体技术架构自下而上设计为民航信息资源层、资源适配层、服务组件层、服务层、业务流程层、民航业务系统层,如图3所示。

(1)民航信息资源层:包含现有的民航业务应用/系统(遗留应用/系统)和各类民航信息数据库,遗留应用/系统可通过基于服务的集成封装来转入新的民航信息平台,同数据库一起作为上层服务的资源被使用;

图3 SWIM技术架构

(2)资源适配层:对底层的各类民航信息资源开发相应数据适配器,使接入SWIM时符合相应的数据格式和结构,增强数据资源的可重用性;

(3)服务组件层:位于信息资源层和适配层之上,是SWIM的核心构建单元。通过从信息资源层中引用和开发出具有各种功能和逻辑的可重用组件;

(4)服务层:位于组件层之上,是SOA架构特有的层,也是SWIM的核心层。根据业务应用/系统的需求,对组件层的组件进行更高层次的抽象和封装,形成粗粒度服务,具有较强的可定制性;

(5)业务流程层:在服务层基础上,利用BPEL(Business Process Execution Language,基于XML的业务流程执行语言),创建复杂的业务流程;

(6)民航业务系统层:位于最上层,是SWIM的服务表示和交互层。支持多操作平台、多编程语言下的服务表示和交互。

从图3可以看出,一个完整的基于SOA的SWIM技术架构涵盖了从底层到前端的各类技术,在不同的技术人员配合下,可以发挥出巨大的协同增益,搭建一个高效、可靠的信息系统。

限于篇幅和应有所侧重,文中将接下来的重点放在基于SOA的SWIM的核心部分,也就是服务组件层和服务层上。

3 基于SCA的Web服务关键技术研究

SOA架构本身不依赖任何的服务组件,但是作为较为成熟的技术,Web服务是目前较为合适且被广泛应用于SOA实现的技术[13]。

但是,Web服务作为SOA的实现方式也有一些局限性,例如Web服务是一种具体技术,并不符合基于SOA的SWIM架构应该遵循的与技术、平台无关的原则,并且Web服务体系非常庞大,使用和开发都相对复杂,这就妨碍了其部署和集成的范围。

SCA/SDO规范的提出,解决了上述问题,使得Web服务不再受通信和传输协议、编程语言的限制,并可快速方便地进行组建开发、服务装配、分布式部署等,满足了SOA的设计原则。文中选择开源的Apache Tuscany作为SCA的环境。

3.1 基于SCA的Web服务发布

在基于SOA的SWIM中,服务是核心,组件是服务的核心构建单元。SCA中,组件是具体实现业务逻辑和应用功能的地方。根据底层数据资源和上层需要实现的业务功能,进行SCA组件的开发。组件可以是用各类语言编写的类和方法,文中选择Java作为组件开发语言(Tuscany还支持C++等)。

SCA装配模型是SCA规范的核心,除了包括上述的组件(component)外,还包括组合(composite)和域(domain),它描述了组件如何被装配以及服务如何被创建。

组合是SCA的部署单元。一个SCA组合就是一个以.composite为后缀的XML文件,在该文件中定义了组件、服务、引用、属性以及连线。

域是SCA的运行环境,在一个域中可以部署多个组合。

一个基于SCA的Web服务开发和发布步骤如下:

(1)组件开发。根据业务逻辑和功能开发相应的组件,文中使用Java作为开发语言,则实际执行功能的Java类即为组件;

(2)组件部署。在组合定义文件.composite中进行组件部署,根据SCA规范完成组件、服务、引用、属性和连线等元素的配置和设定,即创建服务;

(3)发布服务。在launch类中,通过SCADomain类启动内嵌的Jetty服务器,将在.composite文件中创建的服务暴露并发布。

3.2 递归组合和服务的重用

SOA的重要特征之一便是服务的可重用性,并以此使SOA保持相当程度的灵活性和强大生命力,同时也更易于服务管理。

所谓递归组合,是将组合(composite)嵌套在一起,创建更高级别的装配集。由于每个组合已经暴露至少一个服务,所以递归组合也是服务的重用。

在实际中,可以用组合来构建层叠在一起的服务组织结构,在最低层是执行具体且功能较窄的细粒度组件或服务,往上可以构建包含或基于低层服务的更粗粒度的服务。

3.3 基于SCA的Web服务的多通信协议和模式

传统Web服务使用SOAP over HTTP的单一通信协议已不能满足民航业务系统需求,基于SOA的SWIM应支持多通信协议和传输模式,从传统的点对点转变为以SWIM为核心的共享架构,从传统单一封闭的通信协议转变为服务通信协议透明化中立化,从传统的数据直连、网关中介和报文传输转变为支持同步/异步的请求/响应和发布/订阅的传输方式。

SCA的优势之一是以一种协议中立的方式创建服务。SCA的多通信协议创建和引用服务通过绑定(binging)特性来实现,而和底层具体的实现组件完全无关。例如,需将一个已有的SOAP over HTTP的Web服务增加一个JMS通信协议时,步骤如下:

(1)对原Web服务的WSDL文件进行修改配置,增加JMS协议部分;

(2)修改原Web服务的.composite组合文件,修改服务绑定,使其符合JMS协议;

(3)编写JMS Client,用于测试SCA组件的JMS协议绑定;

(4)配置JMS Client的.composite文件,使其符合JMS协议;

(5)启动ActiveMQ和SCA域,运行JMS Client进行测试。

这样,在之前SOAP over HTTP的基础上,为原Web服务增加了一个新的协议绑定,使其可以响应SOAP over JMS的请求。可以看出,添加新的JMS协议不须要对原有Web服务的目标组件做任何改动,展现出SCA强大的灵活性。

3.4 基于SCA的分布式服务部署

基于SOA的SWIM必须具备分布式服务部署能力,才能将分散在各地的民航信息服务纳入SWIM,构建分布式服务云,让服务变得更加可伸缩,使民航各部门能更灵活地扩展和加强现有服务,这也是SWIM的主要特性之一。

SCA的分布式能力主要有两类:

(1)一个SCA服务对应一个域,域包含一个或多个组合,一个组合包含一个或多个组件。同3.1和3.2中的组件不同的是,这些组件分布在不同的网络节点(Node)上;

(2)一个SCA服务对应多个域,不同的域运行在不同的servlet容器里(比如Apache Tomcat),以远程方式被最终暴露为服务的SCA应用调用。其本质上可以认为是将暴露为服务的SCA服务看作是另几个不同SCA服务的集成和封装。

第一类SCA分布式架构实现的关键点在于将不同网络节点及其不同组合整合到最终暴露为服务的SCA应用的顶级域中。

第二类SCA分布式架构实现的关键点在于对运行在不同域中运行的SCA服务进行远程调用,集成封装到最终暴露为服务的SCA应用中[14]。

以Web服务为核心构建SOA,使得系统构建模式发生了改变。从原来单系统、单应用的面向对象构建模式逐步过渡为多系统、多应用的面向服务构建模式。而基于SCA的Web服务又能很好地满足SOA对协议中立透明、跨平台跨语言、组件和服务重用等原则要求,所以使用基于SCA的Web服务作为SWIM的核心构建技术是较优的选择。

4 基于SOA的SWIM架构下的实现实例

文中在提出基于SOA的民航广域信息管理架构的基础上,使用基于SCA的Web服务技术,并利用企业服务总线作为Web服务中介,实现SWIM架构实例。

以一个综合航班数据服务作为SWIM架构演示实例。该综合航班数据服务作为服务提供者,向服务消费者提供包括飞行信息(航空公司数据库提供)和相关天气信息(现有天气Web服务提供)等在内的航班数据服务。

根据前面所述SWIM技术架构,该航班数据服务自下而上的开发流程如图4所示。

图4 自下而上的开发流程

(1)分析该服务的资源层数据来源,本例中主要有两个数据来源:其一是航空公司提供的基本的飞行信息数据库;其二是已有的天气Web服务,提供每个航班的飞行信息对应的天气信息。为实现飞行数据交换,根据最终提供的服务需求,进行公共飞行数据建模,将飞行数据通过UML建立逻辑模型,再将其映射到可扩展标识语言模式(XML Schema)模型,方便以Web服务方式进行数据交换。

(2)根据服务功能需求,设计和编写服务组件。在该例中包含两个服务组件,分别是“综合航班数据”组件(IntegratedFlightData)和“飞行信息”组件(FlightInfo)。“综合航班数据”作为服务最终的接口暴露,“飞行信息”用于在航空公司数据库中查询基本的飞行信息。

(3)创建.composite文件进行SCA服务组件的装配。已有的天气Web服务通过组合文件中的reference元素进行远程调用,并根据其WSDL文件得到其接口和方法的java类,与步骤(3)中组件的实现类进行业务逻辑和功能交互。启动SCA域,暴露服务。

(4)将通过SCA完成创建和暴露的航班数据服务以服务代理的方式注册和发布到基于ESB的SWIM服务总线上,实现服务的虚拟化。这种服务虚拟化的集成方式可增强SWIM对组件和服务的集成能力,提高敏捷性和可扩展性。

发布完成的航班数据服务的调用流程如图5所示。

图5 航班数据服务调用流程图

需要获取航班数据的服务消费者通过SWIM的业务服务端口向企业服务总线的服务处理端口发送航班数据服务请求;由于航班数据服务在企业服务总线上进行注册和服务代理,所以通过代理服务向航班数据服务提供者的响应端口发出代理服务请求;收到请求后,航班数据服务进行飞行信息数据的查询并获得飞行数据,同时对已有气象服务进行远程调用,获得气象数据;将获得的飞行数据和气象数据进行聚合,作为航班数据服务响应返回给企业服务总线代理服务;最后SWIM服务消费者获得服务响应,得到航班数据。

5 结束语

文中基于面向服务的架构体系设计了针对民航信息系统的民航广域信息管理架构。根据当前民航信息业务实际设计了完善和健全的SWIM功能架构;根据具体技术实际设计了自底层的基础资源和设施到顶层的民航业务终端的技术架构;并介绍了一个基于SOA的SWIM架构的实现实例。解决了目前民航信息系统中因为软硬件差异、数据格式结构不同、接口各异而导致的耦合性强、灵活性差、可重用可扩展性差等一系列“民航信息孤岛”现象。为未来SWIM的实际建设、部署和运行打下良好基础。

[1] Zhao Milong,Luo Xiling,Qi Ming,et al.The research synopsis about SWIM in China[C]//Proc of IEEE ISADS.[s.l.]:IEEE,2015:171-174.

[2] 焦烈焱,冯兴智,杨洪波.SOA中国线路图[M].北京:清华大学出版社,2009.

[3] Jan Schulz-Hofen.Web Service middleware - an infrastructure for near future real life Web Service ecosystems[C]//Proc of IEEE SOCA.[s.l.]:IEEE,2007:261-270.

[4] Gannon P,王 云,刘 松,等.SOA:创新技术、创新应用[R/OL].2006.http://developer.zdnet.com.cn/2006/0821/307665.shtml.

[5] IBM.New to SOA and web services[EB/OL].2015.http://www.ibm.com/developerworks/cn/webservices/newto/.

[6] 黄 婕,王建平.基于SOA云平台的系统架构和虚拟存储机制[J].计算机技术与发展,2013,23(11):95-98.

[7] Davis J.Open source SOA[M].Westampton:Manning Publications,2009.

[8] Prabhu V,Simons M.NextGen and SWIM evolution in the mid-term[C]//Proc of ICNS.[s.l.]:IEEE,2009:1-11.

[9] Standley J,Brown V,Comitz P,et al.SWIM segment 2 deployment and utilization in NextGen R&D programs[C]//Proc of ICNS.[s.l.]:IEEE,2012.

[10] Dicrescenzo D,Strano A,Trausmuth G.System wide information management:the SWIM-SUIT prototype[C]//Proc of ICNS.[s.l.]:IEEE,2010.

[11] 吕小平.中国民航新一代空中交通管理系统发展总体框架[J].中国民用航空,2007(8):24-26.

[12] Meng Qingtao,Luo Xiling,Qi Ming,et al.A multiform SWIM service delivery platform for air traffic management environment[J].International Journal of Digital,2010,6(18):393-400.

[13] 王少林,王 越,申 斌.基于SOA的建筑设备物联网体系架构研究[J].计算机技术与发展,2014,24(1):196-199.

[14] Agirre A,Marcos M,Estevez E.Distributed applications management platform based on service component architecture[C]//Proc of IEEE ETFA.[s.l.]:IEEE,2012.

Research and Design of System Wide Information Management Architecture Based on SOA

ZHAO Mi-long1,2,3,LUO Xi-ling1,2,3,WANG Zhong-bo1,2,3

(1.School of Electronic and Information Engineering,Beihang University,Beijing 100191,China;2.Beijing Laboratory for General Aviation Technology,Beijing 100191,China;3.Beijing Key Laboratory for Network-based Cooperative Air Traffic Management,Beijing 100191,China)

In order to satisfy the information service requirements of the civil aviation system and the aerospace control departments,and solve the current civil aviation information island effect that is caused by tight coupling,low flexibility and lack of reusability and expandability,and realize highly effective civil aviation data service with standardization and flexibility,a SWIM functionality and technique architecture designs based on SOA principles and schemes is presented.It also uses SCA as service-centered SWIM architecture techniques to analyze the SCA-standardized and service-realization-orientated key technologies which involve service structure and publication,recursive composition and service reusability,multiple protocols and modes of service communication and distributed services.At the end,an example based on SOA and SWIM which combines with ESB will be given.

SOA;SCA;SWIM;ESB

2015-05-06

2015-08-10

时间:2016-01-26

国家科技支撑计划项目(2011BAH24B07)作者简介:赵汨龙(1991-),男,硕士研究生,CCF会员,研究方向为空管信息化;罗喜伶,副教授,博士,研究方向为空管信息化。

http://www.cnki.net/kcms/detail/61.1450.TP.20160126.1517.016.html

TP31

A

1673-629X(2016)02-0095-06

10.3969/j.issn.1673-629X.2016.02.022

猜你喜欢

广域数据服务航班
全美航班短暂停飞
地理空间大数据服务自然资源调查监测的方向分析
山航红色定制航班
山航红色定制航班
山航红色定制航班
广域雷达信息采集系统应用
如何运用税收大数据服务供给侧结构性改革
基于频繁子图挖掘的数据服务Mashup推荐
基于免疫算法的高容错性广域保护研究
被动成像广域空中监视系统综述