Поделиться через


Предположения и принципы проектирования COM+

Распределенная модель программирования Майкрософт состоит из нескольких технологий, включая MSMQ, IIS, DCOM и COM+. Все эти службы предназначены для использования распределенными приложениями.

COM+ был разработан для упрощения создания распределенных приложений. Общая архитектура основана на наборе предположений и принципов.

Предположения

Предположения приведены следующим образом:

  • Приложение COM+ будет поддерживать нескольких пользователей на нескольких серверах. Другими словами, вы создаете распределенное приложение, и эти несколько пользователей будут находиться на разных хост-компьютерах, от которых выполняется код. Пользователи будут получать доступ к коду через Интернет или через частную сеть. Пользовательский интерфейс будет представлен через браузер или, возможно, пользовательское приложение, например приложение на основе форм, написанное с помощью Microsoft Visual Basic или MFC. Этот пользовательский интерфейс будет находиться на клиентском компьютере.
  • Приложение COM+ можно масштабировать и обеспечить большую доступность и надежность, развернув приложение на нескольких серверах. Это позволяет сбалансировать рабочую нагрузку приложения и обеспечить отказоустойчивость с помощью кластеризации Windows.
  • Если что-то не так, состояние сохраненных данных, хранящихся в базе данных, из приложения COM+ будет поддерживаться при использовании транзакций. Состояние приложения должно выжить в результате аварий, которые могут возникнуть, например ошибки приложения, сбои системы или сбои сети.

Принципы работы

Помимо этих трех предположений, следующие принципы перевечают модель программирования COM+:

  • Логика приложения будет находиться на серверах, а не на клиентских компьютерах. Это необходимо сделать тремя основными причинами.
    • Клиентский компьютер может не иметь мощности обработки или функций, необходимых для выполнения логики приложения. Кроме того, сохранение логики приложения на сервере упрощает развертывание.
    • Серверные компьютеры часто ближе к данным, и эти данные чаще всего находятся в базе данных. Так как приложение обращается к базам данных, вы хотите быть очень чувствительным к стоимости подключения к базе данных. Поместив большую часть логики на серверных компьютерах, вы можете поделиться подключения к базе данных и получить значительное улучшение производительности. На серверных компьютерах есть другие ресурсы, к которым можно предоставить общий доступ, а также с преимуществом производительности.
    • Наличие логики приложения на серверных компьютерах обеспечивает контроль контекста безопасности с приложением. При сохранении безопасности компонентов приложений, работающих на серверах, а не на клиентских компьютерах, больше контроля над безопасностью.
  • Транзакции являются основными. По проектированию транзакции так пронизывают модель программирования COM+, что очень важно для вас понять их. Хотя вы можете использовать многие службы COM+ без использования транзакций, если вы решили не использовать их, вы не можете воспользоваться всеми преимуществами служб COM+, доступных для вас. Ниже приведены некоторые важные преимущества использования транзакций.
    • Транзакции — это разумное решение для проблемы управления параллелизмом. Кроме того, транзакции помогают защититься от сбоев и иметь хорошую модель восстановления ошибок. Кроме того, транзакции оказываются отличным способом управления задачами в нескольких системах.
    • Вы можете разработать приложение COM+ на основе транзакций для работы с диспетчером ресурсов и базой данных, которая помогает защитить большинство сведений о состоянии. Сохраняя состояние внутри базы данных или другое хранилище, управляемое диспетчером ресурсов, вам не нужно хранить большое состояние внутри фактических объектов, создаваемых приложением. Хотя это отклонение от чисто объектно-ориентированной модели, она хорошо подходит для создания распределенных приложений с восстановлением ошибок.
  • Функциональные возможности приложений создаются как COM-объекты, обтекая протоколы, используемые для взаимодействия с другими системами или технологиями. Так как вы, вероятно, создаете компоненты, которые собираются объединить несколько технологий или устаревших систем, спланируйте использование различных протоколов связи. Используйте HTTP для обмена данными между клиентами и серверами или обмена данными между приложениями через Интернет. Используйте DCOM для взаимодействия между приложениями или компонентами на сервере.

Основные рекомендации по проектированию приложений COM+

Проектирование приложения COM+ с помощью UML

Общие Советы проектирования для использования COM+

Оптимизация взаимодействий с уровнем бизнес-логики COM+

Другие средства Майкрософт для создания распределенных приложений