Архитектура распределенных систем программного обеспечения. Учебное пособие издано при поддержке образовательной программы Формирование
Скачать 1 Mb.
|
Взаимодействие службВзаимодействие служб проходит под управлением серии стандартов, определяющих это взаимодействие на разных уровнях. Каждый уровень характеризуется одним или несколькими протоколами, которые применимы ко всем сетевым службам, поэтому они реализуются в промежуточном слое сетевых служб. Протоколы взаимодействия невидимы для разработчиков, также как взаимодействия, проходящие между объектами CORBA, что позволяет сосредотачиваться на бизнес логике. Транспортные протоколы. Эти протоколы скрывают от сетевых служб коммуникационные сети. Наиболее часто используется протокол HTTP. Сообщения. На базе транспортных протоколов можно определять форматы и методы упаковки информации. Для сетевых служб используется протокол доступа к объектам (Simple Object Access Protocol,SOAP). Этот протокол задает шаблон обобщенного сообщения. Для указания конкретных свойств над протоколом SOAP делаются дополнительные надстройки. Например, протокол WS-Security описывает, как с помощью протокола SOAP осуществлять безопасные обмены. Инфраструктурапротоколов(метапротоколы). Бизнес протоколы связаны с конкретными приложениями, но многое из нужной им поддержки может быть реализовано обобщенными инфраструктурными компонентами. Эти компоненты могут, например, хранить сведения о состоянии разговора между клиентом и службой, ассоциировать сообщения с теми или иными службами, верифицировать сообщения на соответствие правилам, определенным в протоколах, выполнять метапротоколы, которые создаются с целью координации выполнения бизнес протоколов. Например, перед началом фактического взаимодействия клиенты и службы должны выбрать протокол, назначить ответственного за его выполнение и так далее. Эти метапротоколы, а также способы использования языка WSDL и протокола SOAP определяются в спецификации WS-Coordination. Промежуточные(горизонтальные)протоколыСетевые службы и поддерживающая их инфраструктура по своей природе имеют распределенный характер, и их свойства, выходящие за рамки базовых коммуникационных свойств, реализуются с помощью децентрализованных протоколов. Эти протоколы называются горизонтальными, поскольку они применимы ко многим сетевым службам. Например, для надежности и транзакционности при взаимодействии требуется следовать некоторым протоколам (например, 2РС). Эти протоколы могут поддерживаться метапротоколами, но их лучше скрывать от разработчиков. Именно поэтому они включаются в стек взаимодействия, а не описания служб: их целью является не описание службы, а определение высокоуровневых свойств любого взаимодействия. Первым протоколом такого рода был протокол транзакционного взаимодействия сетевых служб WS-Transaction. Сетевая служба (называемая в таком случае базовой) может получать запросы от других сетевых служб (называемых при этом композитными), возможно предоставляемых разными компаниями. С точки зрения клиента базовые и композитные службы неразличимы: это просто сетевые службы, описываемые и реализуемые одинаковыми способами. По мере роста числа используемых сетевых служб и возможности реализации, потребности в композиции служб растут. Стандартизация композитных служб находится в самом начале пути, а наиболее продвинутым стандартом является BPEL. Внутренняя и внешняя архитектура сетевых службСетевые службы имеют две архитектурные особенности (Рис. 4.4). Во-первых, они представляют собой окно, через которое через Интернет могут инициироваться внутренние операции. Сетевые службы должны получать запросы и передавать их нижним системным программам. В этом их роль аналогична роли традиционных системных платформ. Эта часть инфраструктуры сетевых служб называется внутренней. С другой стороны архитектура сетевых служб должна обеспечивать интеграцию различных служб между собой, то есть в нее должна включаться внешняя инфраструктура. Компания А (поставщик служб) Сетевая служба интерфейс сетевой службы доступ к внутренним системам |