![]() |
Технология Клиент-Сервер 2003'1 |
||||||
|
Возможно, имеет смысл начать с краткого рассказа о том, что же такое CORBA 3.
Как и для многих других технологий, изменение главного номера версии CORBA (в данном случае – с «2» на «3») означает внесение каких-либо фундаментальных изменений. CORBA 3 отличается от CORBA 2, в первую очередь, поддержкой компонентной модели – CORBA Component Model, CCM. При этом надо иметь в виду, что это отнюдь не единственное важное изменение. Некоторая путаница возникла из-за того, что в начале 2000-х годов OMG несколько изменила процедуру принятия спецификаций, что привело к «переносу» некоторых спецификаций из версии 3 в версии 2.4, 2.5 и 2.6.
Основные изменения и новшества, появившиеся в третьей версии CORBA, таковы:
компонентная модель CCM;
спецификация сервиса сохранения состояния объектов (Persistent State Service, PSS), теснейшим образом связанная с CCM;
спецификация обеспечения устойчивости к сбоям (Fault Tolerant CORBA);
спецификация CORBA Messaging Service;
поддержка двустороннего GIOP-протокола (GIOP 1.3);
спецификация «переносимых интерсепторов» (Portable Interceptors);
спецификации Real-Time CORBA и Minimum CORBA;
отображение XML на IDL, что позволяет передавать XML-документы в виде иерархии объектов типа valuetype.
В целом, с понятием CORBA 3 связано примерно 10 новых спецификаций, но, по большому счету, CORBA 3 – это CORBA с компонентной моделью.
В данной статье мы кратко рассмотрим некоторые из упомянутых основных нововведений (кроме CCM – ей посвящена отдельная статья).
Поскольку CORBA с самого начала позиционировалась как универсальная технология создания сложных распределенных систем, проблеме обеспечения надежности и устойчивости этих систем всегда уделялось первоочередное внимание. Выбор тех или иных решений всегда зависел от того, насколько они позволяют повысить надежность создаваемых приложений. Кроме того, в инициативном порядке отдельными компаниями, создающими реализации CORBA, принимались различные меры по обеспечению устойчивости к сбоям. Например, такого рода средства были включены в реализации компании Borland – некоторые проблемы обеспечения устойчивости к сбоям решались за счет smart agent’ов и кластеров Interoperable Naming Service. Но, конечно, этого было явно недостаточно. Переносимый и универсальный ответ на вопрос об устойчивости и надежности CORBA-систем должна дать спецификация Fault Tolerant (FT) CORBA.
Обеспечение устойчивости систем базируется на трех «китах»:
создание избыточности (наличие в системе дублирующих сущностей);
обнаружение возникающих проблем и
обеспечение восстановления после сбоев.
Для обеспечения устойчивости к сбоям могут быть использованы различные подходы, такие, как повторение запросов, перенаправление запросов другим объектам (возможно, на других серверах), использование репликации и пр. Спецификация FT основана на предоставлении программисту возможности задания специальных свойств реплицируемым объектам или их группам. Репликация объектов, обнаружение сбоев и восстановление после них может выполняться в некотором смысле «вручную» (это делает само приложение), или же автоматически, с использованием соответствующей инфраструктуры (Fault Tolerance Infrastructure). Наконец, предусматривается возможность прозрачного взаимодействия с CORBA-приложениями, которые были написаны ранее, и не используют данные возможности (для чего в ORB должны быть внесены небольшие изменения).
Спецификация FT вводит следующие понятия и концепции:
Объектные группы (Object Groups). Несколько копий серверного объекта объединяются в группу, с которой сопоставлена своя собственная объектная ссылка – Interoperable Object Group Reference (IOGR). Эта ссылка публикуется и передается (тем или иным образом) клиентам, которые работают с ней, как с обычной объектной ссылкой. Клиент даже не знает, что он имеет дело не с одиночным объектом, а с группой. Если на одной из копий произошел сбой, но клиентский запрос может быть обработан другой копией в этой же группе, это выполняется прозрачным для клиента образом – он не узнает о произошедшей ошибке.
Домены устойчивости к сбоям (Fault Tolerance Domains). Для управления процессом репликации и обработки сбоев вводится понятие домена. Для каждого домена определен свой Менеджер Репликации (Replication Manager). Каждый домен может быть «расположен» на нескольких серверах (и наоборот, один сервер может содержать сущности, входящие в различные домены). Более того, совершенно необязательно, чтобы элементы объектных групп были расположены на одном и том же сервере – разработчику дана полная свобода рук. Но все элементы одной объектной группы обязательно должны входить в один и тот же домен.
Свойства устойчивости к сбоям (Fault Tolerance Properties). С каждой объектной группой в момент создания можно сопоставить набор тех или иных свойств, например, вид схемы репликации (ReplicationStyle), минимальное число копий объектов (MinimumNumberReplicas) и пр. Впоследствии в случае необходимости значения этих свойств можно изменять. Указанные свойства относятся ко всем объектам внутри одной группы или даже к объектам нескольких однотипных групп.
Поддержка строгой согласованности копий (Strong Replica Consistency). Под этим понимается, что все копии объектов в одной группе являются и остаются идентичными в случае возникновения сбоя при вызове любого метода или после выполнения копирования состояний – в зависимости от выбранного стиля репликации.
Основными элементами инфраструктуры обеспечения устойчивости к сбоям являются Менеджеры Репликаций (Replication Manager), Уведомитель о сбоях (Fault Notifier), Детектор Сбоев (Fault Detector). Естественно, все они представляют собой CORBA-объекты. Логически, в одном домене присутствует один Менеджер Репликаций и Уведомитель о Сбоях, но их самих также можно реплицировать для повышения надежности. Общая схема может выглядеть следующим образом (это не более чем один из возможных вариантов):
Рисунок 1.
Давайте очень кратко рассмотрим основные интерфейсы спецификации FT CORBA...
Copyright © 1994-2016 ООО "К-Пресс"