Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1877

.pdf
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
2.61 Mб
Скачать

обновления компонентов. Любое программное обеспечение, загруженное в службы компонентов, называется компонентом. Службы компонентов имеют больше возможностей по управлению компонентами, например:

обновление компонента без прерывания его использования потребителем;

предоставление статистической информации об использовании компонента;

маскировка функционирования компонента под установленным набором входных данных пользователей;

распределение функций компонента на другие узлы;

откат транзакций базы данных.

Для загрузки объекта COM в службы компонентов сначала нужно создать приложение COM+. Приложение COM+ содержит один или более объектов или компонентов COM. Приложение COM+ в службах компонентов интерпретируется как идеальный (с точки зрения потребителя) развертываемый модуль. Приложение COM+ может использоваться другим процессом, или процесс, под которым выполняется приложение COM+, может быть предоставлен службам компонентов. Запуск (или остановка) приложения COM+ включает (или запрещает) использование всех его компонентов. Если наряду с надежными компонентами загружены ненадежные, то надежные компоненты нужно переместить в другое приложение COM+, которое не требует такого количества административных изменений, как приложение COM+ с проблемными библиотеками DLL. Такая стратегия минимизирует время простоя компонентов приложения, которое не будет "списано со счета" из-за ошибки в одном-единственном компоненте. Появляется возможность более четкого управления установкой компонента, изолированного от остальных надежных компонентов, пока его надежность не будет доказана.

211

2.4. Добавление нового приложения COM+ в службы компонентов

Ниже приведены шаги, с помощью которых новое приложение добавляется в службы компонентов.

1.Откройте консоль MMC Component Services (Службы компонентов) и разверните дерево элементов в левой части окна; под значком компьютера, содержащего компонент, должна быть открыта папка COM+ Applications (Приложения

COM+).

Примечание. С помощью консоли MMC cлужб компонентов можно управлять службой компонентов на удаленном узле, если у вас есть имя пользователя и пароль администратора, действительные на удаленном узле. Загрузка компонента на удаленный узел требует расположения файла компонента на этом узле. В консоли cлужб компонентов нельзя переместить файл компонента на удаленный узел.

2.Щелкните правой кнопкой мыши на папке COM+ Applications (Приложения COM+) и выберите New\Application (Создать\Приложение) (см. рис. 3.19) для запуска мастера установки приложения COM+ (COM+ Application Install Wizard).

3.В первом окне мастера нажмите на кнопку Next

(Далее).

212

Рис. 3.36. Добавление нового приложения в консоль управления Components Services (Службы компонентов).

4. В окне Install Or Create A New Application (Установка или создание нового приложения) (см. рис. 3.37) нажмите на кнопку Create An Empty Application (Создать пустое приложение) для перехода к следующему окну.

213

Рис. 3.37. Окно Install Or Create A New Application (Установка или создание нового приложения) мастера

установки приложения COM+

5. В окне Create Empty Application (Создать пустое приложение) (см. рис. 3.38) введите имя приложения COM+; в нашем случае – New ConfigSeatWeb. Имя приложения COM+ не играет особой роли с точки зрения программирования, оно определяет приложение COM+ в консоли управления службами компонентов. Библиотека DLL ConfigSeat является новым компонентом, поэтому выберите значение по умолчанию Server Application (Приложение сервера) в качестве типа активации. Параметр Activation Type (Тип активации) сильно влияет на производительность и надежность приложения COM+. Для получения более подробной информации об этом параметре обратитесь к разделу "Общие сведения об архитектуре Windows и приложениях служб компонентов". Для продолжения работы нажмите на кнопку Next (Далее).

214

Рис. 3.38. Окно Create Empty Application (Создание пустого приложения) мастера установки приложения COM+

6. В окне Set Application Identity (Установка принадлежности приложения) (см. рис. 3.39) параметром по умолчанию является Interactive User (Интерактивный пользователь). Здесь можно указать одну из встроенных учетных записей: Local Service (Локальная служба) или Network Service (Сетевая служба) – либо вручную присвоить учетную запись для выполнения приложения COM+. Параметр Interactive User (Интерактивный пользователь) подразумевает выполнение приложения COM+ под учетной записью текущего пользователя, находящегося в системе.

215

Рис. 3.39. Окно Set Application Identity (Установка принадлежности приложения) мастера установки приложения COM+

Не используйте этот параметр при работе с несущими компонентами приложения COM+, так как приложение COM+ не будет запускаться после выхода пользователя из системы узла.

Учетная запись Network Service (Сетевая служба) является учетной записью пользователя Windows по умолчанию для рабочих процессов в IIS. Учетная запись Local Service (Локальная служба) налагает большие ограничения, нежели учетная запись Network Service (Сетевая служба). Обе учетные записи являются ограничительными и, следовательно, достаточно защищенными для выполнения в них приложений. В рассматриваемом примере для выполнения приложения используется учетная запись Windows с именем webuser, которая создана для работы служб, связанных с интернетом. Учетная запись webuser принадлежит группе users. После

216

ввода и подтверждения пароля webuser нажмите на кнопку

Next (Далее).

7. Появится окно Add Application Roles (Добавить роли приложения) (см. рис. 3.40). По мере усложнения вебприложений программисты вынуждены, помимо обеспечения контроля доступа к содержимому, определять роли. Безопасность, основанная на использовании ролей, и расширяемые системы контроля доступа являются комплексными структурами, сложными для построения. Определение ролей и присвоение им учетных записей пользователей Windows согласно их принадлежности приложению COM+ является одним из способов использования служб компонентов.

Рис. 3.40. Окно Add Application Roles (Добавление ролей приложения) мастера установки приложения COM+

Роли создаются из соответствующих учетных записей пользователей Windows. Нажмите на кнопку Add Role для добавления дополнительных ролей в приложение COM+. В данном случае добавлена роль по умолчанию с именем CreatorOwner. Эта роль прекрасно подходит для приложения

217

COM+ в нашем примере. Для продолжения работы нажмите на кнопку Next (Далее).

8. В окне Add Users To Roles (Добавить пользователей в роли) (см. рис. 3.41) в роли, определенные в окне добавления ролей приложений, можно добавить учетные записи пользователей Windows. По умолчанию ваша учетная запись Windows будет использоваться в каждой роли, определенной в предыдущем окне. Учетные записи Windows, добавленные в роли, предназначены для предоставления аутентификационных данных, под которыми выполняются процессы. Учетная запись Windows webuser – единственная запись, добавленная в роль CreatorOwner (см. рис. 3.41). Нажмите на кнопку Next (Далее) для продолжения работы.

Рис. 3.41. Окно Add Users To Roles (Добавление пользователей в роли) мастера установки приложения COM+ с учетной записью, добавленной в роль

CreatorOwner

218

9. В последнем окне мастера нажмите на кнопку Finish (Готово). Теперь приложение COM+ настроено и готово к размещению библиотеки COM DLL.

2.5. Общие сведения об архитектуре Windows и приложениях служб компонентов

Для понимания различий между серверным приложением и приложением библиотеки в службах компонентов необходимо знать некоторые термины и механизмы архитектуры Windows. Процессом называется исполняемая программа, которая выполняется в данный момент. Операционная система Windows предоставляет процессорное время для каждого порожденного процесса. Нитью называется работа, выполняемая внутри процесса. Процесс может поддерживать одновременно несколько нитей. Если нити в процессе отсутствуют, то процесс считается выполненным, и Windows не выделяет ему процессорное время.

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

Стремясь к сокращению системных ресурсов, связанных с запуском и работой процессов, программисты разрабатывают программное обеспечение для загрузки в память под существующим процессом вместо создания нового процесса. Сравнение веб-приложений Common Gateway Interface (CGI) и веб-приложений ASP показывает различие, о

219

котором идет речь. Если на веб-странице, требующей работы приложения CGI, наблюдается 10 посещений в минуту, то независимо от сложности этой работы серверу придется запускать исполняемый файл CGI 10 раз в минуту, т.е. 600 раз в час.

Если страница ASP выполняет те же задачи, что и исполняемый файл CGI, то через один и тот же интервал времени запускаются нулевые процессы. На самом деле запускается лишь один процесс, и это происходит при старте сервера; этот процесс – IIS. Расширение ISAPI ASP.DLL работает в пространстве процесса IIS. Раньше службы IIS останавливались без видимых причин после продолжительного периода времени. Подобные ошибки возникали из-за повреждения процесса IIS и его дестабилизации исключением, утечкой памяти или невыпущенными указателями. Причиной этому была загрузка библиотеки DLL с дефектами в пространство процесса IIS. Эта унаследованная особенность (или ошибка) в архитектуре Windows привела к тому, что IIS воспринимается как ненадежная система в сравнении с другими, менее сложными системами, использующими CGI.

Для повышения надежности без потерь производительности (что возможно при работе программного обеспечения в собственном независимом процессе) был разработан сервер Microsoft Transaction Server (MTS) для

Windows NT 4. MTS превратился в службы приложений (или COM+) на платформе Windows 2000. На каждой новой платформе у служб компонентов появлялись новые возможности. Основным достоинством служб является то, что они выступают в роли сервера DLL. Библиотеку DLL объекта COM можно загрузить в приложение COM+, и она будет выполняться в своем собственном процессе или в процессе программы-потребителя. Приложение сервера COM+ выполняется в собственном процессе, а приложение библиотеки – в процессе программы-потребителя. Если

220