Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
440-620.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

9.4. Сравнение систем corba, dcom и Globe

CORBA, DCOM и Globe — три разные системы объектов со своими преимущест­вами и недостатками. После детального обсуждения принципов организации этих трех систем давайте сравним их между собой. Начнем с целей, которые ставились при разработке каждой системы.

9.4.1. Философия

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

Основной целью разработки DCOM было расширение функциональных воз­можностей при сохранении совместимости с существующими версиями, вклю­ченными в ранние системы Windows. Неплохо, что старые приложения по-преж­нему работоспособны, гораздо хуже, что когда-то сделанные неудачные решения» теперь практически невозможно исправить. Модель DCOM чрезвычайно сложна, и это удивительно, особенно учитывая тот факт, что она в отличие от CORBA не является результатом работы многочисленных комитетов и комиссий.

Система Globe представляет собой типичный образец исследовательской ра­боты. Она была разработана небольшим коллективом, предпочитавшим просто­ту функциональности. Им не нужно было беспокоиться о мнении других людей, не нужно было добиваться совместимости с предыдущими версиями. Как и в боль­шинстве других исследовательских проектов, план Globe, в сущности, прост и по­нятен. Однако Globe — незавершенная система и многие ее аспекты требуют до­работки. Основная цель разработки Globe — обеспечение масштабируемости.

Главные различия объектных моделей, поддерживаемых тремя системами, за­ключаются в следующем. В CORBA и DCOM используется модель удаленных объектов. CORBA предлагает гибкую и непротиворечивую объектную модель. Сила подхода CORBA состоит в том, что подобная система обеспечивает высо­кую степень прозрачности операций определения местонахождения и доступа к объектам. Клиенту нелегко заметить разницу между локальным и удаленным объектами. Объекты обладают состоянием, могут быть глобально идентифици­рованы, а ссылки легко передаются от клиента к клиенту и от машины к машине. Кроме того, объекты могут быть как нерезидентными, так и сохранными.

Модель DCOM значительно проще модели CORBA, и мы могли бы даже по­критиковать ее за излишнюю простоту. Объекты в DCOM нерезидентны, не име­ют глобальных идентификаторов и в некоторых случаях, как предполагается, не имеют состояния. Эта модель нарушает многие принципы, лежащие в основе тех­нологии распределенных объектов.

Система Globe поддерживает правильные объекты. Особенность ее объект­ной модели, однако, состоит в том, что объекты в Globe могут быть реально реп-лицированы и распределены по нескольким машинам. Более того, объект опреде­ляет, как можно выполнять распределение и репликацию его состояния. Другими словами, объект инкапсулирует собственные правила распределения и реализа­цию. Кроме того, он может также инкапсулировать правила и реализации защи­ты, обработки ошибок и т. д.

Сравнивая службы этих систем, мы также видим серьезные различия. CORBA содержит обширный набор служб, обширный настолько, что функциональность отдельных служб нередко пересекается. С другой стороны, DCOM предлагает смесь собственных служб со службами окружения, такими как службы именова­ния и каталогов. В Globe реализован только абсолютный минимум служб — про­стейшая служба именования и расширенная служба локализации. Это соответству­ет философии построения Globe, однако совершенно ясно, что для превращения Globe в действительно работоспособную распределенную систему общего назна­чения ей необходимо иметь множество дополнительных служб.

Другое существенное отличие трех систем друг от друга состоит во взгляде на интерфейсы. CORBA предоставляет стандартный язык IDL, на котором состав­ляются определения интерфейсов, превращаемые затем в тексты программ на выбранном языке программирования. С точки зрения переносимости и межопе­рационного взаимодействия такое отображение в язык программирования, в сущ­ности, стандартизовано. Основное преимущество такого подхода состоит в том, что CORBA не зависит от кода, генерируемого компиляторами. В сущности, CORBA определяет межоперационное взаимодействие на уровне языка програм­мирования.

В противоположность CORBA системы DCOM и Globe поддерживают би­нарные интерфейсы. При подобном подходе интерфейсы объектов определяют­ся независимо от языка программирования. В DCOM достоинства бинарных ин­терфейсов проявляются на примере многочисленных приложений, написанных на смеси таких языков, как С, Java и Visual Basic. В Globe используется анало­гичный подход.

  1. Связь

Рассмотрим теперь, как реализована связь в системах. CORBA изначально ис­пользует для связи только простое синхронное обращение к методам. Эта базовая модель поддерживает и асинхронную связь — в форме односторонних и отложен­ных синхронных запросов. В настоящее время модель взаимодействия CORBA уже не так проста и обладает богатым набором возможностей. Это асинхронные взаимодействия в форме событий и уведомлений с другими средствами для пуб­ликации, потребления и фильтрации событий. Кроме того, CORBA поддержива­ет службу сообщений, в которой возможно сочетание обратных вызовов и опроса сообщений.

В этом аспекте модель DCOM похожа на CORBA. Она обеспечивает син­хронное обращение к удаленным методам, но, кроме того, и разнообразные (при­чем несовместимые) механизмы обратного вызова. Как и CORBA, она также под­держивает работу с сообщениями.

Globe допускает только синхронные обращения к методам. В этой системе нет ни событий, ни обратных вызовов, ни сообщений. Поскольку объекты Globe могут быть реплицированными, объект не может обратиться к другому объекту. Для того чтобы обойти проблемы, связанные с репликацией сообщений, о кото­рых мы говорили в главе 6, необходимы специальные меры [288]. Проблема под­держки цепочек обращений не решена до сих пор. Отметим, что эта проблема не ограничивается Globe; системы CORBA и DCOM также столкнутся с ней, как только попытаются реплицировать объекты.