«Облачная» стратегия и другие планы Microsoft
Стратегические планы развития платформы Microsoft, представленные на конференции Professional Developer Conference в октябре 2008 г.
В череде многочисленных и порой весьма многолюдных мероприятий корпорации Microsoft конференция Professional Developer Conference (PDC) занимает, безусловно, особое место. Именно на ней с начала нынешнего столетия компания представляет стратегические планы развития своей программной платформы в целом, на дальнюю перспективу. И потому сама конференция проходит не ежегодно, а лишь по конкретному поводу. Любопытно еще, что она проводится в одном и том же месте и в определенное время года — в огромном конгресс-центре Лос-Анджелеса (США) в конце октября.
Тот факт, что для стратегических анонсов выбрана именно PDC, вполне понятен — бизнес-стратегия Microsoft изначально, с момента зарождения корпорации, базировалась на тесном сотрудничестве с широким сообществом разработчиков ПО, которому среди массы партнеров корпорации отводится ключевая роль в реализации ее перспективных планов.
Напомним, что именно на PDC2003 пять лет назад были впервые анонсированы планы создания ОС нового поколения, которая тогда носила рабочее имя Longhorn, завершившиеся в начале прошлого года выпуском Windows Server 2008 (см. «Нас ждут Longhorn, Yukon и Whidbey… и многое другое», «BYTE/Россия» № 1’2004).
И вот на последней конференции PDC, состоявшейся в конце октября 2008 г., Microsoft представила нынешнее видение путей развития своей базовой программной платформы.
"Небесная лазурь"
Главная новость конференции — довольно четко обозначенные планы реализации концепции «облачных вычислений» (Cloud Computing) в виде платформы Azure Service Platform (Azure в переводе означает «небесная лазурь»).
Хотя идея Cloud Computing давно обсуждается в ИТ-сообществе, и само название стало уже привычным, определенности с ее реализацией применительно к конкретным задачам развития информационных систем предприятий пока что нет. При этом довольно часто приходится слышать о необходимости каких-то радикальных перемен на архитектурном уровне, что, надо сказать, серьезно настораживает корпоративных заказчиков, которые обременены уже созданной ИТ-инфраструктурой и потому не любят революционных потрясений. По сути сейчас, представив основные контуры Azure Service Platform, Microsoft начертила понятный путь эволюционного развития сегодняшних дата-центров компаний в направлении «к облакам».
Нужно подчеркнуть, что Azure — это не просто новая версия Windows. Более того, Azure сейчас реализуется (пока она представлена предварительной бета-версией) на базе текущей Windows Server 2008. Ключевая идея заключается в том, что в ходе реализации данного проекта Microsoft превращается из поставщика ПО в хостинг-провайдера: вся платформа Azure, включая бизнес-приложения заказчиков и решения Microsoft (СУБД, управление документами, почта, средства защиты и т. п.), будет работать в "облаках", которые при ближайшем рассмотрении оказываются огромной сетью дата-центров самой корпорации. Именно на этом сделал акцент главный софтверный архитектор Microsoft Рей Оззи, представляя новую платформу: "Речь идет не только о создании нового поколения нашей операционной среды. Azure Service Platform означает трансформацию стратегии развития Microsoft, позиционирования корпорации на рынке".
Впрочем, при этом Microsoft подчеркивает: у заказчиков сохраняется возможность выбора между традиционной схемой размещения ПО на своей площадке и «облачной» моделью. Сегодня трудно сказать, каковы реальные перспективы «облачных вычислений», но позиция Microsoft тут вполне понятна: она не собирается отдавать новое направление ИТ на откуп своим конкурентам (к примеру, Google).
Базовым инфраструктурным компонентом облачно-серверной платформы Microsoft должна стать специальная хостинг-версия серверной ОС — Windows Azure, на которую возлагаются функции хостинга и управления Интернет-сервисами. Поверх нее должен располагаться слой сервисов (рис. 1). В качестве базового варианта сервисов Microsoft предлагает сейчас такой набор: SQL Services (базы данных, бизнес-анализ и отчетность), .NET Services (сервисный вариант .NET Framework), Live Services (онлайновые сервисы для пользователей), SharePoint Services и Dynamics CRM Services (функционал для разработки бизнес-приложений). Здесь принципиально важно, что Microsoft будет сама выступать в роли хостинг-провайдера своих Azure-сервисов с помощью глобальной сети дата-центров корпорации. Понятно, что при этом она берет курс на позиционирование в несвойственной ей ранее роли сервис-провайдера; наверное, именно это имел в виду Рей Оззи, говоря на конференции о трансформации стратегии Microsoft.
В качестве практического шага к реализации всех этих идей Microsoft объявила на PDC2008 о выпуске предварительной ознакомительной версии (community technology preview, CTP) Azure Service Platform. О сроках выхода окончательной версии платформы конкретно не говорилось, но из публичных намеков было понятно, что речь идет о двух-трех годах. Тут можно вспомнить, что на PDC2003 компания обещала сделать новую Longhorn за два года, но на самом деле это заняло времени в два раза больше. Впрочем, тут нет ничего удивительного, и конкретные сроки сейчас — отнюдь не главное. Именно сейчас с выпуском CTP начинается практическая обкатка самой концепции Azure, которая с течение времени может претерпеть существенные изменения (как это и было в случае с Longhorn).
Тема Azure Service Platform обсуждалась также на прошедшей в начале декабря 2008 г. в Москве конференции "Microsoft Платформа 2009". На ней Azure представил старший вице-президент по технической стратегии Microsoft Эрик Раддер, который сообщил, что уже сейчас в рабочем режиме функционируют сервисы CRM, SharePoint, Exchange, еще несколько проходят бета-тестирование и будут запущены в 2009 г. Их состав будет пополняться. Что касается географии их доступности, то она будет расширяться, никакой дискриминации не будет — в следующем финансовом году (после 1 июля 2009 г.) все эти сервисы станут доступны и в России.
Что касается сроков ввода в действие самой Azure, то сейчас система находится на этапе раннего бета-тестирования, и по его итогам Microsoft обещает представить более детальный график своих действий, в том числе определиться с примерными сроками перевода этой платформы в коммерческий вариант. Но для разработчиков ПО есть специальная программа участия в данном проекте, они уже сейчас могут создавать и тестировать свои программы в среде Azure.
Visual Studio 2010 и .NET Framework 4.0
Среда разработки Visual Studio вместе с .NET Framework — еще один краеугольный камень в системе ПО Microsoft. На PDC2008 речь шла о некоторых основных контурах их будущих версий, 2010 и 4.0 соответственно.
Интерфейсная оболочка всех версий Visual Studio, включая текущую 2008, была реализована на архитектурной основе продукта Visual Studio 6.0, выпущенного десять лет назад. В этом плане Visual Studio 2010 означает шаг вперед, так как он создается на базе Windows Presentation Foundation. По мнению Microsoft, это, в сочетании с другими решениями, повысит скорость отклика интерактивной среды, улучшит ее расширяемость и масштабируемость (рис. 2).
Особое внимание по-прежнему будет уделяться групповой работе при создании крупных корпоративных приложений. Тут ключевая роль отводится компоненту Team Foundation Server (TFS), который в версии 2010 будет обеспечивать поддержку многоплатформенной разработки, в том числе с использованием сред Eclipse, Linux, Mac, JBoss, Rational. В сервере будет улучшена защита качества кода за счет двухступенчатого механизма внесения изменений в программу (только после процедуры компиляции и проверки на совместимость с другими программными компонентами проекта). Обещано также общее улучшение управления программными проектами и в самом TFS, в частности, с применением иерархии задач.
Что касается среды исполнения программ (виртуальной машины .NET), то новая версия .NET Framework 4.0 должна прийти на смену существующему с 2005 г. варианту 2.0 (версии 3.0 и 3.5 построены на базе 2.0, в них лишь добавлены дополнительные надстройки над базовым слоем). Она будет содержать шесть основных пространств имен (наборов объектов) — Core, Client, Communication, Web, Data и Workflow.
Новшеств тут ожидается довольно много, и среди них в первую очередь нужно отметить улучшенные возможности использования унаследованного кода. В частности, теперь в одном процессе исполнения смогут работать программные компоненты, написанные на базе .NET Framework разных версий (например, приложение, реализованное в 4.0, сможет запускать add-ins, созданные в версиях 1.0/2.0). Кроме того, упрощен на уровне языка программирования вызов COM-объектов из программы .NET.
Использование нового ключевого слова Parallel позволит управлять разделением кода на параллельные ветви, что не только повысит эффективность многопоточных вычислений в мультиядерной архитектуре, но и улучшит возможности групповой разработки ПО. Расширены также средства контроля передаваемых между процедурами параметров, что должно уменьшить вероятность ошибок во время исполнения программы.
Еще одно общее направление развития .NET Framework — усиление поддержки динамических языков программирования. Теперь в этой среде смогут работать не только C# и VB.NET, но и IronPython, IronRuby и другие скриптовые языки(а вот о J# — диалекте Java от Microsoft — уже даже не упоминается). Более того, в C# 4.0 появилась возможность использовать динамическое определение типа данных, хотя такую функциональность очень трудно назвать инновационной (например, в VB она существует уже 15 лет).
Из основных функциональных компонентов набор Workflow Foundation (WF) в составе .NET Framework — самый "юный", до сих пор он скорее лишь проходил обкатку в условиях промышленной эксплуатации. Он будет развиваться с учетом этого опыта, и в результате планируется унифицировать отладку, улучшить интеграцию с другими библиотеками объектов, повысить производительность на один-два порядка. Программирование активностей будет выполняться с помощью полностью декларативного описания, что должно повысить управляемость программ и уменьшить объем написания кода. В целом нужно отметить, что WF 4.0 должен играть ключевую роль в реализации платформ, создаваемых в рамках проектов Oslo и Dublin.
Web-разработка будет опираться на дальнейшее расширение средств Web Forms, Ajax и MVC (Model-view-controller). В ASP.NET 4.0 появится возможность распределенного кэширования загружаемых страниц и данных. Кроме того, существенно усилится интеграция Visual Studio 2010 c технологией Silverlight, вторая версия которой позволяет применять ее в деловых Web-приложениях (версия 1.0 фактически служила только для трансляции потокового видео). Появление новых инструментов в среде Visual Studio 2010 должно свести к минимуму грань между программистом и дизайнером. В следующей же версии Sliverlight ожидается возможность динамического распределения бизнес-логики Web-приложений между клиентом и сервером, что улучшит балансировку вычислительной нагрузки в целом.
Oslo — модельное проектирование приложений
До недавнего времени для кодовых названий своих проектов Microsoft использовала географические названия Северной Америки (последние десять лет это были горные вершины). Теперь компания пересекла океан и знакомится с европейскими городами…
О начале проекта Oslo было объявлено еще год назад в контексте реализации SOA-стратегии Microsoft. О SOA на PDC2008 не упоминалось, а про Olso говорилось немало, тем более что интерес к этой теме был "разогрет" утечками информации в СМИ еще за месяц до начала конференции. Однако нужно сразу сказать: несмотря на серию презентаций о данному проекте, многие его важные нюансы пока окутаны туманом.
Основная идея Oslo достаточно проста: задействовать процессно-сервисный подход для проектирования бизнес-приложений, сделав так, чтобы разработкой могли заниматься не только бизнес-аналитики, но и обычные бизнес-пользователи. При этом для описания структуры программ и логики их работы предполагается использовать модели, реализованные на новом высокоуровневом языке, который сейчас носит название M (в публикациях месячной давности он упоминается как D). Принципиальным новшеством Oslo по сравнению с аналогичными инструментами моделирования станет то, что Microsoft отказалась от применения общепринятых стандартов, таких как UML или BPEL (о поддержке UML на PDC2008 речи не шло, хотя в СМИ была информация о том, что в Oslo этот язык будет также применяться).
Корпорация приводит два основных довода в пользу такого решения. Во-первых, эти языки слишком универсальны и потому фактически не способны описать все многообразие программных схем и автоматического преобразования моделей в исполняемый код. Во-вторых, в результате появления многочисленных расширений от разных поставщиков единый стандарт практически уже не существует. Поэтому предлагается использовать декларационный предметно-ориентированный язык класса DSL (Domain Specific Language). По сути M — это метаязык (тут можно провести довольно четкие аналогии с XML), с помощью которого реализуются различные варианты собственно языков моделирования и схем (MScheme) для разных предметных областей. Microsoft уже сейчас предлагает набор таких типовых моделей для разного вида приложений (Web, Workflow, управление данными и т.д.).
Для формирования DSL-моделей приложений должен использоваться специальный инструмент, который сейчас называется Quadrant. Сами модели будут создаваться как с помощью визуально-графических методов, так и в обычном текстовом формате. Более того, для каждого конкретного подмножества M-схем будет применяться свой специализированный графический редактор. Для хранения моделей предназначен специальный репозиторий Oslo, реализованный на базе SQL Server.
В одном из докладов на PDC2008 отмечалось, что идея модельно-ориентированного проектирования приложений уже реализована корпорацией в таких известных решениях, как SharePoint Server и Microsoft Dynamics, где применяются соответствующие специализированные варианты DSL-языков и визуальных конструкторов — соответственно CAML и X++, SharePoint Designer и MorphX.
Итак, общая логика платформы Oslo (рис. 3) выглядит очень привлекательной. Но при этом Microsoft пока не дает ответа на ключевой вопрос: каким образом будет выполняться преобразование DSL-моделей в исполняемый код (и наоборот). В этом месте проект "уходит в туман". Похоже, разработчики Oslo еще не решили, какой из двух возможных вариантов выбрать: трансляция DSL в один из обычных языков программирования (например, в C#) или же создание специальной среды исполнения непосредственно DSL-моделей (с возможностью низкоуровневого программирования на уровне отдельных элементов модели). О графике выпуска Oslo на конференции также ничего не говорилось, хотя очевидно, что эта платформа появится не ранее Visual Studio 2010.
Dublin — управление серверным ПО
В течение более чем десяти лет Microsoft утверждала, что ее Windows Server полностью реализует функции сервера приложений, и потому в создании специального подобного решения нет никакой необходимости. И тем не менее компания все же признала, что для управления серверным прикладным ПО имеющихся в ее ОС встроенных средств недостаточно. Dublin — это будущий сервер приложений от Microsoft.
В общем случае под сервером приложений подразумевается промежуточный программный слой, дополнительный уровень изоляции приложений от ОС. Нетрудно заметить, что такое определение очень близко к понятию виртуализации. Действительно, если взять классические примеры серверов приложений — Java-серверы (WebShpere, JBoss), терминальные серверы (Citrix), — видно, что их сейчас относят и в категорию средств виртуализации. При этом нужно признать, что аналогичные средства в составе Windows Server давно имеются (.NET Framework, Terminal Services), хотя они и привязаны к конкретному типу ОС.
Однако сервер приложений не только предоставляет промежуточную среду исполнения приложений, но и решает вопросы поддержки жизненного цикла функционирования программы (особенно сложных, многокомпонентных комплексов), с которыми стандартные ОС справляются не очень хорошо. Например, это функции мониторинга состояния объектов, поддержка оптимальных каналов связи между сервисами, перезапуск компонента в случае возникновения проблем и т.д. С данной точки зрения классический, хотя и специализированный, пример сервера приложений — это Web-сервер. И такой вариант у Microsoft уже давно имеется — Internet Information Server (IIS).
До сих пор получалось так, что Microsoft перекладывала обязанности по реализации функции управления приложениями на плечи самих разработчиков ПО. При этом клиенты довольно часто использовали возможности IIS, который в процессе развития вышел за рамки своего начального предназначения. До недавних пор IIS не мог выступать в качестве универсального сервера приложений, потому что запуск новых активностей в нем начинался только при поступлении запроса по HTTP. Но это ограничение было снято с появлением службы Windows Activation Service (WAS) в Windows 2008, которая позволяет начинать действия в IIS и при получении запроса по TCP/IP через разные транспортные протоколы WCF.
Наличие WAS позволяет преобразовать IIS в сервер приложений, а Dublin фактически лишь делает еще один шаг в этом направлении, расширяя имеющуюся сегодня функциональность (рис. 4). Представляя этот проект на PDC2008, эксперты Microsoft, с одной стороны, подчеркивали, что речь идет не о создании каких-то принципиальных новых технологий, а скорее об интеграции существующих решений. Но в то же время потребуется реализовать довольно большой объем доработок в имеющихся средствах и создать ряд новых технологических "прослоек" и инструментов управления. Понятно, что Dublin должен также быть интегрирован с проектом Oslo, и, по-видимому, именно в рамках этого объединения будет найдено окончательное решение о варианте исполнения DSL-приложений.
Geneva — доступ на основе заявок
Объявление о планах создания очередной системы идентификации пользователей — давняя традиция конференций PDC. В 2001 г. это был проект Hailstorm, правда, в нем делался акцент на создание набора сервисов для Интернета, что потом в сильно измененном виде вылилось в Live Services. Из идей Hailstorm фактически выжил только сервис идентификации Microsoft Passport, который широко обсуждался на PDC2003 и впоследствии превратился в Live ID.
Сам по себе Live ID в технологическом плане совсем неплох, но проблема заключается в том, что в его реализации Microsoft выступает в качестве удостоверяющего центра, а вариант объединения такой роли со статусом крупнейшего софтверного вендора многих пользователей, тем более корпоративных, не устраивает. Так или иначе, но сегодня Live ID используется преимущественно только на Web-сайтах самой Microsoft.
Учитывая все это, на PDC2005 корпорация представила технологию InfoCard, получившую потом название Windows CardSpace. Согласно этой технологии идентификацией управляют непосредственно пользователи и приложения, с которыми устанавливается контакт (а не из централизованного ресурса). Но пока CardSpace — это фактически лишь среда разработки для создания идентификационных решений (преимущественно клиентских).
Представленный на PDC2008 проект Geneva — это шаг в развитии концепции CardSpace для использования в произвольных распределенных ИТ-системах (рис. 5). По сути он включает два основных компонента: набор базовых функций (framework), которые входят в состав приложений, и удостоверяющий сервер. С их помощью каждый желающий может создать собственную систему аутентификации как для внутрикорпоративного применения, так и для поддержки внешних сервисов, т. е. собственный вариант LiveID для своих нужд.
В целом тема безопасности довольно болезненна для Microsoft. Коренная проблема тут заключается в том, что корпорация никак не может решить для себя дилемму: как, оставаясь в замкнутом пространстве собственной платформы, обеспечить комфортное существование пользователей в открытом гетерогенном пространстве.
Отметим, что именно вопросы безопасности стали ключевыми в общем комплексе проблем реализации концепции «облака», поэтому и для успешного продвижения Azure корпорации нужно предпринять какие-то решительные усилия по развитию своей системы аутентификации.
В начале статьи мы отмечали, что конференция PDC проводится не каждый год и обычно привязывается к важным стратегическим объявлениям Microsoft. Но в данном случае корпорация уже объявила, что следующая PDC пройдет через год. И это понятно: на нынешней были сделаны заявления о важных планах, реализация которых потребует серьезных уточнений.