Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ASP - Проектирование веб-приложений, использующих транзакции

Проектирование веб-приложений, использующих транзакции

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

Например, при обработке заказа на продажу можно выделить по крайней мере три шага, которые нужно выполнить:

  • Проверить доступность товара.
  • Получить платеж.
  • Передать заказ.

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

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

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

Примечание   Бизнес-процессы могут охватывать несколько файлов .asp, но физические транзакции — не должны.

Другой прием проектирования состоит в использовании кодов состояния внутри ресурсов транзакции для индикации состояния (ожидание или завершение) транзакции. Включение кодов состояния позволяет резервировать ресурс без фактического освобождения. Когда бизнес-процесс завершается, можно запустить другую физическую транзакцию, которая освободит все связанные ресурсы, изменив их код состояния. На примере компании «The Crawford & Sons Bicycle Company» показано, как эти два принципа влияют на реализацию веб-приложений, использующих транзакции.

Веб-приложение «The Crawford & Sons»

Велосипедная компания Crawford & Sons является производителем велосипедов ручной сборки, распространяемых в Северной Америке. Компания решила начать принимать заказы на их велосипеды через веб-приложение. Для хранения записей о покупателях и сведений о состоянии склада используется Microsoft® SQL Server. Кроме того, разработаны компоненты, работающие с данными и реализующие бизнес-логику. Эти компоненты зарегистрированы с помощью службы компонентов. Теперь необходимо разработать файлы .asp, которые позволяли бы покупателям обращаться к этим компонентам внутри одного бизнес-процесса. Приведенный ниже рисунок иллюстрирует отдельные физические транзакции и файлы .asp, формирующие структуру веб-приложения.

Пример транзакций

Приложение по обработке заказов на продажу состоит из четырех файлов .asp: Login.asp, Credit.asp, Inventory.asp и Commit.asp. Обратите внимание, что каждая физическая транзакция представлена отдельным файлом .asp. (Каждый файл .asp содержит директиву @Transaction = Required.) Файлы Login, Credit и Inventory взаимодействуют с COM-компонентом Sales Order, который предлагает методы для выполнения трех этапов оформления заказа.

Когда покупатель готов завершить покупку (то есть, когда бизнес-процесс завершен), Commit.asp объединяет всю логическую транзакцию в одну физическую транзакцию, которая изменяет коды состояния всех ресурсов данных с "pending" на "complete". Такая структура учитывает и природу Интернета, не требующую подключений, и необходимость предоставления пользователю унифицированного бизнес-процесса.

Дополнительные сведения о транзакциях службы компонентов см. в разделе Представление о транзакциях и в документации по службе компонентов и очередям сообщений в пакете SDK операционной системы. Примеры сценариев, реализующих транзакции приведены в подразделе Служба транзакций ASP в разделе Примеры ASP.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог