Опубликован: 25.05.2011 | Уровень: специалист | Доступ: свободно
Лекция 9:

Microsoft® .NET Services

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

Часто компании решают эти проблемы связи, открывая входящие порты межсетевых экранов (что доставляет немало хлопот системным администраторам) или используя различных обходные приемы, такие как динамическая DNS, сопоставление портов NAT или технологию UpnP. Все эти методы неустойчивы, трудно управляемы и восприимчивы к угрозам безопасности. Число приложений, для которых требуется такой тип двусторонней связи, постоянно растет. .NET Service Bus призвана удовлетворить эту потребность.

Network address translation – Преобразование сетевых адресов.

Domain Name System – Служба доменных имен.

Universal Plug and Play – Универсальная автоматическая настройка сетевых устройств.

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

Microsoft® .NET Access Control Service – это сервис в облаке, выполняющий именно эту функцию. Вместо того чтобы создавать собственную базу данных пользовательских учетных записей и ролей, можно предоставить возможность .NET Access Control Service управлять аутентификацией и авторизацией ваших пользователей. .NET Access Control Service использует существующие хранилища учетных записей пользователей, такие как Windows Live ID и Active Directory, а также любые другие хранилища, поддерживающие стандартные протоколы интегрирования. Таким образом, использование единой регистрации для доступа ко всем приложениям становится вполне естественным. Также это обеспечивает централизацию логики аутентификации и управления доступом, что упрощает ваши приложения.

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

Использование идентификации на базе утверждений для веб-сервисов

Рис. 8.10. Использование идентификации на базе утверждений для веб-сервисов

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

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

  • Аутентификация пользователей
  • Хранение учетных записей пользователей и паролей
  • Обращение к каталогам предприятия в поисках данных удостоверения пользователя
  • Интеграция с системами удостоверений других платформ или компаний

Используя такую модель, приложение может принимать решения об идентификации на основании предоставленных пользователем утверждений. И диапазон таких решений велик: от простой персонализации приложения по имени пользователя до авторизации пользователя для доступа к особо важным функциям и ресурсам приложения.

.NET Access Control Service реализовывает идентификацию на базе утверждений в рамках платформы Azure™ Services Platform. Система администрирования является важной частью .NET Access Control Service.

Портал ACS

Рис. 8.11. Портал ACS

.NET Access Control Service предоставляет портал администрирования (рисунок 8.11) в рамках портала Azure™ Services Portal. Здесь вы выполняете настройку правил, которые определяют схему выпуска утверждений для различных пользователей.

Портал Access Control Service – замечательное средство для исследования, изучения и начала работы с ACS. И для относительно простых приложений он может быть единственным необходимым инструментом. Но для нетривиальных систем с сотнями или тысячами пользователей и, возможно, таким же количеством правил, использование портала становится громоздким. В таких случаях программный интерфейс – более предпочтительный вариант, поэтому ACS также предоставляет интерфейс AtomPub для программного администрирования. AtomPub – это протокол RESTful, который стандартизует базовые операции CRUD (Create, Retrieve, Update и Delete) для управления удаленными ресурсами. Это открывает совершенно новые возможности.

Сервис .NET Access Control Service также включает конечные точки SOAP и REST для программного администрирования, а также ряд .NET-классов, которые упрощают вызов этих конечных точек. Итак, если вам не нравится портал, предоставляемый ACS, или вы желаете реализовать настройки, характерные для определенной предметной области, можно создать собственную консоль администрирования.

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

.NET Workflow Service является частью Azure™ Services Platform и интегрируется с сервисами .NET Service Bus и .NET Access Control Service для безопасного координирования взаимодействия посредством сообщений. .NET Workflow Service также обеспечивает инструменты управления для создания и управления типами и экземплярами рабочих потоков и API веб-сервисов для ситуаций, когда требуется создать собственные инструменты.

Поскольку управляющая среда построена на платформе Windows® Azure™, она может масштабироваться по требованию и в значительной степени, при этом организации или разработчику не приходится беспокоиться о планировании большего количества оборудования или программного обеспечения. Благодаря использованию среды выполнения WF экземпляры рабочего потока могут выполняться в пуле серверов и перемещаться с одного сервера на другой в каждом эпизоде выполнения. Управляющая среда включает сервис хранения, который использует безопасные тиражированные сервисы Microsoft SQL Service для сохранения состояния выполняющихся рабочих процессов и для обеспечения возможности восстановления.

На период перехода к обработке данных в облаке .NET Workflow Services предоставляет упрощенный подход для управления сложными взаимодействиями .NET Service Bus в создаваемых вами составных решениях "в облаке".

Построение хоста для рабочих процессов WF означает принятие решений о том, какие возможности будет поддерживать среда и как лучше сделать ее безопасной, масштабируемой и стабильной. Сегодня .NET Workflow Service построен на .NET Framework 3.5 и действиях и компонентах WF, входящих в данную версию инфраструктуры. Однако для обеспечения наилучших условий Microsoft были добавлены несколько специальных действий и сервисов, которые наложили некоторые ограничения на рабочие процессы, выполняющиеся в облаке.

В облаке не используется сервис хранения SqlWorkflowPersistenceProvider, получивший наибольшую популярность среди разработчиков, применяющих WF. Чтобы использовать операционную среду Azure и обеспечить наилучшие возможности масштабирования и стабильности, в инфраструктуре облака имеется специальный провайдер услуг хранения, который реализует сохранение состояния выполняющихся рабочих процессов посредством возможностей хранения Microsoft SQL Services. Кроме всего прочего, для Интернет-сервиса необходима Интернет-технология хранения и извлечения данных. Но поскольку механизм WF един – как в облаке, так и в ваших локальных решениях, – применение специального провайдера услуг хранения прозрачно для разработчиков рабочих процессов. Все делается так же, как в любой другое среде WF.

При построении рабочих процессов для облака разработчики используют привычные инструменты Visual Studio, включая тот же дизайнер рабочего процесса для создания XAML-файлов рабочих процессов и файлов правил. Затем эти XML-файлы загружаются на сервер в облаке, где они могут использоваться для создания экземпляров рабочего процесса. .NET Services SDK включает шаблон проекта для создания SequentialCloudWorkflow (Последовательный рабочий процесс в облаке), который является специальной версией стандартного шаблона SequentialWorkflow (Последовательный рабочий процесс). Одним из ограничений текущей инфраструктуры является то, что при определении рабочих процессов, которые будут выполняться в облаке, можно использовать только подмножество действий базовой библиотеки действий, а также комплект специальных действий, предоставляемый как часть .NET Services SDK.

Набор действий требует, чтобы рабочие процессы были полностью декларативными и ограничивающими. Это предотвращает введение пользовательского кода, т.е. позволяет гарантировать стабильность среды. При построении управляющей среды для рабочих процессов, написанных любым количеством разработчиков, разбросанных по всему миру, такой уровень контроля является обязательным. Поскольку сегодня для выполнения WF необходимо полное доверие, мы не можем обеспечить ограниченный набор функциональности, просто выделив пользовательский код в безопасную изолированную программную среду на серверах. Следует отметить, что со временем доступный сегодня ограниченный набор действий будет расширен для увеличения возможностей рабочего процесса в облаке. По мере выхода новых версий .NET Framework и .NET Workflow Service также будет поддерживать их. Кроме того, если понадобятся специальные этапы, возможности локальных рабочих процессов могут комбинироваться с рабочими процессами в облаке с помощью .NET Service Bus.

.NET Services SDK содержит новый шаблон проекта для построения рабочих процессов в облаке, набором новых действий в облаке и клиентским API для удаленного развертывания и управления рабочими процессами, размещаемыми в облаке.

При написании рабочих процессов в облаке необходимо быть аккуратным с используемыми действиями (дизайнер предложит только допустимые действия). Разрешенными являются некоторые основные действия потока управления WF, включая IfElse (Если…то), While (Пока), Sequence (Последовательность), Suspend (Приостановить), Terminate (Завершить) и FaultHandler (Обработчик сбоев). Кроме базовых действий потока управления, в рабочих процесса в облаке могут также использоваться CancellationHandlerActivity и FaultHandlersActivity для моделирования обработки исключений и логики отмены. Обратите внимание, что эти действия обычно не добавляются в модель напрямую; для этого используется дизайнер составных действий, который вводит их автоматически, когда представление переходит к этому действию.

Ни одно другое действие WF или пользовательские действия не могут использоваться. Разрешены к применению только новые специальные действия в облаке, включенные в .NET Services SDK. Ниже описаны новые специальные действия в облаке, которые поставляются с .NET Services SDK.

Поскольку основной задачей .NET Workflow Service является упрощение взаимодействия сообщений, эти действия, главным образом, касаются отправки, получения и обработки сообщений. Отправлять/принимать сообщения можно посредством традиционных HTTP-запросов или через .NET Service Bus. Эти действия можно будет найти на панели инструментов Visual Studio при использовании шаблона проекта последовательного рабочего процесса в облаке.

Краткие итоги:

Платформа Azure™ Services Platform представляет комплексную стратегию, разработанную Microsoft для облегчения разработчикам задач по реализации возможностей обработки данных в облаке. Microsoft® .NET Services – ключевая составляющая этой платформы, созданная специально, чтобы помочь .NET-разработчикам сделать первый шаг. .NET Services предлагает ориентированные на работу в облаке стандартные блоки и инфраструктуру для обеспечения возможности подключения приложений, управления доступом, размещения и управления рабочим процессом. Эти стандартные блоки станут основными средствами организации работы "с облаком" для .NET-разработчиков на годы вперед. Больше информации о .NET Service Bus, .NET Access Control Service и .NET Workflow Service можно найти в документах данной серии, посвященных каждой из этих тем в отдельности.

Ключевые термины:

Microsoft® .NET Service Bus – блок сервисов, который предоставляет сетевую инфраструктуру для соединения приложений через Интернет с использованием разнообразных шаблонов обмена сообщениями способом, обеспечивающим возможность прохождения межсетевых экранов и NAT-устройств без нарушения безопасности, предоставляемой этими устройствами.

Microsoft® .NET Access Control Service – блок сервисов, который обеспечивает управление доступом в облаке на основании утверждений. Он включает механизм преобразования утверждений, который объединяется с поставщиками удостоверений, такими как Active Directory и Windows Live ID (WLID). В будущих версиях будет реализована интеграция с любыми поставщиками удостоверений.

Microsoft® .NET Workflow Services – блок сервисов, который предоставляет инфраструктуру для размещения и управления рабочими процессами WF, уделяя основной внимание взаимодействию через сообщения посредством

Нияз Сабиров
Нияз Сабиров

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

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

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

Владислав Ветошкин
Владислав Ветошкин
Россия, Ижевск, Ижевский государственный технический университет имени А.Т. Калашникова, 2011
Саламат Исахан
Саламат Исахан
Россия, Turkistan