И. Соммервилл - Инженерия программного обеспечения (1133538), страница 61
Текст из файла (страница 61)
Здесь могут возникнуть определенные проблемы, посколысу объекты в системе могут быть реа. лизованы на разных языках программирования, могут запускаться на разных платформах и их имена не должны быть известны всем другим объектам системы. Поэтому промежу. точное ПО должно выполнять большую работу для того, чтобы поддерживалось постоян.
нос взаимодействие объектов. 238 Часть Ш. Проектирование В настолщий момент для поддержки распределенных объектных вычислений существует два основных стандарта промежуточного ПО. 1. СОКВА (Сотпюп ОЬ)ссс Ксчпсэс Вгохсг Агс)йсссспгс — архитектура брокеров эа. просов к общим объектам). Зто набор стандартов для промежуточного ПО, разработанный группой ОМС (ОЬ)ссс Мапайспсспс Сгопр — группа по управлению объектами).
ОМС является консорциумом фирм-производителей программного и аппа. ратного обеспечения, в числе которых такие компании, как Бпп, Нсвс!ссс-РасСсагс( и 1ВМ. Стандарты СОКВА определяют общий ыашипонсзависимый подход к распределенным объектным вычислениям. Разными производителями разработано мно. жсство реализаций этого стандарта. Стандарты СОКВА поддерживаются операционной системой Оп!х и операционными системами от М)сгоэой.
2. 1)СОМ (РнсВЬцссс) Сошропспс ОЬ)ссс Мос)с1 — объектная модель распределенных компонентов). )1СОМ прсдставляст собой стандарт, разработанный и реализованный компанией Мссгоэо(с н нптсгрировагнсый в сс операционные системы. Данная модель распределенных вычислений менее универсальна, чем СОКВА и предлагает болсс ограничснныс возможности сетевых взаимодействий. В настоящий момент использование ))СОМ ограничивается операционными системами Мссгоэой. Здесь я рсшил удслить внимание технологии СОКВА, поскольку она более универсальна. Кроме того, я считаю, что, вероятно, СОКВА, 11СОМ и другие технологии, например КМ! (Ксспосс Мссйос) !пгосапоп — вызов удаленного метода, технология построения распределенных приложений на языке )ага), будут постепенно сближаться друг с другом и это сближение будет базироваться иа стандартах СОКВА.
Поэтому нет необходимости в сщс одном стандарте. Раэличныс стандарты будут только помехой в дальнейшем развитии. Стандарты СОКВА опрсдслсны группой ОМС, которая объединяет более 500 компаний, поддерживающих объектно-ориснтированныс разработки. Роль ОМС вЂ” создание стандартов для объектно.ориентированных разработок, а нс обеспечение конкретных реализаций этих стандартов. Зти стандарты находятся в свободном доступе на сЛСсЬ-уэлс ОМС. Группа занимается нс только стандартами СОКВА, но также определяет широкий диапазон др)ч нх стандартов, включая язык моделирования с)М$ Представление распределенных приложений в рамках СОКВА показано на рис. 11.11.
Зто упрощенная схема архитектуры управления объектами, взятая из статьи [317). Пред. полапссгся, что распределенное приложение должно состоять из перечисленных ниже компонентов. 1. Объекты приложения, которые созданы и разработаны для данного программного продукта. 2. Стапдартныс объекты, которые определены группой ОМС для специфических за.
дач. Во время написанил книги множество специалистов занимались разработкой стащсартов объектов в области финансирования, страхованил, электронной коммерции, здравоохранения и многих других. 3. Основпыс сервисы СОКВА, поддерживающие базовые сервисы распределенных вычислений, например каталоги, управление зашитой и др. 4. Горпзонтальныс средства СОКВА, например пользовательские интерфейсы, средства управлснил системой и т.п. Под горизонтальными подразумеваются средства, обсцнс для многих приложений. 11.
Архитектура распределенных систем 239 гзгс П.П. Спехову(го унгснРвделгнного н(гнюжвнил, опювтпюго но сослндороюн СОЯВЛ Стандарты СОКВА описывают четыре основных элемента. 1. Модель объектов, в которой объект СОКВА инкапсулирует состояния посредством четкого описания на языке Ю1. (1псег(асс Рейпййоп Ьап3пайс — язык описания интерфейсов).
2. Брокер запросов к объектам (ОЬ)ссс КеЧпеэс Вгойег — ОКВ), который управляет запросами к сервисам объектов. ОКВ размещает объекты, предоставляющие сервисы, подготавливает их к получению запросов, передает запрос к сервису и возвращает результаты объекту, сделавшему запрос. 3. Совокупность сервисов объектов, которые являются основными сервисами, и не. обходимы во многих распределенных приложениях. Прилсерами могут быть службы каталогов. сервисы транзакций и сервисы поддержки временных объектов. 4. Совокупность общих компонентов, построенных па верхнем уровне основных сервисов. Они могут быть как вертикальными, отражающими специфику конкретно!С об.
ласти, так и горизонтальными универсальными компонентами, используемыми во многих программных приложениях. Этн компоненты рассматриваются в главе 14. В модели СОКВА объект инкапсулирует атрибуты и сервисы как обычный объект. Вместе с тем в объектах СОКВА еще должно содержаться определение различных интерфейсов, описывающих глобальные атрибуты и операции объекта. Интерфейсы обьектов СОКВА определяются на стандартном универсальном языке описания интерфейсов Ю1..
Если один объект запрашивает сервисы, предоставляемые другими обьскгами, он получает доступ к этим сервисам через Ю1:интерфейс. Объекты СОКВА имеют уникальный идентификатор, называемый 1ОК (1псегорегайе ОЬ)ссс КеГегепсс — ссылка на взаимодействующий объект). Когда один объект отправляет запросы к сервису, предоставляемому другим объектом, используется идентификатор 1ОК Брокеру запросов к объектам известны объекты, запрашивающие сервисы и их интерфейсы. Он организует взаилюдсйствие между объектами. Взаимодействующим объектам не требуется что-либо знать о размещении других объектов, а также об их реализации. Так как интерфейс 1РЬ отделяет объекты от брокера, реализацию объектов люжно нзлсснять, не затрагивал другие компоненты системы.
На рис. 11.12 показано, как объелты о1 и о2 взаимодейств)ют посредством брокера запросов к объектам. Вызывающий объект (о1) связан с заглушкой (зспЬ) 1РЬ, которая опре 240 х1асть П1. Проектирование деляет интерфейс объекта, предоставляющего сервис. Конструктор объекта о1 цри за. просе к сервису внедряет вызовы в заглушку своей реализации объекта.
Язык 1РЬ является расширением С++, поэтому, если вы программируете на языках С++, С или )ава, получить доступ к заглушке совсем просто. Перевод описания интсрфсйса объекта на 1РЬ также возможен и для других языков, напримср Ас)а или СОВО1.. Но в этих случаях необходима соотвстствующал инструментальная поддержка. Рис. ! /. 12 Взпинодейсмвне обмкжов посредсоман бряк еро вопросов к обмвспозм Объект, предоставляющий сервис, связан с остовом (з)сс!с!оп) 1Р1., который связьеаст интерфейс с рсапизацисй сервисов. Иными словами, когда сервис вызывается чсрсз ии.
терфсйс, остов П1Ь транслирует вызов к сервису независимо от того, какой язык исполь. зовался в реализации. После завершение) метода или процедуры остов транслирует рсзультаты в лзык! Р1 так что они становятся доступными вызывающему объекту. Если объект одновременно предоставляет сервисы другим объектам нли использует сервисы, которые предоставлены еще где-то, ему требуются и остов )РЬ, и заглушка ПН..
Последняя необходима всем используемым объектам. Брокер запросов к объектам обычно реализуется нс в виде отдсльных процессов, а как каркас (см. главу 14), который связан с реализацией объектов. Поэтому в распределенной системе каждый компьютер, на которолс работают объекты, должен иметь собственный брокер запросов к объектам, который будет обрабатывать все локальныс вызовы объектов.
Но сслн запрос сделан к сервису, который предоставлен удаленным объектом, требуется взаимодействие между броксрами. Такая ситуация проиллюстрирована на рис. 11.13. В данном примере, если объект о1 или о2 отправляет запросы к сервисам, прсдоставлясмым объектами оЗ или о4, то необходимо взаимодействие связанных с этими объектами брокеров. Стандарты СОКВА поддерживают взаимодействие "брокер-брокер", которое обеспечивает брокерам доступ к описаниям интсрфсйсов !РЬ, и предлагают разработанный группой ОМС стандарт обоб.
щенного протокола взаимодействия броксров С1ОР (Сспсйс !Шее-ГдКВ Ргогосо!). Данный протокол определяет стандартные сообщения, которыми могут обмсниваться броксры при выполнении вызовов удаленного объскга и передаче информации. В сочетании с протоколом 1щсгпсс низкого уровня ТСР/1Р этот протокол позволяет брокерам взаимо. действовать через 1пгегпсг.
Псрвыс варианты СОКВА были разработаны сщс в 1980-х годах. Ранние версии СОКВА просто были связаны с поддержкой распределенных объектов. Однако со временем стандарты развивались, становились более расширенными. Подобно мсханизмам 11. Архитектура распределенных систем 241 взаимодействия распределенных объектов, стандарты СОЕВА сейчас определяют некоторые стандартные сервисы, которые можно использовать для поддержки объектнгг ориентированных приложений. Рис. 1 Е 13.
Взпимодейппвив между брокврпмк вопросов к обык тпм Сервисы СОКВА являются средствами, которые необходимы во многих распределенных системах. Эти стандарты определяют примерно 15 общих служб (сервисов). Вот не которые из ннх. 1. Служба имен, которая позволяет объектам находить другие объекты в сети и ссылаться на них.