- •7.5.2. Трехфазное подтверждение
- •7.6. Восстановление
- •7.6.1. Основные понятия
- •7.6.2. Создание контрольных точек
- •7.6.3. Протоколирование сообщений
- •7.7. Итоги
- •Глава 8
- •8.1. Общие вопросы защиты
- •8.1.1. Угрозы, правила и механизмы
- •8.1.2. Вопросы разработки
- •8.1.3. Криптография
- •8.2. Защищенные каналы
- •8.2.1. Аутентификация
- •8.2.2. Целостность и конфиденциальность сообщений
- •8.2.3. Защищенное групповое взаимодействие
- •8.3. Контроль доступа
- •8.3.1. Общие вопросы контроля доступа
- •8.3.2. Брандмауэры
- •8.3.3. Защита мобильного кода
- •8.4. Управление защитой
- •8.4.1. Управление ключами
- •8.4.2. Управление защищенными группами
- •8.4.3. Управление авторизацией
- •8.5. Пример — Kerberos
- •8.6. Пример — sesame
- •8.6.1. Компоненты системы sesame
- •8.6.2. Сертификаты атрибутов привилегий
- •8.7. Пример — электронные платежные системы
- •8.7.1. Электронные платежные системы
- •8.7.2. Защита в электронных платежных системах
- •8.7.3. Примеры протоколов
- •8.8. Итоги
- •Глава 9
- •9.1. Corba
- •9.1.1. Обзор
- •9.1.2. Связь
- •9.1.3. Процессы
- •9.1.4. Именование
- •9.1.5. Синхронизация
- •9.1.6. Кэширование и репликация
- •9.1.7. Отказоустойчивость
- •9.1.8. Защита
- •9.2. Dcom
- •9.2.1. Обзор
- •9.2.2. Связь
- •9.2.3. Процессы
- •9.2.4. Именование
- •Синхронизация
- •Репликация
- •Отказоустойчивость
- •9.2.8. Защита
- •9.3. Globe
- •9.3.1. Обзор
- •9.3.2. Связь
- •9.3.3. Процессы
- •9.3.4. Именование
- •9.3.5. Синхронизация
- •9.3.6. Репликация
- •Отказоустойчивость
- •9.4. Сравнение систем corba, dcom и Globe
- •9.4.1. Философия
- •Процессы
- •9.4.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 используется аналогичный подход.
Связь
Рассмотрим теперь, как реализована связь в системах. CORBA изначально использует для связи только простое синхронное обращение к методам. Эта базовая модель поддерживает и асинхронную связь — в форме односторонних и отложенных синхронных запросов. В настоящее время модель взаимодействия CORBA уже не так проста и обладает богатым набором возможностей. Это асинхронные взаимодействия в форме событий и уведомлений с другими средствами для публикации, потребления и фильтрации событий. Кроме того, CORBA поддерживает службу сообщений, в которой возможно сочетание обратных вызовов и опроса сообщений.
В этом аспекте модель DCOM похожа на CORBA. Она обеспечивает синхронное обращение к удаленным методам, но, кроме того, и разнообразные (причем несовместимые) механизмы обратного вызова. Как и CORBA, она также поддерживает работу с сообщениями.
Globe допускает только синхронные обращения к методам. В этой системе нет ни событий, ни обратных вызовов, ни сообщений. Поскольку объекты Globe могут быть реплицированными, объект не может обратиться к другому объекту. Для того чтобы обойти проблемы, связанные с репликацией сообщений, о которых мы говорили в главе 6, необходимы специальные меры [288]. Проблема поддержки цепочек обращений не решена до сих пор. Отметим, что эта проблема не ограничивается Globe; системы CORBA и DCOM также столкнутся с ней, как только попытаются реплицировать объекты.
