CORBA[1] (сокр. от англ. Common Object Request Broker Architecture общая архитектура брокера объектных запросов) — технологический стандарт написания распределённых приложений, продвигаемый консорциумом (рабочей группой) OMG и соответствующая ему информационная технология.
Назначение CORBA
Технология CORBA создана для поддержки разработки и развертывания сложных объектно-ориентированных прикладных систем.
CORBA является механизмом в программном обеспечении для осуществления интеграции изолированных систем, который дает возможность программам, написанным на разных языках программирования, работающих в разных узлах сети, взаимодействовать друг с другом так же просто, как если бы они находились в адресном пространстве одного процесса.
Общий обзор
Спецификация CORBA предписывает объединение программного кода в объект, который должен содержать информацию о функциональности кода и интерфейсах доступа. Готовые объекты могут вызываться из других программ (или объектов спецификации CORBA), расположенных в сети.
Спецификация CORBA использует язык описания интерфейсов (OMG IDL) для определения интерфейсов взаимодействия объектов с внешним миром, она описывает правила отображения из IDL в язык, используемый разработчиком CORBA-объекта.
Стандартизованы отображения для Ada, C, C++, Lisp, Smalltalk, Java, COBOL, Object Pascal, PL/I и Python.Также существуют нестандартные отображения на языки Perl, Visual Basic, Ruby и Tcl, реализованные средствами ORB, написанными для этих языков.
Ключевые понятия технологии
Объекты по значению
Помимо удалённых объектов в CORBA 3.0 определено понятие объект по значению. Код методов таких объектов по умолчанию выполняется локально. Если объект по значению был получен с удалённой стороны, то необходимый код должен либо быть заранее известен обеим сторонам, либо быть динамически загружен. Чтобы это было возможно, запись, определяющая такой объект, содержит поле Code Base — список URL, откуда может быть загружен код.
У объекта по значению могут также быть и удалённые методы, поля, которые передаются вместе с самим объектом. Поля, в свою очередь также могут быть такими объектами, формируя таким образом списки, деревья или произвольные графы. Объекты по значению могут иметь иерархию классов, включая абстрактные и множественное наследо
вание.
Компонентная модель CORBA (CCM)
Компонентная модель 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.
Пример corbaloc:
- corbaloc::160.45.110.41:38693/StandardNS/NameServer-POA/_root
Реализация CORBA может предоставлять поддержку форматов «http:», «ftp:» и «file:». Назначение этих форматов в том, чтобы указать способ, откуда взять строковое представление ссылки на объект CORBA.
Список брокеров (CORBA ORBs)
- Borland Enterprise Server, VisiBroker Ed. — — CORBA 2.6–совместимый коммерческий ORB от Borland, поддерживает Java и C++.
- MICO — — Свободный (LGPL) ORB с поддержкой C++.
- omniORB — Свободный (LGPL) ORB для C++ и Python.
- ORBit2 — — Свободный (LGPL) ORB для C, C++ и Python.
- JacORB — Свободный (LGPL) ORB, написан на Java.
- TAO — The ACE ORB, открытый ORB для C++.
- Orbacus — коммерческий C++,Java ORB от IONA Technologies.
- Orbix — коммерческий ORB от IONA Technologies.
Примечания
- ↑ чаcто произносится как [ко́рба], иногда жарг. [ко́бра])
См. также
Внешние ссылки
Это заготовка статьи по информатике. Вы можете помочь проекту, дополнив её. |