Сергей Полехин s_polehin@eureca.ru
4 октября прошло очередное заседание Microsoft SIGN, на котором системные инженеры Microsoft предста-вили новый продукт MS Application Center. Доклад вызвал большой интерес и было решено провести эксперименты для оценки нового продукта до выхода окончательной версии. Мы будем знакомить читателей ╚КИ╩ с их результатами, а пока расскажем о новом продукте.
MS Application Center является одной из частей будущей платформы MS Enterprise Server. Помимо него, в состав этой платформы будут входить продукты Commerce Server 2000, BizTalk Server 2000 и SQL Server 2000. Для предоставления доступа к корпоративным приложениям Application Center использует популярную технологию Web-интерфейса. Вместе с ОС Windows 2000 и Internet Information Server 5.0 (IIS), Application Center предоставляет средства для создания, управления и обеспечения безопасности масштабируемых приложений.
Основу Application Center составляют сервисы кластеризации, предоставляющие возможность построения устойчивых к сбоям серверов приложений со встроенными механизмами балансировки нагрузки. Балансировка нагрузки обеспечивается двумя технологиями: Network Load Balancing (NLB) и Component Load Balancing (CLB). Типичная структура Application Server представляет собой многоуровневую кластерную топологию с точкой входа через кластер Web-серверов, принимающих запросы на обслуживание от корпоративных или внешних клиентов. Этот Web-ориентированный кластер базируется на IIS и NLB. В соответствии с поступающими от клиентов запросами, ПО Web-серверов (например, Active Server Pages) автоматически создает новые или использует существующие программные компоненты COM+, а затем выполняет их запуск на кластере COM+ (COM- Component Object Model).

Сервис NLB предназначен для балансировки IP-трафика, связанного с предоставлением сервисов и поставляется в виде штатного средства в составе ОС Windows 2000 Advanced Server и Windows 2000 Datacenter Server. С использованием NLB весь входящий трафик TCP или UDP распределяется по узлам кластера. Это распределение трафика осуществляется в соответствии со статистически оцениваемыми характеристиками загрузки каждого из узлов. NLB позволяет масштабировать систему путем прозрачного добавления или удаления узлов кластера, не оказывая влияния на клиентов.
Функцией CLB является запуск и сбалансированное исполнение программного кода,
переданного в виде компонентов COM+. Компонентами COM+ может являться любое
ПО, представленное в виде скомпилированного программного кода и написанное потенциально
на любом языке программирования (например, VBS, ASP, Visual Basic, C++ и т.
п). Представление ПО в виде компоентов COM+ позволяет многократно использовать
исполняемый код в любых приложениях.
По сути, объекты COM+ выступают в качестве строительного материала, кирпичиков,
из которых можно построить любое приложение с заданной функциональностью. Это
позволяет гибко распределять нагрузку, связанную с исполнением программного
кода на серверах приложений.
Так каждый компонент COM+ может выполняться на любом из узлов кластера, оптимально
используя все имеющееся аппаратное обеспечение. Типичные приложения, являющиеся
COM-компонентами, чаще всего представляются в виде исполняемых (.exe) файлов
или динамически подключаемых библиотек (.dll).
CLB состоит из 2 основных частей:
Функция этого ПО - определить в каждый момент времени наименее загруженный узел кластера, которому и передается на выполнение приложение, представленное в виде объекта COM+. Для этого CLB использует механизмы Routing List (список маршрутизации) и Response Time Table (таблица, хранящая сведения о времени отклика на запрос).

Первый список маршрутизации существует на каждом узле Web-кластера. На основании
этого списка всегда можно получить информацию о том, на каких узлах кластера
запущены и работают приложения COM+ и на каких узлах может быть запущен на выполнение
новый COM-компонент.
Второй список маршрутизации хранится на каждом узле кластера COM+ и предназначен
исключительно для маршрутизации данных для обмена информацией между узлами кластера
COM+.
Изначально списки маршрутизации создаются администратором, а затем они автоматически
синхронизируются между всеми узлами кластера. Синхронизация списков гарантирует
необходимую устойчивость к сбоям - даже при выходе из строя какого-либо из узлов
Web-кластера остальные узлы смогут без проблем продолжать управление уже запущенными
COM-компонентами, т. к. сведения о них хранятся в общей таблице маршрутизации.
Каждые 200 мс ПО CLB по очереди опрашивает все узлы кластера COM+ сведения, о которых хранятся в списке маршрутизации. На основании полученного времени отклика каждого из узлов кластера строится таблица, в которой узлы кластера COM+ ранжируются, в соответствии со степенью загруженности. Те из узлов, которые обладают наименьшим временем отклика (наименее загруженные узлы), автоматически попадают в первые строки таблицы. И впоследствии, именно на этих узлах будет производиться запуск очередного COM-компонента.
Каждый из узлов Web-кластера строит свою собственную таблицу, т. к. синхронизировать таблицы между узлами не имеет смысла (синхронизация таблицы может осуществляться дольше, чем колебания степени загрузки каждого из узлов кластера COM+).
Все описанные выше сервисы, составляя основу Application Center, используют его в качестве инфраструктуры управления, предназначенной для создания и обеспечения работоспособности современных распределенных бизнес-приложений.
Application Center представляет собой набор средств для создания, настройки, оптимизации и диагностики сервисов, обеспечивающих надежную работу любых приложений, написанных на любых языках программирования и использующих технологию COM+.
Дополнительную информацию по MS Application Center и сервисам NLB, CLB можно
получить по адресам:
http://www.microsoft.com/applicationcenter/default.htm,
http://www.microsoft.com/windows2000/library/howitworks/cluster/nlb.asp.
http://www.microsoft.com/applicationcenter/techinfo/clb.htm
Если вы готовы участвовать в работе Microsoft Special User Group NEVA, то свяжитесь с Сергеем Полехиным (s_polehin@eureca.ru) или с Александром Гусаком (a_gusak@eureca.ru).
Став членом Microsoft SIGN, вы сможете:
Но вы будете обязаны:
Мы ждем всех, кто интересуется технологиями Microsoft!