Архитектура сервисов распределенных систем и технологии ее реализации
На начальном этапе своего развития распределенные приложения взаимодействовали с помощью частных, специально разработанных (проприетарных) протоколов, а системные администраторы использовали оригинальные методы, чтобы ими управлять. Как уже отмечалось, за годы становления и развития этой технологии были выработаны - с различной степенью успеха - многочисленные стандарты, чтобы ослабить затраты на развертывание и обслуживание таких систем. Сегодня наиболее предпочтительными подходами к построению распределенных систем считаются сервисно-ориентированная архитектура (Service Oriented Architecture, SOA), технология веб-сервисов, и грид-стандарты (в первую очередь - Открытая архитектура грид-сервисов (Open Grid Services Architecture, OGSA)). Однако, свои преимущества имеет и объектно-ориентированный подход. Ниже мы даем краткое общее описание этих подходов и соотношений между ними. При написании этого раздела существенно использовалась статья [28].
1.4.3.2.1Сервисно-ориентированная архитектура (SOA) распределенных систем
При рассмотрении термина «сервисно-ориентированная архитектура», полезно предварительно определить ключевые термины: Архитектура это формальное описание системы, определяющее ее цели, функции,внешне видимые свойства, и интерфейсы. Она также включает описание внутренних компонентов системы и их отношений, наряду с принципами, управляющими ее дизайном, функционированием и возможной последующей эволюцией.
Сервис (служба) - программный компонент, к которому можно удаленнообратиться посредством компьютерной сети, и предоставляющая некоторые функциональные возможности запрашивающей стороне. Сервисно-ориентированная архитектура (service-oriented architecture, SOA) является основой построения надежных распределенных систем, которые в качестве услуг предоставляют функциональные возможности, с дополнительным
акцентом на слабые связи между взаимодействующими сервисами.
Таким образом, SOA это архитектурный стиль, который подчеркивает реализацию компонентов системы как модульных сервисов, которые могут быть найдены и использованы клиентами. Вообще говоря, сервисы имеют следующие характеристики:
Сервисы могут быть полезными каждый сам по себе, или они могут быть объединены, чтобы предоставить единый высокоуровневый сервис. Среди других достоинств, это позволяет многократно использовать уже существующие функциональные возможности. Сервис общаются со своими клиентами, обмениваясь сообщениями: фактически, сервисы и различаются/идентифицируются в соответствии с совокупностью сообщений, которые они могут принять и ответов, которые они могут направить запрашивающей стороне. Сервис может участвовать в таких процессах обработки запросов, при которых порядок, в котором сообщения посылаются и принимаются, влияет на результат операций, выполненных сервисом. Это называется "сервисной хореографией" (service choreography) [5]. Сервис может быть полностью независимым, или может зависеть от существования других сервисов, или каких-либо ресурсов, например, баз данных. Простейшим примером первого типа является сервис, осуществляющий возведение в квадрат числа, посланного в запросе; примером второго типа является сервис, осуществляющий конвертацию валют – для этого ему необходим текущий валютный курс. Сервисы предоставляют информацию о своих возможностях, интерфейсах, политике и поддерживаемых протоколах связи. Детали реализации, например, язык программирования и платформа, на которой он реализован, не нужны клиентам для направления запросов и не предоставляются.
Рис. 3 иллюстрирует простой цикл взаимодействия сервисов, который начинается с того, что данный сервис оповещает о своем существовании и свойствах посредством известного сервиса регистрации (1), свойства и способы взаимодействия с которым должны быть заранее известны клиентам.
Рис.3 Взаимодействие сервисов в SOA-среде Потенциальный клиент, который может быть другим сервисом (или человеком), делает запрос в сервис регистрации (2), чтобы найти сервис, который удовлетворяет его потребностям. Регистрационный сервис возвращает (возможно пустой) список подходящих сервисов; клиент выбирает один из них и передает ему запрос, используя любой взаимно распознаваемый протокол (3). В этом примере, сервис отвечает (4), передавая или результат требуемой операции или сообщение об ошибке. На рисунке показан самый простой случай. В реальной установке процесс может быть значительно более сложным. Например, данный сервис может поддержать только HTTPS протокол, обслуживать только зарегистрированных пользователей, предлагать различные уровни сервиса различным пользователям, или требовать оплаты за использование. Представленный иллюстративный пример соответствует простому синхронному, двунаправленному способу обмена сообщениями, в то время как в реальной жизни взаимодействие может быть односторонним, или ответ может быть получен не от того сервиса, которому клиент посылал запрос, но от некоторого другого, которому он был передан для завершения обработки.
Принцип слабой связи
В определение SOA входит понятие слабой связи сервисов. Этот термин подразумевает, что взаимодействующие программные компоненты имеет минимальное знание друг о друге: они находят информацию, которая им нужна для взаимодействия непосредственно перед взаимодействием. Например, узнав о существовании сервиса, клиент может выяснить его возможности, условия предоставления услуг, его местоположение, его интерфейсы и поддерживаемые протоколы. Как только эти сведения получены, клиент может сразу же обратиться к сервису, используя любой взаимоприемлемый протокол. Достоинствами слабой связи являются: Гибкость: сервис может быть расположен на любом сервере, а при необходимости- перемещен. Пока ссылка на этот сервис есть в службе регистрации, предполагаемые клиенты будут в состоянии найти и использовать его.
Масшабируемость: функциональные возможности сервиса могут быть расширеныили сужены, поскольку при этом описание сервиса динамически меняется и, соответственно, изменяются и запросы. Возможность модификации реализации: при условии, что оригинальныеинтерфейсы сохраняются, реализация сервиса может быть обновлена без сбоев в обслуживании клиентов.
Отказоустойчивость: Если возникают проблемы в работе сервера, программного компонента или сегмента сети, или сервис становится недоступным по любой другой причине, клиенты могут сделать запрос к службе регистрации для обнаружения другого сервиса, который предоставляет требуемые услуги. Ясно, все эти преимущества имеют большое значение в динамической распределенной среде. Однако, необходимо отметить, что при конкретных реализациях сервисов далеко не всегда удается достигнуть полной независимости клиентов от свойств сервисов. В реальности термин «слабосвязанный» является относительным и степень зависимости клиента и сервиса, при которой их можно назвать сильносвязанными, в значительной степени является субъективным решением.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|