Разработка Web-приложений в облачных сервисах

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

1 Масштабируемость (scalability) — это способность информационной системы увеличивать свою производительность при добавлении ресурсов (обычно аппаратных). Масштабируемость — один из главных аспектов электронных систем, программных комплексов, баз данных, маршрутизаторов, сетей и т. п., если для них требуется возможность работать под большой нагрузкой. Подробнее см. http://en.wikipedia.org/ wiki/Scalability, http://www.insight-it.ru/net/scalability/masshtabiruemye-veb-arkhitektury/. — Прим. перев.

но большинство проблем, с которыми вы столкнетесь, не имеют ничего общего с выбором платформы разработки. Не имеет абсолютно никакого значения, на чем вы будете писать свое приложение — .NET, Ruby, Java, PHP, или воспользуетесь чем-то еще, но общая архитектура для разрабатываемых Web-приложений будет примерно одинакова.

Типовая архитектура, которую использует большинство Web-приложений, представлена на рис. 4.1.

Рис. 4.1. Большинство Web-приложений использует примерно одинаковую базовую архитектуру

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

Состояние системы и защита транзакций

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

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

Каким образом ваше приложение реализует связь между изменениями, такими как время бронирования пользователем номера и осуществлением транзакции в базе данных?

Весь процесс может выглядеть примерно как следующая цепочка шагов:

1.      Блокировка данных, ассоциированных с номером отеля.

2.      Проверка статуса номера — свободен ли он на данный момент и может ли быть забронирован.

3.      Если номер на данный момент доступен, необходимо пометить его как забронированный (booked) и, следовательно, более недоступный для заказа.

4.      Снятие блокировки.

Источник: Риз Дж., Облачные вычисления: Пер. с англ. — СПб.: БХВ-Петербург, 2011. — 288 с.: ил.

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

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100