注:本文转发本人在航数学院近期发表的文章《航班运行控制及保障建设 –– 企业消息系统及通知中心》,https://mp.weixin.qq.com/s/utABKWeBuCFS3R3u9tOpig
航班运行控制是控制系统,是一个行业和领域的控制系统。管理系统中的控制过程在本质上与工程的、生物的系统是一样的,都是通过信息反馈来揭示成效与标准之间的差,并采取纠正措施,使系统稳定在预定的目标状态上的。而当前国内航司的FOC、HCC、AOC、GOC等,还是集中数据库与MIS相结合的状态。虽然很多航司考虑、并尝试神经网络理念的落地应用和参考海外航司的实绩,但是还有很多环节和体系需要重新考虑和建设。
注:本人自08年开始,曾参与FltOps运控产品线研发,CO、UA、DL等运行控制系统的交付,FX与Jeppesen等集成等项目。故之后将从架构和技术视角阐述和分享运行控制等相关领域,需要怎样的革新和技术模式来落地全新的自适应控制下的运行控制及保障恢复。
1. 前言企业消息系统(EMS,Enterprise Messaging System),是指单个应用程序基础结构中不同应用程序之间的消息传递。这是通过一个软件应用程序及特殊架构和设计模式实现的,该应用程序允许从一个程序发送消息,存储在消息队列中,然后在第二个程序可用时对其进行处理。EMS是构建运控领域神经网络的关键和核心架构,简单的消息队列,例如ActiveMQ,或大数据领域的分布式消息队列,例如Kafka,只是某一个技术组件。运控和保障的各个节点和数字化触点端到端的信息传递(数据、信息、指令、进行通讯等)、松散耦合及敏捷集成等,依赖于企业级消息体系及定制化的架构支持,这样才能贯通运控的数据心脏、指挥的大脑,并能够自主自动的联动。
2. 消息队列及消息驱动2.1. 技术及设计模式很成熟消息队列和消息驱动是架构及技术领域当前最为成熟和常见的概念了,20年前就已经在很成熟和广谱的被在企业级项目中应用了。消息队列(Message Queue)是一种进程间通信或同一进程的不同线程间的通信方式,主要解决应用耦合、异步处理、流量削锋等问题;消息是一个报告事件发生的通知,消息驱动(Message Driven)是围绕消息的产生与处理展开的,并依靠消息循环机制来实现,而这里跟计算机领域的事件驱动Event-Driven的本质区别是信息的来源。运控及地服保障等领域,在数字化阶段是消息驱动,信息是需要源头方进行处置的,而真正智能化阶段,才可以实现事件驱动。
航司运行控制及保障恢复,如下图地服保障环节的场景所示,地服人员及相关运控座席等,均是相对被动的在事件发生之后来联动的,有些事件是正常的、属于上下文联动的且正常计划中的工序衔接,但也有很多是突发或在标准运行流程之外发生的事件、并造成临时的工序及保障环节的重排,例如飞行过程中雷暴造成航班延误、停机坪检修发现发动机故障、机场发现密接影响航班起降等等。
不管航空公司在运行控制、飞机飞行、地服保障等环节信息化建设和数字化应用的状况,都会形成系列的需要关注、处置的事件消息,例如站坪源头的事件、行情通告及气象信息、乘客旅客源头的事件、自然灾害及反恐等等,还包括飞机落地后的各保障节点的状态更新等。当这些消息事件发生之后,就是神经网络中的神经末梢的信号,最需要通过消息队列的方式分发到不同的保障节点、处置人员、决策环节,对于整体的航班运行及保障进行统一的调度和处置反馈。而这种模式就是运行控制及保障领域的消息驱动。
而构建一个行业特色的消息驱动的体系,就需要对于整体消息架构和技术设计模式等进行了解,基本消息传递概念包括:
通道 — 将发送方连接到接收方的虚拟管道。消息 — 消息是可以在通道上传输的原子数据包。路由 — 在具有大量应用程序和通道来连接的场景下,消息可能必须经过多个通道才能到达其最终目的地。原始发送方将消息发送到消息路由器,让其确定如何导航通道拓扑并将消息定向到最终接收方,或者至少定向到下一个路由器。转换 — 各种应用程序可能不同意相同概念数据的格式,发送方以一种方式格式化消息,但接收方希望以另一种方式格式化消息。端点 — 有一层代码组成的应用程序、或接收端,既可以是消息源头、也可以是消息接收方。多步骤传递 — 在最简单的情况下,消息系统将消息直接从发送方传递到接收方。但是,通常需要在消息由其原始发送方发送消息之后,但在最终接收方接收之前对消息执行操作,譬如消息可能必须进行验证或转换,因为接收方期望的消息格式与发送方不同。2.2. 航班预计时间更新案例以如下预计的航班动态(Estimated OOOI)更新为例,来看一下运行控制领域的消息驱动的缩影,及其需要怎样的架构模式来实现多环节、时许化的联动。正常情况下,飞机起飞后,会根据卫星报文、地面起飞机场或空管推送、运控中心签派座席经验等,对于航班预计到达等事件进行更新,即OOOI(Out、Off、On和In. Out)的时间更新,以便于下游保障单位及航班衔接等,可以根据预估的时间,倒退其保障任务和工序计划。
(1) 首先从如下图中可以看到,ACARS、OCC、HCC均可以发布独立的预计时间,并经由点对点传递及转化、进入到统一的及格式标准的消息队列中供后续消费:
ACARS、OCC、HCC三个相对独立的环节,均可以对于预计到达时间进行更新,但其采用点对点的消息传递,保障专有性;并且发布自己独特的消息格式到统一的消息队列中,可能包含签派员信息、Downlink地址、地服撤轮挡时间等等,这些差异字段和信息是必须的,也没有必要完全统一;但是为了保障格式和后续处理的一致性等,则就在汇聚到“Estimated_OOOI“消息队列的之前进行消息的转化(Message Translator),形成结构化、且统一、标识信息来源和时间戳的消息体,进入到统一消息队列中被后续消费。(2) 之后统一的预计OOOI时间将被运控签派座席及地服控制中心的保障单元进行订阅消费,从而判断是否需要进行飞机环及保障计划的调整:
同一时间将有运控座席及飞机计划降落机场分开同步订阅当前航班动态,进行航班衔接的评估、进行地面保障能力的评估;但是由于是分散及分布式的评估,对整体航班保障计划的变更,则需要回收多个评估节点或事件消费环节的评估结果,即聚合(Aggregator);并根据聚合之后的消息内容和信息,结合未来的统一运行规则和限行法规,有系统自动的进行判断是否进行航班调整和保障处置的预先调度;当确定是需要调整,则调整指令将分发到不同的签派、保障、联动的节点、座席、手机端、系统等,尤其进行相关的登机口重新排期、更换飞机环或调派其他飞机执飞下一航段/航班(Flight Leg)。(3) 而当完全自动化和智能化的统一决策和调度为形成之前,则可以在专有的签派座席订阅航班动态,进行人工的辅签和辅调、并发布预案,在上述基于消息内容的路由的环节补充人工预案及决策结果,形成人机的协作:
这个时候的订阅消费方,将在接收端将需要判断和决策的环节进行流程化的编排和信息、数据、接口的调用和同步,用于计算形成决策预案结果;同时为了便于后续跟踪事件信息、留痕决策预案结果等目的,将对于ODS上存储的航班动态事件进行更新和对于历史航班时间的调用;同步便于下游单位可以全面的获取航班动态时间,提供统一数据存储之上的API接口,供集成和数据共享。如上可知,航班运行调度及保障处置,将是一系列内外部事件造成的消息相互传递,造成各个环节联动的过程,其不简单的是一个消息队列或一种订阅发布模式就能够解决的,其需要按照场景和整体运行的特殊理念形成的架构体系,如下是DL在运控领域消息体系和架构的一个缩影:
而其在技术实现上,也充分考虑到消息在传递过程中的分拆、合并、路由、点对点及订阅发布并存、高可用等因素和要求,形成在单一消息队列技术,例如Kafka、TIBCO MQ等,之上的事件消息持久化存储、主从备的消息队列体系、规则及流程引擎支持的流转、接口化的消息系统能力集成等。
3. 企业消息系统EMS提供了一个在分布式消息总线之上的完整架构和应用平台级的产物,是单个应用程序基础结构中不同应用程序之间的消息传递。这是通过一个软件应用程序及特殊架构和设计模式实现的,它原生支持 JMS(Java Messaging Service)和其他协议,面向消息的中间件 (MOM),充当两个应用之间的中介供其相互通信,以便以灵活的方式组合应用程序。
但是正如如下图所示,以及上述航班预计OOOI时间更新的案例,其需要的不仅仅是通道(Channel),即消息队列,而是为了实现应用A到应用B实现互通所需要的一系列组件:消息节点配置(Messaging Endpoints)、消息体构造(Message Construction)、消息通道(Messaging Channels)、消息路由(Message Routing)、消息转换(Message Transformation),以及系统监控(Systems Management)等。
3.1. 基础设计模式的实现如下举例说明在运行控制领域,上述一些关键的架构模式和技术组件,应该具备的能力和响应的场景,其不完全不在于选择怎样的消息队列产品,更关键的是在其上没有类似TIBCO等大型消息系统集成平台的支持下,针对行业特质需要定制化出来的功能模块,而这正式当前国内运行控制领域做稀缺和最迷茫的部分。
消息路由器:可以根据消息体的优先级及严重程度(前序航班延误45分钟、MCT时间小于60分钟、高空风突发等),以及特殊流转标识(OCC签派座席航班调整预案、配载座席建议腹舱调整)、座席编号等进行消息在特定明确规则下的动态流转。
一般情况下,可以直接通过Logstash实现,即其中的Filter。
数据库驱动的动态消息路由器:但是大部分场景下运控流转消息时,都期望能够有数据库驱动的方式来实现可配置的路由。
例如可以按照航季和机场不同,选择性的选择地服保障单元进行通知和消息传递。
而在CO、DL等大型项目中,基本路由均是通过数据库驱动的方式来实现,并配置GUI对Endpoint和路由规则进行配置,从而提升整体的可控性和灵活性。
消息分拆器:OCC签派座席发布预案时,往往会涉及多个保障单元和协同单元的指令,譬如机务调度指令、机组备班调整、联程行李转运等,这就需要将消息进行分拆,形成多个对立且针对目标源的消息体,进行点对点的传输。
这种情况下便于减少消息队列的吞吐压力,和减少信息外泄的可能;当其他订阅消费节点需要相关信息的时候,可以直接通过API再次读取ODS中的运控全景数据。
消息聚合器:当航班异动的预案分散到不同保障及协同单元确认时,则需要自动化的回收各个单元端点的反馈消息,形成聚合的预案反馈,便于签派座席以Checklist方式进行最后决策。
消息重排器:运行调度过程中,尤其是在站坪保障的时候,各个保障车辆及人工环节,均会将保障状态回传到运控中心,由于系统统一时间、和手工及物联网设备上报等因素,可能造成各个保障节点发布的状态信息在消息队列上的时序混乱,不便于调度中心进行跟进,故需要在在真正消费之前进行重新排序。
消息转换器:例如Sabre的MVT报文转换成某航司内部的航班动态指令信息等。
在CO、DL等大型航司运控系统的过往建设中,其还是会涉及外部厂商产品及服务的使用,但是一定要建立航司内部的消息体格式,将外部各类报表和结构化信息等,进行转换,保障内部流转的一致性和可扩充能力。
消息增强器:例如对于气象报文或NOTAM等行情通告的报文信息,除了结构化转换成航司标准的信息,但是还为了后续使用的特殊情况,通过数据库等方式,对于报文信息进行补充。例如气象信息SA/SP,不足来源AIDAP或WMSCR,并且补足当前机场ICAO四字码等。
所以在运控的消息处理时,需要考虑端到端的消息整合要求,并且根据CO、UA、DL等大型航司运控消息集成和整体建设经验,其往往涉及几乎全部的消息架构的设计模式的落地,如下:
3.2. 基于数据库的消息引擎为了方便理解CO、DL等大型航司的航班运行控制的建设实绩,以下以基于Kafka分布式消息队列而完全定制建立的系统模块和非功能性引擎组件为例,强化介绍运控的消息体系的减少不仅仅是选用消息队列和订阅发布模式的简单组合,必须根据报文及事件消息的集成场景来建设,这样才能保障运控神经网络的健壮性和应用弹性。如下是CO、DL的消息架构中关键的功能组件,Messaging Engine:
规则引擎(Rule Engine):其主要基于规则引擎技术和数据驱动方式,针对复杂场景和多元数据,按照逻辑判断输出结果或流转反馈状态。基本用于代替工作流。解析引擎(Parsing Engine):其主要通过解析引擎技术实现当前消息体和关键内容的解析,按照正则表达式为主而定义的解析逻辑,产生键值对信息。模板引擎(Template Engine):往往与解析引擎配套使用,可以将键值对按照定义的文本模板进行消息体的建设,形成序列化的消息。判断引擎(Evaluation Engine):对于简单且存在语义逻辑的判断,其与规则引擎配套使用,用于判断结果,解决WhatIf类的场景。转换引擎(Transformation Engine):其一般会将判断引擎、解析及模板引擎合并在一起调用,形成一个完整的、有判断逻辑的消息转换引擎。消息引擎(Message Engine):其是上述的整体和集成调用者,并且内嵌API等指令调用能力,通过消息规则处理的GUI定义好的规则、和调用流程逻辑,对于原始消息进行解析、判断、整合处理、调用等一系列的连贯逻辑。CO及DL等项目,此后台配置UI和底层引擎服务,可以在若干个小时以内实现Jeppesen系统与FX运控系统的航班动态的集成。如上图示所实例一样,当结构化的航班动态事件信息进入到整体消息处理引擎后,其将完成解析、转换等一系列既定的数据配置驱动的处理流程,最后按照目标方的要求自动的传入信息和调用命令。而相关的内部数据库配置和数据模型如下,其对消息处理过程中的各个环节均配置数据库表和响应的数据库规则进行驱动。
如下就是消息引擎的后台消息转换和调度的配置的GUI。其通过可视化的方式,将消息的转换规则、处理加工逻辑、消息流转过程实现配置,并持久化在数据库,供引擎服务直接调用。另外提供所见即所得的即可测试功能,可以便于配置人员直接在配置过程中就能过确认运行消息、指令、报表、接口等等的集成和转换情况。
3.3. 体系的指令平台架构一个整体的航班运行调度神经网络,除了要满足上述的设计模式、消息引擎的实现,当然还需要消息队列等,还需要将这些全部整合在一起,形成一个完整的消息交互平台。具备:
消息的接入接出的能力;能够对于消息的过滤、处理、转发、跟踪、推送等提供支持;结合运行控制的统一规则和限行法规,进行消息处理过程中的业务规则控制;跟踪记录及持久化每一条消息,便于后续赘述和异常处理;建设消息处理的引擎规则配置和可视化所见即所得的配置界面,提高工具平台的体验;构建相关服务接口,便于第三方和特殊场景的集成和应用整合。从技术视角,如果航司运控场景相对简单、且时间消息的吞吐不大,例如没有接入ADS-B等数据的前提下,往往可以通过如下最简单的技术组件和框架来实现,即ELK与Kafka为核心、采用规则引擎Activiti和数据库等方式,实现小规模和相对可靠、及适当灵活的消息体系。
3.4. 结构化的消息体定义正如上述架构和设计模式的实现所示,如果有一个比较弹性和健壮的消息体系,则航司运行调度及流转,将实现如下的线上和线下的协同,分级的进行消息的流转和联动。
但这一切还需要有行业特质且考虑企业级的消息体定义才能实现。在CO、DL等项目中,均采用类似SOAP方式的结构化消息头和消息体、消息信封的定义模式。但是随着技术的发展,可以完全采用JSON方式来实现如下的数据及消息结构,并且可以分结构段进行加密和其他信息体的特殊处理。
同时为了清晰的定义消息的具体来源、用途及目的等,则会根据业务领域和承载的消息内容,将运控领域的消息分为如下:
如下是事件类型参考,主要为航班动态为主。后续可以根据物联网等科技的应用、以及运行领域数字化的成熟,增扩更多的保障节点状态作为事件类型。FIFO Event
AIRCRAFT_CAR_UPDATED
AIRCRAFT_UPDATED
FLIGHT_ADDED
FLIGHT_UPDATED
FLIGHT_ASSIGNED
FLIGHT_CANCELLED
FLIGHT_DELAYED
FLIGHT_DELETED
FLIGHT_DIVERTED
FLIGHT_DIVERTED_ORIG
FLIGHT_DIVERTED_TERM
FLIGHT_FLIGHTREMARKS
FLIGHT_LOCKED
FLIGHT_OVERFLOWN
FLIGHT_POS_RRT_RECEIVED
FLIGHT_REINSTATED
FLIGHT_RESTORED
FLIGHT_RETURNED
FLIGHT_SUBSTITUTED
FLIGHT_TIMES_MODIFIED
FLIGHT_UPD_EST_TIMES
GATE_ASSIGNED
……
General Event
ALERT
WARN
FEEDBACK
NOTIFICATION
……
Command Event
PROPOSAL
PLAN
……
如下是事件内容的实际案例参考,其沿用消息信封中头和体的概念,将更换机尾号的事件和相关信息进行整合,形成流转在消息系统中的消息,供下游消费。事件内容案例
<?xml version="1.0" encoding="UTF-8"?>
<FltOps_BusinessEvent>
<BusinessEventHeader>
<AirlineVendorID>Z2</AirlineVendorID>
<EventIdentifier>FOD.AM.BE.AIRCRAFT.UPDATED</EventIdentifier>
<MessageIdentifier>FOD.AM.BE.AIRCRAFT.UPDATED</MessageIdentifier>
<SequenceNumber>0</SequenceNumber>
<Timestamp>2013-01-18T09:46:25.05959Z</Timestamp>
<Severity>INFO</Severity>
<Server>USCLSSOAT152</Server>
<Application>FOT_AM</Application>
</BusinessEventHeader>
<BusinessEventObject>
<UpdateAircraft>
<CarrierCode>Z2</CarrierCode>
<TailNumber>2222</TailNumber>
<EffectiveDate>2012-01-20</EffectiveDate>
<DiscontinueDate>9999-12-31</DiscontinueDate>
<Subfleet>
<CarrierCode>Z2</CarrierCode>
<FleetCode>A320-200</FleetCode>
<SubfleetCode>320</SubfleetCode>
<SubfleetConfigurationType>SEAT</SubfleetConfigurationType>
</Subfleet>
<RegistrationNumber>Z2222AA</RegistrationNumber>
<SELCALAircraftNumber>ABCD</SELCALAircraftNumber>
<ReservationTailNumber>2222</ReservationTailNumber>
<TotalTimeSinceOff>0</TotalTimeSinceOff>
<TotalLandingsSinceOff>0</TotalLandingsSinceOff>
<GroundSpeedIndicator>true</GroundSpeedIndicator>
<APUColdStartRequired>Y</APUColdStartRequired>
<APUColdStartMessageReceived>Y</APUColdStartMessageReceived>
<APUColdStartIndicator>Y</APUColdStartIndicator>
<MinimumNumberOfPilots>1</MinimumNumberOfPilots>
<NumberOfPilotJumpSeats>1</NumberOfPilotJumpSeats>
<MinimumNumberOfFlightAttendants>1</MinimumNumberOfFlightAttendants>
<NumberOfAttendantJumpSeats>1</NumberOfAttendantJumpSeats>
<AircraftLocked>true</AircraftLocked>
<TestAircraft>true</TestAircraft>
<IsActive>true</IsActive>
<Configurations>
<CarrierCode>Z2</CarrierCode>
<TailNumber>2222</TailNumber>
<EffectiveDate>2012-01-20</EffectiveDate>
<ClassOfService>Y</ClassOfService>
<SeatCount>112</SeatCount>
<Audit>
<InsertDate>0001-01-01</InsertDate>
<LastUpdateDate>2013-02-27</LastUpdateDate>
<LastUpdateSource>UNK</LastUpdateSource>
<LastUpdateUserId>FODMOM01</LastUpdateUserId>
<UpdateLockNumber>5</UpdateLockNumber>
</Audit>
</Configurations>
<Configurations>
<CarrierCode>Z2</CarrierCode>
<TailNumber>2222</TailNumber>
<EffectiveDate>2012-01-20</EffectiveDate>
<ClassOfService>F</ClassOfService>
<SeatCount>12</SeatCount>
<Audit>
<InsertDate>0001-01-01</InsertDate>
<LastUpdateDate>2013-02-27</LastUpdateDate>
<LastUpdateSource>UNK</LastUpdateSource>
<LastUpdateUserId>FODMOM01</LastUpdateUserId>
<UpdateLockNumber>5</UpdateLockNumber>
</Audit>
</Configurations>
<Audit>
<InsertDate>0001-01-01</InsertDate>
<InsertSource/>
<LastUpdateDate>2013-02-27</LastUpdateDate>
<LastUpdateSource>ShipMaintenanceGUI</LastUpdateSource>
<LastUpdateUserId>FODMOM01</LastUpdateUserId>
<UpdateLockNumber>5</UpdateLockNumber>
</Audit>
<AircraftETOPSCertIndicator>Y</AircraftETOPSCertIndicator>
<IDLIndicator>Y</IDLIndicator>
<REQPOSIndicator>Y</REQPOSIndicator>
<EquipedWithImmasatFlag>Y</EquipedWithImmasatFlag>
<EquipedWithIridiumFlag>Y</EquipedWithIridiumFlag>
<EquipedWithHFDLFlag>Y</EquipedWithHFDLFlag>
<EquipedWithVHFFlag>Y</EquipedWithVHFFlag>
<EquipedWithVDLFlag>Y</EquipedWithVDLFlag>
<SEATSConfigurationId>0</SEATSConfigurationId>
</UpdateAircraft>
</BusinessEventObject>
</FltOps_BusinessEvent>
4. 通知中心及座席联动当企业消息系统,或企业级的消息体系建设之后,并按照航班运行控制及保障处置的要求,灌入相关信息体格式、数据库配置、消息流转模式之后,就是可以更高效的实现运控中心类的总分联动、以及多座席和保障环节的协同。如下是一个简化的航班动态运行监控平台逻辑架构,其最核心的就是左侧的基于企业消息系统的通知中心,为使用登录当前系统的座席提供定制化、按座席及角色的有效信息通知能力;并且配合ODS实现的集中运行数据库,实现航班动态的及时感知、全面掌握、体系联动等能力。
4.1. 为座席定制的消息通知作为航班运行动态监控,或Flight Tracking及Following的核心操作界面,除了Flight Gantt之外,最重要的就是通知中心。其需要按照签派员或特定座席的角色、使用用途及特殊场景要求,为其定制消息的通知及推送机制、和定制推送的消息范围。例如下图所示,针对AOC座席,需要按照用户角色、座席排班的计划、当前任务航班信息、数据等权限要求、特殊订阅和偏好设置等,在海量的运控消息中为其筛选和有限推送有效的航班运行中相关消息和通知,便于高效的进行调度决策。
以如下图为例,各类消息引擎的数据库配置,完成最原始的消息的接触、处理、加工和流转之后,进入消息通道和相关流转逻辑中;之后各个座席按照上述的各类规则进行自动订阅,即当座席以特定角色登录系统之后,系统自动按照相关规则为其生成当前的订阅规则和推送要求,这样后台订阅组件就可以为当前做些筛选和过滤有效的运控消息和必要的通知。
并且结合ODS中运行集中数据库的运行数据全览数据,及其上的统一数据服务接口,当通知发生和推送到之后,在座席的操作界面上闪烁、自动刷新拉去必要的数据、重新绘制航班Gantt和状态显示等。
4.2. 航班动态的多级联动实现当存在总分OCC到HCC、或OCC总签派到各个座席、GOC到各个站坪保障单元这样的场景时,就需要根据某一个航班动态或消息指令,向多个目标进行流转,并收集其反馈,做出总体的调度决策。例如航空公司常见的航路临时关闭,其将造成在飞和地面待飞的航班、飞机、机组、保障单元等,做出一系列的动作,保障后续航班的正常化。但是由于涉及到多机场的联动和多节点的协同,需要OCC将预案进行下发,有下游各个机务、乘务、市场等座席或相关保障单元进行评估,并最后汇总后有OCC结合下游反馈进行集中决策和保障任务的确定下发。即接收、分析、预案、分发、评估、聚合、决策、下发等几个步骤。
基于企业消息系统,及通知中心的功能,上述流转将通过如下的技术架构和逻辑组件来实现。
预警及预案阶段:主要来自于ODS及消息通道获悉的航班动态,经由企业消息系统推送到具备订阅和通知要求的座席,并同步高亮闪烁及点亮Flight Gantt。其中SignalR过往用于高可用的推送实现,承接消息队列及运控事件的推送接收。之后座席根据提醒,经由ODS的标准服务接口和Linkable的数据关联能力,选择查看相关运行、机场、配载、气象、报文等数据后,做出航班调整预案,进行下发。征询阶段:航班调整预案下发后,按照场景和本事件消息关联的保障和协同单元规则,推送到点对点的消息队列、并最终经由企业消息系统和SignalR等反映到相关保障和协同单元的座席屏幕、终端手持设备、离线通知等。尤其针对保障要求进行反馈,确认处理能力,并最后将反馈结果提交。发布阶段:当OCC座席收到全部预案牵扯方的反馈后,形成Checklist的模式,对于各个保障和协同单元的意见和评估结果进行确认,在经验支持下将预案转变为最终航班动态调整的任务指令下发到真正的执行方,并加入持续跟踪列表,保障后续变动的连锁反应能够持续被跟踪和处置。但也可能Checklist中的评估反馈体现当前预案不可知性,则有OCC签派座席等进行二次调整进行第二轮征询,或提交调度升级,有总签派师或高级值班经理决断,特殊情况启动联系会议进行一体化判断。5. 后续继神经网络和治理能力,企业消息系统及通知中心之后,将分享和阐述行业数据模型及数据体系、节点数字化及统一规则、“控制塔”理论的应用等三个部分,从而形成运行控制及保障处置的方案,还运控架构体系其原貌。
版本转换器
http://download.xiazai.com:81/soft/20090919/12-124.rar
1.20-1.24b之间可互换
5月30号的问题?
路过
1汉额值台委针皇道.
首先,从因特网上下载一个临互或交版本转换器。网上有毛怀露轴斤远列许多类型的版本转换器,但它们的使用方式相同。可以从u9下载,
2.
可以把版本转换器放剧承素基胡至否采范在硬盘上的任何地方,但是为了更好管理,可以把版本转换器放在魔兽的根目录下。
3.
双击版本转换器以打开以下对话框,并将目录调整为自己的魔兽安装目录。
4.
然后,单击第一个按“Extract”并等待转换完成。