Почтовый сервер Microsoft демонстрирует свою принадлежность к .NET

Маркетинговая машина Microsoft уже запущена для продвижения новых продуктов компании, не страдают от недостатка внимания и представители семейства .NET. Уже известно, что Microsoft Exchange 2000 Server включен в семейство корпоративных серверов .NET, и теперь администраторы теряются в догадках, что это может означать. Неужели сервер Exchange 2000 претерпел столь существенные изменения, что удостоился чести быть принятым в сообщество серверов .NET? Посмотрим, что дает инициатива .NET для Exchange 2000 сейчас, и попробуем заглянуть в будущее.

Инициатива .NET компании Microsoft

Как всегда без ложной скромности, компания Microsoft заявляет: «.NET сотрет все границы в бизнесе» (цитата из «What Microsoft`s .NET Vision Means for Businesses», http://www.microsoft.com/business/ vision/netvision.asp). Соответствующий официальный документ конкретизирует это высказывание: «Лежащая в основе .NET тенденция отражает переход от использования индивидуальных сайтов или подключенных к Internet устройств к использованию всех компьютеров, устройств и служб, которые в совокупности предоставляют пользователям более эффективные решения» (из «Microsoft .NET: Realizing the Next Ge-neration Internet», http://www.microsoft.com/business/ vision/netwhitepaper.asp). Более полная подборка статей на тему технологии .NET содержится во врезке «Ресурсы Microsoft .NET».

Напрашивается простая аналогия - переход в корпоративной системе от программ, исполняемых на одном сервере, к приложениям на распределенных базах данных, когда пользователь со своего настольного компьютера получает и обрабатывает данные одновременно из множества источников. Технология .NET расширяет этот пример распределенных приложений от корпоративных систем до Internet, от структурированных данных до служб Web Services. В отличие от существующих информационных порталов, служба Web Service представляет собой программируемый компонент, который может быть встроен в распределенное сетевое решение.

Заказывая оборудование через Internet, пользователь имеет возможность обратиться на сайт поставщика, получить специальный код и по этому коду отслеживать выполнение своего заказа. Решение .NET позволяет реализовать функцию отслеживания поставок как службу Web Service, так что сайт поставщика самостоятельно обращается к сайтам производителей, формирует отчет о состоянии заказа и передает его заказчику. Предлагаемый уровень программного взаимодействия, несомненно, гораздо выше того, который обеспечивают существующие Internet-технологии.

Можно возразить, что программное обеспечение и так развивается в данном направлении естественным путем, и то, что в Microsoft называют «инициативой .NET», является просто маркетинговой уловкой, попыткой повесить собственную вывеску на общую технологию. Позволю себе не согласиться с такой точкой зрения. В ходе реализации этой инициативы Microsoft существенно перерабатывает или даже создает заново большинство своих инструментальных средств (Visual Studio, VS; Visual Basic, VB) и платформ (Windows 2000 Server, Windows 2000 Advanced Server и Windows 2000 Datacenter Server). По расчетам Microsoft, .NET обеспечит возможность построения распределенных сетевых решений (и, возможно, позволит сразиться с конкурирующими парадигмами, предложенными Sun Microsystems и Oracle). Базовыми компонентами платформы .NET являются:

  • службы Windows (Windows services);
  • основная архитектура .NET (.NET Framework);
  • службы строительных блоков .NET (.NET Building Block Services);
  • согласование .NET (.NET Orches-tration);
  • корпоративные серверы .NET (.NET Enterprise Servers).

Каждый из перечисленных компонентов предлагает набор новых, революционных технологий. Так, базовая архитектура .NET включает в себя и среду исполнения программ IL (runtime environment Common Language Runtime, CLR), и новую среду программирования с набором предопределенных программных классов и промежуточным языком (интерлингва, Intermediate Language, IL), в который может быть переведена любая программа, написанная на другом языке высокого уровня. Помимо этого, базовая архитектура поддерживает новую модель доступа к данным data access model (ADO+) * и предполагает сплошное использование XML через HTTP для доступа к данным (WWW Distributed Authoring and Versioning, WebDAV, и Simple Object Access Protocol, SOAP). В середине 2001 г. планируется выпустить первый из наборов средств разработки для архитектуры .NET - Visual Studio.NET.

Служба строительных блоков .NET включает набор новых XML-средств для Web: Identity, Notification and Messaging, Personalization, XML Store (опознание, уведомление и сообщения, персонализация, хранилище XML) и некоторые другие. Например, можно использовать единый элемент Microsoft Passport для регистрации на различных сайтах и даже обеспечить доступ к почтовому ящику Exchange.

Семейство серверных платформ .NET представлено Application Center 2000, BizTalk Server 2000, Commerce Server 2000, Exchange 2000, Host Integration Server 2000, Internet Security and Acceleration (ISA) Server 2000, SQL Server 2000, Mobile Information 2001 Server, а также готовящимся к выпуску сервером Tahoe. Поскольку базовая архитектура .NET пока окончательно не разработана, специалисты Microsoft не создавали все серверы с нуля с использованием «чистого» кода .NET. Если же говорить конкретно об Exchange 2000, его следует явно классифицировать как сервер платформы .NET, поскольку он позволяет задействовать WebDAV и обеспечивает поддержку служб .NET.

С точки зрения системного администратора

Говорить о принадлежности сервера Exchange 2000 семейству .NET позволяет, в частности, то, что он поддерживает распределенную Web-архитектуру в стиле .NET. Многие службы Exchange 2000 могут выполняться на различных серверах, что дает возможность оптимизировать распределение ролей серверов в корпоративном масштабе. Так, Exchange 2000 позволяет перенести службы доступа POP3 на отдельный сервер (front-end), разгружая сервер хранения сообщений (back-end).

На Рисунке 1 представлена типовая конфигурация среды Exchange 2000. Данная серверная архитектура включает несколько серверов, обеспечивающих Web-службы в стиле .NET: два фронтальных сервера POP3, IMAP4 и SMTP, три фронтальных сервера HTTP (Outlook Web Access, OWA), один фронтальный сервер служб Network News Transport Protocol (NNTP), два контроллера доменов Windows 2000, сконфигурированных в качестве серверов глобального каталога (Global Catalog, GC) и обеспечивающих работу каталога AD и службы аутентификации. Удаленные пользователи могут запускать Microsoft Outlook Express, использовать POP3 или IMAP4 для получения сообщений электронной почты, задействовать LDAP для поиска в каталоге и SMTP - для передачи сообщений.

На первый взгляд Рисунок 1 иллюстрирует приведенное выше высказывание из Microsoft .NET о совместной работе компьютеров, устройств и служб. Протоколы и службы каталога работают на различных серверах, так что администратор может оптимизировать загрузку служб в целом для обеспечения более продуктивной работы пользователей. Проектировщики систем из Microsoft называют это «специализацией серверов». Надо сказать, что некоторые из представленных на Рисунке 1 служб не являются Web-службами .NET. На самом деле единственная служба, соответствующая концепции предоставления услуг через пользовательский .NET Web-интерфейс, - это OWA сервера Exchange 2000.

Помимо размещения отдельных служб сервера Exchange 2000 на специализированных фронтальных серверах, можно увеличить число специализированных серверов для повышения производительности. Для этого требуется распределить функции сервера OWA между несколькими серверами с помощью продуктов распределения нагрузки, например Microsoft`s Network Load Balancing (NLB). Удаленные пользователи будут обращаться к почтовому серверу с одним и тем же адресом URL, при этом запросы разных пользователей могут обрабатывать различные физические серверы. Администратору не придется объяснять пользователям: «Сначала попробуйте http://mail1.company.com, если не получится - http://mail2.company.com, и т. д. до http://mail25.company.com». Вместо этого все пользователи обращаются к http://mail.company.com, а служба распределения нагрузки находит наименее загруженный сервер OWA. Такая унификация фронтальной службы - другая отличительная черта стратегии .NET.

Хотя достоинства Exchange 2000 очевидны, у администраторов систем все еще могут оставаться сомнения на счет его интеграции в семейство .NET. Документация .NET Building Bock Services содержит множество ссылок на будущие расширяемые функциональные возможности. При этом используются формулировки типа «будут базироваться на...» или «объединят компоненты существующих продуктов...». Напрашивается вывод, что Exchange 2000, равно как и другие корпоративные серверы .NET, еще не сформированы в качестве полноценных систем .NET. Не вполне понятно, что же необходимо сделать, чтобы эти серверы действительно стали компонентами .NET.

Рассмотрим, например, упоминавшуюся ранее службу Identity. Кто должен обеспечивать функционирование системы хранения личных данных Passport или другой системы, скажем, производства независимой компании? Служба Identity сервера Exchange 2000 или служба Identity сервера Windows 2000? Точно так же службы Notification и Messaging должны уведомить ПК или другое устройство о возникновении предопределенных событий. Так кто же должен выполнять эту функцию - служба Notification сервера Exchange 2000, сервера Windows 2000 или, может быть, Mobile Information 2001 Server?

Перспектива для программистов

Конечно, обсуждая достоинства архитектуры .NET, нельзя не упомянуть о службах Web и SOAP с точки зрения перспектив для программирования. Стоит повторить, что Web-служба представляет собой программируемый компонент приложения, доступ к которому можно получить по стандартным протоколам Web. Применительно к Exchange 2000, в сервере должны присутствовать компоненты, обеспечивающие простую интеграцию с другими программами в стиле базовой архитектуры .NET. Посмотрим, насколько хорошо Exchange 2000 поддерживает SOAP и в какой мере позволяет задействовать функции сервера через службы Web.

Exchange 2000 позволяет работать с приложениями, разработанными в базовой архитектуре .NET, т. е. обеспечивает встроенную поддержку XML и WebDAV, а также поддерживает SOAP через SOAP Toolkit for Visual Studio 6.0. Набор SOAP Toolkit содержит компонент, позволяющий превратить компоненты COM в службу Web Service, которую смогут использовать другие приложения Web или VB. Другими словами, SOAP Toolkit позволяет превратить созданные объекты COM в приложения .NET, взаимодействующие с Exchange 2000 как с сервером .NET.

В статье Microsoft «Developing Collaborative Microsoft .NET Sol-utions» (http://msdn.microsoft.com/library/techart/collab.NET.htm) содержатся, указания о том, как создавать приложения с использованием ADO+, WebDAV и SOAP. На прошедшей в октябре в Далласе конференции «Microsoft Exchange and Collaboration Solutions Conference (MEC)» в секции 3-312 «Building Next Generation Collaborative Applications for Exchange 2000 Using Visual Studio.NET» Гарри Кац, руководитель подразделения Microsoft Exchange Server Product Unit, продемонстрировал приложение .NET, способное получать данные, хранящиеся в Exchange 2000. Поддержка новой программной среды сервером Exchange 2000 позволяет рассматривать его как полноценный сервер .NET. Чего нельзя сказать о сервере Exchange 5.5, который не поддерживает интерфейсы WebDAV и SOAP.

С помощью SOAP можно использовать только часть предоставляемых разработчикам новых функций. С точки зрения разработчика системы управления проектами или документооборота, такие процессы, как доступ к хранилищу данных Web, использование механизма управления расписанием (scheduling engine) и возможностями уведомлений (notification capabilities) сервера Exchange 2000, должны выполняться так же просто, как установка программного взаимодействия в привычной среде программирования. Пока проектировщики сервера Exchange 2000 реализовали только ограниченную поддержку получателей событий Event Sink, действующих подобно триггерам в SQL. Теперь Exchange 2000 может при поступлении сообщений электронной почты инициировать различные процессы, например фильтрование в соответствии с хранящимися в активном каталоге (AD) профилями. Но сервер Exchange 2000 нельзя рассматривать как набор компонентов-служб. Прямая интеграция в универсальную среду исполнения, Universal Runtime Engine (URE), позволит облегчить разбиение на компоненты и ускорить интеграцию сервера Exchange 2000 в сообщество решений для .NET.

Перспектива кросс-платформенного использования

Одной из базовых задач инициативы .NET является построение общей архитектуры разработки распределенных приложений, которые могли бы работать в Internet и быть независимыми от аппаратной платформы. Использование SOAP через HTTP позволит приложениям UNIX выдавать пользователям Exchange 2000 задания или информировать их о назначенной встрече. XML делает обмен сообщениями между приложениями стандартизованным, независимо от программной платформы. Приложения UNIX уже сейчас могут использовать поддержку сервером Exchange 2000 стандарта XML для просмотра свойств и реализации процессов документооборота.

SOAP поддерживается Microsoft и IBM, так что можно ожидать скорого появления поддержки SOAP в Exchange 2000 и Lotus Notes. Этапы внедрения XML, такие, как продвижение MessageML и SyncML, помогают в разработке специализированных словарей XML, необходимых в качестве средства кросс-платформенного взаимодействия. Менеджерам информационных проектов остается надеяться, что внедрение SOAP и XML будет происходить именно так, как обещают авторы инициативы .NET.

В настоящий момент нет четкого разграничения между серверами Microsoft, которые вписываются в рамки стратегии .NET., и теми, которые ей не соответствуют. Exchange 5.5 и другие простые приложения, лишенные возможности взаимодействия через Web-интерфейс и не предоставляющие услуг Web Services, не попадают в список продуктов, поддерживающих стратегию .NET. И напротив, разработанное в строгом соответствии с рекомендациями .NET с помощью комплекта SDK приложение станет образцовым примером приложения .NET. Представленная в настоящее время версия Exchange 2000 занимает промежуточное положение, сервер демонстрирует соответствие многим требованиям архитектуры .NET - поддержку XML, WebDAV и SOAP Toolkit, - но тем не менее не все фундаментальные положения выполнены. Тем интереснее будет наблюдать развитие Exchange Server 2000 по мере становления архитектуры .NET.

Спирос Сакелларидис - внештатный редактор Windows 2000 Magazine, вице-президент и директор по технологиям подразделения Enterprise Applications Business Unit компании USInternet-working в Вашингтоне. С ним можно связаться по адресу: spyros.sakellariadis@usi.net.

Джонатан Зак - президент ассоциации Association for Competitive Technology, представляющей более 9000 компаний. Пишет статьи для различных компьютерных журналов. С ним можно связаться по адресу: jzuck@actonline.org.


Ресурсы Microsoft .NET

«Developing Collaborative Microsoft .NET Solutions» - http://msdn.microsoft.com/library/techart/collab.NET.htm

«Microsoft .NET: Realizing the Next Generation Internet» - http://www.microsoft.com/business/vision/netwhitepaper.asp

«What Microsoft`s .NET Vision Means for Businesses» http://www.microsoft.com/business/vision/netvision.asp