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