Windows - статьи

Объект COM+


Так как технология COM+ основана на COM, ее объекты должны удовлетворять основным требованиям к объектам COM. Помимо этого объекты COM+ имеют ряд особенностей:

  • объект должен быть реализован в составе внутреннего сервера (динамическая библиотека);
  • объект должен содержать ссылку на библиотеку типов COM+;
  • объект должен использовать только стандартный механизм маршаллинга COM;
  • объект должен имплементировать интерфейс IobjectControl.

Исходя из общих принципов работы COM+, создаваемый объект может быть двух типов:

  • statefull (с сохранением информации о состоянии объекта);
  • stateless (без сохранения информации о состоянии объекта).

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

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

Если объект не может сохранять свое промежуточное состояние, то он относится к типу stateless. Объекты этого типа более эффективны. Когда транзакция успешно завершена или прервана, все объекты, вовлеченные в транзакцию, деактивируются и, соответственно, теряют информацию о своем состоянии, приобретенную во время транзакции. Это помогает убедиться в изоляции транзакции и согласованности базы данных, а также освобождает ресурсы сервера для использования другими транзакциями. Завершение транзакции позволяет COM+ деактивировать объект и обновить ресурсы.



Содержание раздела