Опубликован: 25.05.2011 | Доступ: свободный | Студентов: 5926 / 2177 | Оценка: 4.19 / 3.94 | Длительность: 12:28:00
Лекция 5:

Веб-службы в Облаке

< Лекция 4 || Лекция 5: 123 || Лекция 6 >

Платформа как Сервис (PaaS)

Развитие "облачных" вычислений привело к появлению платформ, которые позволяют создавать и запускать веб-приложения. Платформа как сервис (Platform as a Service, PaaS) — это предоставление интегрированной платформы для разработки, тестирования, развертывания и поддержки веб-приложений как услуги, организованная на основе концепции облачных вычислений.

Модель PaaS создает все условия требуемые для поддержки полного жизненного цикла создания и доставки веб-приложений и услуг доступных из сети Интернет, не требующих загрузки или установки программного обеспечения для разработчиков, ИТ менеджеров или конечных пользователей. В отличие от модели IaaS, где разработчики могут создавать определенные экземпляры операционных систем с доморощенными приложениями, разработчики PaaS заинтересованы только веб разработкой и не заботятся о том, какая операционная система используется. PaaS сервисы позволяют пользователям сосредотачиваться на инновациях, а не на сложной инфраструктуре. Организации могут направить существенную часть их бюджета на создание приложений, которые обеспечивают реальную ценность, вместо затрат на поддержку инфраструктуры. Модель PaaS таким образом открывает новую эру массовых инноваций. Теперь разработчики во всем мире могут получить доступ к неограниченной вычислительной мощности. Любой человек, имеющий доступ в Интернет, может создавать приложения и легко разворачивать.

Традиционный подход создания и запуска локальных (On-Premises) приложений всегда был сложен, дорог и рискован. Строительство Вашего собственного решения никогда не предоставляло гарантии успеха. Каждое приложение было разработано, чтобы удовлетворить определенным деловым требованиям. Каждое решение потребовало определенной конфигурации аппаратных средств, операционной системы, базы данных, электронную почту, веб-серверы, и т.д. Когда была создана окружающая среда аппаратного и программного обеспечения, команда разработчиков должна была выбрать комплекс платформ для разработки, чтобы создавать приложения. Неизбежно бизнес требует от разработчиков производить изменения в приложении. Измененное приложение требует новых циклов испытательных работ, прежде чем быть распространенным. Крупные компании часто нуждаются в специализированных средствах, чтобы разместить их в центрах обработки данных. Огромное количество электричества необходимо для работы серверов и поддержки системы кондиционирования. Наконец, все это требует использования отказоустойчивых площадок для центров обработки данных так, чтобы информация могла копироваться в случае сбоя.

PaaS предлагает более быструю, более экономически выгодную модель для разработки и доставки приложений. PaaS обеспечивает всю инфраструктуру для запуска приложений через Интернет. Аналогичные сервисы предоставляют большое количество компаний, таких как Microsoft, Amazon.com, Google. PaaS основан на модели учета лицензий или модели подписки, таким образом, пользователи платят только за то, что они используют. Предложения PaaS включают рабочие процессы для создания приложений, разработки приложений, тестирования, развертывания и размещения. Также сервисы приложений, виртуальные офисы, командное сотрудничество, интеграцию баз данных, безопасность, масштабируемость, хранение, работоспособность, управление состоянием, инструментарий приборных панелей и много другое.

Главные особенности PaaS включают сервисы для разработки, тестирования, развертывания, размещения и управления приложениями для поддержки жизненного цикла разработки приложений. Веб интерфейсы инструментов создания, как правило, обеспечивают некоторый уровень поддержки чтобы упростить создание пользовательских интерфейсов, основанных на таких технологиях как HTML, JavaScript и других технологиях. Поддержка многопользовательской архитектуры помогает избежать проблем при разработке относительно использования приложений многими пользователями одновременно. Провайдеры PaaS часто включают услуги для управления параллельной обработкой, масштабируемостью, отказоустойчивостью и безопасностью. Другая особенность – это интеграция с веб-службами и базами данных. Поддержка протокола обмена структурированными сообщениями в распределённой вычислительной среде (Simple Object Access Protocol, SOAP) и других интерфейсов позволяют приложениям PaaS создавать комбинации веб-сервисов (которые называют mashup) так же легко, как наличие доступа к базам данных и повторному использованию услуг внутри частных сетей. Способность формировать и распространять код между специализированными, предопределенными или распределенными командами очень увеличивают производительность предложений вендоров PaaS. Интегрированные предложения PaaS обеспечивают возможность для разработчиков, чтобы наиболее хорошо понимать внутреннюю работу их приложений и поведение пользователей при использовании инструментов, подобных приборной панели, чтобы рассмотреть внутренние параметры, основанные на измерениях количества параллельных соединений и т.д. Некоторые предложения PaaS расширяют этот инструментарий, что позволяет составлять счета оплаты за использование.

Microsoft Azure

Платформа корпорации Майкрософт Windows Azure (первоначально известная под названием Azure Services Platform) — это группа "облачных" технологий, каждая из которых предоставляет определенный набор служб для разработчиков приложений. На рисунке 4.2 показано, что платформа Windows Azure может быть использована как приложениями, выполняющимися в "облаке", так приложениями, работающими на локальных компьютерах

Платформа Windows Azure поддерживает приложения, данные и инфраструктуру, находящиеся в "облаке"

Рис. 4.2. Платформа Windows Azure поддерживает приложения, данные и инфраструктуру, находящиеся в "облаке"

Платформа Windows Azure состоит из следующих компонентов:

  • Windows Azure. Обеспечивает среду на базе Windows для выполнения приложений и хранения данных на серверах в центрах обработки данных корпорации Майкрософт.
  • SQL Azure. Обеспечивает службы данных в "облаке" на базе SQL Server.
  • .NET Services. Обеспечивают распределенную инфраструктуру для "облачных" приложений и локальных приложений.

Каждый компонент платформы Windows Azure играет собственную роль.

На высоком уровне понять Windows Azure очень легко. Это платформа для выполнения приложений Windows и хранения их данных в Интернете ("облаке"). На рисунке 4.3 показаны ее основные компоненты.

Windows Azure предоставляет "облачные" приложениям службы для вычисления и хранения на базе Windows

увеличить изображение
Рис. 4.3. Windows Azure предоставляет "облачные" приложениям службы для вычисления и хранения на базе Windows

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

Вычислительная служба Windows Azure, естественно, работает на базе Windows. Для обеспечения первоначальной доступности этой службы осенью 2008 г. была открыта для широкой публики CTP-версия. Корпорация Майкрософт разрешила выполнять на Windows Azure только приложения, разработанные на платформе .NET Framework. Сегодня, однако, Windows Azure также поддерживает неуправляемый код, позволяя разработчикам выполнять приложения, которые разработаны не на базе .NET Framework. В любом случае такие приложения написаны на обычных языках Windows — C#, Visual Basic, C++ и других — с помощью Visual Studio 2008 или других средств разработки. Разработчики могут создавать веб-приложения с помощью таких технологий, как ASP.NET и Windows Communication Foundation (WCF), приложения, которые выполняются как независимые фоновые процессы, или приложения, сочетающие и то и другое.

Как приложения Windows Azure, так и локальные приложения могут получать доступ к службе хранилища Windows Azure, делая это одним и тем же способом: с помощью подхода RESTful. Однако Microsoft SQL Server не является базовым хранилищем данных. Фактически хранилище Windows Azure не относится к реляционным системам, и язык его запросов не SQL. Поскольку оно изначально предназначено для поддержки приложений на базе Windows Azure, то обеспечивает более простые и масштабируемые способы хранения. Следовательно, оно позволяет хранить большие двоичные объекты (binary large object — blob), обеспечивает создание очередей для взаимодействия между компонентами приложений и даже что-то вроде таблиц с простым языком запросов. (Для тех приложений Windows Azure, которым требуется обычное реляционное хранилище, платформа Windows Azure предоставляет базу данных SQL Azure, описанную далее.)

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

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

Чтобы позволить своим заказчикам создавать, настраивать приложения и наблюдать за ними, Windows Azure предоставляет портал, доступный с помощью браузера. Заказчик предоставляет Windows Live ID, а затем решает, создавать ему учетную запись размещения для выполнения приложений, учетную запись хранения для хранения данных или и ту и другую. Оплата использования приложения заказчиками может производиться любым удобным способом: с помощью подписки, повременно или как-нибудь иначе.

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

  • При создании нового веб-сайта, скажем, такого как Facebook, можно разрабатывать приложения на платформе Windows Azure. Благодаря тому, что данная платформа поддерживает как веб-службы, так и фоновые процессы, приложение может предоставлять интерактивный интерфейс пользователя и асинхронно выполнять работу для пользователей. Вместо того, чтобы тратить время и деньги, думая об инфраструктуре, пусковая группа может полностью сосредоточить свое внимание на разработке кода, который будет приносить пользу пользователям и инвесторам. Компания может также запустить небольшой веб-сайт, требующий незначительных затрат, если у ее приложения очень мало пользователей. Если приложение приобретает популярность и количество пользователей растет, Windows Azure при необходимости позволяет масштабировать его.
  • Независимые поставщики программного обеспечения, создающие версию программы как службы имеющегося локального приложения Windows, могут разработать его на базе Windows Azure. Благодаря тому, что Windows Azure главным образом обеспечивает стандартную среду Windows, перемещение бизнес-логики приложения на эту "облачную" платформу не должно создавать особых проблем. Еще раз подчеркнем: разработка на базе имеющейся платформы позволяет независимым поставщикам ПО сосредоточить внимание на бизнес-логике, то есть на том, что позволяет им делать деньги, а не тратить время на инфраструктуру.
  • Компания, создающая приложение для своих заказчиков, может выбрать для его разработки платформу Windows Azure. В силу того что Windows Azure поддерживает .NET, не представляет труда найти разработчиков с соответствующими навыками к тому же за разумную плату. Выполнение приложения в центрах обработки данных Microsoft освобождает предприятия от ответственности и расходов на поддержку собственных серверов, превращая капитальные затраты в эксплуатационные расходы. В особенности если у приложения имеются периоды пиковой нагрузки (если это, например, сетевой магазин цветов, которые необходимо вручить во время всеобщего ажиотажа 8 марта), предоставление корпорации Microsoft функции поддержки большой серверной базы, необходимой для этого, может оказаться экономически выгодным.

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

Один из наиболее привлекательных способов использования серверов, доступных через Интернет, — это обработка данных. Цель SQL Azure — решить эту проблему, предлагая набор веб-служб для хранения самой разной информации и работы с ней. В то время, как представители Microsoft заявляют, что постепенно SQL Azure будет содержать целый ряд возможностей, ориентированных на данные, включая создание отчетов, анализ данных и многое другое, первыми компонентами SQL Azure станут база данных SQL Azure Database и средство синхронизации данных Huron. Это наглядно продемонстрировано на рисунке 4.42.

SQL Azure обеспечивает средства в Интернете, ориентированные на работу с данными

Рис. 4.4. SQL Azure обеспечивает средства в Интернете, ориентированные на работу с данными

База данных SQL Azure Database (ранее известная под названием SQL Data Services) обеспечивает систему управления базами данных (СУБД) в Интернете. Эта технология позволяет локальным и веб-приложениям хранить реляционные и другие типы данных на серверах Microsoft в центрах обработки данных Microsoft. Так же как при работе с другими веб-технологиями, компания платит только за то, что использует, увеличивая и уменьшая объем использования (и затраты) по мере возникновения необходимости в изменениях. Использование базы данных в "облаке" также меняет характер капитальных затрат: на место инвестиций в жесткие диски и ПО для СУБД приходят эксплуатационные затраты.

В отличие от службы хранилища Windows Azure база данных SQL Azure разработана на основе Microsoft SQL Server. Тем не менее в первоначальной CTP-версии 2008 г. база данных SQL Azure Database не предоставляла традиционный реляционный подход к данным. Учитывая отзывы заказчиков, корпорация Microsoft решила внести соответствующие изменения. В дальнейшем база данных SQL Azure Database будет поддерживать реляционные данные, обеспечивая среду SQL Server в "облаке" с индексами, представлениями, хранимыми процедурами, триггерами и многим другим. Доступ к этим данным можно получить с помощью ADO.NET и других интерфейсов доступа к данным Windows. Фактически приложения, которые сегодня получают доступ к SQL Server локально, будут работать почти точно так же с данными в SQL Azure Database. Для работы с этой информацией в "облаке" заказчики могут также использовать локальное ПО, такое как службы отчетов SQL Server.

В то время, как приложения могут использовать базу данных SQL Azure Database в значительной степени также, как локальную СУБД, требования к управлению существенно сокращены. Вместо того, чтобы беспокоиться о технике, например, обеспечивать мониторинг использования диска и обслуживание файлов журнала, заказчик SQL Azure Database может сосредоточить внимание на том, что действительно важно, на данных. Корпорация Microsoft будет отвечать за вопросы эксплуатации. Кроме того, так же как в случае с другими компонентами платформы Windows Azure, использование SQL Azure Database не составляет труда. Нужно просто зайти на веб-портал и предоставить необходимую информацию.

Второй компонент SQL Azure был заявлен под названием Huron Data Sync. Эта технология, разработанная на основе Microsoft Sync Framework и SQL Azure Database, позволяет синхронизировать реляционные данные в разных локальных СУБД. Владельцы данных могут определять, что именно должно синхронизироваться, как должны разрешаться конфликты и многое другое.

Приложения могут использовать SQL Azure самыми разными способами. Приведем несколько примеров.

  • Приложение Windows Azure может хранить данные в SQL Azure Database. Несмотря на то, что Windows Azure обеспечивает собственное хранилище, реляционные таблицы не входят в число предлагаемых вариантов. Учитывая то, что многие имеющиеся приложения используют реляционное хранилище, а многие разработчики знают, как с ним работать, значительное количество приложений Windows Azure, скорее всего, будет работать с данными привычным способом, то есть с опорой на SQL Azure Database. Для повышения производительности заказчики могут указать, что определенное приложение Windows Azure должно выполняться в том же центре обработки данных, где SQL Azure Database хранит информацию этого приложения.
  • В небольшой компании или подразделении большой организации приложение может использовать SQL Azure Database. Вместо того, чтобы хранить данные в базе данных SQL Server или Access, работающей на компьютере под чьим-то столом, приложение может использовать преимущества надежного и отказоустойчивого "облачного" хранилища.
  • Предположим, производитель хочет сделать информацию о продукте доступной для своей дилерской сети и непосредственно для заказчиков. Размещение данных в SQL Azure Database позволит сделать их доступными для приложений, выполняемых на стороне дилеров, и для ориентированных на заказчиков веб-приложений, которые выполняются на стороне производителя.
  • Компания с клиентской базой данных, реплицированной в географически удаленных местах, должна использовать компонент Huron для синхронизации этих реплик. Возможно, в каждой из географических точек требуется собственная копия данных для повышения производительности, обеспечения доступности или по каким-то иным причинам. Автоматическая синхронизация может сделать такое обязательное распределение менее проблематичным.

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

Выполнение приложений и хранение данных в Интернете относятся к важным аспектам вычислительной сетевой среды. Однако они далеко не исчерпывают ее возможности. Другая возможность заключается в обеспечении инфраструктуры служб на базе "облака", которые могут использоваться локальными приложениями или веб-приложениями. Заполнить этот пробел и призваны службы .NET Services.

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

Службы .NET Services обеспечивают инфраструктуру в "облаке", которая может быть использована для веб-приложений и локальных приложений

увеличить изображение
Рис. 4.5. Службы .NET Services обеспечивают инфраструктуру в "облаке", которая может быть использована для веб-приложений и локальных приложений

Службы .NET Services состоят из следующих компонентов.

  • Управление доступом. Получающий все большее распространение подход к удостоверениям заключается в том, что каждый пользователь должен предоставить приложению маркер, содержащий некоторый набор утверждений. На основании этих утверждений приложение решает, что разрешено делать пользователю. Эффективное осуществление этой процедуры в масштабах компании требует федерации удостоверений, которая позволяет принимать утверждения, сделанные в одной области удостоверений, в другой области. Может также потребоваться преобразование утверждений, изменяющее их при передаче из одной области удостоверений в другую. Служба управления доступом обеспечивает реализацию обеих функций на основе "облака".
  • Шина служб. Предоставление служб приложений в Интернете гораздо труднее, чем может показаться. Задача шины служб — упростить эту процедуру, позволяя приложениям предоставлять конечные точки веб-служб, доступ к которым может быть получен другими приложениями — локальными или работающими в "облаке". Каждой предоставленной конечной точке присваивается URI, который клиенты могут использовать для поиска службы и получения доступа к ней. Шина служб также решает проблему преобразования сетевых адресов и прохождения через межсетевые экраны без открытия новых портов для предоставленных приложений.

Приведем несколько примеров использования службы .NET Services.

  • Независимый поставщик ПО, который поставляет приложение, необходимое заказчикам из разных организаций, может использовать службу управления доступом для упрощения разработки и эксплуатации приложения. Например, этот компонент .NET Services может преобразовывать различные утверждения, применяемые в разных организациях с различными технологиями идентификации в согласованный набор, подходящий для приложения независимого поставщика ПО. Такое преобразование позволяет также разгрузить механизм федерации удостоверений за счет службы управления доступом, освобождая независимых поставщиков ПО от необходимости выполнения собственной локальной программы федерации.
  • Предположим, предприятие хочет открыть доступ к одному из своих приложений торговым партнерам. Оно может распределить функции приложения с помощью веб-служб SOAP или RESTful и зарегистрировать их конечные точки с помощью шины служб. Затем торговые партнеры могут использовать шину для поиска конечных точек и доступа к службам. Это позволяет снизить риски, связанные с предоставлением приложения, поскольку не требует открытия новых портов в межсетевом экране компании. Организация может также использовать службу управления доступом, предназначенную для работы с шиной служб, для рационализации сведений о проверке подлинности, отправленной приложению ее партнерами.

Так же как в случае Windows Azure, предоставляется портал, доступный с помощью браузера, чтобы дать заказчикам возможность использовать службы .NET Services с помощью Windows Live ID. Цель корпорации Microsoft, достигаемая с помощью .NET Services, совершенно очевидна: обеспечить полезную "облачную" инфраструктуру для распределенных приложений.

< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?