Проектирование для развертывания
Планирование область приложений COM+ является важной задачей проектирования, которые следует рассмотреть на раннем этапе. Распределенные системы, предназначенные для запуска с помощью COM+, должны быть разработаны для развертывания с наименьшим количеством отдельной конфигурации и наиболее эффективно использовать каждый процесс. Существуют также методы, которые позволяют достичь оптимальной производительности при развертывании приложения COM+. (Дополнительные сведения см. в разделе Развертывание для более быстрого взаимодействия.)
При просмотре с помощью средства администрирования служб компонентов каждое приложение COM+ отображается как папка, в которой наборы компонентов логически группируются. Хотя можно перемещать отдельные компоненты между папками компонентов приложения COM+ (другими словами, из одного приложения в другое), несколько служб, установленных на уровне приложения COM+, например безопасность, могут отличаться. Эти параметры службы могут повлиять на переносимость.
Приложение COM+ Server определяет границу процесса
При создании нового серверного приложения COM+ вы действительно определяете новую границу процесса. (Обратите внимание на исключение для приложений библиотеки, описанных ниже.) Этот процесс становится управляемым экземпляром приложения для компонентов, содержащихся в приложении COM+. Эти компоненты выполняются во всех процессах в новом экземпляре исполняемой программы COM+, когда программа вызывает приложение COM+ в первый раз. Это означает, что все компоненты в заданной папке компонентов приложения COM+ выполняются в одном пространстве процесса, который служит сервером DCOM. В приложении COM+ COM+ управляет памятью, координацией с координатором распределенных транзакций (DTC), активацией экземпляра jit-компонента, обнаружением сбоев и восстановлением, а также безопасностью на основе ролей.
Вызов между границами приложений COM+
Так как каждое приложение COM+ обычно реализуется как отдельный исполняемый файл, эффект разделения распределенного приложения между несколькими приложениями COM+ представляет вызовы COM вне процесса, когда компоненты в одном приложении COM+ вызывают компоненты в другом приложении COM+. Это создает снижение производительности из-за дополнительного бремени, которое налагает маршалинг параметров COM в процессах.
Примечание.
По сути, нет ничего неправильного в том, чтобы занести этот штраф за производительность; Вы просто должны знать, что это произойдет. В зависимости от требуемого времени отклика количество пользователей, которые одновременно запрашивают бизнес-службы, и добавленное бремя запуска, которое каждый компонент добавляет в каждое приложение COM+, может оказаться, что производительность, связанная с вызовами между приложениями, допустима.
Одна из возможных возможностей, которые устраняют производительность вызовов между границами приложений COM+, заключается в том, чтобы пометить данное приложение COM+ как приложение библиотеки. Приложение библиотеки COM+ запускается в процессе создания клиента. Конечно, ни один прирост производительности не имеет нулевой стоимости. В этом случае компромисс включает ограничения приложений библиотек COM+ . Хотя приложение библиотеки может использовать безопасность на основе ролей, оно не может поддерживать компоненты очереди или удаленный доступ.
См. также