基于Flex技术的航班信息发布系统的实现

2014-10-21 19:57李娟
计算机光盘软件与应用 2014年24期

摘 要:航班信息发布系统是航空公司、机场等航空服务部门用来掌握航班实时动态信息的重要系统。Flex技术既有桌面软件丰富的表现力,又具有Web应用系统易部署、易维护的特点。本文讲解了基于Flex技术的航班信息发布平台的总体框架,并详细介绍了该平台的主要功能,对系统建设的关键技术进行了详细分析。

关键词:富互联网应用程序;RIA;Flex技术;航班信息发布

中图分类号:TP311.13

为了将空中交通管制部门掌握的航班信息与航空公司、机场、航空油料公司等部门之间实现共享,研制开发一套航班信息发布系统,为这些航空地面保障单位提供多方位的信息服务,就显得相当重要了。

系统的总体架构采用的是客户端/服务器(C/S)架构,这就引发了一个问题,软件分发不方便。如果客户端应用程序发生变化,维护部门不得不对每一个终端软件进行重装和升级。近些年来,随着Web技术的迅猛发展和富互联网应用(RIA)技术的兴起,使得Web应用程序能够实现类似于客户端应用程序的丰富的功能和快速的响应效果。同时Web应用程序维护方便,升级软件时只需要更新服务器端的Web应用,解决了多年来客户端应用难维护的问题。Flex是Adobe公司推出的新一代的开发工具,允许开发者构建和部署Flash平台上的RIA应用,其具备优秀的动画效果,不仅具有快速显示栅格图片的能力,也有强大的矢量数据绘制与交互能力[1]。本文探讨运用Flex技术将航班信息的动态效果显示在网页上,运用FLEX技术实现航班信息发布系统。

1 系统目标与设计

航班的飞行计划以及实时动态信息存储在空管部门的飞行信息处理系统、雷达数据处理系统中,因此我们可以基于浏览器的方式,采用FLEX设计框架以及Web Service技术,建立一套综合的航班信息发布系统,为机场管理部门、航空公司、航空配餐等民航单位提供一个获取和应用飞行计划动态信息的统一信息集成平台。

从安全方面、层次化方面和统一服务三个方面考虑,本系统采用三层体系架构:数据访问层,业务逻辑层,表现层。数据访问层的数据来源于空中交通管制部门的业务系统,包括航班动态信息、航班计划信息、飞行航线信息、航班停机位、用户信息等数据,存储于多个关系型数据库SQL SERVER 2010中。业务逻辑层采用基于.NET平台的Web Service服务实现业务数据的提取、分析、集成以及用户认证等功能。表现层采用Flex技术,实现体验丰富的、互动性强的网页效果。中间服务层通过把应用和数据隔离,所有的应用通过调用统一的Web Service服务获取数据,来构建灵活的系统,使得系统不会受到数据的物理位置的影响,也不会受到需要存取数据信息的应用个数的影响,这样就实现了系统之间的信息的集成。整个系统通过后台服务程序实时获取航班动态信息、航班计划信息、飞行航线信息、航班停机位、开车时间等业务信息,通过Flex技术开发的界面实现航班动态变化的信息显示,快捷的界面响应,提供通用的用户界面特性,如拖放,以及在线和离线操作能力。系统的总体架构如图1所示。

2 系统功能与实现

2.1 系统功能。本系统发布中南地区航班动态、航班计划,航班信息查询、提供关注的航班设置窗口,提供到港航班和变更航班的提示功能,提供航班加油提示功能。航班计划指航空公司向空管单位申请执行的航班计划,包括次日航班计划和航班时刻表。航班计划包括航班号、起飞降落机场、预计起飞降落时间、机型、机号等。航班动态指飞行计划在实际执行过程中的全程动态变化信息。航班动态包括航班变更信息、航班号、机号、机型、任务、起站、落站、预计起飞时间、预计到达时间、实际起飞时间、实际到达时间、停机位、是否延误,是否取消。

基于Flex的航班信息发布网站调用远程Web Service服务,向服务端发送数据调用请求,Web Service服务根据请求类型,对数据库的数据进行提取、分析、融合等处理,将处理后的数据包括航班动态、航班计划、航班历史、停机位信息、查询结果等数据发送到航班信息发布网站。当数据库中的航班信息有更新时,Web Service將最新更新的数据推送到航班信息发布网站,信息发布网站实时刷新数据显示,并提供航班的变更告、到达告警、加油告警等功能。用户可以选择所关注的航空公司,应用程序在提示窗口中根据用户的选择只提示用户所关注的航空公司的航班。

2.2 航班数据的获取和显示。Flex程序客户端代码通常由MXML和Action Script两部分组成。MXML是一种XML格式的标记语言,其作用是进行界面的描述;Action Script是一种面向对象编程语言[2]。航班数据通过调用远程Web Service服务获取得到。Flex有两种方式可以调用Web服务。一种是基于标签。在标记语言MXML中,Flex提供了标签来指向一个服务器对象来获取需要的数据。另一种是基于ActionScript,在脚本中动态创建。第一种方法通过标签的方式,在标签的WSDL参数里指定Web Service的地址,Flex可以用它来查找服务器对象的功能的相关信息,这种方式将服务地址写在代码里,在服务地址变更时需要修改程序代码重新编译,不够灵活。本系统采用的是第二种方法,通过编程方式基于ActionScript实现动态调用服务的方法。创建一个Web Service类型的对象service,通过loadWSDL()方法调用远程Web Service,动态为对象指定相关的处理函数。在使用Web服务前必须要加载WSDL文件,以便令Flex知道该如何收发数据。通过AddEventListener()方法给Service对象增加事件监听代码,成功时调用onSuccess()方法处理返回结果,失败时调用onFault()处理方法。

为了更好地实现Flex应用与基于.NET的Web服务的交互,Web服务返回的数据集合采用的是泛型集合类型List,而未采用DataTable。虽然Flex是可以绑定到DataTable类型的数据并通过数据显示控件显示出来的,但是不足有二点,一是速度比较慢,因为要经过复杂的序列化和反序列化处理,二是返回的数据的可操作性差,在客户端获取数据后,还需要对数据进行更改、排序、过滤等操作。DataTable是个.NET自有的对象类型,在Flex中没有对应的数据类型,无法实现进一步的操作。在Flex中数据保存在数组集合ArrayCollection中可以实现更改、排序等操作,而ArrayCollection正好可以与.NET中的泛性集合List对应,在接收数据时可转换为ArrayCollection数据集合,这样就能够顺利获取数据并进行进一步的操作了。ArrayCollection作为数据提供者有多个优势:第一,可以提供数据的排序、过滤、查找等功能;第二,当数据内容发生更改时,更改会立刻反映到所有绑定到它的控件中;第三,作为显示控件的数据源,数据保存在本地的内存中,刷新和排序的速度非常快,比普通页面需要连到Web服务器刷新要快很多。在数据显示前,对航班数据先按照预计到达时间排序,作为数据网格组件的数据源,并且声明为可动态绑定的,用[Bindable]声明。当数据源的数据变化了,网格组件显示的数据也会动态实时刷新了。程序的显示界面如图2:

构建共享对象保存用户的个性化设置。航班信息发布的应用中,程序需要永久保存用户设置的个性化数据,例如用户关注的航班公司,用户关注的航班,在航班变更提示窗口中需要根据关注的航班进行提示。Adobe Flash提供了共享对象SharedObject类来保存客户端的数据,共享对象与Cookie类似,但是功能更强大,数据不仅可以永久保存,还能保存更加复杂的数据结构。正好满足了航班信息发布网站保存用户的特定设置的需求,以实现更丰富更个性化的用户体验。

Flash的本地共享对象是一些可由用户访问的站点在计算机上创建的数据文件。通过ActionScript脚本来编写代码,网站可以将数据作为共享对象保存在用户的机器上,用户退出浏览器时,共享对象的值就会保存在本地文件中。当用户下次访问该网站时,它将加载该信息,从而使终端用户拥有一种更加个性化的体验。用户在选择界面选择关注的航空公司集合,随后航空公司名称和航空公司的二字码数据集保存在类型为ArrayCollection的复合型数组中。构建一个遍历数组的for循环,在循环里,用数组的元素来填写共享对象数组,这样就实现了将复杂的二维数据集保存到共享对象中了。当用户退出网站时,Flash Player自动将共享对象写入磁盘默认路径上一个后缀名为.sol文件中。也可以通过调用共享对象的fulsh()方法,立即将数据写入磁盘。在用户下一次运行信息服务网站时,通过调用SharedObject类的getLocal()方法来读取已经保存的后缀名为.sol的文件。最后,构建一个for循环来遍历保存在共享对象中的数据,将结果保存到类型为ArrayCollection的数组中,网页上的表格显示控件绑定數组,将航空公司的信息显示出来,便完成了个性化设置的数据加载的功能。

3 结束语

信息技术的迅猛发展为基于Web方式的应用注入了活力。Flex技术与传统Web技术相比,具有完整的浏览器可移植性,丰富的界面体验、更少的网络流量、更快捷的操作响应等优势。在我国民航事业的飞速发展形势下,航班信息的发布是民航信息化不可缺少的重要组成部分,基于Flex技术的航班信息发布系统提供实时准确的信息,丰富的功能和用户体验,具有易部署、易维护、跨平台的特定,符合民航建立高效信息服务平台的需求。目前该系统已在中南地区空管系统内运行,为航班信息服务提供了稳定高效的平台。

参考文献:

[1](美)Jeff Tapper,Micael Labriola,Matthew Boles,James Talbot.杨博,杜宏,译.Flex 3权威指南[M].北京:人民邮电出版社,2009.

[2]彭新,刘永伟,叶长春.基于Flex和.NET开发RIA[D].武汉:中国地质大学,2010.

作者简介:李娟(1976-),女,浙江苍南人,工程师,本科,研究方向:航班信息系统应用与开发。

作者单位:民航中南空管局,广州 510405