Главная » Delphi » Организация приложения COM+

0

Понятию “приложение” (application) в средствах Component Services соответству ет набор  компонентов COM+, имеющих общую конфигурацию и параметры. Раньше для определения этого  же понятия в терминологии сервера MTS использовалось сло во “пакет”  (package), однако, к счастью, в COM+ терминология изменилась. Термин “пакет” использовался для обозначения достаточно большого количества понятий, включая пакеты Delphi, пакеты C++Builder, пакеты Oracle и пакеты с подарками на день рождения.

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

Для   создания  приложений  используется  либо   меню   Run,  пункт   Install  COM+ Objects IDE Delphi, либо средство Component Services.

Размышления о транзакциях

Одним  из  ключевых вопросов COM+  являются транзакции. Кто то  может  поду мать:  мой  сервер баз  данных  уже поддерживает транзакции, так  зачем  они  должны поддерживаться еще и моими компонентами? Это — хороший вопрос, заслуживающий хорошего ответа. Средства COM+ позволяют открыть несколько транзакций при  од новременном подключении к нескольким базам данных  и даже выполнить отдельноедействие из некоторого набора операций, не  имеющих непосредственного  отноше ния к базам данных.  Для поддержки транзакций объектами COM+ необходимо либо в процессе разработки установить соответствующий флажок для класса  объекта в биб лиотеке типов  (эта  операция выполняется при  помощи мастера Delphi Transactional Object), либо  после  установки объекта при  помощи проводника сервера транзакций (Transaction Server Explorer).

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

•   проверка указанной в чеке суммы на счету клиента;

•   снятие со счета платы за банковскую операцию по возвращению чека;

•   отправка уведомления клиенту.

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

Ресурсы

При  работе со спецификацией COM+ постоянно выполняется создание и уничто жение объектов, а также  используются транзакции. Поэтому  большое  значение име ют средства распределения ресурсов (таких как подключения к базе  данных) между множеством объектов. В COM+ для этого  служат диспетчеры ресурсов и распредели тели   ресурсов.  Диспетчер  ресурсов (resource  manager)  представляет собой   службу, управляющую  некоторыми типами долговременных данных  (например информацией об остатке на счету или  об инвентаре). Корпорация Microsoft реализовала диспетчер ресурсов в сервере MS SQL Server. Распределитель  ресурсов (resource dispenser) управля ет недолговременными ресурсами (в частности, подключениями к базе данных). Кор порация Microsoft реализовала распределитель ресурсов в средствах ODBC, а Borland — в средствах BDE.

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

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии