Научная статья на тему 'Использование Web-технологии для системы заказа и бронирования авиабилетов нового поколения'

Использование Web-технологии для системы заказа и бронирования авиабилетов нового поколения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
639
90
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Быков Виктор Владимирович, Котиков Вячеслав Иванович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Использование Web-технологии для системы заказа и бронирования авиабилетов нового поколения»

УДК 681.324

ИСПОЛЬЗОВАНИЕ WEB-ТЕХНОЛОГИИ ДЛЯ СИСТЕМЫ ЗАКАЗА И БРОНИРОВАНИЯ АВИАБИЛЕТОВ НОВОГО ПОКОЛЕНИЯ

В.В. БЫКОВ, В.И. КОТИКОВ

Статья представлена доктором технических наук, профессором В.И. Васильевым

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

Число пользователей интернет в России превышает сегодня 23 млн. человек [1], что открывает новые возможности на рынке оказания услуг населению и, в частности, в сфере авиационных перевозок. С 2007 года авиационные компании переходят к такому виду обслуживания как электронный билет [2-3], что повлечет за собой создание web-приложений для представления этих электронных услуг конечному потребителю. Целью данной статьи является обсуждение вопросов, связанных с построением звеньев промежуточного уровня единой системы заказа и бронирования (СЗБ) авиабилетов нового поколения на основе разработанных авторами концепции, сущностной и структурной модели СЗБ [4-6]. На рис. 1 представлена логическая схема построения многоуровневой СЗБ авиабилетов нового поколения, использующей тематические хранилища данных.

Источники

поступления

информации

Загрузка

данных

О.О.

Тематические

хранилища

ООСУБД

Центральное

хранилище

РСУБД

Анализ и представление данных

Пользователь-

ские

приложения

Приложение «Администратор» Поставщики информации

Л Л

Приведение данных к Предобработка

единому формату данных

Сре* сь^ Стар ифы^

Ссессии^) -СвИЛЕТЫ^- I і -.СЛОЕ варИ

Многомерные Визуализация Стат.

запросы данных анализ

Экспертная

система

Анализ

данных

Рис. 1. Логическая схема многоуровневой СЗБ авиабилетов, использующей

тематические хранилища данных

1. Многозвенная архитектура СЗБ

Разработка многозвенных приложений ориентирована прежде всего на создание программного обеспечения, которое легко сопровождать и интегрировать, и представляет собой процесс, в котором приложение строится из компонентов, находящихся на разных уровнях. Каждый уровень обеспечивает сервис для других уровней, что позволяет выделить в него определенный аспект приложения [8]. Такое выделение приводит к созданию программ, которые очень легко сопровождать, поскольку каждый уровень может быть модифицирован независимо от остальных. В web-приложении выделяются следующие стандартные уровни: содержимого; логики;

представления.

В случае модификации одного из уровней изменения, которые необходимо будет выполнить на других уровнях, оказываются пропорциональными степени связи между ними [7]. Поэтому основная задача при проектировании многозвенных приложений состоит в том, чтобы разделить указанные уровни и свести к минимуму взаимодействия между ними. Для решения поставленной задачи каждый из уровней будем моделировать в виде программной абстракции, удовлетворяющей следующим требованиям: легкость сопровождения; модульность программирования; независимость логики и представления; независимость логики и содержимого; переносимость;

независимость от системы управления базами данных; повторное использование кода.

2. Исходные требования к интерфейсу и языку программирования промежуточного звена СЗБ

При создании приложения СЗБ авиабилетов необходимо сформировать список функций пользовательского и администраторского интерфейса, важнейшими из которых являются:

операции пользователя должны быть защищены. Это означает необходимость встроить в приложение механизм аутентификации;

пользователи должны иметь возможность поиска рейса, выбора кресла, и тарифа при помощи гибкого и интуитивно понятного интерфейса;

пользователи должны иметь возможность самостоятельно сформировать свой электронный билет;

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

Сформулированный список функций пользовательского и администраторского интерфейса позволил смоделировать последовательность действий типичного пользователя СЗБ авиабилетов, представленную на рис. 2.

Приложение должно динамически генерировать web-страницы на основе данных, получаемых из баз данных СЗБ. Для реализации этого механизма нам потребуется язык программирования для выполнения сценариев на стороне сервера, удовлетворяющий основным требованиям, предъявляемым к проекту:

развитая функциональность для работы с базами данных, строками, сетевыми соединениями, поддержка операций с файловыми системами, Java, COM, XML, CORBA и Macromedia Flash; независимость от платформы; независимость от web-серверов; простота расширения. Можно легко создавать собственные расширения языка;

простой синтаксис, поддержка ООП. Проведенный сравнительный анализ показал, что языки С# и PHP удовлетворяют поставленным требованиям, но, учитывая, что у авторов имелся практический опыт по использованию РНР, было принято решение его использовать как базовый язык для создания промежуточного уровня СЗБ.

3. Анализ архитектуры и построение среднего звена

В результате анализа архитектур были определены проектные решения и установлены принципы, которые должны быть использованы во всех сценариях приложения: аутентификация; хранение сеансов; производительность; уровни данных, логики и представления.

При входе на сайт СЗБ авиабилетов пользователь вводит свой ID и пароль. Сценарий проверяет ID пользователя и пароль и в зависимости от результата допускает пользователя к работе с приложением. После этого пользователю уже не надо предъявлять свой идентификатор и пароль. Протокол HHTPS не хранит состояние, т. е. при каждом новом запросе браузера открывается новое сетевое соединение с web-сервером. Поэтому сценарии приложения должны содержать механизм, идентифицировать пользователя по его запросу. Приложение СЗБ реализует механизм аутентификации с помощью функций сеансов PHP. Необходимо хранить в сеансе данные о пользователе и его выборе, чтобы снизить количество обращений к центральному хранилищу данных. А также сеансы будут обрабатывать различные сервера среднего звена.

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

Рис. 2.

Блок-схема взаимодействия пользователя и СЗБ авиабилетов

удаление данных сеансов с истекшим временем жизни.

Для выполнения этих функций был создан класс MySession, который предоставляет, основанный на хранении данных в Oracle, сеанс. С помощью этого класс-обработчика сеансов экземпляры среднего звена, выполняемые на разных машинах, смогут совместно использовать сеансы PHP и будет сохранена вся информация о пользователе и его действиях. Данная схема хранения сеансов в базе данных обеспечивает дополнительную надежность, выражающуюся в том, что пользователь сохранит доступ к приложению даже в том случае, если один из экземпляров среднего звена прекратит свою работу или потеряет связь с центральным хранилищем данных.

Во избежание затрат, связанных с открытием и закрытием соединений с базой данных при каждом новом вызове программы PHP, будем использовать постоянные соединения с базой данных.

Для форм, заполняемых пользователями, используется программный подход к динамическому проектированию web-приложений Ajax [9], что позволяет значительно ускорить работу приложения за счет обмена данными с сервером небольшими пакетами в фоновом режиме. Так, например, если пользователь выберет страну вылета - Германия (рис. 3), то, не обновляя формы, он получит доступ только к тем городам Германии, из которых существуют исходящие рейсы, за счет того, что сервер не будет перегружать весь интерфейс, а изменит только актуальную информацию. Это значительно повышает производительность системы и экономит время пользователя за счет использования конечных множеств названий и жестко связанных с ними их конечных подмножеств, хранящихся в базе данных, получаемых с помощью теневого запроса.

туда С туда/обратно

31 >,

3! г,

Любое 3

Номер рейса I

Когда; I I 3 I г.

_________________________^_____________________________

Рис.3. Поисковая форма запроса пользователя на основе AJAX

Как уже отмечалось, одной из задач по проектированию промежуточного уровня СЗБ является отделение уровней приложения. Ее решение было достигнуто путем реализации доступа к данным и логики приложения в различных классах. На уровне данных содержатся классы, предоставляющие пути для доступа к данным СЗБ. Все программные компоненты, создаваемые поверх этого уровня, должны пройти через него, чтобы получить доступ к данным приложения. На уровне логики обрабатываются и анализируются данные, полученные из уровня содержимого. В основе этого уровня лежат классы отслеживания пользователей, применение бизнес-правил регистрации, поиска, бронирования, сессий и многие другие. На уровне представления к содержимому, подготовленному на уровне логики, добавляются элементы дизайна и размещения. На этом уровне в СЗБ генерируются HTML с применением CSS и Flash анимации.

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

User - класс, моделирующий пользователя. Он сохраняет все атрибуты пользователя и реализует логику бронирования;

Address - класс, сохраняющий адрес;

CreditCard - класс, сохраняющий данные кредитных карт;

UserFactory - класс, реализующий функции по созданию новых пользователей;

Ticket - класс, моделирующий билет;

Place - класс, сохраняющий данные о месте;

Tarif - класс, сохраняющий данные о тарифе;

TarifFactory - класс, моделирующий тариф;

Ticketing - класс, содержащий логику для получения/поиска рейсов/билетов;

Transaction - класс, хранящий детали операций пользователя;

UserStorage - класс, реализующий операцию сохранения для объекта User;

ETicket - класс, сохраняющий данные о электронном билете;

ETicketFactory - класс, моделирующий электронный билет;

FlashToPHP - класс, поддерживающий обмен данными между flash и PHP;

NameCode -класс, преобразующий полные названия в аббревиатуры IATA.

Рис. 4. Объектная модель промежуточного уровня СЗБ в символах UML

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

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

Рис. 5. Администраторская (а) и пользовательская (б) страницы салона самолета

При проектировании подобного рода компонентов с помощью Flash Action Script удалось достигнуть небольших для них размеров (до 100 Кбайт) и обеспечить работу пользователя с салоном самолета без загрузки серверной части приложения (рис. 6).

КЛИЕНТ

А

Запрос салона

Рис. 6. Модель работы пользователя с приложением Action Script Выводы

Создание промежуточного уровня в СЗБ авиабилетов с использованием web-технологий, на основе предложенной авторами концепции: «Каждый пользователь может стать агентом по продажам», и найденных технических решений:

значительно понизить нагрузку на центральный сервер БД и увеличить производительность приложения за счет фоновых запросов и распределения нагрузки между серверами в результате переопределения сессий;

обеспечить работу пользователя с СЗБ в режиме реального времени, предоставляя ему удобную поисковую карту и бронирование конкретного места в салоне самолета, за счет использования мультимедийных технологий;

минимизировать время работы пользователя с системой за счет применения ajax технологий и сессий.

формировать статистические данные о загруженности рейсов в реальном времени.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ЛИТЕРАТУРА

1. Проект «Интернет в России/Россия в Интернет» Опросы, вып. 14. - М: Фонд. Общественное мнение, 2006.

2. Авиабилеты будут электронными / Воздушный флот, №11/43, 2004.

3. Дрозд Е., Могилин В. Электронный билет: Работа началась / Гражданская авиация, № 8, 2005.

4. Быков В.В., Котиков В.И., Криницин В.В. Построение адаптивной системы заказа и бронирования авиабилетов в распределенных сетях // Научный Вестник МГТУ ГА, серия Информатика. Прикладная математика, № 92, 2005.

5. Быков В.В. Программно-аппаратный комплекс для построения нового класса систем заказа и бронирования авиабилетов //Труды Международного форума по проблемам науки техники и образования. Т.3. - М.: 2005.

6. Быков В.В., Котиков В.И. Создание системы заказа и бронирования авиабилетов нового поколения //Научный Вестник МГТУ ГА, серия Информатика. Прикладная математика, № 105, 2006.

7. LArgerich, Cho W. Professional PHP4. М: wrox-Символ 2003.

8. Coggeshall J. PHP5: Полное руководство Москва-Киев: Вильямс 2006.

9. Gehtland J., Galbaraith B., Almaer D. Pragmatic Ajax. USA: “The Pragmatic Bookshelf’ 2005.

DEVELOPMENT OF THE NEW AGE SYSTEM FOR AIRLINE TICKETS BOOKING BASED ON

WEB TECHNOLOGIES

Bykov V.V., Kotikov V.I.

In this article architectural and program methods and solutions, which are based on web-technologies, are considered at creation of an intermediate level of multilevel system for air tickets ordering and booking using Internet. The web application was developed using the basis of iterative architecture. The application uses many multimedia solutions for a visualization of the booking process. All these methods and solutions allow to reduce a load of the central database server.

Сведения об авторах

Быков Виктор Владимирович, 1980 г.р., окончил МГТУ ГА (2002), ведущий программист Информационно-вычислительного центра МГТУ ГА, автор 3 научных работ, область научных интересов -информационные системы и технологии.

Котиков Вячеслав Иванович, 1941 г.р., окончил Московский электротехнический институт связи (1967), член-корреспондент Международной Академии информатизации, кандидат технических наук, профессор кафедры прикладной математики МГТУ ГА, заместитель начальника Информационновычислительного центра МГТУ ГА, автор более 60 научных работ, область научных интересов - электронные информотеки и информационные интеллектуальные системы и технологии.

i Надоели баннеры? Вы всегда можете отключить рекламу.