Архитектура распределенных систем программного обеспечения. Учебное пособие издано при поддержке образовательной программы Формирование
Скачать 1 Mb.
|
Централизованная координацияВ процессе обмена сообщениями при централизованной координации (с одним общим координатором) выдаются сообщения следующих трех типов (Рис. 4.20): Операционные сообщения. Эти сообщения передаются между взаимодействующими службами. СообщенияпротоколаWS-Coordination. Эти сообщения передаются между службами и координатором при проведении активации или регистрации. Протокольныесообщения. Эти сообщения передаются между службами и координатором как часть основного протокола. Из этих трех типов сообщений протокол WS-Coordination определяет только сообщения второго типа. Другие сообщения зависят только от самих сетевых служб и от координационных протоколов, которые они используют. Предполагается, что координатор знаком с основным протоколом и знает, как поддержать его выполнение. Рис. 4.20. Обмен сообщениями при выполнении разговора с централизованной координацией(послесообщения№7всесторонызнают,ктобудеткоординировать протокол, и кто будет в нем участвовать). Реализация различных типов координаций проводится протоколом WS-Coordination в следующей последовательности. Во-первых, все сетевые службы, участвующие в разговоре, должны согласовать между собой, кто будет координировать данный разговор. Протокол WS- Coordination решает эту проблему распространением структуры данных для координационного контекста и указанием метода передачи этой структуры между сетевыми службами. Указанная структура данных содержит ссылку на координаторный регистрационный порт, с помощью которого все участники могут регистрировать свой интерес к разговору у одного и того же координатора. Во-вторых, многие типы координаций требуют передачи между участниками уникального идентификатора, который обеспечит автоматическую маршрутизацию верификацию протокола на уровне системной поддержки. Протокол WS-Coordination определяет общий механизм определения таких идентификаторов и их передачи между службами, что также выполняется с помощью координационной структуры данных. В-третьих, в любом разговоре возникает необходимость связывания координаторов и участников. Без такого связывания координатор не узнает ссылку на протокольный интерфейс участника (и наоборот). Децентрализованная координацияПротокол WS-Coordination позволяет участникам взаимодействовать с использованием персональных координаторов, что является обычным режимом в Интернете, где взаимодействие часто децентрализовано (Рис. 4.21). В отличие от централизованного варианта участники могут регистрироваться у разных координаторов, причем каждый из них создает свой координационный контекст, а координаторы должны регистрировать друг друга, причем один из них объявляет себя координатором всего процесса взаимодействия, а другие участвуют во взаимодействии в качестве посредников. Распределенность координации достигается построением цепочек координаторов. Один координатор работает как заместитель (proxy) другого. Все сообщения между координатором одной службы и другой службой проходят через координатор этой другой службы. Для того чтобы реализовался такой сценарий, в приведенном примере задействованы два механизма. Во-первых, один координатор, чтобы действовать в качестве координатора-заместителя другого, должен знать свою роль в протоколе. Во-вторых, любой координатор должен иметь возможность переправлять полученные сообщения от своей службы к другому координатору и обратно. Рис. 4.21. Обмен сообщениями при выполнении разговора с децентрализованной координацией(послесообщения№11известно,ктобудеткоординироватьпротокол, и кто будет в нем участвовать). Активация или создание координационного контекста имеет двойную цель: для участника она состоит в получении нового контекста, а для координатора в осознании собственной роли в протоколе. Если существующий координационный контекст передается как часть сообщения создания координационного контекста, координатор понимает, что он является заместителем некоторого другого координатора. Ссылка на порт регистрации координатора уже включена в переданный координационный контекст. С ее помощью координатор-заместитель узнает ссылку на первичный координатор. С другой стороны, если сообщение с запросом на создание координационного контекста не имеет существующего координационного контекста, координатор действует как первичный. Построение цепочек координаторов может привести к получению произвольного уровня сложности связей, однако цепочками система координаторов может не ограничиваться. В соответствии со стандартом WS-Coordination координаторы могут транслировать сообщения одного протокола, получаемые от их участников, в сообщения другого протокола, передаваемые другому координатору. Естественно, что это требует реализации зависящих от конкретных протоколов компонентов, выполняющих активацию и регистрацию. |