CORBA (обычно
произносится [ко́рба], иногда жарг. [ко́бра]; англ. Common Object Request
Broker Architecture — общая архитектура брокера объектных запросов) —
технологический стандарт написания распределённых приложений, продвигаемый
консорциумом (рабочей группой) OMG и соответствующая ему информационная
технология.
Технология CORBA создана для поддержки
разработки и развёртывания сложных объектно-ориентированных прикладных систем.
CORBA является механизмом в программном
обеспечении для осуществления интеграции изолированных систем, который даёт
возможность программам, написанным на разных языках программирования,
работающих в разных узлах сети, взаимодействовать друг с другом так же просто,
как если бы они находились в адресном пространстве одного процесса.
Объекты
по значению
Помимо
удалённых объектов в CORBA 3.0 определено понятие объект по значению. Код
методов таких объектов по умолчанию выполняется локально. Если объект по
значению был получен с удалённой стороны, то необходимый код должен либо быть
заранее известен обеим сторонам, либо быть динамически загружен. Чтобы это было
возможно, запись, определяющая такой объект, содержит поле Code Base — список
URL, откуда может быть загружен код.
У
объекта по значению могут также быть и удалённые методы, поля, которые
передаются вместе с самим объектом. Поля, в свою очередь также могут быть
такими объектами, формируя таким образом списки, деревья или произвольные
графы. Объекты по значению могут иметь иерархию классов, включая абстрактные и
множественное наследование.
Компонентная модель CORBA (CCM) — недавнее дополнение к семейству определений CORBA.
CCM
была введена начиная с CORBA 3.0 и описывает стандартный каркас приложения для
компонент CORBA. CCM построено под сильным влиянием Enterprise JavaBeans (EJB)
и фактически является его независимым от языка расширением. CCM предоставляет
абстракцию сущностей, которые могут предоставлять и получать сервисы через
чётко определённые именованные интерфейсы, порты.
Модель
CCM предоставляет контейнер компонентов, в котором могут поставляться
программные компоненты. Контейнер предоставляет набор служб, которые может
использовать компонент. Эти службы включают (но не ограничены) службу
уведомления, авторизации, персистентности и управления транзакциями. Это
наиболее часто используемые распределённым приложением службы. Перенося
реализацию этих сервисов от необходимости реализации самим приложением в функциональность
контейнера приложения, можно значительно снизить сложность реализации
собственно компонентов.
Общий
протокол межброкерного взаимодействия (GIOP)
GIOP
— абстрактный протокол в стандарте CORBA, обеспечивающий интероперабельность
брокеров. Стандарты, связанные с протоколом выпускает Object Management Group
(OMG). Архитектура GIOP включает несколько конкретных протоколов:
Internet
InterORB Protocol (IIOP) (Межброкерный протокол для Интернет) — протокол для
организации взаимодействия между различными брокерами, опубликованный
консорциумом OMG. IIOP используется GIOP в среде интернет, и обеспечивает
отображение сообщений между GIOP и слоем TCP/IP.
SSL
InterORB Protocol (SSLIOP) — IIOP поверх SSL, поддерживаются шифрование и
аутентификация.
HyperText InterORB Protocol (HTIOP) — IIOP поверх HTTP.
Ссылка
на объект (Corba Location)
CorbaLoc
(англ. Corba Location) — является строковой ссылкой на объект технологии CORBA,
подобной URL.
Все реализации CORBA должны поддерживать как минимум два варианта OMG URL: corbaloc: и corbaname:. Их назначение в том, чтобы предоставить человеку способ читать и править ссылку, посредством которой можно получить ссылку на объект CORBA.
Реализация CORBA может предоставлять поддержку форматов «http:», «ftp:» и «file:». Назначение этих форматов в том, чтобы указать способ, откуда взять строковое представление ссылки на объект CORBA.