В этом году на конференции разработчиков Professional Developers Conference у Microsoft было два коронных номера: объявление первых результатов работы над Windows 7 и анонс Azure.Что касается Windows 7, то это преемница Windows Vista, а вот Azure представляет собой совершенно новый способ использования Windows — в “облаке”.

Во время конференции, прошедшей в конце октября в Лос-Анджелесе (США), главный архитектор ПО Microsoft Рей Оззи встретился со старшим редактором еженедельника eWeek Дэррилом Тафтом.

Оззи, который определяет общую стратегию Microsoft в области ПО, рассказал об Azure, а также затронул многие другие вопросы, в том числе касающиеся открытого ПО, интероперабельности, моделирования ПО и предметно-ориентированных языков программирования (domain-specific language, DSL).

Складывается впечатление, что, добившись известности благодаря Azure, Оззи дает понять, что он играет ведущую роль в Microsoft.

eWeek: В какой мере возросший интерес Microsoft к интероперабельности и поддержка с ее стороны ПО с открытым исходным кодом являются результатом ваших личных усилий?

Рей Оззи: Не стоит связывать это с конкретным человеком. Чтобы произвести какие-то изменения в любой крупной организации, нужно руководствоваться правилом, которое я сформулировал на основе своего опыта: вы высказываете некую идею, выносите ее на всеобщее обсуждение, а затем вам необходимо найти кого-то среди исполнителей, кто готов стать инициатором изменений и осуществить их. Вы не можете добиться изменений, находясь на столь высоком уровне, который отделен от реальной работы множеством промежуточных ярусов.

Итак, выступал ли я с подобными идеями? Безусловно, безусловно. И речь шла об интероперабельности не ради ее самой, я говорил о ней, поскольку это то, чем занимаются наши клиенты, чего они хотят и что им необходимо.

eWeek: Одной из технологий, за развитием которой многие внимательно следят и которую призывают сделать более открытой, является Silverlight. Нет ли у вас планов тем или иным образом сделать Silverlight более открытой?

Р. О.: О какой именно открытости вы говорите?

eWeek: Ну по крайней мере о включении ее в список OSP [Open Specification Promise] Microsoft.

Р. О.: Нужно всего лишь взять исходный код Mono и начать экспериментировать с ним. Или код Moonlight. Этим занимается Мигель де Иказа. Он руководит проектом Mono и инициативой Moonlight по переносу Silverlight на Linux. В этих случаях наш программный код не нужен, здесь есть свой собственный.

eWeek: Мне качется, люди, в том числе и Мигель, считают, что Microsoft должна была бы внести более заметный вклад.

Р. О.: Хорошо. Соглашусь с тем, что вы сказали. Честно говоря, я об этом не слышал, но мы вращаемся в разных кругах. Однако вы ведь задали вопрос, не собираемся ли мы сделать исходный код открытым?

eWeek: Да, это был вопрос. Думаю, я знаю ответ, и этот ответ отрицательный.

Р. О.: Я просто обрисую вам, как я это вижу. Если открытие исходного кода дает какие-то преимущества, например, приносит пользу клиентам, тогда я не вижу причин, почему не подумать об этом. Я имею в виду, что мы сделали открытой значительную часть .NET Framework.

С моей точки зрения, решение должно приниматься исключительно на основе прагматических соображений. Думаю, что в наше время любая высокотехнологичная компания, даже Microsoft, должна найти правильное соотношение между предоставлением другим собственного исходного кода и использованием чужого. Если вы посмотрите, как поступила Apple с WebKit, — а фактически если вы посмотрите на всё ПО Apple, — то увидите мастерское использование различных лицензий и различного кода.

Что касается Microsoft, то мы зарабатываем на патентованном ПО. Но есть такие области, где важна интероперабельность, есть области, где важна кроссплатформенность, которой мы могли не уделить должного внимания. Но не могу сказать этого в случае с Silverlight. Я такого просто не слышал. Я имею в виду, что для платформы Mac мы должны выполнять работу столь высокого качества, чтобы никому в голову не пришло использовать здесь открытое ПО. Такую работу мы выполняем для платформы Nokia. Думаю, что и для Windows тоже. Таким образом, остается только Linux.

eWeek: Я хотел бы поинтересоваться разработкой инструментов и приложений. Так, меня интересует Oslo и что означает стратегия моделирования ПО Microsoft для Windows Azure. И хотел бы услышать, что вы думаете о моделировании в целом.

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

Создатели Oslo имеют дело с самой передовой архитектурой, обладают прекрасным концептуальным видением и руководствуются им в своей работе.

Если вы посмотрите на Azure, когда получите возможность заглянуть за кулисы, то увидите, что в основу его функционирования заложено управление по модели [model-driven], а все названные мною специалисты работают в очень тесном контакте. Oslo и Azure пока не состыкованы по синтаксису. Но это не играет роли, поскольку Дон Бокс, известный инженер из Microsoft, разработал некоторые синтаксические правила, которые могут применяться в данном случае, как и в других.

“Рассуждая абстрактно, я могу только сказать, что наша задача, наша конечная цель заключается в том, чтобы максимально раздвинуть границы и посмотреть, насколько широко мы можем использовать при моделировании абстрактное представление жизненного цикла ПО”.

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

Нам приходится многому учиться. В будущем году мы намерены присмотреться к опыту людей, которые уже реально этим занимаются, но выйти на новый уровень. Как вы понимаете, этого нельзя достичь без моделирования. Это единственный путь.

Смогли бы мы с этим справиться процедурным способом?.. Ну, вы понимаете, если бы каждому позволили добавлять код для принятия интеллектуальных решений относительно репликации. Да, безусловно, смогли бы, и мы справимся, но в данный момент это является чистой декларацией.

А цель заключается в создании полной цепочки инструментов, начиная со всего, что необходимо бизнес-аналитику, и далее для всех остальных, так что посмотрим. Сейчас мы достигли того этапа, когда у нас, во всяком случае, есть общий репозитарий для нескольких осуществляемых в компании проектов, и мы продолжаем двигаться вперед.

Мы сталкиваемся с небольшими трудностями. Обнаружились некоторые проблемы. Не углубляясь в них, скажу, что они касаются Azure и связаны с тем, что мы предъявляем фундаментальное, совершенно принципиальное требование, чтобы в системе не было единой точки отказа. И сам контроллер системы [fabric controller], если он использует базу данных в качестве репозитария, должен действительно ее использовать. Получается слишком сложно и потому ненадежно, если не создать подсистему в виде пакета ПО на одном узле.

eWeek: Как вы оцениваете языки DSL и их эффективность?

Р. О.: Ну, я не специалист в этих вопросах. Могу сказать лишь следующее. Я разговаривал об этом с Чарльзом Симоньи (один из основателей компании International Software, ранее возглавлявший в Microsoft группу по разработке приложений. — Д. Т.). Он в этом действительно разбирается и поддерживает гораздо более тесные контакты с клиентами. Так вот, г-н Симоньи продемонстрировал мне примеры DSL, наскоро подготовленные для конкретного клиента из мира бизнеса, и они работали.

Вы понимаете, если клиент готов использовать языки DSL, они оказываются весьма продуктивными. Но мне за всю мою жизнь не часто выпадали случаи, когда я мог бы действительно создать модель и посмотреть, насколько она будет полезна для программиста, который поддерживает наиболее тесные связи с бизнесменом, или для самого бизнесмена. Просто мне нечего сказать по этому поводу.

Я не хочу еще раз наступать на те же грабли. Такое уже было, когда все подряд рисовали блок-схемы, которые прекрасно смотрелись, но не работали...

Но я совершенно уверен в ценности моделирования.

eWeek: Если всё работает, как запланировано, то, наверное, найдено более простое решение по сравнению с другими?

Р. О.: Ну, вам лучше знать. Я абсолютно убежден, что вы знакомы со всеми деталями гораздо лучше меня.

Я лишь хочу убедиться, что справлюсь с двумя задачами, решение которых зависит от меня. Во-первых, необходимо, чтобы Microsoft не утратила связь с клиентами; во-вторых, чтобы люди, разрабатывающие такие решения, как Azure, действовали совершенно прагматично. Чтобы они не занимались теорией моделирования и другими общими вопросами, а делали то, что им необходимо, и это наилучший способ решения задачи.

eWeek: Не могли бы вы немного рассказать, как появилась концепция Azure, как она развивалась, как формировалась команда разработчиков и т. д.?

Р. О.: Могу лишь сказать, что 2005-й был в некотором смысле очень важным годом, это был первый год моей работы в Microsoft: я подготовил несколько документов и презентаций и в конечном итоге пришел к тем взглядам, которые были изложены сегодня на конференции. Они касаются происходящего как во фронтальной, так и в бэк-офисной части. Хороший способ добиться каких-то результатов заключается в том, чтобы обратиться к соответствующим специалистам и просто предложить им сделать то-то и то-то.

Проблема в том, что в то время был самый разгар работ над Vista и Office 2007 и большинство разработчиков трудилось не покладая рук.

Поэтому было рекомендовано увеличить расходы, что и было сделано. В общем, просто создать новые группы. Одна из них стала заниматься Live Mesh, такое название получил и ее конечный продукт. Работа другой переросла в проект Red Dog.

Амитабх Сривастава и Дэйв Катлер были сооснователями группы, которая создавала Azure. Я посвятил их в свои взгляды, которые были восприняты скептически. Они решили самостоятельно посмотреть, как обстоят дела в реальности, общались с разработчиками, посещали дата-центры, говорили со специалистами по сервисам.

Последнее было не очень разумно, поскольку Microsoft только начинала присматриваться к сервисам. Эти специалисты не разрабатывали операционные системы, а занимались всякими глупостями вроде MSN. Но Сривастава и Катлер к ним обратились, и те ответили: “Ух ты, это совершенно иной мир. Здесь нужно использовать другую ОС, а мы попусту тратим деньги”.

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

А так как в наше время электричество является дорогим удовольствием, они рассуждали примерно так: “Слушай, мы можем многое изменить в этом хозяйстве. И чем больше у нас таких комплексов, тем больше мы можем сэкономить”. Потому что в каждом нашем дата-центре имелись собственные резервные компьютеры, только конфигурация слегка различалась.

Они увидели в этом огромные возможности для инноваций. И я очень доволен, что они этим занялись.