CORBA является объектно-ориентированным стандартом промежуточного программного обеспечения, определенным OMG. Это позволяет компонентам программного обеспечения, записанным на различных языках общаться друг с другом. Серверные компоненты реализуют интерфейсы, определенные в IDL, и регистрируют их в Адаптере объектов, и клиенты могут получить доступ к тем сервисам с помощью ШАРА (Посредник запросов к объектам).

CORBA является стандартом промежуточного программного обеспечения, который делает объекты серверной стороны доступными для удаленных клиентов. Сервер (где объект находится) экспортирует экземпляр реализации. Клиент получает тупик, который реализует тот же интерфейс, позволяя им вызвать удаленные методы. CORBA также поддерживает удаленную обработку исключений.

Сообщения CORBA используют Общий протокол шара Интера (GIOP) в качестве протокола двоичной синхронной передачи данных для передачи данных между клиентом и сервером.

Версия 1.0 была выпущена в октябре 1991, последняя версия 3.3, который был выпущенным ноябрем 2012. CORBA использует язык определения интерфейсов (IDL) для определения интерфейсов, который возражает существующий против внешнего мира. CORBA затем указывает отображение от IDL до определенного языка реализации как C++ или Java. Стандартные отображения существуют для Ada, C, C++, C++ 11, Lisp, Ruby, Smalltalk, Java, КОБОЛ, PL/I и Python. Существуют также нестандартные отображения для Perl, Visual Basic, Erlang и Tcl, реализованного посредниками запросов к объектам (ШАРЫ), записанные для тех языков.

CORBA полезен, потому что он позволяет отдельным частям программного обеспечения, записанного на различных языках и работе различных компьютеров работать друг с другом как отдельное приложение или набор сервисов.

Спецификация CORBA диктует должен быть ШАР, через который приложение взаимодействовало бы с другими объектами. На практике приложение просто инициализирует ШАР и получает доступ к внутреннему Адаптеру объектов, который поддерживает вещи как подсчет ссылок, объект (и ссылка) политики инстанцирования и объектная политика управления жизненным циклом. Адаптер объектов используется для регистрации экземпляров сгенерированных классов кода. Сгенерированные классы кода являются результатом компиляции пользователя код IDL, который переводит высокоуровневое интерфейсное определение в ОС - и определенная для языка основа класса для использования пользовательским приложением. Этот шаг необходим, чтобы осуществить семантику CORBA и обеспечить чистый пользовательский процесс для взаимодействия через интерфейс с инфраструктурой CORBA.

Некоторые отображения языка IDL более трудно использовать, чем другие. Например, из-за природы Java, отображение Java IDL довольно просто и делает использование CORBA очень простым в JAVA-приложении. Это также верно для IDL к отображению Python. Отображение C++ является известно трудным; отображение требует, чтобы программист изучил комплекс и запутывающие типы данных, которые предшествуют Стандартной библиотеке шаблонов (STL) C++. C++ 11 отображающегося использования Стандартная библиотека шаблонов (STL) C++ в большой степени и прост в использовании. Так как язык C не объектно-ориентирован, IDL к отображению C требует, чтобы программист C вручную эмулировал объектно-ориентированные функции.

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

Как (в отличие от XML, например) сообщения GIOP не являются читаемым пользователем, компилятор IDL ответственен за создание всего кода, который пишет и читает структуры данных во время удаленной операции.