具有违规反馈的资源调度 【相关申请的交叉引用】
本申请要求如下优先权:于2007年3月1日提交的美国临时专利申请序列号No.60/892,405,以及于2007年12月20日提交的美国实用新型申请序列号No.11/961,612。在此通过参考将这些申请内容并入于此。
【技术领域】
本文档描述了一种包括软件应用套装的航空公司操作计算系统。
背景技术
需要复杂的计算系统来管理航空公司的操作。存在支持航空器和机组人员的规划、逐日操作管理和报告的航空公司操作计算系统。另外,存在这样的航空公司操作计算系统,该系统使航空公司能够管理航班机组人员、由于服务中断(诸如,天气或者机械延迟)而受影响的设备和乘客。
典型的航空公司操作系统是复杂的,并且需要管理大量数据。另外,在所管理的操作非常快速地改变(由于天气或者机械延迟)的情况下,使用这些系统。这样,这些系统需要便于使用,并且允许非常快速地作出决定。
由于在调度中必须考虑规则的数量和复杂度,这使得航空公司操作的调度进一步复杂化。存在如下系统,该系统具有规则引擎和规则数据库,所述规则引擎和规则数据库支持针对已经作出的调度改变来检查是否违反了任何规则。除了在作出调度改变的复杂规则环境中之外,进一步的复杂度来源于如下事实:多个不同的用户可以与调度进行交互,并且尝试作出影响整体调度中其他部分的调度改变。
【发明内容】
通常,提供一种航空公司操作计算系统,该计算系统以有效并且可用的方式来完成规则检查,并且提供如下功能,允许多个不同用户以将不同调度者之间的冲突最小化的方式来实现调度改变。
在一方面中,提供了一种方法,用于修订航空公司或者其他类似运输公司操作的资源调度。所述方法包括:接收针对航空公司操作的资源调度的一个或者多个所提议改变的集合。所述方法进一步包括:当作出所述集合的一个或者多个所提议改变的每个改变时,在基于所述一个或者多个所提议改变的集合修订所述调度之前进行检查,利用电子规则引擎来确定所提议的改变是否违反了多个预定规则中的任何预定规则,以及如果违反了所述多个预定规则中的任何预定规则,则提供响应性显示来指示所述改变违反了所述一个或者多个预定规则。所述方法进一步包括:接收交付所述一个或者多个所提议改变集合的用户输入,以及作为响应,更新用于搜索航空公司操作的资源调度以便包括所述一个或者多个所提议改变的集合。
在各种实现中,所述方法可以包括一个或者多个以下特征。所述资源调度可以包括航班机组人员资源。所述预定义规则可以包括由航空公司规范组织提供的规则,例如,所述航空公司规范组织是美国联邦航空管理局。所述预定义规则可以包括关于在特定位置处的第一航班的到达时间直到第二航班从所述特定位置的起飞时间之间的最小允许时间段的规则。所述规则引擎可以接收关于航班调度中关于改变的信息。
附加地或者备选地,在响应性显示指示所述改变违反一个或者多个预定义规则之后,可以接收一个或者多个所提议改变集合的所提议改变,该所提议改变提议的改变使得不再违反被违反的规则。在使得不再违反被违反的规则的所提议改变被接收之后,所述响应性显示指示可以不再显示所述改变违反所述一个或者多个预定义规则。备选地或者附加地,可以提供第二响应性显示,以指示不再违反所述违反的规则。可以更新用于所述航空公司操作的所述资源调度来包括一个或者多个所提议改变的集合,即使所述一个或者多个所提议改变中的一个或者多个所提议改变违反了所述多个预定义规则中的至少一个预定义规则。
还提供了计算机程序产品,用于执行上述用于修订航空公司或其他类似操作的资源调度的方法。此类计算机程序产品以有形方式包含于计算机存储介质中并且包括指令,当由处理器执行所述指令时,使得执行执行用于修订航空公司操作的资源调度的上述方法。另外,提供了计算系统,对其编程以执行用于修订航空公司操作地资源调度的上述方法。
在另一方面中,提供了一种航空公司操作计算系统,其包括公共规则引擎。更具体地,所述航空公司操作计算系统包括:至少一个计划优化器和决策支持系统、调度优化器和决策支持系统、以及操作日恢复优化器和决策支持系统。所述系统还包括:公共规则引擎,与上述至少两个优化器和决策支持系统一起使用。
在各种实现中,具有公共规则引擎的航空公司操作计算系统可以包括一个或者多个以下特征。所述计划优化器和决策支持系统可以是或包括机组人员资源优化器。所述计划优化器和决策支持系统是或包括航班调度优化器。所述调度优化器和决策支持系统是或包括机组人员配对和机组人员名册优化器。所述调度优化器和决策支持系统可以是或包括航空器行程优化器。所述调度优化器和决策支持系统可以是或包括用于接收特定航班的机组人员出价的优化器。所述操作日优化器和决策支持系统可以是或包括航空器恢复优化器、机组人员恢复优化器和/或乘客恢复优化器。
在另一方面,提供了一种用于实现对系统中的航空公司操作资源调度进行修订的方法,其中允许多个不同用户访问资源调度并且对其进行改变。所述方法包括:从使用第一用户计算设备的第一用户接收针对航空公司操作的资源调度提议的改变,所述提议的改变影响资源调度的一个或者多个航班资源配对。所述方法还包括:在交付所提议的改变并且对资源调度进行更新以包括所提议改变之前,在由第二用户使用的第二用户计算设备上提供至少一部分资源调度的图形化显示,包括以下至少一个或多个:受第一用户的所提议改变影响的一个或者多个航班资源配对、提供标识了受到第一用户所提议改变影响的一个或者多个航班资源配对的可视化指示的图形显示。
在各种实现中,所述方法可以包括一个或者多个以下特征。资源调度的每个航班资源配对可以包括一系列航班中的一个或者多个航班以及相关联的机组人员。在第一用户所提议的改变未决期间,第二用户可以不被锁定以防止提议对受到第一用户所提议改变影响的一个或者多个航班资源配对产生影响的第二改变。
多用户的方法可以进一步包括,从使用第二用户计算设备的第二用户并且在第一用户的所提议改变未决期间接收第二所提议改变,所述第二所提议改变影响受到第一用户所提议改变影响的一个或者多个航班资源配对。在此类情况下,所述方法可以进一步包括接收交付所提议改变的用户输入,以及作为响应来更新航空公司操作的资源调度以包括所提议改变。
另外,一个或者多个航班资源配对中的至少一个可以不具有分配的资源。在此情况下,所提议改变可以提议对尚未具有资源分配的航班资源配对提议资源分配。附加地或者备选地,一个或者多个航班资源配对的全部可以具有已分配的资源,而所提议的改变可以对一个或者多个航班资源配对之一提议改变。
还提供计算机程序产品以用于执行上述多用户调度方法。此类计算机程序产品有形地包含于计算机存储介质中并且包括指令,当由处理器执行所述指令时,使得执行上述方法,以便在系统中修订航空公司操作的资源调度,在所述系统中,允许多个不同用户访问资源调度并且对其作出改变。另外,提供了计算系统,对其编程以执行上述多用户方法。
参考附图以及下文的说明书,可以理解其他特征和优点。
【附图说明】
图1A是航空公司操作计算系统的一个实现的框图,其示出了构成套装的应用软件程序的各种模块;
图1B是航空公司操作计算系统的一个实现的框图,其示出了构成具有多个客户端的套装的应用软件程序的各种模块;
图2是用于编辑航空公司操作规则参数的一个示例性过程的流程图;
图3是用于编辑航空公司操作调度的一个示例性过程的流程图;
图4A至图4C示出了用于编辑配对的示例性用户界面的屏幕截图;
图5是多个用户可以用于编辑航空公司操作调度的示例性过程的时间线图示;
图6A至图6J示出了用于编辑航空公司操作调度的示例性用户界面的两个实例的屏幕截图;
图7A至图7B是可以如何将一个配对划分至多个配对的示例性屏幕截图;
图7C是示出分配给配对的两个机组人员和配对调度的示例性屏幕截图;
图8示出了示例性规则处理系统;
图9A是结合公共规则引擎的航空公司操作计算系统的框图;
图9B是包括公共规则引擎的图9A的系统中部分的框图;
图9C是使用图9A和图9B的系统的监视违规的方法的流程图;以及
图10是可以基于其来执行各种基于软件的方法的通用计算系统的框图;
在不同附图中,相同的编号指示相同的结构或者过程。
【具体实施方式】
图1A是航空公司操作计算系统100的实现的框图,其示出了构成套装的应用软件程序的各种模块。通常,航空公司操作计算系统100执行与航空公司操作功能全部方面有关的功能。这包括:计划、调度以及操作日功能。
在图1A的示例中,系统100包括:航空公司操作客户端层102、航空公司操作网络层104、航空公司操作应用层106、以及航空公司操作数据库层108。通常,航空公司操作客户端层102执行如下功能,这些功能提供用户通过其可以与系统100进行交互的接口。出于示出目的,在图1A中示出了一个此类客户端层102;通常,在各种不同位置中,在系统中将存在多种此类的发挥类似功能的客户端。
航空公司操作客户端层102包括:显示设备110、航空公司操作客户端应用112、web浏览器114以及客户应用116的集合。显示设备110可以是计算机的监视器、便携式设备的屏幕、移动设备的显示器或者其他可视输出设备,在此仅以示例方式示出。显示设备110提供用于航空公司操作客户端应用112、web浏览器113和客户应用116的集合的可视输出。
航空公司操作客户端应用112包括多个软件模块。在图1的示例中,所述模块是计划和调度模块118、操作日和恢复模块120、监管模块122以及客户端服务模块124。计划和调度模块118提供用户界面功能,用于查看和编辑航空公司资源调度,诸如在受调度的航班、飞机以及机组人员之间的调度和分配。此模块118包括:例如,机组人员计划功能,其包括长期在职的机组人员,机组人员调度功能,其包括配对产生(将在下文描述)和机组人员名册。例如,计划和调度模块118可以显示屏幕,其允许用户来将班机与计划的航班或者航班序列相关联,将机组人员与航班或者航班序列相关联,以及执行涉及对航班和航空公司资源进行计划和调度的其他任务。
计划和调度模块118呈现用户界面,该用户界面可以用于显示航班配对,并且用于对此类配对进行填充或者改变。配对表示用于指定航班或者航班序列的数据结构,在该数据结构中,诸如机组人员的资源可以与航班或者航班序列相关联。如果没有将资源分配给指定航班或者航班序列,则可以将该航班或者航班序列的配对称为开放配对。依赖于上下文,术语“配对”还可以表示在资源和航班或者航班序列之间的实际关联,这是由于,存在特定资源和特定航班或者航班序列的配对。另外,单一航班或者多个航班的序列可以分组在一起,并且将其称作任务(duty)。可以创建此类分组,这是因为可以将其认为是期望对该任务分配单一资源。在此情况下,可以存在针对构成任务的已分组的航班序列的配对。
计划和调度模块118呈现用户界面,该用户界面可以用于通过向开放配对分配诸如航班机组人员的资源,来填充开放配对,并且还可以用于改变针对配对的资源分配。在资源以及指定航班或者航班序列之间的该关联可以使用拖拽操作来执行。例如,用户可以将特定航班机组人员的可视化表示拖拽至构成任务的已调度航班或者航班序列的可视化表示上;或者反之亦然,以将机组人员与已调度航班或者航班序列相关联。在某些实现中,可以执行相同操作,以便将其他类型的资源(诸如,特定航空器)与航班或者航班序列相关联。另外,例如相对于航空器资源,出于机组人员资源的目的,可以存在不同的航班分组。在另一示例中,用户可以将航班机组人员的可视化表示拖拽至已调度航班,或者反之亦然,由此将机组人员与已调度航班相关联。
计划和调度模块118还可以提供正在编辑配对的可视化指示。例如,当第一用户已经选择并且正在操作模块118的实例以便编辑特定配对(例如,改变分配给配对的飞行员)时,可以在显示设备110上高亮显示配对,以便指示该配对包含尚未交付从而对实际调度施加提议的改变的建议改变。这是有用的,例如,如果用户的注意力离开显示设备,并且用户希望能够快速确定该用户正在执行调度动作的配对。另外,使用不同显示设备的另一用户可以查看来自模块118的另一实例的相同配对,并且在此情况下,该配对可以以可视化方式高亮显示,以便指示该配对正在由另一用户编辑。在以下情况下,即,存在多个甚至众多调度者,并且用户可能希望知晓其他人员是否正在执行将会影响该用户正在查看的配对的调度操作的情况下,这是尤其有用的。
计划和调度模块118可以进一步提供可视化指示,以便指示配对分配或者对配对分配的提议改变违反了在规则数据库中存储的预定义规则。例如,可以将飞行员分配至航班,其将导致飞行员超过在休息时段之间可以飞行的小时数。计划和调度模块118可以导致显示与配对、航班或者资源相关联的指示符,以便指示该配对违反了一个或者多个规则。规则的示例可以是基于航空公司策略、联合规则、航空公司规范组织(例如,美国联邦航空航空局,FAA)、规则以及可以影响如何调度航班资源的其他规则和策略源的指南。
在某些实施方式中,如果存在一个违规或者多个违规,则可以在显示器上提供单一指示符,以便指示存在一个或者多个违规。在其他实施方式中,可以提供多个指示符,其中每个指示符指示不同的违规。附加地或者备选地,对于规则警告,可以存在多个不同的表现类型,其中每个表现类型将指示违规的性质或者类型。例如,一种配对可以导致非关键性规则警告(例如,将过大的飞机分配给具有较少乘客的航班),此类配对可以利用“非关键性”警告图标来显示。在另一示例中,配对可以导致飞行员违反规则或者航班的规范(例如,在没有休息时段的情况下飞行过多的小时数),这可以利用“关键”警告图标来显示。
在某些实施方式中,可以使用多个警告指示符,直到到达规则警告指示符的限制。例如,计划和调度模块118可以显示多达四个单独的指示符,以便指示多达四个违规警告,但是可以由另一类型的警告指示符来表示五个或者更多的规则警告。在当前的示例中,五个或者更多的警告可以由指示警告实际数量的单一图标、通过四个图标以及省略号、或者通过用于指示多个规则警告的某些其他可视化方式来指示。
系统100具有如下架构、设计和软件功能,其支持对基本上实时发生的所提议的调度改变进行检查。例如,系统100支持用户来编辑配对、并提交所提议的改变(但并不交付他们),而系统100将随后在将这些改变交付至数据库之前,对已编辑配对进行违规检查。如果系统100确定所提议的配对改变违反了任何规则,则系统100可以向用户指示已经生成的任何违规警告,如同前文所述。用户继而可以通过执行进一步的改变(还可以基本实时地对违规进行检查),来选择解决可能存在的任何违规,或者并不解决该违规。系统100例如在当用户正在针对配对工作时,在显示屏幕上比较即时地提供违规。在用户对与调度改变满意时,用户可以提供交付调度改变的输入。尽管存在违规,也可以执行,或者在某些情况下,用户已经作出了进一步的改变,所述改变解决了已经产生一个或者多个违规的任何中间改变。
操作日和恢复模块120提供用于操作日管理的一般功能,以及用于处理任何日常中断的功能。例如,操作日和恢复模块120可以提供如下功能,其帮助用户在机组人员意想不到地缺席工作、或者如果天气问题中断了航班操作的情况下,重新分配航班的机组人员。在另一示例中,如果被调度至某航班的航空器已着陆(例如,需要意外维修),则模块120可以提供帮助用户将航空器重新分配至已调度航班的功能。
监管模块122为用户提供如下功能,编辑航空公司资源信息、安全设置、规则参数或者其他监管任务。例如,航空公司规范禁止飞行员在没有休息时段的情况下飞行超过12小时,这一规范可以改变至最大10小时,并且监管模块可以允许用户来编辑最大飞行时间的规则参数,以便反映已更新的规范。
客户端服务模块124提供应用编程接口(API),其处理在航空公司操作客户端层102和航空公司操作应用层106之间的一个或者多个类型的通信。例如,客户端服务模块124可以包括传输控制协议/因特网协议(TCP/IP)消息、分组用户数据报协议(UDP)数据报、封装web服务消息、或者管理其他通信格式和协议。
web浏览器114是这样的应用,其向用户提供一种用于以超文本标示语言(HTML)页面和web应用进行交互的方式。web浏览器114的示例可以包括:从微软公司可获得的Internet Explorer、从Netscape Communications and Weblogs公司可获得的NetscapeNavigator、从Mozilla公司可获得的Firefox、以及从Opera SoftwareASA可获得的Opera Web Browser。
客户应用116集合可以执行并提供各种类型的不同功能,所述功能专用于或者唯一于特定的航空公司。在许多情况下,存在标准软件功能,其通常适用于任何航空公司,并且可以由软件提供商来分发至航空公司,另外,还可以存在附加客户应用,其也是唯一于特定航空公司和/或由另一提供商提供。
在图1A示例中的航空公司操作网络层104包括web服务器128,以便提供web服务功能,其附加地或者备选地引导对航空公司操作层106进行访问,而该航空公司操作层106是由在客户端层102中提供的客户端服务模块124提供的。web服务器128包括web应用模块130、web服务模块132、客户端服务模块134。Web应用模块130提供如下功能,其允许用户通过web浏览器114来执行航空公司操作客户端应用112的一个或者多个功能。
在某些实施方式中,web服务器128的客户端服务模块134与航空公司操作客户端应用112的客户端服务模块124基本相同。在某些实现中,web服务器客户端服务模块134可以提供API,该API可以由web应用模块130和web服务模块132使用,以便与航空公司操作应用层106进行通信。
web服务模块132提供客户应用116和航空公司操作应用层106之间的协议桥接功能。例如,web服务模块132可以使用因特网应用层协议的面向架构的服务协议(SOAP)消息用途来作为传输协议,以便通过网络(例如,因特网)与客户应用116进行通信。
在某些实现中,web服务模块132可以从客户应用116接收SOAP消息,解析SOAP消息,并使用客户端服务模块134来充当在客户应用116和航空公司操作应用层106之间的桥接。在某些实现中,web服务模块132可以翻译来自航空公司操作应用层106和客户端服务模块134的数据,将所述数据封装为SOAP消息,并且将SOAP消息发送至客户应用116。例如,客户端服务116可以使用因特网连接和web服务模块132,来从航空公司操作应用层106请求和获取各种类型的航空公司操作数据。
航空公司操作应用层106包括航空公司操作服务器应用136。航空公司操作服务器应用136包括各种模块,所述模块执行用于对航空公司的航班资源进行计划和调度的功能。这些模块中的某些包括:计划模块138(用于长期在职的航班机组人员)、调度模块140(用于配对和名册的生成)、操作日模块142(用于操作日管理和恢复功能)、规则模块144、配对模块146和名册模块148。
航空公司操作服务器应用136还包括:访问服务模块150和数据访问模块152,以促进与航空公司客户端应用112(直接地或者经由web服务器128)以及与航空公司操作数据库层108进行通信。访问服务模块150分别与客户端应用112和web服务器128的客户端服务模块124和134进行通信。在某些实现中,访问服务模块150可以协调客户端服务模块124和134以及服务器应用模块138-148之间的通信。例如,航空公司操作客户端应用112可以请求航空公司操作服务器应用136来针对航班资源作出改变。访问服务模块150可以接收此请求,并且通过调用调度模块140和规则模块144的功能来响应,从而更新调度并且针对改变导致的任何违规进行检查。
应用层数据访问模块152提供API,以便处理与数据库通信相关联的任务。在某些实现中,服务器应用模块138-148可以使用数据访问模块152来创建、更新和删除航空公司操作数据库层108中包含的数据。例如,数据访问模块152可以处理打开和关闭数据库连接、事务处理、高速缓存的任务以及与数据库通信一般关联的其他任务。
计划模块138提供如下功能,以便允许用户来执行与机组人员资源计划相关联的各种任务,例如长期雇员功能。例如,模块可以允许用户来针对航班和保留需求、缺席请求、培训需求以及处理航空公司资源计划的其他任务进行计划。在某些实现中,计划模块138可以提供决定支持和预报功能。例如,模块138可以帮助用户通过编译信息创建有效资源计划,以便预测并修正资源过剩和短缺。
调度模块140提供用于航空公司调度任务的功能。航空公司调度例如可以包括配对和名册的生成,以及调度模块140可以建立配对并且构建名册。
操作日模块142提供管理一般操作日的功能,其可以包括用户处理每日中断的功能。例如,模块142可以帮助用户在机组人员意外地缺席工作、或者如果天气问题中断了航班操作的情况下,重新分配航班的机组人员。在另一示例中,如果被调度至某航班的航空器已着陆(例如,需要意外维修),则模块142可以提供帮助用户将航空器重新分配至已调度航班的功能。
规则模块144执行如下功能,其确定是否违反了各种航空公司操作规则。这些规则检查功能的示例可以包括:确定调度是否将导致飞行员飞行时间超过法律或者政策所允许的小时数,确定为航班分配的航班机组人员是否有资格在被分配给航班的飞机类型上工作,确定所提议的调度是否为航班之间的航班机组人员提供了足够的时间以在飞机之间转移,确定调度是否将会导致飞机超过在维护操作之间的飞行小时数量的限制,或者可以影响一个或者多个航班资源的其他各种规则和策略。例如,如果配对导致航空器的飞行超过服务检查之间的所允许小时数量,则模块144可以检测到此违规。
配对模块146向用户提供编辑配对的功能。例如,配对是其中机组人员与航班进行配对的航班段(flight leg)序列,其中所述航班以机组基础开始,或者源自于机场,并且以相同的机组基础结束。配对模块146向用户提供添加、移除、改变或者执行将配对与航班资源相关联的其他功能。
名册模块148提供生成和管理机组人员名册的功能。例如,名册模块148可以帮助用户根据各种公平标准(诸如,机组人员偏好、资历、或者可以用于生成机组人员名册的其他因素)来确定工作导读。在某些实现中,名册功能可以包括在调度模块140中。
在图1A的示例中,航空公司操作数据库层108包括在线事务处理(OLTP)数据库154以及操作数据存储(ODS)数据库156。OLTP数据库154可以包括用于航空公司操作的一个或者多个数据表。例如,航空公司操作数据可以包括航班机组人员数据,航班调度数据、航班调度提议、规则参数、规则警告以及可以用于航空公司操作的其他数据。在某些实现中,OLTP数据库154可以是由航空公司操作服务器应用136使用的数据仓库。例如,OLTP数据库154可以由数据访问模块152访问,以便对航空公司操作服务器应用136的模块138-148提供数据功能。
在某些实现中,OLTP数据库154中的数据可以被部分或者全部复制至ODS数据库156。例如,在OLTP数据库154中的数据可以被复制到或者被镜像到ODS数据库156。ODS数据库156可以集成来自多个源(例如,在一个或者多个数据库中的一个或者多个表)的数据,以便辅助操作、分析和报告。例如,ODS数据库156可以配置用于在线分析处理(OLAP)。在某些实现中,ODS数据库156可以以不同于OLTP数据库154的方式来组织结构和配置。例如,用于OLTP操作的数据库调整和结构可以针对OLAP操作运行良好,并且通过使用用于OLTP和OLAP操作的单独数据库,OLTP数据库154可以按照OLTP操作的需要而组织结构和调整,并且ODS数据库156可以为OLAP操而组织结构和调整。
图1B是航空公司操作计算系统158的一个实现的框图,其类似于附图1A中所示系统100,但示出了系统的不同方面。图1B示出了构成套装的应用软件程序的各种模块,并且示出了多个客户端。示例系统158包括多个航空公司操作客户端应用,尽管在典型情况下可以存在更多应用,为清楚起见,示出了两个此类应用160a和160b。附图1B的系统158还具有航空公司操作服务器应用136、调度数据库162和规则数据库164。
例如,航空公司操作客户端应用160a和160b针对其相应的用户来分别执行功能,以便执行航空公司资源计划和调度。在某些实施方式中,航空公司操作客户端应用160a和160b可以分别是图1A的航空公司操作客户端应用112的实现,并且由此应用160a和160b提供相同的功能。该航空公司操作客户端应用160a和160b在相应的显示设备110上显示其输出。
航空公司操作客户端应用160a和160b各自包括计划和调度模块166a和166b、以及客户端服务模块168a和168b。在某些实施方式中,计划和调度模块166a和166b可以是图1A的计划和调度模块118。例如,计划和调度模块166a和166b可以显示这样的屏幕,该屏幕允许用户来将航空器与已计划的航班或者航班序列相关联,将机组人员与航班或者航班序列相关联,以及执行与航班和航空公司资源的计划和调度相关联的其他任务。
客户端服务模块168a和168b分别提供应用编程接口(API),该API处理航空公司操作客户端应用160a和160b以及航空公司操作服务器应用136之间的一种或者多种类型的通信。在某些实施方式中,客户端服务模块168a和168b可以是图1A中所示的客户端服务模块124。
调度数据库162可以包括航空公司操作数据表。在图1B的示例中,调度数据库162包括已交付的调度表170和未决的已修改表172。已交付的调度表170可以包括描述航空公司航班资源调度的数据。未决的改变表172可以包括对于在表170中包括的航空公司航班资源调度数据作出的所提议改变的数据。例如,用户可以请求查看调度,并且航空公司服务器应用136可以查阅用于调度数据的已交付调度表170。用户可以提议对调度数据作出改变,以及那些所提议的改变可以存储在未决改变表172中而不具有表170中的数据。如果批准所提议的改变,则航空公司服务器应用136可以导致将一个或者多个所提议的调度应用于已交付调度表170中的调度数据,并且将其从表172中移除。
规则数据库164包括航空公司操作规则。例如,规则模块144可以包括规则,该规则用于确定飞行员是否已经超过“M”小时时段而飞行了“N”小时。“N”和“M”的值可以存储在规则数据库中,并且由规则模块144来查询,以便定义在特定时段中飞行员可以飞行的小时数。
在某些实施方式中,规则模块144可以执行用于用户在规则数据库164中编辑规则参数的功能。例如,规则数据库可以包括参数,该参数反应航空公司策略,诸如航班小时相对于训练小时的比率。规则数据库可以存储“1000”的值,以便确定此比率,但是此比率可能需要被改变(例如,航空公司策略改变、飞行员联盟条约改变、FAA规范改变)至“900”的值。规则模块144可以提供用于用户更新规则数据库164中存储的比率或者其他规则参数的功能。
在各种实现中,可以计划航空公司调度以符合各种规则。这些规则可以实现以便反应各种法律、规范、政策、以及可以由政府、规范机构(例如,联邦航空管理局FAA)、联盟、公司或者其他实体实行的其他此类指导。可以以计算机代码来实现规则,诸如在规则模块144的代码中实现。在某些实现中,规则可以包括如下参数(例如,变量),所述参数可以允许存储于其他位置(例如,规则数据库164)的定量或者其他类型的参数。规则引擎144可以通过从存储设备装载规则参数来获取规则参数的特定值。通过独立于定义规则的计算机代码地存储规则参数的特定值,可以调整规则,而并不编辑规范引擎144的计算机代码。在某些实现中,可以使用计算机实现的方法和用户界面来编辑规则。
如将在下文中更详细地描述,以非常迅速或者“实时”方式来执行由规则检查而提供的处理或者方法,从而如果所提议的改变违反了调度应当遵循的多个规则中的任一规则,则可以在显示设备上向对调度进行编辑处理的用户提供接近即时的反馈。甚至可以在实际向调度“交付”所提议改变之前,或者换言之,在调度用户将所提议改变的集合输入至系统并对调度作出改变之前,执行此类规则检查和现实过程。此类规则检查和显示方法在航空公司操作系统的环境下尤其有用,在所述航空公司操作系统中可以存在应用于调度的多个规则。这些规则中的某些规则是强制性的,并且由此必须遵守;而在某些情况下,可以忽略其他可能是指导或者偏好的规则。在转向规则检查过程之前,首先讨论规则数据库,以及如何更新或者编辑用于规则的规则数据库和参数。
图2是用于编辑航空公司操作规则参数的示例性计算机实现方法200的流程图。通常,用户使用客户端应用(例如,图1A的航空公司操作客户端应用112或者图1B的160a和160b)来编辑规则参数,规则逻辑由规则引擎(例如,在图1A和图1B所示的规则模块144)来处理,并且规则参数存储在规则数据库(例如,图1B的规则数据库164)中。
当在步骤202中接收规则参数改变请求时,编辑规则参数的示例方法200开始。在某些实施方式中,规则改变请求可以包括标识将被改变的规则参数的信息、所请求的新参数值、以及标识谁正在执行请求的用户标识。接着,在步骤204,执行针对用户授权的请求。例如,用户的标识信息可以用于查询安全数据库来在步骤206确定用户是否具有足够的权限来对规则参数作出改变。
如果在步骤206中,已经确定了用户没有被授权来对规则参数作出改变,则在步骤208处方法200继续。在步骤208处,生成错误警告。在某些实施方式中,错误警告可以通知客户端应用或者用户:所述用户不具有对规则参数作出改变的所需授权。在步骤212处,向用户返回规则警告。
另一方面,如果在步骤206处确定用户已被授权对规则参数作出改变,则过程在步骤210处继续。在步骤210处,在规则数据库中改变所请求的规则参数,并且在步骤214中向用户返回参数改变确认。同样,不但可以具有存储在系统中的规则,而且规则可以具有各种参数,在需要时可以对其方便地进行更新和修订。
如前所述,可以使用前述系统来执行各种调度操作,诸如向航班或者航班序列分配特定资源。此类操作可以导致系统通过规则集合来处理调度和分配,以便确定调度和分配是否违反了任何这些规则。在某些实现中,当将资源分配至各种配对时,用户预先可能并不知晓哪些资源可以导致违规。例如,飞行员可能具有足够可用的飞行小时数来履行某些配对而不能履行其他配对。上述系统可以如下功能,以便允许用户来提出调度改变,并且在交付改变之前查看特定分配可能导致的任何潜在的违规。以此方式,可以允许用户在更新活跃调度之前经历各种调度组合。
在某些实施方式中,前述系统可以允许多个用户基本同时编辑调度。此外,系统还可以包括如下功能,以便向用户提供其他用户当前进行活动的指示。例如,正在查看调度的用户可以查看到如下指示,该指示表示当前另一用户正在对配对执行提议改变。以此方式,可以建议用户该配对可能遭受改变。
图3是用于航空公司的航班或者航班序列调度资源的示例计算机实现的方法300的流程图。在此示例中,方法300包括由客户端应用302、服务器应用304和数据库306执行的过程。当前,方法300包括使用图形化用户界面(GUI)来将资源的所显示表示与航班或者航班序列的所显示表示进行关联的操作。可以以此方式进行调度的资源示例包括个人或者机组人员资源、航空器资源等。除了针对航空公司操作调度资源以外,在此文档中所述的技术和方法可以应用于其他类型载体的操作,诸如铁路、铁路上的乘客服务、公交车操作等。在某些实施方式中,客户端应用302可以是图1A中的航空公司操作客户端应用,而数据库306可以是在线事务处理数据库152。
方法300开始于步骤308,其中客户端应用302针对从其中存储信息的数据库的待获取的数据或者调度信息来生成请求。例如,用户希望查看源自于所选择日期的所选择机场的所有配对。服务器应用304接收请求,并且在步骤310处向数据库306发送针对调度数据的查询。在步骤312处,数据库306通过向服务器应用304发送所请求的调度数据来进行响应。调度数据例如可以包括关于各种航班以及航班序列的信息、以及针对那些航班和航班序列的资源分配(如果存在的话)。
接着,服务器应用304在步骤314向客户端应用302发送调度数据。在某些实施方式中,服务器应用可以在将调度数据发送至客户端应用304之前,针对从数据库306接收的数据来执行分类、过滤、高速缓存、转换或者执行其他操作。
在步骤316处,向服务器应用304发送针对规则警告的请求。服务器应用304接收请求,并且在步骤318处通过向数据库306发送请求来进行响应。在步骤322处,服务器应用304向客户端应用302发送所请求的规则警告。规则警告例如可以包括如下信息,所述信息描述了其中航班调度元素可以违反航空公司调度规则(例如,航空公司策略、规范机构规则、联邦规则)的各种方式。步骤316至步骤322表示在当前用户针对调度进行任何改变之前已经预先存在的违规。
接着,客户端应用302在步骤324处向服务器应用304发送提议调度改变。在步骤326处,服务器应用304使用所提议的调度改变来查询规则引擎,诸如在图1A的规则模块或者引擎144。例如,用户可以使用客户端应用302来针对配对提议改变,并且服务器应用304可以通过规则引擎144来处理所提议的改变。用户可以提议改变,并且在没有将改变交付至调度数据库的情况下,导致针对所提议的改变可以导致或者解决的任何违规进行检查。在步骤328处,服务器应用304向客户端应用302发送由所提议调度改变生成的所请求违规警告。步骤324至328可以多次出现,这依赖于用户针对调度作出改变的数量。在某些情况下,可以提议改变以便解决导致违规的先前所提议改变以及由此生成违规警告。
接着,在步骤330处,客户端应用302发送请求以便交付对航空公司调度的改变。即使在出现违规的情况下,这也可以执行。尽管在图3中未示出,在某些实现中,在正在交付改变的时间点上,规则引擎可以使用类似于步骤324至328中所示方式,再次运行以便针对是否违反了任何规则而作出另一检查,并且可以在另一屏幕中或者以另一格式再次显示任何违规警告。服务器应用304在步骤330中接收发送的请求,并且在步骤332中向数据库306发送请求以便更新调度。在步骤334处,数据库306通过确认所请求的更新操作而进行响应。在步骤336中,服务器应用304向客户端应用302发送确认,以便确认已经交付了所请求的改变。
如前所述,可以使用前述系统来执行各种调度操作,诸如将特定资源分配至航班或者航班序列。此类分配可以在调度操作期间执行,以便利用特定机组人员资源填充开放配对,或者针对已经填充的配对来改变调度。使用图形用户界面可以容易并且直观地实现此类分配和重新分配,其中所述图形用户界面标识了各种航班或者航班分组,并且还标识了可以分配给航班的各种资源。还可以使用各种技术来将航班或者航班序列与资源相关联,诸如使用诸如鼠标的指示设备来进行拖拽操作。另外,此类关联可以通过使用鼠标点击或者其他输入设备操作来执行,其中可以将两个不同的显示事项彼此关联。
图4A至图4C示出了用于编辑配对的示例性用户界面(UI)400的屏幕截图,其中可以在显示设备(诸如图1中所示的显示设备110)上向用户提供所述屏幕截图。在某些实施方式中,UI 400可以由图1A的航空公司操作客户端应用112来生成。UI 400包括各种已调度航班和彼此分组在一起的已调度航班分组的甘特(Gantt)图402。所显示的航班和航班序列构成各种配对,所述配对或者已经被填充,或者可以由后续的调度操作来修订。通过使用可视化显示器,用户可以选择配对资源,或者选择已显示的配对(也即,航班或者航班序列)。例如,可以通过使用诸如鼠标的指示设备在配对的表示上进行点击来实现。例如,UI 400显示配对405,该配对包括机长位置410和副机长位置415。
在图4A的示例中,所显示的配对405包括5个航班序列,也即:从纽约JFK机场飞往奥克兰(OAK)的航班、从奥克兰飞往波士顿(BOS)的航班、从波士顿飞回奥克兰的航班、从奥克兰飞往加州长滩(LGB)的航班、以及从长滩飞回纽约JFK机场的航班。在此示例中,配对405在相同的机场即JFK机场开始和结束。在甘特图402上的条带上针对每个配对405的航班而示出机场代码和航班的起飞时间和到达时间。另外,在甘特图402的开始和结束条带处提供了配对的唯一标识符。在此示例中,标识符是J2446A。图4A的示例示出:副机长位置415示出为已经填充有名为Bill F1yright的飞行员,而机长位置410当前填充有名为Stan Rudderman的飞行员。
如图4A所示,显示了三个甘特图条带,其中每个条带表示一个配对。顶部条带对应于配对405,其用于与在配对中包含的航班序列相关联的所有资源。中间条带对应于配对410,其用于在配对中包括的航班序列的机长位置。底部条带对应于配对415,其用于在配对中包括的航班序列的副机长位置。在图4A所示的UI 400的备选实现中,用于单独机组人员的配对显示条带可以小于用于航班或者航班序列的配对。
现在转向图4B的下一屏幕截图400,其中示出了在用户已经(例如,通过点击机长位置410,接触触摸屏或者通过使用键盘)请求从配对405的机长位置410中去除飞行员Stan Rudderman之后的结果显示。UI 400利用呈现对话框420来进行响应,从而请求用户确认将从该配对405中去除机组人员。
图4C是屏幕截图序列中的下一截图,并且示出了在用户已经确认将从配对405中去除机组人员Stan Rudderman之后的示例性UI400。机长位置配对410现在标记为“开放”以便指示没有对机长位置410分配机组人员。
从机长位置410去除机组人员的过程还导致UI 400与服务器应用(例如,航空公司操作服务器应用134)和规则引擎(例如,规则模块144)进行通信,以便确定所提议的配对改变是否导致发出任何规则警告。在某些实施方式中,针对违规进行检查的过程可以基本实时地与用户编辑调度一起出现。UI 400显示错误警告425,以便指示配对405在机长位置410处缺少机组人员。
图4C示出了向用户提供已经违规的即时反馈,也即规则需要为包括在配对中的每个航班序列分配机长。应该理解,在调度过程期间可以出现多个其他的示例违规,可以在用户界面上向执行调度操作的用户进行显示。例如,当机长在配对的第一航班之前没有充分休息的时候,用户可以尝试调度配对的机长。在此情况下,可以显示标识已经违反了所需或者建议的休息时间的违规。由此,正在执行调度的用户可以在交付之前取消改变,并且代替的是,可以调度一名已经充分休息的机长。另一方面,在某些情况下,规则并不是强制性的,而正在执行调度的用户可以交付改变以便进行调度,而无关于出现违规。例如,如果规则仅仅是所提议的休息时间时段,而并不是必须的,则执行调度的用户仍然可以调度飞行员用于配对。
图5是示例计算机实现方法500的流程图,在该方法中多个用户能够基本上同时地针对航空公司航班或者航班序列,来编辑航空公司操作调度。处理包括由正在由第一用户操作的客户端“A”应用502、正在由第二用户操作的客户端“B”应用504以及服务器应用506执行的操作。在某些实施方式中,客户端“A”应用502和客户端“B”应用504可以是图1A的航空公司操作客户端应用112的两个独立实例。在某些实施方式中,服务器应用506可以是航空公司服务器应用134。
方法500开始于步骤508,其中客户端“A”应用502针对将从服务器应用506获取的调度数据而生成请求。服务器应用506通过在步骤510返回所请求的调度数据而进行响应。客户端“A”应用502在显示设备(例如,图1A的显示器110)上生成调度数据的可视化显示。可视化显示例如可以包括各种已调度航班和/或已经被分组在一起的已调度航班分组的甘特图。所显示的航班和航班序列构成各种配对,所述配对或者已经被填充,或者可以在后续的调度操作中被修订。通过使用可视化显示,用户继而可以选择所显示的配对(也即,航班或者航班序列)。例如,这可以通过使用诸如鼠标的指示设备点击配对的可视化表示来执行。
此时,可视化显示器包括一个或者多个航班或者航班序列的可视化表示(其中所选择的航班或者航班序列可以以某种方式高亮显示)以及可以调度用于所选择航班或者航班序列的资源的可视化表示两者。通过使用此可视化显示和诸如鼠标或者键盘的适当用户输入设备,在步骤512处,用户操作客户端“A”应用502来生成所提议的调度改变集合并将其发送至服务器应用506。服务器应用506通过发送所提议的调度改变可能导致的任何违规的警告,来响应于客户端“A”应用502。
在某些实施方式中,客户端“A”应用502和客户端“B”应用504可以向调度的一个或者多个元素(例如,配对)添加一个或者多个可视化指示符,以便在客户端显示设备上指示本地用户或者远程用户正在编辑调度的一个或者多个元素。
例如,尽管客户端“A”应用502的用户正在编辑配对,但客户端“A”应用502的UI可以以彩色高亮方式来显示配对,以便指示用户已经对该配对提议的改变。在某些实施方式中,被应用于正在编辑的配对的可视化指示可以使用不同的可视化指示,以便指示已经由本地用户或者远程用户执行的所提议改变。例如,客户端“A”应用502的用户可以在正由另一用户编辑的配对旁边看到绿色图标。正在客户端“A”应用502中编辑配对的用户可以看到红色高亮显示的配对,以便指示另一用户正在其他位置编辑相同的配对。
尽管步骤512的所提议改变是未决的,客户端“B”应用504在步骤516处针对调度数据进行请求。服务器应用506在步骤518通过发送调度数据的集合来进行响应。在步骤520处,服务器应用506向客户端“B”应用504发送通知,以通知客户端“A”应用502已经调度了未决的改变。在某些实施方式中,客户端“B”应用504可以使用通知来使得航空公司调度的部分来显示可视化指示,该可视化指示表示航空公司调度的部分正在其他位置处被编辑。
接着,在步骤522处,客户端“B”应用504向服务器应用506发送所提议调度改变的集合。服务器应用506通过发送警告集合来进行响应,以便指示所提议改变违反的任何规则。
在步骤526,客户端“A”应用502发送请求以便交付在步骤512处提议的调度改变。在某些实施方式中,客户端“B”504可以利用高亮显示来显示已改变的配对,从而指示包括已经由客户端“A”应用502交付的改变的配对。在步骤528中,服务器应用506确认改变,并且通过发送已更新调度数据集合来进行响应。服务器应用506还可以向客户端“A”应用502发送通知,来通知客户端“B”应用504已经调度了未决的改变。在某些实施方式中,客户端“A”应用502和客户端“B”应用504可以基本上同步地编辑航空公司调度的不同元素。在某些实施方式中,客户端“A”应用502和客户端“B”应用504可以基本上同时地编辑航空公司调度的公共元素。
在步骤532处,客户端“B”应用504发送请求以便交付在步骤522处所提议的调度改变。在步骤534处,服务器应用506通过交付改变并且向客户端“B”应用504发回已更新的调度数据来进行响应。
客户端“A”应用502在步骤536请求来自服务器应用506的调度数据。在某些实施方式中,客户端“A”应用502和客户端“B”应用504可以在各种条件下请求调度数据。例如,针对调度数据的请求可以响应于与客户端应用502和504的用户交付而作出(例如,用户滚动至甘特图中的新的日期)或者自动(例如,通过轮询过程而基于定时器进行)作出。在某些实施方式中,客户端“A”应用502和客户端“B”应用可以通过由服务器应用506发送通知而更新。例如,当由于另一用户甚至诸如接收到已更新航班信息而在配对中出现改变时,更新可以基于所生成的实时更新。服务器应用506在步骤538处通过发送调度数据集合而进行响应。
现在参考图6A至图6J,示出了用于编辑航空公司操作调度的客户端图形用户界面(UI)的两个实例的截屏序列,所述UI是在图5的方法500执行期间提供的。UI 600a由标识为“用户1”的用户来操作,而UI 600b由标识为“用户2”的用户来操作。在某些实施方式中,UI 600a和UI 600b可以是图1A的航空公司操作客户端应用112的实例。在某些实施方式中,UI 600a和UI 600b可以是图4的UI 400的实例。UI 600a例如可以在图5的步骤510处提供,而UI 600b可以在步骤518处提供。
图6A和图6B是在多个用户编辑过程期间的第一时间点处在UI 600a和UI 600b上基本同时显示的内容示例。在附图6A中,UI600a包括甘特图602a、配对605a以及机组人员位置610a。在图6B中,UI 600b包括甘特图602b、配对605b以及机组人员位置610b。在图6A和6B所示的图示中,UI 600a和600b显示基本相同的调度信息。
图6C和图6D是在多个用户编辑过程期间的第二时间点处在UI 600a和UI 600b上基本同时显示的内容示例。在图6C中,UI 600a的用户(例如,通过点击鼠标、接触触摸屏、使用键盘)指示将要去除分配至位置610a的机组人员。UI 600a呈现对话框615,其请求用户确认将从位置610a处去除所提议的机组人员。UI 600b与图6B的示例保持基本未变。
图6E和图6F是在多个用户编辑过程期间的第三时间点处在UI 600a和UI 600b上基本同时显示的内容示例。图6E示出了已经从所提议配对605a中去除了分配至位置610a的机组人员。UI 600a通过高亮显示620的显示,来指示配对605a包含由UI 600a的用户提议的改变。
图6F以高亮显示620b示出了配对605b。高亮显示620b指示配对605b正在由UI 600a的用户编辑。在某些实施方式中,高亮显示620和高亮显示620b可以使用不同颜色,以便指示是本地用户还是远程用户针对调度元素作出了未决改变。例如,可以以绿色高亮显示具有由本地用户提议的未决改变的调度元素,并且红色高亮显示可以指示远程用户交付了本地用户也对其进行了修改配对的改变。
图6E和图6F的示例示出了开放的机组人员位置610a和已经填充的机组人员位置610b,这是由于UI 600a的用户尚未交付所提议的改变来去除图6C中所示的机组人员。在某些实施方式中,包括所提议改变的调度元素的可以使用高亮显示以外的可视化指示符。例如,具有未决改变的调度元素可以由轮廓线、阴影、三维效果来指示,或者由允许用于以视觉方式将包括未决改变的调度元素以及不包括未决改变的调度元素进行区分的其他指示。
在某些实施方式中,包括所提议改变的调度元素可以包括其他指示来显示元素的状态。例如,指示可以包括文本,以便指示对调度进行所提议改变的用户的标识。
图6G和图6H是在多个用户编辑过程期间的第四时间点处在UI 600a和UI 600b上基本同时显示的内容示例。图6G示出了显示对话框624的UI 600a。对话框625呈现UI 600a的用户希望交付对配对605a的所提议改变的确认。图6H示出了UI 600b与图6F的图示保持基本不变。
图6I和图6J是在多个用户编辑过程期间的第五时间点处在UI 600a和UI 600b上基本同时显示的内容示例。图6I示出了用户已经对配对605A交付所提议改变。高亮显示620a和620b不再可见,这是由于配对605a不再具有任何未决改变。UI 600a和600b显示违规警告630a和违规警告630b,以便指示配对605a和605b没有配备充足的人员。
现在参考图7A至图7B,其中示出了将配对划分成为两个单独配对的功能。这可以出于不同原因来执行。例如,可能是一个机组人员不能针对构成配对的全部任务进行服务。图7A是单一配对705、配对成员L2015的用户界面显示700的屏幕截图。在“航班覆盖”分页签707中,用户界面的底部被选择,显示器700示出了配对列表,尽管在图7A的显示中列出了一个配对。如在甘特图显示区域中所示,配对705包括航班的第一序列710和航班的第二序列715(后者是单一航班)。
期望的是,从第二序列715划分第一序列710,以便从单一配对中创建两个配对。例如可以通过以下方式实现:用户输入命令,以便在配对的特定时间点处划分所显示的配对。例如,用户可以将指示设备导航至位置720,并且在指示设备上输入右键点击操作,以便提供显示选项,其中之一可以是“划分”操作。由此,配对L2015可以在所选择的点进行划分。此类“划分”操作将产生在图7B中所示的界面显示700。如所示出,第一配对L2015(编号为705)仅包括两个原始序列中的一个,也即第一序列710,并且创建新的配对725(尚未编号),并且其由第二序列构成。
现在参考图7C,示出了在此文档中提供的调度显示特征另一有用方面的另一用户界面显示750。在此显示750中,在如前所述的现实中,甘特图中提供了在列表区域755中列出的配对J2018的细节。甘特图显示区域760具有水平时间轴,并且在图7C的显示中,显示了5月1日和5月2日。在列表区域755中,列出了两个机组人员Stan Rudderman和Charles Yeager,所示人员被分配至配对J2018。图7C中示出的分配机组人员的显示可以使用例如“扩展”特征在配对下生成。
图7C示例中的配对J2018包括两个航班,所示两个航班均调度用于5月1日。这样,配对J2018仅包括单一日期中的单一任务。在甘特图显示区域760中,以其整体方式示出了机组人员的调度,并且并非仅有机组人员调度的部分包括在配对中。如所示出,图7C中的两个机组人员还被分配至第二天(即,5月2日)的另一配对。所述机组人员被分配所至的配对的配对编号是J2010。同样,调度者可以看到被分配至配对的机组人员的限制,例如在机组人员可能希望以某些方式修订配对时,这是有用的。
图8示出了示例性计算机实现的规则处理系统800。系统800包括规则引擎810、数据访问模块820以及规则参数数据库830。在某些实施方式中,规则引擎可以是图1A的规则模块144。在某些实施方式中,数据访问模块可以是数据访问模块152。在某些实施方式中,规则参数数据库可以是图1B的规则数据库164。
规则引擎810提供检查配对的功能,以便确定配对是否违反了规则。例如,规则引擎可以确定配对可以请求航空公司机组人员在没有休息时段的情况下飞行超过最大小时数。在另一示例中,规则引擎可以检测配对没有填充全部所需的机组人员位置。在前文中针对图1A的规则模块144描述了其他规则示例。
数据访问模块820包括规则引擎810可以用于访问规则参数数据库830以及数据库830存储的规则参数的功能。例如,数据访问模块820可以执行如下功能,其特定于数据库引擎或者由规则参数数据库830使用的结构,而同时呈现出更为一般化的特征集合来由规则引擎810使用。
规则引擎810包括基于限制、比率、平均或者可以用于定义规则的其他标准的规则。例如,规则引擎810可以包括如下规则,以平实语言表示为“飞行员每月不得飞行超过‘X’小时”,其中‘X’的值是变量。变量‘X’的具体值可以存储为规则参数数据库830中的规则参数。规则引擎810使用数据访问模块820来请求来自规则参数数据库830的规则参数(例如,变量‘X’的值)。
在另一方面,先前所述的航空公司操作套装可以包括公共规则数据库,如图9A所示。如图9A所示的完全集成操作方案900的示例包括各种软件模块和前文所述的其他计算资源。另一方面,如图9A中所示,系统的模块执行关于乘客902、航班和航空器904以及机组人员906的功能。另外,如沿着附图顶部所示,系统具有在计划(例如,长期计划)908、调度910和操作日912(例如,其中可以存在需要作出改变的中断)期间使用的模块。
在图9A中示出的系统中以及本文档其他位置处呈现的全部产品套装涵盖了如下功能:对于配对、调度以及来自计划的机组人员的整个生命周期、调度、操作以及历史记录进行管理。在很多情况下,需要历史记录,这是由于某些规则需要机组人员或者航空器在过去经历如何的知识(例如,关于飞行员的日历年禁止限制)。期望的是,规则在生命周期的每个阶段(计划、调度和操作)中是恒定的,并且在许多情况下,是等同的或者非常类似。例如,假设操作规则是,飞行员不能在一次任务中累积飞行超过8小时的禁止时间。如果计划将使用其中设置为9小时的规则,则可以创建配对,而其中不能将操作合法地分配至机组人员。在一个实现中的另一示例是,出于计划和调度目的,规则不能超过12小时,然而在操作中,可以减轻这一限制并且允许14小时的任务(在特定条件下)。使用公共规则数据库允许系统中的各种组件在适当时共享规则,并且由此避免了引入不一致性或者需要创建和管理冗余规则。
在图9A中所示的系统图示出了各种优化器以及单一的、或者公共的规则引擎914(靠近图示的右手侧示出)。在图9A中示出的各种优化器也用于各种不同功能,所述功能由操作计算系统来执行。例如,存在调度优化器916,其用于计划动作(如图9A的顶部所示),以及用于涉及航班和航空器的功能(如图9A中的左侧所示)。例如,优化器916可以用于生成调度,该调度将航空公司的收入最大化,并且将操作成本最小化。另外,调度优化器可以针对附加航班和设备提供“如果...怎么办”的功能。在某种情况下,优化器不但执行可以被称作后端计算机处理优化处理,还可以用作支持评估的决策支持工具、以及各种备选的优化。调度管理器软件应用917可以用于计划航班和航空器。
用于计划908和机组人员906的另一优化器是资源优化器918,而资源管理器软件应用919可以用于机组人员计划。另外,资源优化器918可以包括名册优化器(未示出),其生成公平的并且高效的机组人员名册,该名册覆盖了在名册时段中的全部航班,考虑了账目预分配机组人员活动。除了集成规则引擎914中的参数以外,机组人员计划者可以输入较低和较高的边界和处罚,以便控制在名册中期望的禁止时间的数量、值班时间以及支付津贴。名册优化器可以使用此信息来计算优化方案。
为了调度航班和航空器,存在行程管理器920和名册优化器921。航班名册优化器921帮助航班调度者针对给定航班调度建立最佳的每日、每周或者完全确定日期的航空器行程。例如,其将单独航班分配至飞行的匿名航空公司,以便优化需要操作调度的航空公司数量,并且同时将行程一致性最大化。为了进一步优化,行程优化器921可以与配对优化器923集成,如下文所述,以便方便地生成遵循航空器行程的机组人员调度。
为了调度机组人员,存在配对管理器软件应用941和称为出价线路(bidline)管理器的软件应用922,其管理来自特定航班和任务的机组人员的出价。另外,存在配对优化器923和出价线路优化器924。
配对优化器923自动创建机组人员配对的最低成本集合来用于在特定时间帧内操作的航班。快速、灵活的优化器923可以协调用户控制的参数,其包括“硬性”的机组人员规则和“软性”的机组人员生活质量元素两者的广泛内容。行程优化器923还支持机组人员计划者来生成用于结合国际调度和国内调度的配对,自动地实施两个规则集合,并且允许额外的全局性约束规范。出价线路优化器924开发了共同的出价线路用于机组人员出价线路处理就绪的每个时段。其协调多个灵活参数以便调整资历限制的(seniority-based)环境并创建满足期望旅程属性的调度。出价线路优化器924可以建立出价线路保持器,并且修订出价线路调度来满足最小保障水平。一旦交付了出价线路,则机组人员计划者可以直接地将出价线路输入至机组人员出价系统,而无须额外配置。附加地或者备选地,对于出价线路优化器924而言,可以是个人的、优先的、出价系统(PBS)优化器931,其考虑了机组人员偏好等。
对于操作日912而言,存在航空器跟踪管理器软件应用925用于跟踪航空器位置和状态。与此软件应用相连接的是航空器恢复优化器926。除了用于操作的航空器日和航班以外,还存在远程站消息器软件应用927和航班日志软件应用928。对于操作日的机组人员而言,存在机组人员跟踪管理器软件应用929和附属的机组人员恢复优化器930。另外,存在旅程交易应用932,其支持和管理旅程机组人员之间的交易,机组人员网络应用933可以是在线交互介质,其允许机组人员经由因特网来参与调度出价,查看其工作调度以及接收机组人员监管消息。
影响延迟的因素之一在于在需要的时候缺乏剩余的能力。如图9A中所示,可以存在保留分配应用934和开放时间分配应用935,用于管理处于未调度或者具有开放时间的机组人员资源的能力。
图9A中的航空公司操作套装900具有中央化或者公共工具936,其在图9A的图示右侧以概念方式示出。这些组件可以与套装900中的某些或者全部特定功能组件相结合。这些公共工具936包括前述规则引擎914。另外,公共工具936可以包括报告管理器来生成数据报告,以及随附的仪表盘应用938可以用于显示生成的报告并且提供其他信息。另外,存在配置管理器939和集成数据库940。最后,如图9A中所示为财政或者审计方案942。
图9A中示出的单一的或者公共的规则引擎914可以如图9B中所示的方式由每个优化器来使用。为简单起见,图9B示出了两个优化器,即来自图9A中的航空器恢复优化器926和机组人员恢复优化器930,并且图9B还示出了它们如何相关于公共规则引擎914。如图9B中所示,全部优化器均利用公共规则引擎914。公共规则引擎包括规则数据库940。示例规则包括联邦航空管理规范,其例如规定了机组人员能够工作或者执行任务多长时间。其他示例规则可以包括关于航空器需要获得各种类型维护的频繁程度、维护的性质、以及在何处进行维护(或者换言之,航空器需要在何处对其自身执行维护)的规则。
如图9B所示,优化器926或者930接收来自相应管理器925或者929的输入,该输入例如可以具有标识的需要解决的问题。例如,航空器恢复优化器926可以接收来自航空器跟踪管理器925的输入。航空器跟踪管理器925可以接收输入,该输入指示了特定航空器出于机械问题而已经受到延迟。这可以表明调度问题,而该问题应当由航空器跟踪管理器所标识。航空器跟踪管理器模块继而可以向航空器恢复优化器926提供输入信息,如图9B所示。通过此输入信息,航空器跟踪管理器925可以确定已经被延迟的航班号以及预期的延迟时间。作为响应,可能处于用户控制之下的航空器恢复优化器926可以用于确定问题的解决方案。
在确定解决方案期间,航空器恢复优化器926可以对公共规则引擎914执行各种调用,例如确定相对于机组人员规则、航空器维护规则等而言,各种提议的方案是否违反了任何规则。由此可见,公共规则数据库940中的规则可以应用于多种不同的优化器。同样,公共规则数据库940可以以非常高效和有效的方式来利用。
在本申请中所述的航空公司操作计算系统的另一方面中,提供了嵌入式的解决器技术,其中该解决器对于用户是透明的。通过后台方式,机组人员和跟踪系统传统上要求系统的人类用户来“选举”用于任何问题的系统;如果发现问题,则用户负责标识潜在的“修复”,选择待应用的修复,并且将其集中在一起作为整体解决方案。这是完全人工的过程,尽管具有某些有限的搜索功能,然而在许多情况下由跟踪系统提供。所谓的“解决器”技术也被集成到航空公司操作计算系统中。此类解决器能够标识并选择将要包括在整体解决方案中的修复。即使将此类解决器集成至系统当中,此类系统仍然需要用户监视针对各问题的系统,并且需要用户具体地调用解决器来生成解决方案(继而在完成时将解决方案返回至跟踪系统)。
如图9C所示,在此文档中所述航空公司操作计算系统的某些实现提供的范例是具有嵌入式解决器技术的跟踪系统,其中所述解决器对用户是透明的。系统能够简单地确认所提供的解决方案,或者潜在地允许系统来自动修正特定类型的错误。系统能够提供在无须用户任何干涉的情况下提供此功能。用户能够监控并且能够查看系统的动作,但并非紧密地耦合至决策过程之中。
在图9C中示出了提供航空公司操作计算系统中的此类功能的示例方法950。在步骤955中,航空公司操作在后台处理功能中被监控,而无须用户干涉或者发起,并且在步骤960处在违规事件的情况下,处理前进至步骤965,在此决定修复该违规的解决方案。继而,处理前进至步骤970,在此确定是否可以自动修正规则。
如果规则不是被预先配置为不能被自动修正的规则,则在步骤975处,提议确定的方案以供用户允许。如果在步骤980处用户作出允许,则处理前进至985,此时交付该解决方案(也即,对调度的改变)。如果用户指示不允许,则处理继续返回至步骤975处,此时系统(解决器)确定另一方案并且向用户提议。
另一方面,如果在步骤970处,所违反的规则是预先配置为可自动修正,则处理直接前进至步骤985,在此交付解决方案(调度中的改变)。在此情况下,用户不需要涉及解决违规并且执行上述解决方案的过程。而是,可以自动进行修复。
图10是通用计算系统1000的示意。系统1000可用于根据一个实现的前述计算机实现方法的任一项相关联描述的操作。系统1000包括处理器1010、存储器1020、存储设1030以及输入/输出设备1040。每个组件1010、1020、1030和1040可以使用系统总线1050来互联。处理器1010能够处理用于在系统1000内部执行的指令。在一个实现中,处理器1010是单线程处理器。在另一实现中,处理器1010是多线程处理器。处理器1010能够处理在存储器1020中或者存储设备1030上存储的指令,以便在输入/输出设备1040上的用户界面上显示图形信息。
存储器1020在系统1000内部存储信息。在一个实现中,存储器1020是计算机可读介质。在一个实现中,存储器1020是易失性存储器单元。在另一实现中,存储器1020是非易失性存储器单元。
存储设备1030能够为系统1000提供海量存储。在一个实现中,存储设备1030是计算机可读介质。在各种不同实现中,存储设备1030可以是软盘设备、硬盘设备、光盘设备或者磁带设备。
输入/输出设备1040为系统1000提供输入/输出操作。在一个实现中,输入/输出设备1040包括键盘和/或指示设备。在另一实现中,输入/输出设备1040包括显示单元用于显示图形用户界面。
所述特征可以以数字电子电路方式实现,或者以计算机硬件、固件、软件或者其结合来实现。设备可以在有形地嵌入信息载体中的计算机程序产品中实现,例如,在用于可编程处理器的机器可读存储设备中或者在传播信号中;以及方法步骤可以由可编程处理器执行,所述可编程处理器执行指令程序,以便通过操作输入数据并生成输出来执行在此描述的功能。有利的是,所述特征可以以一个或者多个计算机程序来实现,所述计算机程序在可编程系统上执行,而所述可编程系统包括所耦合的至少一个可编程处理器,用于往来于数据存储系统、至少一个输入设备以及至少一个输出设备,来接收数据和指令以及发送数据和指令。计算机程序是可以直接或者间接用于计算机的指令集合,以便制定特定活动或者获得特定结果。计算机程序可以以各种编程语言来编写,包括编译语言或者解释语言,并且可以以各种方式来实现,包括作为单独程序或者作为模块、组件、子例程或者适用于在计算环境中使用的其他单元。
用于执行指令程序的适合处理器例如可以包括通用和专用微处理器、以及单独的处理器或者任何类型计算机的多个处理器中的一个。通常,处理器将接受来自只读存储器或者随机访问存储器或者两者的指令和数据。计算机的重要元件是用于执行指令的处理器以及用于存储指令和数据的一个或者多个存储器。通常,计算机还包括或者可选地耦合至用于存储数据文件的一个或者多个海量存储设备,以便与其通信;此类设备包括磁盘,诸如内部硬盘和可移除盘、磁光盘以及光盘。适用于以有形方式实现计算机程序指令和数据的存储设备包括各种形式的非易失性存储器,包括例如半导体存储设备,诸如EPROM、EEPROM以及闪存设备、诸如内部硬盘和可移除盘的磁盘、磁光盘以及CD-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(专用集成电路)来补充或者集成在ASIC中。
为提供与用户的交互,可以在具有显示设备的计算机上实现各种特征,所述显示设备诸如CRT(阴极射线管)或者LCD(液晶显示器)监视器来用于向用户显示信息,所述计算机还具有键盘和诸如鼠标或者轨迹球的指示设备,用户可以通过其来向计算机提供输入。
可以在计算机系统中实现的特征包括后端组件,诸如数据服务器,或者包括中间件组件,诸如应用服务器或者因特网服务器,或者包括前端组件,诸如具有图形用户界面或者因特网浏览器的客户端计算机,或者它们的组合。系统的组件可以由任意形式的数字数据通信介质(诸如通信网络)来连接。通信网络的示例包括LAN、WAN和形成互联网的计算机和网络。
计算机系统可以包括客户端和服务器。客户端和服务器通常彼此位于远程,并且通常通过网络来交互,诸如如前所述的网络。客户端和服务器的关系可以借助于运行在各自计算机上并且彼此具有客户端服务器关系的计算机程序来产生。
尽管上文所述的实施方式是借助于航空公司操作的形式来描述,所述实施方式还可以用于其他目的。例如,所述系统可以修改用于调度和调整用于陆地运输(例如,铁路、公交、出租车、豪华轿车、卡车)、船只(例如,轮船、渡船)、航空器、航天器、工业设备(例如,捕鱼船、石油平台)、建筑设备、采矿设备、军事设备(例如,坦克、汽车、侦查车辆)、或者其中可以将机组人员或者操作者的调度与车辆或者其他机器相关联的其他类型的操作。所述系统还可以修改用于在不包括车辆的情况下使用。例如,所述系统可以修改用于旅行社来调度或者调整导游、游客、旅行站点、酒店、餐馆、运输或者可能与旅行团相关联的其他项目。
尽管在上文中详细描述了数个实现,其他修改也是可行的。例如,在附图中所绘出的流程图不需要以特定顺序示出、或者按顺序示出,以便实现期望的结果。另外,其他步骤也是允许的,或者可以去除步骤,从所述流程中,并且可以添加其他组件,或者从所述系统中去除组件。由此,其他实现也落入下文的权利要求书的范围之中。