Построение гибридных приложений в облаке на платформе Windows Azure patterns & practices


Рисунок 2 Гибридная версия решения Trey Research



Pdf просмотр
страница8/33
Дата28.11.2016
Размер8.44 Mb.
Просмотров6354
Скачиваний0
1   ...   4   5   6   7   8   9   10   11   ...   33
Рисунок 2
Гибридная версия решения Trey Research

92
Что касается клиента, то приложение Orders работает аналогично оригинальному решению, но логика обработки заказа теперь следующая:

Когда клиент размещает заказ, приложение Orders выполняет следующие действия:
◦ Сохраняет информацию о заказе в таблице «Заказы» в базу данных в локальном центре обработки данных под управлением SQL Azure. Все заказы синхронизируются во всех центрах данных Windows Azure, поэтому информация о состоянии заказа доступна для посетителей любого центра данных, на который они перенаправляются.
◦ Отправляет соответствующее сообщение определенному транспортному партнеру.
Выбор транспортной компании зависит от местоположения поставки.
◦ Отправляет необходимую информацию для аудита, например заказы общей стоимостью более 10 000 долларов США, в таблицу «Журнал аудита» базы данных, размещенной в центре данных в головном офисе. Локальные приложения управления и мониторинга могут анализировать эту информацию.

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

Когда транспортные партнеры доставляют заказ клиенту, они отправляют сообщение в приложение Orders (работающее в центре данных, из которого изначально посылалось сообщение о заказе), которое обновляет таблицу «Заказы» в базе данных.
Имейте в виду, что для упрощения некоторые функции и процессы, описанные в настоящем руководстве, не в полном объеме реализованы в примере приложения, который мы предоставляем, или могут работать несколько иным образом. Это упрощает установку и настройку примера приложения. Вам не придется получать и настраивать учетные записи
Azure в нескольких центрах обработки данных; это также относится к службам, таким как SQL
Azure Data Sync и SQL Reporting.
Если выразить это более простыми словами, то высокоуровневая структура облачных элементов гибридного решения относительно прямолинейна. Приложение Orders, работающее в облаке, устанавливает соответствие с ролью Windows Azure, как описано в главе 1
«
Сценарий Trey Research»
, тогда как бизнес-логика, которая на самом деле обрабатывает заказы, может быть реализована в виде рабочей роли Windows Azure. Операция логики обработки заказов должна быть масштабируемой, чтобы справиться с ожидаемым ростом спроса при увеличении базы данных клиентов компании Trey
Research, а также надежной, так как заказы не должны дублироваться и должны располагаться в соответствующих местах.
Бизнес-логика, отвечающая за обработку заказов, естественным образом делится на три области: взаимодействие с транспортными партнерами, определение заказов, для которых необходим аудит, и передача заказов в приложение для обеспечения соответствия нормативным требованиям.
Компания Trey Research рассмотрела варианты реализации для каждой из этих областей.

93
Взаимодействие с транспортными партнерами
Ключевой частью механизма обработки заказов является взаимодействие с транспортными партнерами.
Рабочая роль должна проанализировать каждый заказ и перенаправить детали заказа наиболее подходящему транспортному партнеру. Понятие «наиболее подходящий» транспортный партнер связано с приложением и может меняться со временем, но на данный момент по экономическим соображениям выбран самый близкий партнер к производственным площадям компании Trey Research, откуда поставляются заказы. Заказы для местных клиентов (клиентов, находящихся в том же или соседнем штате, что и производство компании) выполняются местным партнером по транспортировке, а заказы для более отдаленных клиентов перевозятся удаленными транспортными партнерами на железнодорожном или авиационном транспорте, если это необходимо.
Примечание
После переговоров и тщательного анализа компания Trey Research решила работать с компанией Contoso, Inc. для оказания услуг по локальной транспортировке, а компания
Fabrikam, Inc. была выбрана для доставки заказов более отдаленным клиентам.
На этапе разработки команда разработчиков компании Trey Research потребовала, чтобы все взаимодействия с транспортными партнерами соответствовали следующим критериям:

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

Механизм связи должен быть устойчивым и надежным. Когда клиент размещает заказ и этот заказ подтверждается, его необходимо выполнить. Система не должна терять заказы, когда сообщения передаются из решения Trey Research соответствующему транспортному партнеру, даже если связь с транспортным партнером прерывается или система транспортного партнера работает с перебоями.

Решение должно быть масштабируемым. Должна быть возможность простого добавления транспортных партнеров в решение без необходимости переписывания логики обработки заказов. Кроме того, должна быть возможность размещения приложения Orders на нескольких сайтах в облаке, без необходимости внесения изменений в код обработки нескольких экземпляров приложения.

Решение должно быть гибким. Список транспортных партнеров может меняться со временем, также может меняться выбор партнера для выполнения определенного заказа в связи с изменением цен доставки.

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

94
Выбор механизма взаимодействия
В исходном локальном приложении связь между компанией Trey Research и транспортными партнерами осуществлялась с помощью набора операций с веб-службами. Некоторые вызовы этих операций инициировались в сети компании, а другие требовали от нее создания локальной веб-службы, которую вызывали партнеры для обновления статуса поставки. После переноса в облако с учетом описанных выше сложностей, компания Trey Research разработала несколько вариантов реализации связи между эквивалентной бизнес-логикой, помещенной в рабочую роль, и транспортными партнерами. В следующих разделах описаны эти варианты, а также их преимущества и ограничения.
Электронный обмен данными (Electronic Data Interchange, EDI)
Рабочая роль могла подключиться к транспортному партнеру через интерфейс, протокол и формат, понимаемые как рабочей ролью, так и транспортным партнером, например EDIFACT, RosettaNet, cXML и BASDA. Это общепринятые и хорошо понимаемые стандарты, используемые многими большими организациями для обмена данными с другими компаниями. Кроме того, большинство современных протоколов EDI — асинхронные, поскольку предполагается, что соответствующие бизнес-процессы будут долгосрочными. Это позволяет обеспечить быстродействие рабочей роли в периоды повышения спроса.
Однако рабочая роль может потребовать дополнительного программного обеспечения и инфраструктуры для подключения к интерфейсу EDI. Microsoft BizTalk Server предоставляет адаптеры для многих хорошо известных протоколов и форматов, но это решение требует передачи всех заказов через сервер BizTalk Server, работающий локально. Дополнительная информация представлена в статье о гибридной реализации с помощью сервера BizTalk Server, Windows Azure, шины интеграции и SQL
Azure «Hybrid Reference Implementation Using BizTalk Server, Windows Azure, Service Bus and SQL Azure» на сайте http://msdn.microsoft.com/en-us/windowsazure/hh547113(v=VS.103).aspx
. Каждый транспортный партнер может иметь свой интерфейс EDI, что усложняет расширение бизнес-логики Trey Research на дополнительных партнеров, хотя есть возможность абстрагировать эти отличия в механизме соединительного звена в рабочей роли.
Этот подход потребует реализации соединительного звена для каждого партнера. Также компания Trey
Research должна была учесть, что не все транспортные партнеры предоставят интерфейс EDI с их системами.
И наконец, в этом подходе безопасность и защита сообщений контролируется транспортным партнером, а не компанией.
Веб-службы (модель «продвижение»)
Если транспортный партнер создает интерфейс веб-служб в системе управления доставкой, рабочая роль может использовать этот интерфейс и вызывать соответствующие операции для продвижения деталей заказов транспортному партнеру. Веб-службы основаны на общепринятой, хорошо понимаемой развивающейся технологии. Кроме того, вызвать операции веб-служб из рабочей роли обычно довольно просто. С точки зрения безопасности запросы можно легко зашифровать, хотя уровень безопасности и защиты сообщений контролируется транспортным партнером, предоставляющим веб-службу.
В этом подходе могут быть определенные проблемы. Во-первых, если транспортный партнер не предоставляет интерфейс веб-службы, то этот подход использовать невозможно. Если транспортный партнер предоставляет такой интерфейс, компания Trey Research должна оценить возможную сложность очень вероятного сценария, когда различные транспортные партнеры могут внедрить различные наборы операций веб-служб и ожидать сообщений с запросами в различных форматах. Эти отличия можно абстрагировать путем создания механизма соединительного звена в рабочей роли и предоставления коннекторов для каждого транспортного партнера, но это усложняет решение Trey Research.

95
Еще одна проблема в том, что веб-служба может не обеспечивать надлежащий уровень надежности.
Рабочая роль может не получить уведомление, когда система транспортного партнера выдает ошибку, которая приводит к потере деталей заказа; транспортный партнер может не получить уведомление о необходимости вызова операции, которая опять предоставит детали заказа.
Связь также может быть проблемой; если веб-служба транспортного партнера временно недоступна или невозможно установить соединение, то компания Trey Research не сможет отправить информацию о заказах.
Веб-службы (модель «извлечение»)
Веб-службы могут предоставить безопасный, масштабируемый и надежный механизм связи, если они реализованы корректно. По этой причине компания Trey Research решила изменить предыдущий вариант путем внедрения веб-службы как части рабочей роли и внедрения операций, которые транспортные партнеры вызывают для получения (или извлечения) информации о заказах из приложения Trey Research. Этот подход позволил компании получить полный контроль над уровнем защищенности сообщений и безопасности, реализовать преимущества масштабируемости веб-службы, присущие рабочей роли, размещенной Windows Azure, а также позволил добиться более высокого уровня надежности. Если система транспортного партнера выдает сбой при обработке заказа, она может повторно подключиться к веб-службе и извлечь детали заказа снова после перезапуска.
Рабочая роль может иметь одинаковый интерфейс веб-службы для всех транспортных партнеров.
Новые транспортные партнеры могут быть легко интегрированы без необходимости изменения рабочей роли. Рабочая роль не ждет, пока транспортный партнер извлекает детали заказа, поэтому система продолжает отвечать на запросы клиентов. Кроме того, рабочая роль пользуется преимуществами службы Service Bus Relay для объединения характеристик безопасности и независимости от места в одном решении. Транспортный партнер может подключаться к хорошо знакомой конечной точке, анонсированной службой Service Bus Relay, которая может аутентифицировать транспортного партнера с помощью службы Windows Azure Access Control (ACS), а затем прозрачно перенаправлять сообщения к конечным точкам веб-службы, публикуемым рабочей ролью.
Однако транспортные партнеры должны разработать собственное программное обеспечение для подключения к веб-службе; у них может не быть возможности разрабатывать и развертывать пользовательские программные решения специально для интеграции с компанией Trey Research. Если транспортный партнер хочет подключиться к веб-службе, в его обязанности входит запрос о том, имеются ли заказы, которые необходимо доставить. Если транспортный партнер не посылает эти запросы достаточно часто, то заказы могут быть доставлены несвоевременно, что приведет к жалобам клиентов. Если системе транспортного партнера не удается успешно посылать запросы в веб-службу, заказы отправлены не будут. Масштабируемость также может быть проблемой в системах транспортных партнеров. С увеличением объема заказов транспортные партнеры могут посылать запросы в веб-службу недостаточно часто, что может привести к задержке в формировании заказов.
Очереди хранилища Windows Azure
Приложение Orders работает в роли Windows Azure, поэтому компания Trey Research решила публиковать детали заказов в виде сообщений в очередь хранилища Windows Azure. Транспортные партнеры могут подключаться к этой очереди для извлечения деталей заказов, которые необходимо доставить. Сообщения с подтверждением доставки могут отправляться обратно в рабочую роль через другую очередь. Этот механизм относительно простой, надежный, масштабируемый и защищенный; очереди хранилища Windows Azure управляются и поддерживаются в центре данных, а компания Trey
Research имеет полный контроль над тем, какие транспортные партнеры будут иметь права доступа к очереди для извлечения и публикации сообщений. Кроме того, семантика операции извлечения может быть реализована надежным способом; если система транспортного партнера выдает сбой с ошибкой после получения сообщения, но до его обработки, это сообщение может быть явным образом возвращено в очередь, откуда его можно получить после перезапуска системы транспортного партнера.

96
Windows Azure предоставляет интерфейс REST API для доступа к очередям хранилища Windows Azure, что позволяет транспортным партнерам реализовать их систему, используя любую технологию, которая позволяет подключаться к сети и передавать запросы REST.
С этим подходом также связаны некоторые проблемы. Как и в некоторых предыдущих вариантах, у каждого транспортного партнера должно быть желание внедрить программное обеспечение для подключения к очереди хранилища Windows Azure и интегрировать его в свое решение. Также чтобы предотвратить получение транспортным партнером заказа, предназначенного другому транспортному партнеру, компания Trey Research должна создать отдельную очередь для каждого партнера.
Этот подход может усложнить логику в рабочей роли, а также усложнить процесс добавления или удаления транспортных партнеров. И наконец, безопасность контролируется путем использования ключей учетной записи хранения вместо ACS, что предоставляет каждому транспортному партнеру доступ ко всей учетной записи хранения, а не к отдельной очереди. Чтобы гарантировать наличие доступа каждого транспортного партнера к соответствующей очереди, каждая очередь должна быть создана в отдельной учетной записи хранения с собственным ключом.
Очереди шины интеграции Windows Azure
Чтобы устранить некоторые сложности использования очередей хранилища Windows Azure, разработан аналогичный, но более выгодный вариант публикации деталей заказов в виде сообщений в очереди шины интеграции Windows Azure. Транспортные партнеры могут подключиться к этой очереди для извлечения заказов, которые необходимо отправить. Сообщения с подтверждением доставки могут отправляться обратно в рабочую роль через другую очередь. Этот подход более масштабируемый; рабочая роль может публиковать сообщения в очереди шины интеграции с той же скоростью, что и размещение заказов. Инфраструктура шины интеграции может поместить сообщения в буфер до того момента, пока они не будут извлечены транспортным партнером. Он также предлагает повышенную надежность. После того как рабочая роль публикует сообщение в очереди шины интеграции, его невозможно потерять. Оно либо останется в очереди до истечения срока действия (период срока действия сообщения можно настроить), либо транспортный партнер получит его. Как и с очередью хранилища Windows Azure, очереди шины интеграции поддерживают надежные операции извлечения, поэтому если система транспортного партнера выдает сбой после получения сообщения, это сообщение может быть явным образом возвращено в очередь. Параметры безопасности очень гибкие и конфигурируемые, особенно если сравнить их с параметрами безопасности очередей хранилища
Windows Azure. Они управляются с помощью службы Windows Azure Access Control (ACS).
Однако, как и раньше, каждый транспортный партнер должен быть готов подключиться к соответствующим очередям шины интеграции для извлечения сообщений и отправки сообщений с подтверждением доставки. Если транспортный партнер не соглашается с таким подходом, а вместо этого настаивает на том, чтобы заказы передавались с помощью его собственных системных интерфейсов (например, набор веб-служб), то в этом случае компании Trey Research придется создать пользовательский компонент для извлечения сообщений из очереди, их конвертации в соответствующий формат для транспортного партнера, а затем передавать их с помощью согласованного протокола. Этот же компонент может содержать логику для ожидания подтверждения доставки от транспортного партнера и публикации сообщения в рабочую роль. Также как и раньше, чтобы предотвратить получение транспортным партнером заказа, предназначенного другому транспортному партнеру, компания Trey Research должна создать отдельную очередь для каждого партнера. Этот подход может усложнить логику в рабочей роли, а также усложнить процесс добавления или удаления транспортных партнеров.

97
Примечание
Дополнительная информация о сравнении функций и вариантов использования очередей хранилища Windows Azure и очередей шины интеграции Windows Azure представлена в статье
«Windows Azure Queues and Windows Azure Service Bus Queues - Compared and Contrasted» на сайте http://msdn.microsoft.com/en-us/library/windowsazure/hh767287(v=vs.103).aspx
Топики и подписки шины интеграции Windows Azure
Очереди шины интеграции представляют собой привлекательную альтернативу с возможностями масштабируемости, если бы не необходимость создания и управления отдельной очередью для каждого партнера. Поэтому в конечном итоге компания Trey Research решила опубликовать детали заказов в виде сообщений в топике шины интеграции Windows Azure; транспортные партнеры подписываются на топик для извлечения заказов, которые необходимо отправить. Сообщение с подтверждением получения деталей заказа и сообщение о доставке возвращаются в рабочую роль через очередь шины интеграции.
Как и очереди шины интеграции, топики и подписки шины интеграции отличаются высокой масштабируемостью и надежностью, а также настраиваемым уровнем безопасности. Однако при передаче сообщений транспортному партнеру они более гибкие, чем очереди шины интеграции.
Рабочая роль может добавлять метаданные в сообщения, которые указывают, какой транспортный партнер должен их обрабатывать, а затем публиковать эти сообщения в топике шины интеграции.
Каждый транспортный партнер может подключаться к топику шины интеграции с помощью собственной подписки, которая может фильтровать сообщения на основании этих метаданных, после чего транспортный партнер получает только те заказы, которые он должен обработать. Топики позволяют перенаправлять сообщения по нескольким направлениям, что позволяет, например, направлять заказы, стоимостью более 10 000 долларов США в прослушиватель журнала аудита.
Единственным и общим, с описанными выше вариантами, недостатком этого подхода является то, что каждый транспортный партнер должен быть готов подключаться к соответствующему топику шины интеграции для извлечения сообщений. Кроме того, компания Trey Research может создать пользовательский компонент связи для интеграции с системами транспортных партнеров. Топики также имеют некоторые ограничения, например на данный момент топик может содержать максимум 2000 подписок и может поддерживать до 100 одновременных соединений (ограничение 100 одновременных соединений также касается очередей). Однако компания пришла к выводу, что система Orders вряд ли достигнет одного из этих двух лимитов.
Как Trey Research связывается с транспортными партнерами
В конце концов, компания Trey Research решила посылать заказы от рабочей роли к транспортным партнерам путем использования топика шины интеграции. Каждый транспортный партнер получает сообщения с помощью подписки, которая фильтрует заказы. Таким образом, транспортный партнер получает только те заказы, которые он должен отправить. Дополнительная информация об использовании очередей шины интеграции, топиков и подписок представлена в статье «Queues, Topics, and Subscriptions» на сайте http://msdn.microsoft.com/en-us/library/windowsazure/hh367516.aspx
Мнение Джаны
Очереди шины интеграции предоставляют надежный и масштабируемый механизм для связи между службами, работающими в облаке, и локальными приложениями.

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

В случае с местным транспортным партнером, компанией Contoso, компании Trey Research удалось убедить партнера установить коннектор и интегрировать его в их собственную систему.
Компания Trey Research предоставила учетные данные, необходимые для подключения коннектора для ожидания передачи данных из соответствующей подписки шины интеграции.
Собственная система транспортного партнера использует этот коннектор для извлечения деталей заказов их подписки. Кроме того, коннектор имеет интерфейс, который система транспортного партнера использует для публикации сообщений с подтверждением в очередь шины интеграции, которую прослушивает приложение Orders.
Примечание
Реализация коннектора как части системы транспортного партнера не заставляет транспортных партнеров использовать код .NET Framework в их решении. Функции шины интеграции Windows Azure предоставляются через набор API HTTP REST (набор инструментальных средств разработки Windows Azure SDK просто предоставляет упаковщик .NET Framework для этих API), что позволяет транспортному партнеру использовать любую знакомую технологию, которая может генерировать запросы
REST и использовать ответы REST, включая язык программирования Java.

Удаленный транспортный партнер, компания Fabrikam, является многонациональной организацией, и эксплуатационный персонал не хотел устанавливать программное обеспечение
Trey Research на свои серверы; они предпочли, чтобы компания Trey Research подключалась с помощью интерфейсов, которые они предоставляют в своих системах. Для удовлетворения этого требования, компания Trey Research внедрила адаптер для публикации заказов для компании Fabrikam, и этот адаптер был развернут в рабочей роли. Этот механизм позволяет сохранить логику публикации сообщений для транспортных партнеров, вне зависимости от того, местные это партнеры или удаленные. Если компании Trey Research понадобиться добавить нового удаленного транспортного партнера в будущем, то просто потребуется создать и установить соответствующий адаптер.
Мнение Маркуса
Внедрение адаптеров и коннекторов позволяет приложениям оставаться независимыми от механизма связи. Если необходимо, топик шины интеграции, используемый компанией
Trey Research, можно переключить на другое средство передачи информации, при этом нужно будет изменить только адаптеры и коннекторы.
Каталог: download
download -> Составление простейшей программы в среде lego education. Запуск модели «Обезьянка барабанщица», «Рычащий лев», «Автомобиль»
download -> Функциональные части компьютера, история развития, базовая конфигурация
download -> Компьютер: друг или враг?
download -> Лекция №2 «Теоретические основы игры дошкольника» Зарубежные и отечественные теории игры
download -> Доклад муниципальное образовательное
download -> Литература для воспитанников стр. Приложения стр
download -> Министерство здравоохранения Республики Беларусь
download -> Игра как средство активизации познавательной активности учащихся в ходе изучения темы Алгоритмизация и программирование


Поделитесь с Вашими друзьями:
1   ...   4   5   6   7   8   9   10   11   ...   33


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал