Логика и архитектура бронирования, синхронизация базы данных: отели, система бронирования теннисных кортов - PullRequest
1 голос
/ 15 мая 2010

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

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

Каждый раз, когда бронирование осуществляется на нашем веб-сайте, мы хотим отправить бронирование в их систему. Сложность заключается в том, что их система должна быть онлайн и доступна извне. Ip может измениться, мы должны использовать dns Updater.

Если их система недоступна, мы по-прежнему принимаем бронирование и возвращаемся на асинхронное электронное письмо со ссылкой «Я подтверждаю бронирование / отклонить бронирование», отправленной в клуб.

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

Хорошо то, что данные будут расти большими и хорошо вписываться в некоторые без SQL;), например, couch db

Ответы [ 2 ]

3 голосов
/ 16 мая 2010

Здесь есть несколько вопросов, позвольте мне попробовать ответить на каждый из них ...

Поскольку это Интернет-приложение с серверами объединения, использование подразумеваемого HTTP-протокола имеет большой смысл. Это можно сделать с помощью Form POST, GET или даже REST-представления некоторой пользовательской структуры данных. В конце концов, точный подход к использованию должен сводиться к размеру и сложности передаваемой информации. Многие архитектуры используют эти подходы и часто комбинируют их с зашифрованными, подписанными и / или кодированными полезными нагрузками для безопасности. Одним из недостатков, который следует учитывать при использовании этих подходов, является то, что они потребуют от вас четкой передачи всех форматов сообщений запроса / ответа, диапазонов полей и вариантов, поскольку эти механизмы на самом деле не описывают сами себя. С другой стороны, в этих шаблонах используются очень распространенные протоколы, их легко понять, легко внедрить и, как правило, они подключаются по проводам.

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

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

  • Найти открытые места для бронирования
  • Зарезервировать место для бронирования. Это устанавливает блокировку с истекающим сроком действия, в то время как запрашивающая сторона заполняет всю необходимую информацию о бронировании. Это смягчает условия гонки, которые могут привести к нескольким бронированиям для одного и того же места
  • Как только вся необходимая информация о бронировании получена и подтверждена, бронь подтверждается и постоянно блокируется для использования другими заявителями

Что касается комментария БД в стиле SQL, я не могу сказать, учитывая количество предоставленной информации. С учетом сказанного мои инстинкты говорят мне, что БД в стиле SQL вполне разумна для этой проблемы. У меня есть базы данных со многими педабайтами и очень высоким SLA. Вы подразумевали необходимость в высокой доступности, и базы данных на основе SQL уже несколько десятилетий подтверждают свою поддержку в этой области.

Надеюсь, это поможет.

0 голосов
/ 17 мая 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...