Jump to content

Компенсационная сделка

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

Существует две группы систем, в которых компенсационная сделка может применяться :

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

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

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

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

Обратите внимание, что компенсирующие транзакции не всегда работают. [2]

См. также

[ редактировать ]
  1. ^ Грей, Джим (июнь 1981 г.). «Концепция сделки: достоинства и ограничения». Материалы конференции по очень большим базам данных .
  2. ^ Основы архитектуры программного обеспечения: инженерный подход . О'Рейли Медиа. 2020. ISBN  978-1492043454 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ec8bd92f03af75e9b59e71cdb09595a7__1717635000
URL1:https://arc.ask3.ru/arc/aa/ec/a7/ec8bd92f03af75e9b59e71cdb09595a7.html
Заголовок, (Title) документа по адресу, URL1:
Compensating transaction - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)