Современная технологическая платформа Microsoft.

Что такое современная технологическая платформа Microsoft?

Все прекрасно знают операционную систему Windows и ряд других продуктов и технологий, например, инструментальную среду разработки ПО  Visual Studio. Попытки описания платформы Microsoft в виде архитектурных диаграмм часто приводят к сложным прямоугольным конструкциям, которые далеко не всегда являются очевидными и легко понимаемыми. Причина – большое количество технологий, уровней интеграции и взаимозависимостей. Однако интенсивное развитие мира ИТ требует более простого и четкого языка, особенно в свете важных индустриальных трендов, уже начинающих трансформировать нашу индустрию. Этими трендами являются:

  1. HTML 5
  2. Облачные вычисления
  3. Расширение аудитории разработчиков

HTML 5 становится все более популярен, так как позволяет реализовывать в веб-разработке принципиально другой уровень интерактивности приложений, соответствующий современным требованиям работы с медиа-источниками и векторной визуализацией. Десятки, а возможно, и сотни миллионов веб-разработчиков, знающих HTMLи JavaScript, получают возможность реализовать свой талант, создавая гораздо более функциональные приложения, чем раньше. Как когда-то для определенного поколения Basic и потом Visual Basic, HTML 5 становится способом значительно расширить количество людей, создающих приложения. HTML 5 является важным приоритетом для Microsoft.

Облачные вычисления – ключевой индустриальный тренд за последнее время, когда вместо разворачивания ИТ-сервисов внутри организации, для этого используется облачная платформа. Это экономит большое количество времени и ресурсов, которые могли бы понадобиться при локальном разворачивании сервисов, а также обеспечивает «эластичность» – возможность облачного сервиса быстро адаптироваться к большому росту нагрузки или её снижению. Рынок облачных вычислений является сейчас одним из наиболее быстрорастущих в ИТ-индустрии.

Расширение аудитории разработчиков происходит, во-первых, за счет того, что знакомиться с ИТ люди стали значительно раньше за счет проникновения ИТ во все сферы жизни, и, во-вторых, из-за того, что технологии разработки ПО становятся проще и оперируют все более высокоуровневыми объектами. Если раньше для вывода изображения на экран надо было писать в буфер памяти и самому просчитывать способы отображения различных фигур, то сейчас есть объектные описания сложнейших анимаций или визуальных элементов, которые позволяют обеспечить отрисовку простым добавлением объекта на экран разработки интерфейса приложения. Появляются примеры успеха очень юных разработчиков, например, 10-летняя Hannah Wyman, выигравшая Kodu Cup в США (визуальное программирование с помощью Xbox 360). Также известен пример игры Bubble Ball, созданной 14-летним разработчиком, которую загрузили более 12 млн раз.

Для современной платформы крайне важно быть актуальной данным трендам.

Microsoft реализует свой современный платформенный подход в виде простой и четкой концепции, которая называется «устройства + облако» (Cloud + Devices):

Устройства   Облако
+

Все устройства – это три вида экранов, операционные системы и аппаратное обеспечение для них:

  • большие экраны (телевизоры) – Xbox360
  • средние экраны (планшеты, ноутбуки и настольные компьютеры) – Windows
  • малые экраны – Windows Phone

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

Таким образом платформа Microsoft описывается простой парадигмой «устройства + облако», включающей в себя большой набор функционала.

Далее следует более подробное рассмотрение компонентов «устройства» и «облако».

Устройства

Можно заметить, что с точки зрения методологии пользовательcкого интерфейса на всех основных типах устройств сейчас используется интерфейс Metro:

Windows 8, Windows Phone, Xbox 360 – все используют эту парадигму, и Metro сейчас является краеугольным подходом к интерфейсу, реализующим следующие принципы:

  1. Использование для запуска приложений не статических иконок, а прямоугольных информационных областей (живых плиток – live tiles). Выполняя ту же функцию, что и иконка, с точки зрения возможности запустить приложение, живая плитка может отображать уведомления, показывать новости или важную информацию от приложения, без необходимости его запуска. Это приводит к тому, что для пользователя интерфейс становится на порядок более информативным и позволяет не пропустить важную и интересную информацию, и, в итоге, чаще и с большей пользой запускать любимые приложения. Также такой подход удобен как для сенсорного управления, так и для мыши.
  2. Использование более строгих и четких символов, наподобие указателей в метро и аэропортах. Такой подход позволяет не отвлекаться на оформление и окантовки и быстро сосредотачивать внимание на главном – содержании. Это повышает интуитивность и ускоряет работу пользователя.
  3. Полноэкранный режим работы приложений – приложения запускаются на полный экран, не тратя пространство экрана и не отвлекая пользователя на окантовку окон. Это позволяет глубже погружаться в контент и комфортнее работать с приложением, не отвлекаясь. Панели управления ОС вызываются специальными жестами с краев экрана.

Давайте глубже познакомимся с системами для устройств, которые реализуют описанные выше идеи.

Windows 8

Эту новейшую операционную систему не зря называют «придуманной заново». В Windows 8 принципиально изменился подход к интерфейсу за счет реализации Metro-интерфейса и развитого сенсорного управления, а также произошли фундаментальные архитектурные изменения с точки зрения экосистемы разработки приложений. Теперь приложения могут создаваться не только в известных в Windows 7 подходах, но и в принципиально новом подходе, основанном на новейшей платформе разработки под Windows – Windows Runtime.

Все широко известные возможности создания приложений для Windows 7 и более ранних версий сохранены в подсистеме «рабочего стола» - «приложений для рабочего стола», которая представляет всем хорошо известный «desktop» или рабочий стол Windows. Те приложения для рабочего стола Windows, которые работали на Windows 7, будут работать и на Windows 8 – здесь обеспечивается обратная совместимость. Одновременно частью ядра Windows 8 становится принципиально новая подсистема «приложений в стиле Metro», которая позволяет создавать новый класс приложений, основанных на специальном программном интерфейсе (API) – Windows Runtime (WinRT). Являясь частью ядра операционной системы, WinRT позволяет создавать приложения, использующие всю мощь Windows и аппаратного обеспечения, а также предоставлять единый удобный программный интерфейс для широкого спектра задач. Приложения в стиле Metro устанавливаются через магазин приложений и обеспечивают защищенное, энергоэффективное окружение с высокой скоростью работы, визуализации, а также полной поддержкой сенсорного управления пальцами и мышью. Возможность полноценно использовать WinRT при создании приложений на C++, .NET-языках – C# и Visual Basic с визуализацией на XAML, а также веб-языках HTML 5 и JavaScript делает доступной разработку на Windows 8 для очень широкого круга разработчиков. Важным нововведением становится возможность создания приложений в стиле Metro, использующих аппаратно-ускоряемую визуализацию и богатые возможности Windows на HTML 5 и JavaScript – это делает миллионы веб-разработчиков одновременно «Windows 8»–разработчиками и открывает большие возможности создания новых приложений.

Очень важной становится роль технологий, связанных с Internet Explorer. Единый движок аппаратного ускорения визуализации на HTML 5 + JavaScript – «Chakra» используется как для работы приложений в стиле Metro, так и для Metro-версии Internet Explorer, работающей в полноэкранном режиме в стиле Metro, а также для работы Internet Explorer для рабочего стола. Это дает возможность переносить часть кода и реализацию при создании приложения в стиле Metro на основе существующих веб-приложений. Например, разработчики CutTheRope смогли всего лишь за две недели превратить версию на HTML 5 своей популярной игры в полноценное приложение в стиле Metro для Windows 8.

Windows 8 полностью реализует принципы Metro – приложения вызываются с помощью живых плиток и, что важно, позволяют прикреплять на стартовый экран не только плитку приложения целиком, но и плитки, ассоциированные с объектами внутри приложения. Например, вы можете прикрепить на стартовый экран не только приложение погоды, но и конкретный город, применив соответствующую команду внутри приложения. Это создает большие возможности для приложений быть ближе к пользователю, а также для формирования личного информационного пространства.

Разработка для Windows 8 осуществляется с помощью инструментальной среды Visual Studio, специальная бесплатная версия которой предназначена для разработки приложений в стиле Metro.

Windows Phone

Мобильная платформа Windows Phone также базируется на интерфейсе Metro и позволяет прикреплять к стартовому экрану не только приложение целиком, но и конкретные объекты внутри приложения, формируя удобное личное информационное пространство.

Платформа разработки использует XAML для визуализации и .NET-языки программирования (C# и Visual Basic), позволяя применять те же навыки, что и при разработке приложений для Windows 8. Приложения устанавливаются из магазина приложений, аналогично используя защищенное окружение, ориентированное на безопасность, богатую аппаратную визуализацию и обеспечивая экономию батареи мобильного устройства. Встроенный в операционную систему Internet Explorer позволяет осуществлять аппаратно-ускоряемую визуализацию HTML 5 для комфортной работы с веб-приложениями.

Разработка для Windows Phone осуществляется с помощью инструментальной среды Visual Studio, специальная бесплатная версия которой применяется для разработки приложений для Windows Phone.

Xbox 360

Помимо прочного положения в лидерах рынка домашних игровых консолей, Xbox 360 стал источником фундаментальной инновации в том, как человек может взаимодействовать с компьютером, благодаря технологии Kinect. Kinect позволяет распознавать положение тела человека в пространстве и получать векторную структуру его движений для дальнейшей обработки в ПО. Это уже дало возможность создать ряд интереснейших игр, также использование интерфейса Metro в Xbox сделало управление жестами удобным, так как навести руку на прямоугольную плитку намного проще, чем на элементы интерфейса меньшего размера. С выходом Kinect SDK и Kinect для Windows, разработчики получили возможность использовать Kinect для создания своих инновационных приложений и систем. Сейчас даже сложно представить, какие интересные приложения и способы использования этой технологии откроются в ближайшем будущем.

Облачные вычисления

Давайте теперь рассмотрим второй краеугольный компонент платформы Microsoft – облачные вычисления. Если мы проанализируем большое число приложений, создаваемых для настольных компьютеров, ноутбуков, планшетов, смартфонов и других мобильных устройств, то придем к выводу, что подавляющее число приложений использует различные веб-сервисы, веб-службы, обращается к программным интерфейсам социальных сетей и т.п.

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

Разработанная Microsoft облачная платформа Windows Azure облегчает создание приложений и сервисов в облаке, а также интеграцию существующих социальных, аутентификационных и других сервисов в приложения. Преимущество Windows Azure состоит в моментальном получении необходимой для работы приложения инфраструктуры в облаке, без закупки аппаратного обеспечения, создания и настройки локальной инфраструктуры в организации. Объемы использования вычислительных мощностей могут изменяться динамически простым изменением параметров облачного сервиса. Также приложения, созданные на основе платформы Windows Azure, обладают эластичностью – возможностью динамической адаптации к изменению нагрузки даже не в разы, а на порядки. Это осуществляется благодаря тому, что создавая приложения по шаблонам Windows Azure, вы сразу получаете архитектуру, адаптированную к большому диапазону изменения нагрузки.

Вместе с отказоустойчивостью и высокой доступностью данный подход обеспечивает:

  1. Высокую экономичность сервиса благодаря тому, что в пиковые периоды использования сервиса можно быстро увеличивать вычислительные мощности без капитальных вложений в инфраструктуру и, как следствие, роста постоянных издержек. И наоборот, в периоды снижения нагрузки, легко выключать большую часть вычислительных мощностей и платить только за использование оставшихся.
  2. Возможность быстрого роста бизнеса без полного переделывания архитектуры и инфраструктуры работы сервиса в случае взрывного роста популярности и нагрузки.

Интересным примером использования возможностей Windows Azure является сервис News360 (подробная информация о проекте). Идея сервиса заключается в подборке новостей для пользователя на основе анализа его интересов из твиттер- и facebook-лент.

Этот сервис является ярким примером реализации концепции «устройства + облако». На платформе Windows Azure в облаке создан сервис, обеспечивающий работу логики семантического анализа новостей из большого числа источников и сопоставляющий их с профилем каждого пользователя. У сервиса есть богатые интерактивные клиенты для основных платформ современных мобильных устройств, например клиент для Windows 8 и Windows Phone. Таким образом, News360 является хорошим примером использования современной платформы Microsoft для создания популярных приложений.

Важной характеристикой Windows Azure как облачной платформы является поддержка самых разных технологий, а не только технологий Microsoft для создания облачных решений. Windows Azure помимо .NET и Visual Studio поддерживает Java, PHP, Eclipse, Ruby, Python, Tomcat, Node.js и другие технологии.

Эта совместимость является важной для выполнения Windows Azure интегрирующей роли для различных сервисов и приложений.

Также с точки зрения разработки в облаке доступна возможность создания расширений к облачному пакету продуктов Microsoft Office 365, которая позволяет расширять облачные порталы Office 365 функционалом независимых разработчиков.

В рамках концепции «устройства + облако» есть целый ряд важных объединяющих технологий, которые базируются на двух ключевых платформах, к сервисам которых в различных комбинациях могут подключаться умные «устройства»:

  1. Windows Server, как платформа для ИТ-сервисов внутри организаций (on-premise)
  2. Windows Azure, как платформа для ИТ-сервисов в облаке.

Объединяющими технологиями, которые позволяют гибко подходить к распределению сервисов внутри организации и в облаке и организовывать различные гибридные конфигурации, являются:

  1. Windows Server Active Directory – служба каталогов, позволяющая интегрировать облако и инфраструктуру компании с точки зрения управления учетными записями, политиками, идентификацией и безопасностью.
  2. System Center – семейство продуктов, позволяющее управлять инфраструктурой и осуществлять мониторинг на всех уровнях, от конфигурирования серверов и виртуализации до управления приложениями и ИТ сервисами. Что очень важно, System Center обеспечивает единообразное управление как локальной, так и облачной инфраструктурой из одной интегрированной среды. Это принципиально упрощает создание и эффективное обслуживание гибридных конфигураций, а также помогает в миграции сервисов из локальной инфраструктуры в облако. Также System Center реализует сервисный подход к ИТ-услугам, позволяя пользователям запрашивать сервисы и получать их в автоматическом режиме (self-service).
  3. Виртуализация с помощью Microsoft Hyper-V, как единый стандарт в локальной и облачной инфраструктуре, позволяет легко переносить сервисы в облако, осуществлять тестирование, разворачивание и миграцию сервисов.
  4. .NET Framework – единая библиотека (API) разработки сервисов и приложений для Windows, Windows Server и Windows Azure позволяет разработчикам, используя одни и те же навыки и знания, создавать комплексные решения на всех этих продуктах и технологиях.
  5. Visual Studio – интегрированная среда разработки (инструмент), позволяющая создавать приложения и сервисы для всех продуктов и технологий Microsoft. Обеспечивая высокую продуктивность работы за счет средств отладки, тестирования и командной работы, Visual Studio предоставляет все возможности платформы Microsoft как основы современных решений.

Visual Studio обеспечивает не только создание, отладку и тестирование приложений, но и инфраструктуру командной разработки, позволяющей организовывать работу команд самого разного размера и по самым разным методологиям разработки: от Agile (Scrum и т.п.) до формальных – CMMI 3 и выше. Важной особенностью подхода к жизненному циклу создаваемых приложений является интеграция с System Center для мониторинга работы приложений в производственной среде, что позволяет существенно упростить диагностику нахождения ошибок даже в производственной эксплуатации.

Таким образом, Visual Studio – это единый инструмент для создания ПО для всей платформы Microsoft в виде концепции «устройства + облако». Продуктивность при использовании выражается в конкретных вещах, например, в наличии мощного эмулятора для разработки приложений для Windows 8, который позволяет отлаживать приложение на самых разных разрешениях, менять ориентацию эмулируемых устройств, генерировать сенсорные жесты, эмулировать геолокацию и т.п. Аналогичные возможности есть и в эмуляторе для создания приложений Windows Phone. При разработке для Windows Azure, Visual Studio позволяет использовать локальный эмулятор облачной платформы для того, чтобы разрабатывать и отлаживать приложения в любом месте.

Возможности командной разработки позволяют добиться прозрачности и предсказуемости процессов разработки ПО.

Итого, для разработки на устройствах в концепции «устройства + облако» для создания приложений в стиле Metro акцент делается на следующих технологиях:

.NET Framework продолжает быть наиболее функциональной и продуктивной библиотекой для создания сервисов для облака (Windows Azure) и локальных сервисов (Windows Server). Также .NET Framework позволяет создавать богатые приложения для рабочего стола Windows 8.

Все описанные технологии складываются в четкую и простую платформу, которая выражается в парадигме «устройства + облако»:

Устройства   Облако
+

Автор статьи:  Ромуальд Здебский.