Главной новостью прошедшей в конце октября конференции PDC '2008 стало объявление новой стратегической линии корпорации Microsoft по созданию вычислительной платформы Azure Service Platform, реализующей концепцию “облака” — Cloud Computing. Помимо идей компания представила и вполне материальные контуры их воплощения, но речь идет о весьма отдалённых планах с неясными очертаниями конечной цели. Можно предположить, что в полном виде система версии 1.0 появится на рынке года через четыре.
Однако у Microsoft есть и более четко сформулированные ближние планы развития программной платформы, реперной точкой в которых обозначен 2010-й. Именно в это время должны появиться новые версии стратегической “триады” корпорации — Windows Server 2008 R2, Visual Studio 2010 и SQL Server “Kilimanjaro”. Кроме того, в те же сроки намечено завершить важные программные проекты, которые впервые были представлены широкой аудитории на PDC '2008.
Oslo — модельное проектирование приложений
О начале проекта Oslo было объявлено еще год назад в контексте реализации SOA-стратегии Microsoft . О SOA на PDC '2008 не упоминали, а вот о программном решении говорилось немало.
Основная идея Oslo довольно проста: задействовать процессно-сервисный подход для проектирования бизнес-приложений, в том числе на базе технологии Workflow Foundation (WF). Для описания структуры программ и логики их работы применяются модели, реализованные на новом высокоуровневом языке, который сейчас имеет название M (в публикациях месячной давности он упоминается как D). Принципиальным новшеством Oslo по сравнению с аналогичными инструментами моделирования является то, что Microsoft отказалась от применения таких общепринятых стандартов, как UML или BPEL. Основной довод корпорации в пользу такого решения сводится к тому, что эти языки слишком универсальны и потому фактически не способны описывать всё многообразие программных схем и автоматически преобразовывать модели в исполняемый код. Поэтому предлагается использовать декларационный предметно-ориентированный язык класса DSL (Domain Specific Language). По сути M — это метаязык (тут можно провести довольно четкие аналогии с XML), с помощью которого можно создавать различные варианты собственно языков моделирования и схем (MScheme) для разных предметных областей. Microsoft уже сейчас предлагает набор таких типовых моделей для разного вида приложений (Web, Workflow, управление данными и т. д.).
Для формирования DSL-моделей приложений должен использоваться специальный инструмент, который сейчас называется Quadrant. Сами модели будут создаваться как с помощью визуально-графических методов, так и в обычном текстовом формате. Более того, для каждого конкретного подмножества M-схем будет применяться свой специализированный графический редактор. Для хранения моделей предназначается специальный репозитарий Oslo, реализованный на базе SQL Server.
Итак, общая логика платформы Oslo выглядит очень привлекательно. Но Microsoft не дает пока ответа на ключевой вопрос реализации этой идеи: каким образом будет выполняться преобразование DSL-моделей в исполняемый код и обратно? Здесь проект “уходит в туман”.
Dublin для управления серверным ПО
Более десяти лет Microsoft утверждала, что ее Windows Server полностью реализует функции сервера приложений и потому в создании специального подобного решения нет никакой необходимости. Тем не менее компания признала, что для управления серверным прикладным ПО имеющихся встроенных средств ее ОС недостаточно. Dublin — это будущий сервер приложений (СП) разработки Microsoft.
В общем случае под СП подразумевается промежуточный программный слой, дополнительный уровень изоляции приложений от ОС. Нетрудно заметить, что такое определение очень близко к понятию виртуализации. Действительно, если посмотреть на классические примеры СП — Java-серверы (WebShpere, JBoss и др.), терминальные серверы (Citrix), то можно видеть, что они попадают и в категорию средств виртуализации. И при этом нужно признать, что аналогичные средства в составе Windows Server давно имеются (.NET Framework, Terminal Services), хотя они и привязаны к конкретному типу ОС.
Вместе с тем СП решают вопросы поддержки жизненного цикла функционирования программ (особенно сложных, многокомпонентных комплексов), с которыми стандартные ОС справляются не очень хорошо. Это, например, такие функции, как мониторинг состояния объектов, поддержка оптимальных каналов связи между сервисами, перезапуск компонента в случае возникновения проблем и т. д. В данном плане классическим, хотя и специализированным примером СП являются Web-серверы. И такой вариант СП у Microsoft уже давно имеется — Internet Information Server (IIS).
До недавних пор IIS невозможно было применять в качестве универсального сервера приложений, потому что запуск новых активностей в нем начинался только при поступлении запроса по HTTP. Но это ограничение было снято с появлением службы Windows Activation Service (WAS) в Windows 2008, которая позволяет начинать действия в IIS и при получении запроса по TCP/IP через разные транспортные протоколы WCF.
С помощью WAS можно IIS преобразовать в СП, а Dublin фактически лишь делает еще один шаг в этом направлении, расширяя имеющуюся сегодня функциональность (рис. 1). Представляя этот проект на PDC '2008, эксперты из Microsoft, с одной стороны, подчеркивали, что речь идет не о создании каких-то принципиально новых технологий, а скорее об интеграции существующих решений. Но в то же время потребуется реализовать довольно большой объем доработок в имеющихся средствах и создать ряд новых технологических “прослоек” и инструментов управления. Понятно, что Dublin должен быть интегрирован и с проектом Oslo, и, по-видимому, именно в рамках этого объединения будет найдено окончательное решение о варианте исполнения DSL-приложений.
Geneva — доступ на основе заявок
Объявление о планах создания очередной системы идентификации пользователей — уже давняя традиция конференций PDC. В 2001 году это был проект Hailstorm, правда, в нем делался акцент на создание набора сервисов для Интернета, что потом в сильно измененном виде вылилось в Live Services. Из идей Hailstorm фактически выжил только сервис идентификации Microsoft Passport, который широко обсуждался на PDC '2003 и впоследствии превратился в Live ID.
Сам по себе Live ID в технологическом плане совсем не плох, но проблема заключается в том, что в его реализации Microsoft выступает в качестве удостоверяющего центра, а вариант объединения такой роли со статусом крупнейшего софтверного вендора многих пользователей, а тем более корпоративных, не устраивает. Так или иначе, но сегодня Live ID используется главным образом Web-сайтами самой Microsoft.
Учитывая все это, на PDC '2005 корпорация представила технологию InfoCard, получившую потом название Windows CardSpace, которая позволяет управлять идентификацией непосредственно пользователей и приложений, с которыми устанавливается контакт (а не из централизованного ресурса). Но пока CardSpace — это фактически лишь среда разработки для создания идентификационных решений (преимущественно клиентских)
Представленный сейчас на PDC '2008 проект Geneva — это шаг по развитию концепции CardSpace для ее использования в произвольных распределенных ИТ-системах (рис. 2). По сути он включает два основных компонента: набор базовых функций (framework), которые входят в состав приложений, и удостоверяющий сервер. С их помощью каждый желающий может создать собственную систему аутентификации как для внутрикорпоративного применения, так и для поддержки внешних сервисов, т. е. сделать собственный вариант LiveID для своих нужд.
В целом тема безопасности является довольно болезненной для Microsoft. Коренная проблема тут заключается в том, что корпорация никак не может решить для себя вопрос, как, оставаясь в замкнутых пределах собственной платформы, обеспечить возможность комфортного существования пользователей в открытом гетерогенном пространстве.