В недавней статье сама собой затронулась тема обмена сообщениями между компаниями, обеспечивающими авиаперевозки с точки зрения поисковика билетов.
Здесь же я попробую рассказать об обработке этих сообщений, а также об особенностях работы в компании Amadeus на Лазурном берегу.
Тема достаточно обширная, поэтому я сперва набросаю лишь несколько ключевых слов, и вместе мы посмотрим, что вызовет интерес.
История
С какого-то момента стало понятно, что для успешного развития авиаперевозок необходимо создать более-менее универсальный способ общения между заинтересованными сторонами. Авиакомпании должны договариваться с аэропортами, агентства — продавать билеты, а клиенты должны платить и не жаловаться.
Развитием этого понимания стало создание Люфтганзой, Эйрфрансом и Иберией компании Амадеус, со штаб-квартирой в Мадриде, дата-центром в Эрдинге и разбросанными центрами разработки.
Вселенная системы дистрибуции расширяется, и влечёт вполне понятные последствия. Например, дата-центр через пару лет достигнет предела доступной мощности, хотя уже пользуется тремя поставщиками электроэнергии. В планах трансконтинентальная экспансия.
Созданная как GDS, компания Амадеус в настоящее время включает помимо системы резервации: управление расписаниями, инвентаризация полётов, управление аэропортом (чекин, посадка), подсчёт прибыли и пр. Так же есть попытки работать с резервацией отелей и прокатных машин.
Деятельность индустрии регулируется Международной ассоциацией воздушного транспорта. Задумана ассоциация была для контроля за ценами международных перевозок. Но с 2003 года идут переговоры о создании бесконтрольного рынка. В настоящее время задачи ассоциации следующие:
- упрощение биллинга между авиакомпаниями и агентствами;
- назначение кодов компаниям и аэропортам: 2 символа для компании (например, 1A), 3 символа для аэропорта (LED);
- обеспечение возможности сверки цен с другими авиакомпаниями;
- определение правил индустрии, такие как перевозка опасных грузов;
- стандартизация, например EDIFACT.
Амадеус обслуживает более 104400 точек агентских продаж и более 36600 офисов продаж более 460 авиакомпаний. 26 компании по прокату автомобилей с 36000 пунктами проката.
Процесс
Амадеус работает в модели бизнеса, основанной на транзакциях. То есть клиенты платят за использованные юниты функциональности. Например, каждый раз, когда происходит резервирование билета, Амадеус получает какой-то фиксированный пирожок. Подобная плата может быть взята за печать документа, обмен билета, регистрации пассажира и пр. Конечно же, клиенты отдельно платят за разработку новой функциональности.
Продукты компании распределяются на три роли:
- Altéa Reservation:
- проверка наличия мест;
- резервирование;
- ценообразование;
- выписка обычных и электронных билетов;
- Altéa Inventory:
- управление расписанием полётов, публикация;
- управление картами пассажирских мест;
- 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