基于SOA架构的多平台民航气象服务系统设计

时间:2022-09-19 03:42:34

基于SOA架构的多平台民航气象服务系统设计

【摘 要】本文使用基于SOA面向服务架构的松耦合应用系统来为用户提供服务,可满足不同航空用户多样化需求和航空气象信息服务的飞速增长。该文详细介绍了一种基于SOA架构的松耦合、分布式、多平台气象终端用户服务系统的设计与实现方法,该系统服务层使用WCF技术,实现将各类航空气象服务产品集成到一个统一管理的服务层中,并通过使用WSDL标准文档格式来向用户公开服务合约,使客服端可以利用Windows、Andriod、IOS、Web等多种平台实现跨平台和功能各异的用户界面层。

【关键词】面向服务;分布式;松耦合;WPF;WCF

0 引言

近年来,民航局提出全面推进建设民航强国的战略构想,航空运输业发展十分迅速,航空气象服务作为民航业中的一个组成部分,在终端服务平台方面还相对落后:一是,全国民航气象服务缺乏一套界面友好的、功能齐全的、可扩展的终端用户服务系统。二是,民航气象的用户终端服务平台大多数依赖于各套系统提供的单一终端,没有很好的进行系统集成,在平台选择也通常局限于Windows桌面应用程序。

随着IT业计算机、互联网和移动设备的高速发展,3G、Wifi等无线网络技术以及平板电脑、智能手机等新设备已经逐渐融入人们的工作和生活中。因此,为跟上时代和航空运输业高速发展的步伐,适应航空用户在不同环境下的多元化需求,建立一个能够跨多个平台的民航气象终端用户服务系统是非常必要的。

1 SOA面向服务分布式系统架构介绍

1.1 SOA面向服务架构

SOA(Service-Oriented Architecture,面向服务架构)架构的基本思想是构建一个松耦合的系统[1],SOA允许用户以一定的方式组织分布式应用程序,使业务逻辑与用户界面可以分别集中处理。在SOA系统中,服务的具体操作对客户端来说是不可见的,服务与客户端之间唯一共同拥有的东西,就是公开的服务操作列表和参数结构定义。客户端只知道用来描述服务函数的名称、输入参数名称和类型,以及函数返回类型,除此之外,与服务端不存在其他依赖性,不管是客户端还是服务端,都可以采用不同的开发平台来实现。

1.2 WCF开发技术

WCF是微软公司为实现SOA架构提供的开发平台,该平台从.NET Framework 3.0开始,整合了.NET Framework 3.0之前的ASMX、.Net Remoting、Enterprise Service、WSE等技术, 并使用WSDL标准文档格式来向用户公开服务合约,因此利用WCF可以满足包括安全、可信赖、互操作、跨平台通信等需求。

合约(Contract)是WCF 的基本概念,它是定义服务端和客户端双方沟通的协议,合约以接口的方式来体现,包括数据合约、服务合约、操作合约和消息合约。

2 民航气象服务SOA架构设计

在基于SOA架构的多平台民航气象终端服务系统中,服务层需要包括:民航气象报文服务、飞行气象文件提取服务、机场天气警报服务、天气雷达产品服务、气象卫星云图产品服务、自动观测系统数据服务等五个基本服务。

2.1 民航气象报文服务

服务合约接口名:IReport,其中包括:

操作合约:List GetReports(string OBCC, string TT, string ODate, string OTime);根据四字代码、报文类型、时间等返回多个报文。

2.2 自动观测系统数据服务

服务合约接口名:IAWOS,其中包括1个操作合约函数和1个数据合约:

2.2.1 操作合约:AWOSData GetNewestAWOSData(string CCCC,string RNO);根据四字代码和跑道号,返回一个AWOSData类型的自观数据。

2.2.2 数据合约:AWOSData,AWOSData数据对象由自动观测系统各气象要素字段组成。

2.3 天气雷达产品服务

服务合约接口名:IRadarImage。其中包括:

2.3.1 操作合约:RadarData GetNewestImage(string SaoMiaoLeiXing, string HuiBoLeiXing, string JiaoDu, string FanWei);根据扫描类型、回波类型、仰角、范围返回最新的RadarData类型的雷达图像产品。

2.3.2 数据合约:RadarData,RadarData数据对象中包括了雷达图文件名、扫描类型、范围、仰角以及雷达图产品等字段。

2.4 机场天气警报服务(天气通报、报警、反馈)

服务合约接口名:IWeatherAlert,其中包括:

2.4.1 操作合约:List GetNewWeatherAlert(); 返回新的天气警报。

2.4.2 数据合约:WeatherAlertData,WeatherAlertData数据对象中包括时间、人、有效时间、警报内容等字段。

2.5 飞行气象文件提取服务

服务合约接口:IFlightFile,其中包括:

操作合约:byte[] GetFlightFile(DateTime aTime,DateTime dTime,int high);根据航班计划起飞时间、降落时间和飞行高度,用二进制返回pdf格式的飞行气象文件。

3 多平台客户端开发中的服务引用方法

3.1 .NET平台客户端软件服务引用方法

由于WCF本身就是.NET开发平台的一部分,因此在.NET中引用WCF服务十分方便。在Visual Studio中通过“添加服务引用”来自动生成一个服用引用对象,然后在程序中通过该对象即可直接调用服务提供的操作合约函数。

在工程中添加了自动观测系统服务(IAWOS)的引用,自动生成了AWOSServiceRefernce的一个引用对象,在程序中可以很方便的使用服务接口:

AWOSServiceReference.AWOSClient rc = new AWOSServiceRefere-

nce.AWOSClient(); //实例化一个对象。

rc.GetNewestAWOSData("ZPPP", "01"); //调用服务函数,获取“ZPPP”的1号跑道的自观数据。

3.2 Andriod 和ISO平台客户端软件服务引用方法

3.2.1 在Android系统中通过KSOP2开发包访问wsdl,在工程中加载ksoap2.jar开发包后,就可以直接通过KSOP2开发包中的SoapObject对象访问wsdl。在开发时需要注意,由于Android系统默认禁用了Soket,所以在开始之前需要在AndroidManifest.xml文件中添加: 。

3.2.2 在IOS系统中通过第三方提供的工具自动生成SOAP本地类,直接引用到工程中。也可以自己封装WSDL操作实现SOAP服务的引用。常用的服务引用类生成工具主要有:WSDL2OBJC和SudzC。WSDL2OBJC和SudzC能够根据WSDL将SOAP服务转化成Object接口和数据结构。

4 结束语

通过WCF技术实现的SOA架构民航气象终端服务系统,使各服务接口之间、服务接口与用户终端程序实现松耦合连接,系统功能扩展容易。由于服务接口使用了WSDL标准文档格式,因此可以实现Windows、Andriod、IOS等主流平台与服务接口的通信,能够满足多元化的航空气象终端用户需求。

【参考文献】

[1]Pablo Cibraro.WCF 4 高级编程[M].北京:清华大学出版社,2011:423.

上一篇:城市酒吧音乐的现状与改革研究 下一篇:视频内容特征的提取