За кулисами резервирования авиабилетов

в 13:38, , рубрики: IT-стандарты, авиабилеты, билеты, кремниевая долина, трактор, метки: , , ,

В недавней статье сама собой затронулась тема обмена сообщениями между компаниями, обеспечивающими авиаперевозки с точки зрения поисковика билетов.
Здесь же я попробую рассказать об обработке этих сообщений, а также об особенностях работы в компании Amadeus на Лазурном берегу.
Тема достаточно обширная, поэтому я сперва набросаю лишь несколько ключевых слов, и вместе мы посмотрим, что вызовет интерес.

История

С какого-то момента стало понятно, что для успешного развития авиаперевозок необходимо создать более-менее универсальный способ общения между заинтересованными сторонами. Авиакомпании должны договариваться с аэропортами, агентства — продавать билеты, а клиенты должны платить и не жаловаться.

Развитием этого понимания стало создание Люфтганзой, Эйрфрансом и Иберией компании Амадеус, со штаб-квартирой в Мадриде, дата-центром в Эрдинге и разбросанными центрами разработки.

Вселенная системы дистрибуции расширяется, и влечёт вполне понятные последствия. Например, дата-центр через пару лет достигнет предела доступной мощности, хотя уже пользуется тремя поставщиками электроэнергии. В планах трансконтинентальная экспансия.

Созданная как GDS, компания Амадеус в настоящее время включает помимо системы резервации: управление расписаниями, инвентаризация полётов, управление аэропортом (чекин, посадка), подсчёт прибыли и пр. Так же есть попытки работать с резервацией отелей и прокатных машин.

Деятельность индустрии регулируется Международной ассоциацией воздушного транспорта. Задумана ассоциация была для контроля за ценами международных перевозок. Но с 2003 года идут переговоры о создании бесконтрольного рынка. В настоящее время задачи ассоциации следующие:

  • упрощение биллинга между авиакомпаниями и агентствами;
  • назначение кодов компаниям и аэропортам: 2 символа для компании (например, 1A), 3 символа для аэропорта (LED);
  • обеспечение возможности сверки цен с другими авиакомпаниями;
  • определение правил индустрии, такие как перевозка опасных грузов;
  • стандартизация, например EDIFACT.

Амадеус обслуживает более 104400 точек агентских продаж и более 36600 офисов продаж более 460 авиакомпаний. 26 компании по прокату автомобилей с 36000 пунктами проката.

Процесс

Амадеус работает в модели бизнеса, основанной на транзакциях. То есть клиенты платят за использованные юниты функциональности. Например, каждый раз, когда происходит резервирование билета, Амадеус получает какой-то фиксированный пирожок. Подобная плата может быть взята за печать документа, обмен билета, регистрации пассажира и пр. Конечно же, клиенты отдельно платят за разработку новой функциональности.

Продукты компании распределяются на три роли:

  1. Altéa Reservation:
    • проверка наличия мест;
    • резервирование;
    • ценообразование;
    • выписка обычных и электронных билетов;
  2. Altéa Inventory:
    • управление расписанием полётов, публикация;
    • управление картами пассажирских мест;
  3. Altéa Departure Control:
    • регистрация в аэропорту;
    • выписка посадочных талонов;
    • упраление багажом;
    • контроль посадки на борт;
    • контроль веса и балансировки воздушного судна.

Подробности можно посмотреть на официальном сайте.

Доступ к продуктам осуществляется посылкой сообщений в автоматическом режиме либо с терминалов клиентов. Терминалом может быть текстовая консоль или web-сайт. При поиске или заказе билетов через интернет-поисковики запросы с серверов приходят к нам примерно в таком же виде, как если бы запрос делали вручную с терминала агентства или аэропорта. Сообщение может быть в виде TTY, EDIFACT или XML-запросом к веб-сервису.

В ответ система может отсылать электронную почту с PDF документами, печатать билеты на принтерах в аэропортах, слать SMS и просто показывать HTML-странички.

При резервировании билета создаётся PNR. Эта запись содержит основную информацию о пассажире: имя, особые требования, номер рейса, отель, машина, поезд, вот это всё. Все записи последовательно нумеруются.

Пример PNR:

RP/MUC1A0701/                                                   
RF THOMAS TEST                                                  
  1.SRC/TEST                                                    
  2  LH4143 Y 27OCT 5 NCEFRA HK1  0645 1  0745 0925   737 E 0 R 
     NON-SMOKING FLIGHT                                         
     SEE RTSVC                                                  
  3  LH4138 Y 03NOV 5 FRANCE HK1  1600 1  1640 1805   737 E 0 R 
     NON-SMOKING FLIGHT                                         
     SEE RTSVC                                                  
  4 AP 809-0239424                                              
  5 TK TL26OCT/MUC1A0701                                        
  6 FP CASH                                                     

На сайте checkmytrip.com можно запросить вашу PNR введя фамилию и номер брони (6 символов).

Жизнь рейса выглядит так:

  • -7/10 дней: создание рейса;
  • -24 часа: вычисление вместимости;
  • -3 часа: начало оценки загрузки;
  • -2.5 часа: отправляется сообщение EZFW;
  • -1.5 часа: обновление оценки загрузки (DG/SL);
  • -1 час: отправка инструкций по загрузке;
  • -50 минут: ввод данных по топливу;
  • -45 минут: отправка NOTOC и предварительного отчёта о загрузке;
  • -10 минут: проверка перрона;
  • -3 минуты: отправка итогового отчёта о загрузке;
  • 0: взлёт;
  • +10 минут: release control, чтобы это ни значило, отправка LDM/CPM/SLS.

Все эти сообщения сохраняются и доступны для поиска и пересылки. В случае чего спецслужбы могут запросить блокировку доступа к архиву конкретного рейса для расследования.

Помимо служебных сообщений предоставляется сервис обмена персональными сообщениями между сотрудниками агентств. Был случай судебного запроса истории переписки с целю расследования сексуального домогательства.

Поток сообщений может достигать нескольких тысяч в секунду, и мы гарантируем целостность последовательности, приоритет, доставку и хранение (если требуется). Персональные данные по необходимости шифруются, номера кредиток в логах не видны.

Авиакомпаниям хочется быть огороженными друг от друга, чтобы в случае инцидента с хранилищем одних, не страдали другие. А с другой стороны, им необходимо иметь доступ к архиву партнёров и отсылать сообщения кому-нипоподя.

Разработка

Большой бизнес, понятное дело, не очень поворотлив. Если что-то работает, то лучше не трогать. Поэтому протоколы и понятия, казавшиеся адекватными на заре отрасли, с переменным успехом дожили до настоящего времени. Но над этим работает достаточно большое количество людей, стараясь обеспечить современный уровень услуг и необходимую безопасность.

Спервоначалу ядром системы было готовое программно-аппаратное решение от IBM. Впрочем, написанное на ассемблере в бородатое время до сих пор верно работает, хоть и требует значительных ресурсов на поддержку: решение дорогое, специалисты редкие. Сейчас новыми продуктами занимается центр разработки, и используются современные инструменты.

Основной язык программирования сильно нагруженных сервисов — C++. Для графических интерфейсов есть Java, web-сервисы с различными серверными решениями. Широко используется Python для создания скриптов регрессивного тестирования. На серверах трудится Linux.

Перед тем, как код попадает в продакшн, проходит обкатка на нескольких уровнях тестовых систем, которые представляют собой копии работающей системы различной степени достоверности. В эти копии направляется сохранённый реальный трафик, так что системы работают как бы в прошлом, с известным сдвигом во времени. Один из уровней — система тренинга, предназначенная для обучения персонала клиентов.

Все системы имеют разную степень критичности. Поддержкой занимаются люди, которые производят обновление системы на различных уровнях, а так же разработчики. В командах существует график недельных дежурств, в которые выдаётся мобильный телефон. В эти дежурства происходит добровольное ограничение передвижения: время реагирования на проблему включено в контракт, и в случае чего могут позвонить среди ночи на выходных, и есть какое-то малое время на подключение к чату с обсуждением сложившейся проблемы. Пример такой проблемы: AirFrance не может продавать билеты, или вообще всё сломалось.

Во время загрузки новой версии (критического) приложения комната разработчиков иногда напоминает центр управления полётами (в каком-то смысле так и есть). Мы следим за трафиком сообщений в реальном времени, и если что готовимся откатить обновление назад или подставить костыль. Иногда случаются казусы с базой данных, если обновляется схема. Отдел, который заведует установкой не всегда в курсе, что они устанавливают, поэтому разное бывает. Ещё случаются обновления конфигурации, как например появление нового клиента, с последующей настройкой маршрутизации и всего-всего.

Трактор

Центр разработки, в котором трудится ваш непокорный слуга, находится на Лазурном берегу, в парке София Антиполис — местной кремниевой долине. IT-компаниям были предложены специальные условия в этом регионе (льготное электричество, например), чем воспользовались многие известные фирмы: Intel, ARM, Inria, AirFrance, Amadeus, прочие. Кстати, имеются открытые вакансии.

На Амадеус трудится огромное количество приезжих, поэтому официальный язык внутри — английский. Хотя в столовой и за кофе французы предпочитают говорить по-французски. Но достаточно одного человека, не говорящего по-французски, и на собрании из десятков людей все переключаются на английский без проблем.

Из окна видны южные Альпы, деревушки на склонах холмов и Лигурийское море. По лесам бегают зайцы и кабанчики. Видел из окна автобуса пасущихся на газоне поросят. Скоро зима, горы наденут снежные шапки и настанет лыжный сезон. Раз в год выпадает снежок на дорогах вокруг города, чем вызывает катаклизм, потому что к гололёду никто не готов. Даже поезда.

Автор: 0x656b694d

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js