powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как работает система резервирования билета?
25 сообщений из 92, страница 1 из 4
Как работает система резервирования билета?
    #35836965
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Поясните чайнику пожалуйста как устроена система резервирования/покупки билетов? Например Lastminute.com, Expedia.com etc

Конкретно интересует как сообственно реализована синхронизация доступа нескольких клиентов. Например есть web доступ в систему резервирования авиа билетов. В какой то момент Оператор1 видит что доступно 5 билетов на определенный рейс. Далее Оператор1 пытается зарезервировать 3 билета. В это же самое время Оператор2 пытается зарезервировать тоже три билета.

Предположим используются след технологии: ASP.Net, ADO.Net, без какой либо ORM.

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

На уровне SQL запроса я должен указать конкретное условие что хочу зарезервировать билет с номером 123 и Status == 'available'?
Код: plaintext
update Tickets set Status = 'reserved' where ticketID ==  123  and Status == 'available'


Должен я делать что какие то дополнительные действия связанные с Optimistic/Pessimistic Concurrency control?

Пожалуйста не шпыняйте сильно. Хотелось бы получить ответ по существу. спасибо большое.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837175
awhiler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чайник01,

все немного сложнее. операторы не имеют прямой доступ к одной общей базе, а каждый использует свою,с разными стратегиями синхронизации
погуглите термин overbooking
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837233
awhiler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чайник01,

если же вас интересует в пределах одной базы (заменим,два оператора на два пользователя), то
все примерно так: в одной транзакция сначала будет проверка, свободно ли еще место (этот же селект наложит блокировку на соответствующую запись), потом будет апдейт, который запись изменит. Соответственно, кто первый успеет,тот и проапдейтит, а второй получит отлуп.
как то так.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837308
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
awhilerчайник01,

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

Вот тут поподробнее пожалуйста. Как раз этот момент и интересует.

В первой транзакции мы выбираем все свободные места. Надо ли использовать SET TRANSACTION ISOLATION LEVEL? Что надо сделать чтобы селект наложил блокировку на соответствующую запись?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837332
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
awhilerчайник01,

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

Посмотрел про Overbooking и не нашел что это как то связано со стратегиями синхронизации. Говорят что делают это специально чтобы компенсировать тех кто не явился на рейс...

WikipediaThis allows them to have a (nearly) full vehicle on most runs, even if some customers miss the trip or don't show up
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837445
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллега изначально система продажи билетов зависела от монополистов - государств и их пособников департаментов Транспорта. Так появились глобальные дистрибутивные системы GDS . Потом началась де-монополизация. От основных GDS (Sabre, Amadeus, Galileo, worldSpan) начали отпочковывавться он-лайн агенства - афилиеты. Так появились Expedia.com, Travelosity.com, Orbitz.com и так далее. Поймите правильно. Процесс загрузки самолёта - очень сложен и многопланов. Существуют скидки, категории билетов целые системы обеспечения заполнения. Наиболее дешёвые билеты - это те которые невозможно поменять или отказаться от полёта. Наиболее дорогие - билеты первого класса. И каждый вылет - а их 40000 ежедневно только в Америке - надо заполнить.

Никакой синхронизации доступа в систему нет. У каждого "агенства" своё окошечко в систему. На каждый вылет покупатель видет только те билеты которые продаёт это "окошечко" И по такой цене - сколько определено в категории билета имеющихся в наличие. Например Вы ищите полёт Бостон Лос Анжелес на 1 мая 2009. Сначала Вы заказываете дату вылета и Число билетов (по числу участников) и Travelosity.com (sabre) имеет 25 билетов на этот рейс категории Y - самые дешёвые. Expedia.com уже продала свои и остались только 2 из пяти Вам нужных категории Y - значит выдаст Вам категорию К - 20% дороже. Из своего фонда. И так далее. Нужны подробности - дайте знать.

каждой системе провайдер (авиакомпания) выделяет часть билетов до 60-75% от общего их числа. Оставшиеся оставяет за собой И если они не проданы к такому то числу - тоже.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837520
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr Marmelad...

Спасибо, интересная информация. Понял что с авиабилетами не все так просто.

Тогда меня интересует как реализована простая система резервирования какого-нибудь ресурса в случае когда к системе имеет доступ одновременно несколько пользователей.

Вопросы к awhiler остаются в силе.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837533
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr Marmelad
Никакой синхронизации доступа в систему нет. У каждого "агенства" своё окошечко в систему. На каждый вылет покупатель видет только те билеты которые продаёт это "окошечко" И по такой цене - сколько определено в категории билета имеющихся в наличие...

Я правильно понял что каждое агенство получает доступ не ко всем доступным билетам на рейс а скажем N билетов в эконом, M билетов в бизнес класс? И так для каждого агенства распределено?

Должен тогда быть наверное какой то агрегатор который распределяет кому и сколько?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837541
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чайник01,

На самом деле во всех билетных системах более менее одна и та же логика. Это высокоактивная OLTP со всеми аттрибутами таковой. Существует целый ряд публикаций и это мой самый любимый на эту тему . . Каков Ваш интерес в этом вопросе Коллега? реферат или реальный проект?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837550
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чайник01
Я правильно понял ...
Совершенно верно. Он распределяет категории билетов и сроки их реализации в (к примеру) 5 дней с момента "утверждения расписания" по всем "агенствам" - GDS. Если агенство А продали свои билеты на момент вылет минус 30 дней, а агенство Б - нет, билеты перераспределяются от Б к А. Имейте ввиду там очень маленький навар с билета и число проданых билетов имеет решающее значение.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837560
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там ещё и политика имеет место. Существует целый ряд так называемых малобюджетных авиакомпаний которые сами продают свои билеты. Без посредников. GDS так сказать отключены. Их рынок - это как раз то что Вы ищите. Например jetblue.com сообщает сразу сколько билетов осталось на данный рейс.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837567
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr MarmeladКаков Ваш интерес в этом вопросе Коллега? реферат или реальный проект?

Спасибо за ссылку. Ни то ни другое на самом деле!

Просто интересно что и как происходит после того как система отобразила список доступных ресурсов(aka номера в гостинице, автомобили на прокат, билеты в театр и т.д.), пользователь заполнил необходимые данные для резерирования и кликнул кнопку "Зарезервировать/Купить"...

Интересует именно на уровне взаимодействия с БД. Как разруливается конфликт резервирования несколькими пользователями одного и того же ресурса.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837569
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И каждое место можно селектнуть в сессии во время покупки. Что в общем очень невыгодно компании. Ведь надо загрузить все места. а ктото не хочет сидеть между потной тётей и пьяным дядей...
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837586
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr MarmeladТам ещё и политика имеет место. Существует целый ряд так называемых малобюджетных авиакомпаний которые сами продают свои билеты. Без посредников. GDS так сказать отключены. Их рынок - это как раз то что Вы ищите. Например jetblue.com сообщает сразу сколько билетов осталось на данный рейс.

Ага! Вон оно как. Так все эти компании GDS (Sabre, Amadeus, Galileo, worldSpan) они не продают ПО, а предоставляют свой сервис по продаже билетов авиакомпаниям? И дают возможность всяким посредникам типа Expedia and Lastminute тоже перепродавать билеты пользуясь их системами. То есть ни Expedia ни Lastminute и им подобные не работают напрямую с авиакомпаниями? Они работают с GDS (Sabre, Amadeus, Galileo, worldSpan). Так?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837591
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чайник01Просто интересно что и как происходит после того как система отобразила ...

Ааа интерес... Очень карашо. На самом деле Коллега - смотрите - рынок этот огромен. Вы совершенно правы - любые средтсва путешествий - это целый мир. И он стал совершенно другим за последние 10 лет. Раньше это был мир особых услуг консультантов по путешествиям. Он и сейчас имеет место. Раньше за него платили большие деньги - 10-15% от общей суммы за пакет (Авиабилет + гостинница + рент машины + развлечения разные). Сейчас платят 5-7% и то под давлением Очень много бизнеса ушло на интернет. Зато образовались новые виды продуктов - например Круизы. В 1995 году только 3% американцев знали о Круизах. в 2005 уже 15% стали постоянными клиентами круизных компаний. И всё равно рынок увеличился в 5 раз но не охвачен даже до 1/4 части. Загрузка в 80% - обычно считается успешной. Существует ещё и разделение на коммерческие (деловые) и туристические путешествия. Так то вот. Я Вас не утомил?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837593
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чайник01Просто интересно что и как происходит после того как система отобразила список доступных ресурсов(aka номера в гостинице, автомобили на прокат, билеты в театр и т.д.), пользователь заполнил необходимые данные для резерирования и кликнул кнопку "Зарезервировать/Купить"...

Интересует именно на уровне взаимодействия с БД. Как разруливается конфликт резервирования несколькими пользователями одного и того же ресурса.Это вопрос не работы СУБД. Это вопрос бизнес-логики.

Каждый продавец определяет правила резервирования - кто-то разрешает резервировать, кто-то нет, все, то разрешает, делают это на разных условиях, по разным правилам.

А разработчики БД уже эти правила реализуют.

Разумеется, транзакциями в СУБД резервирование никто не делает.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837602
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr Marmelad...Существует ещё и разделение на коммерческие (деловые) и туристические путешествия. Так то вот. Я Вас не утомил?

нет не утомили.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837604
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чайник01ПО, а предоставляют свой сервис по продаже билетов авиакомпаниям? И дают возможность всяким посредникам типа Expedia and Lastminute тоже перепродавать билеты пользуясь их системами. То есть ни Expedia ни Lastminute и им подобные не работают напрямую с авиакомпаниями? Они работают с GDS (Sabre, Amadeus, Galileo, worldSpan). Так?


Всё именно так. Например самый новый Orbitz.com - порождение консорциума авиакомпаний . И если Вы внимательно приглядитесь - все gds - это в конце концов IT ДОТ (департамент транспорта - диспетчерская) Просто функций там много - не только продаже билетов. Там и стоянки самолётов, и дозаправки, и багаж, и безопасность, и инспектирование и так далее - Так что продажа - просто отдел в большой (огромной) машине.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837613
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgчайник01Просто интересно что и как происходит после того как система отобразила список доступных ресурсов(aka номера в гостинице, автомобили на прокат, билеты в театр и т.д.), пользователь заполнил необходимые данные для резерирования и кликнул кнопку "Зарезервировать/Купить"...

Интересует именно на уровне взаимодействия с БД. Как разруливается конфликт резервирования несколькими пользователями одного и того же ресурса.

Это вопрос не работы СУБД. Это вопрос бизнес-логики.

Каждый продавец определяет правила резервирования - кто-то разрешает резервировать, кто-то нет, все, то разрешает, делают это на разных условиях, по разным правилам.
А разработчики БД уже эти правила реализуют.
Разумеется, транзакциями в СУБД резервирование никто не делает.

ну хорошо а как тогда поступают на уровне БД, если бизнес-логика запрещает overbooking ресурса?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837625
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чайник01
ну хорошо а как тогда поступают на уровне БД, если бизнес-логика запрещает overbooking ресурса?

update Resources set Status = 'reserved' where ResourceID == 123 and Status == 'available'
и если RowsAffected = 0 значит уже занято?!
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837641
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чайник01 если бизнес-логика запрещает overbooking ресурса?

Overbooking - праздник для компании. Они все мечтают о таком результате. Обычно решается он оперативно. Конечно существуют и отлично просчитаны все цены - места для каждого конкретного рейса. И тот или иной рейс будет ориентирован или на бизнес или на туристический рынок. Например Понедельник 6 утра из Бостона в Нью Йорк цены будут $300 - и продаваться через Amex Travel - бизнес агентство. Большинство. А вот на субботу 1 час дня из того же Бостона в тот же НЙ - $40 через Expedia.com - группам студентов для посещения статуи свободы. Понятно?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837651
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:Overbooking - праздник для компании. Они все мечтают о таком результате. Обычно решается он оперативно.

Кстати Самолёты под тот или иной рейс очень легко заменить. Так что проблема не в овербукинге а как раз наоборот.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837655
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чайник01чайник01
ну хорошо а как тогда поступают на уровне БД, если бизнес-логика запрещает overbooking ресурса?

update Resources set Status = 'reserved' where ResourceID == 123 and Status == 'available'
и если RowsAffected = 0 значит уже занято?!Да, например, так. Этого достаточно даже без внешней транзакции.

Только у реального бизнеса бизнес-логика сложнее.

Нужно зарезервировать билет на те минуты, пока пользователь не заполнил форму продажи, потом на те часы, пока не пришла оплата, и потом только продать окончательно.
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837659
чайник01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgчайник01чайник01
ну хорошо а как тогда поступают на уровне БД, если бизнес-логика запрещает overbooking ресурса?

update Resources set Status = 'reserved' where ResourceID == 123 and Status == 'available'
и если RowsAffected = 0 значит уже занято?!Да, например, так. Этого достаточно даже без внешней транзакции.

Только у реального бизнеса бизнес-логика сложнее.

Нужно зарезервировать билет на те минуты, пока пользователь не заполнил форму продажи, потом на те часы, пока не пришла оплата, и потом только продать окончательно.

ну то есть стадий между available и sold out гораздо больше. Типа awaiting user data, payment pending etc?
...
Рейтинг: 0 / 0
Как работает система резервирования билета?
    #35837660
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgчайник01чайник01
ну хорошо а как тогда поступают на уровне БД, если бизнес-логика запрещает overbooking ресурса?

update Resources set Status = 'reserved' where ResourceID == 123 and Status == 'available'
и если RowsAffected = 0 значит уже занято?!Да, например, так. Этого достаточно даже без внешней транзакции.

Только у реального бизнеса бизнес-логика сложнее.

Нужно зарезервировать билет на те минуты, пока пользователь не заполнил форму продажи, потом на те часы, пока не пришла оплата, и потом только продать окончательно.
это кто так делает?
...
Рейтинг: 0 / 0
25 сообщений из 92, страница 1 из 4
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как работает система резервирования билета?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]