~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 651D9D6B367F1B21DE26C761E09484E3__1718134500 ✰
Заголовок документа оригинал.:
✰ Common Object Request Broker Architecture - Wikipedia ✰
Заголовок документа перевод.:
✰ Общая архитектура брокера объектных запросов — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/65/e3/651d9d6b367f1b21de26c761e09484e3.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/65/e3/651d9d6b367f1b21de26c761e09484e3__translat.html ✰
Дата и время сохранения документа:
✰ 12.06.2024 14:42:47 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 11 June 2024, at 22:35 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Общая архитектура брокера объектных запросов — Википедия Jump to content

Общая архитектура брокера объектных запросов

Из Википедии, бесплатной энциклопедии

Общая архитектура брокера объектных запросов
Сокращение КОРБА
Положение дел Опубликовано
Год начался 1991 год ; 33 года назад ( 1991 )
Последняя версия 3.4
февраль 2021 г .; 3 года назад ( 2021-02 )
Организация Группа управления объектами
Веб-сайт Корба .org

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

Обзор [ править ]

CORBA обеспечивает связь между программным обеспечением, написанным на разных языках и работающим на разных компьютерах. Детали реализации конкретных операционных систем, языков программирования и аппаратных платформ выводятся из-под ответственности разработчиков, использующих CORBA. CORBA нормализует семантику вызова методов между объектами приложения, расположенными либо в одном и том же адресном пространстве (приложение), либо в удаленных адресных пространствах (тот же хост или удаленный хост в сети). Версия 1.0 была выпущена в октябре 1991 года.

CORBA использует язык определения интерфейсов (IDL) для определения интерфейсов, которые объекты представляют внешнему миру. Затем CORBA определяет соответствие IDL конкретному языку реализации, такому как C++ или Java . Стандартные сопоставления существуют для Ada , C , C++ , C++11 , COBOL , Java , Lisp , PL/I , Object Pascal , Python , Ruby и Smalltalk . Существуют нестандартные сопоставления для C# , Erlang , Perl , Tcl и Visual Basic , реализованные брокерами объектных запросов (ORB), написанными для этих языков. Версии IDL существенно изменились: аннотации заменили некоторые прагмы.

Спецификация CORBA предписывает, что должен существовать ORB, через который приложение будет взаимодействовать с другими объектами. Вот как это реализуется на практике:

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

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

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

Иллюстрация автогенерации кода инфраструктуры из интерфейса, определенного с помощью CORBA IDL.
Illustration of the autogeneration of the infrastructure code from an interface defined using the CORBA IDL

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

Помимо предоставления пользователям языка и спецификации удаленного вызова процедур (RPC), независимой от платформы, CORBA определяет часто необходимые сервисы, такие как транзакции и безопасность, события, время и другие модели интерфейса, специфичные для предметной области.

История версий [ править ]

В этой таблице представлена ​​история версий стандарта CORBA. [1] [2] [3]

Версия Дата версии Основные моменты IDL-версия Corba
1.0 Октябрь 1991 г. Первая версия, отображение C -
1.1 февраль 1992 г. Взаимодействие, отображение C++ -
1.2 декабрь 1993 г. -
2.0 август 1996 г. Первое крупное обновление стандарта, также получившее название CORBA 2. -
2.1 август 1997 г. -
2.2 февраль 1998 г. Java-отображение -
2.3 июнь 1999 г. -
2.4 август 2000 г. -
2.5 сентябрь 2001 г. -
2.6 декабрь 2001 г. -
3.0 июль 2002 г. Второе крупное обновление стандарта, также получившее название CORBA 3.
Модель компонентов CORBA (CCM)
-
3.0.1 ноябрь 2002 г. -
3.0.2 декабрь 2002 г. -
3.0.3 март 2004 г. -
3.1 Январь 2008 г. -
3.1.1 август 2011 г. Принят как ISO/IEC 19500 издания 2012 г. -
3.2 ноябрь 2011 г. -
3.3 ноябрь 2012 г. Добавление ЗИОП -
3.4 февраль 2021 г. Аннотации 4.2

Обратите внимание, что изменения IDL произошли с аннотациями (например, @unit, @topic), заменившими некоторые прагмы.

Слуги [ править ]

Слуга удаленных — это цель вызова, содержащая методы для обработки вызовов методов . В более новых версиях CORBA удаленный объект (на стороне сервера) разделен на объект (который доступен для удаленных вызовов) и подчиненный (которому первая часть перенаправляет вызовы методов) . Это может быть один сервант для каждого удаленного объекта , или один и тот же сервант может поддерживать несколько (возможно, все) объектов, связанных с данным адаптером переносимых объектов . Слуга может быть установлен или найден «один раз и навсегда» (активация серванта) или выбираться динамически каждый раз при для каждого объекта вызове метода этого объекта (расположение серванта). И локатор слуг, и активатор слуг могут перенаправлять вызовы на другой сервер. В целом эта система предоставляет очень мощные средства для балансировки нагрузки, распределения запросов между несколькими машинами. В объектно-ориентированных языках и удаленный объект , и его слуга являются объектами с точки зрения объектно-ориентированного программирования.

Воплощение — это процесс связывания служащего с объектом CORBA, чтобы он мог обслуживать запросы. Воплощение предоставляет конкретную служебную форму для виртуального объекта CORBA. Активация и деактивация относятся только к объектам CORBA, тогда как термины «воплощение» и «эфиризация» относятся к служащим. Однако время жизни объектов и слуг независимы. Вы всегда воплощаете слугу перед вызовом active_object(), но возможно и обратное: create_reference() активирует объект без воплощения слуги, а воплощение слуги позже выполняется по требованию с помощью менеджера слуг.

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

На стороне сервера POA образуют древовидную структуру, где каждый POA отвечает за один или несколько обслуживаемых объектов. Ветви этого дерева могут независимо активироваться/деактивироваться, иметь разный код расположения или активации серванта и разные политики обработки запросов.

Особенности [ править ]

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

Объекты по ссылке [ править ]

Эта ссылка либо получается с помощью строкового универсального локатора ресурсов (URL), поиска NameService (аналогично системе доменных имен (DNS)), либо передается в качестве параметра метода во время вызова.

Ссылки на объекты — это легкие объекты, соответствующие интерфейсу реального объекта (удаленного или локального). Вызов метода по ссылке приводит к последующим вызовам ORB и блокировке потока в ожидании ответа, успеха или неудачи. Параметры, возвращаемые данные (если таковые имеются) и данные исключений маршалируются внутри ORB в соответствии с локальным языком и сопоставлением ОС.

Данные по значению [ править ]

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

Объекты по значению (OBV) [ править ]

Помимо удаленных объектов, CORBA и RMI-IIOP определяют концепцию OBV и типов значений. Код внутри методов объектов Valuetype по умолчанию выполняется локально. Если OBV было получено с удаленной стороны, необходимый код должен быть либо априори известен обеим сторонам, либо динамически загружен от отправителя. Чтобы сделать это возможным, запись, определяющая OBV, содержит базу кода, которая представляет собой разделенный пробелами список URL-адресов , откуда этот код должен быть загружен. OBV также может иметь удаленные методы.

Модель компонентов CORBA (CCM) [ править ]

Модель компонентов CORBA (CCM) является дополнением к семейству определений CORBA. [4] Он был представлен в CORBA 3 и описывает стандартную среду приложений для компонентов CORBA. Хотя он не зависит от «зависимых от языка Enterprise Java Beans (EJB)», он представляет собой более общую форму EJB, предоставляющую четыре типа компонентов вместо двух, которые определяет EJB. Он предоставляет абстракцию сущностей, которые могут предоставлять и принимать услуги через четко определенные именованные интерфейсы, называемые портами .

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

Переносные перехватчики [ править ]

Портативные перехватчики — это «крючки», используемые CORBA и RMI-IIOP для реализации наиболее важных функций системы CORBA. Стандарт CORBA определяет следующие типы перехватчиков:

  1. Перехватчики IOR опосредуют создание новых ссылок на удаленные объекты, представленные текущим сервером.
  2. Клиентские перехватчики обычно опосредуют вызовы удаленных методов на стороне клиента (вызывающей стороны). Если объект Servant существует на том же сервере, где вызывается метод, он также является посредником при локальных вызовах.
  3. Серверные перехватчики опосредуют обработку вызовов удаленных методов на стороне сервера (обработчика).

Перехватчики могут прикреплять конкретную информацию к отправляемым сообщениям и создаваемым IOR. Эта информация может быть позже прочитана соответствующим перехватчиком на удаленной стороне. Перехватчики также могут генерировать исключения пересылки, перенаправляя запрос на другую цель.

Общий протокол InterORB (GIOP) [ править ]

GIOP взаимодействуют — это абстрактный протокол, по которому брокеры запросов объектов (ORB). Стандарты, связанные с протоколом, поддерживаются Группой управления объектами (OMG). Архитектура GIOP предоставляет несколько конкретных протоколов, в том числе:

  1. Интернет-протокол InterORB (IIOP). Интернет-протокол Inter-Orb представляет собой реализацию GIOP для использования через Интернет и обеспечивает сопоставление между сообщениями GIOP и уровнем TCP/IP .
  2. Протокол SSL InterORB (SSLIOP) — SSLIOP — это IIOP поверх SSL , обеспечивающий шифрование и аутентификацию .
  3. Протокол HyperText InterORB (HTIOP) — HTIOP представляет собой IIOP через HTTP , обеспечивающий прозрачный обход прокси-сервера.
  4. Zipped IOP (ZIOP) – сжатая версия GIOP, которая снижает использование полосы пропускания.

VMCID (идентификатор второстепенного кодового набора поставщика) [ править ]

Каждое стандартное исключение CORBA включает второстепенный код для обозначения подкатегории исключения. Коды второстепенных исключений имеют тип unsigned long и состоят из 20-битного «идентификатора второстепенного кодового набора поставщика» (VMCID), который занимает старшие 20 бит, и собственно второстепенного кода, который занимает младшие 12 бит.

Второстепенным кодам для стандартных исключений предшествует VMCID, назначенный OMG, определенный как беззнаковая длинная константа CORBA::OMGVMCID, у которой VMCID, назначенный OMG, занимает старшие 20 битов. Коды второстепенных исключений, связанные со стандартными исключениями, которые приведены в Таблице 3–13 на стр. 3-58, объединяются с помощью OMGVMCID для получения значения второстепенного кода, возвращаемого в структуре ex_body (см. Раздел 3.17.1, «Стандартные Определения исключений», на странице 3-52 и раздел 3.17.2, «Стандартные второстепенные коды исключений», на странице 3-58).

В пределах пространства, назначенного поставщиком, присвоение значений второстепенным кодам остается на усмотрение поставщика. Поставщики могут запросить выделение VMCID, отправив электронное письмо на адрес [email protected]. Список присвоенных в настоящее время VMCID можно найти на веб-сайте OMG по адресу: http://www.omg.org/cgi-bin/doc?vendor-tags .

VMCID 0 и 0xffffff зарезервированы для экспериментального использования. VMCID OMGVMCID (раздел 3.17.1, «Определения стандартных исключений», на стр. 3-52) и номера от 1 до 0xf зарезервированы для использования OMG.

Брокер общих объектных запросов: архитектура и спецификация (CORBA 2.3)

Местоположение Корбы (CorbaLoc) [ править ]

Местоположение Corba (CorbaLoc) относится к строковой ссылке на объект CORBA, которая похожа на URL-адрес.

Все продукты CORBA должны поддерживать два URL-адреса, определенные OMG: " корбалок: " и " corbaname: ". Целью этого является предоставление удобочитаемого и редактируемого способа указания места, где можно получить IOR.

Пример корбалока показан ниже:

corbaloc::160.45.110.41:38693/StandardNS/NameServer-POA/_root

Продукт CORBA может дополнительно поддерживать " http: ", " фтп: " и " file: " форматы. Их семантика заключается в том, что они предоставляют подробную информацию о том, как загрузить строковый IOR (или, рекурсивно, загрузить другой URL-адрес, который в конечном итоге предоставит строковый IOR). Некоторые ORB действительно предоставляют дополнительные форматы, которые являются собственностью этого ORB. .

Преимущества [ править ]

Преимущества CORBA включают независимость от языка и ОС, свободу от реализаций, связанных с технологиями, строгую типизацию данных, высокий уровень настройки и свободу от деталей распределенной передачи данных.

Языковая независимость
CORBA была разработана, чтобы освободить инженеров от ограничений, связанных с привязкой их проектов к определенному языку программного обеспечения. В настоящее время существует множество языков, поддерживаемых различными поставщиками CORBA, наиболее популярными из которых являются Java и C++. Существуют также реализации на C++11, C-only, Smalltalk, Perl, Ada, Ruby и Python, и это лишь некоторые из них.
Независимость от ОС
Дизайн CORBA задуман как независимый от ОС. CORBA доступен на Java (независимо от ОС), а также изначально для Linux/Unix, Windows, Solaris, OS X, OpenVMS, HPUX, Android, LynxOS, VxWorks, ThreadX, INTEGRITY и других.
Свобода от технологий
Одним из основных неявных преимуществ является то, что CORBA предоставляет инженерам нейтральное игровое поле, позволяющее нормализовать интерфейсы между различными новыми и устаревшими системами. При интеграции C, C++, Object Pascal, Java, Fortran, Python и любого другого языка или ОС в единую целостную модель проектирования системы CORBA предоставляет средства для выравнивания поля и позволяет разным командам разрабатывать системы и модульные тесты, которые впоследствии могут объединиться в единую систему. Это не исключает необходимости принятия базовых системных инженерных решений, таких как многопоточность, синхронизация, время жизни объекта и т. д. Эти вопросы являются частью любой системы, независимо от технологии. CORBA позволяет нормализовать элементы системы в единую связную модель системы.
Например, проектирование многоуровневой архитектуры упрощается с использованием сервлетов Java на веб-сервере и различных серверов CORBA, содержащих бизнес-логику и обеспечивающих доступ к базе данных. Это позволяет изменять реализации бизнес-логики, в то время как изменения интерфейса необходимо обрабатывать, как и в любой другой технологии. Например, схема базы данных, обернутая сервером, может быть изменена ради улучшения использования диска или производительности (или даже полномасштабной смены поставщика базы данных), не затрагивая внешние интерфейсы. В то же время устаревший код C++ может взаимодействовать с устаревшим кодом C/Fortran и кодом базы данных Java, а также предоставлять данные в веб-интерфейс.
Типирование данных
CORBA обеспечивает гибкую типизацию данных, например тип данных «ЛЮБОЙ». CORBA также обеспечивает тесно связанную типизацию данных, уменьшая количество человеческих ошибок. В ситуации, когда передаются пары Имя-Значение, вполне возможно, что сервер предоставляет число там, где ожидалась строка. Язык определения интерфейса CORBA обеспечивает механизм, гарантирующий, что пользовательский код соответствует именам методов, возвращаемым значениям, типам параметров и исключениям.
Высокая настраиваемость
Множество реализаций (например, ORBexpress (реализация Ada, C++ и Java) [5] и OmniORB (реализация C++ и Python с открытым исходным кодом)) [6] иметь возможности настройки функций управления потоками и соединениями. Не все реализации ORB предоставляют одинаковые функции.
Свобода от деталей передачи данных
При обработке низкоуровневых соединений и потоков CORBA обеспечивает высокий уровень детализации в случае ошибок. Это определено в стандартном наборе исключений, определенном CORBA, и в расширенном наборе исключений, зависящем от реализации. С помощью исключений приложение может определить, произошел ли сбой вызова по таким причинам, как «Небольшая проблема, попробуйте еще раз», «Сервер не работает» или «Ссылка не имеет смысла». Общее правило таково: отсутствие исключения означает, что вызов метода завершился успешно. Это очень мощная конструктивная особенность.
Сжатие
CORBA сортирует свои данные в двоичной форме и поддерживает сжатие. IONA, Remedy IT и Telefonica работали над расширением стандарта CORBA, обеспечивающим сжатие. Это расширение называется ZIOP и теперь является формальным стандартом OMG.

и критика Проблемы

Хотя CORBA во многом способствовал написанию кода и созданию программного обеспечения, он подвергался критике. [7]

Большая часть критики CORBA связана с плохой реализацией стандарта, а не с недостатками самого стандарта. Некоторые неудачи самого стандарта были связаны с процессом создания спецификации CORBA и компромиссами, присущими политике и бизнесу написания общего стандарта, исходным кодом которого были многие конкурирующие разработчики.

Несовместимость начальной реализации
Первоначальные спецификации CORBA определяли только IDL, а не сетевой формат. Это означало, что совместимость исходного кода была лучшей из тех, что были доступны за несколько лет. В CORBA 2 и более поздних версиях эта проблема была решена.
Прозрачность местоположения
Идея CORBA о прозрачности местоположения подверглась критике; то есть объекты, находящиеся в одном адресном пространстве и доступные с помощью простого вызова функции, обрабатываются так же, как и объекты, находящиеся в другом месте (разные процессы на одной и той же машине или на разных машинах). Это фундаментальный недостаток конструкции, [8] [ не удалось пройти проверку ] поскольку это делает доступ ко всем объектам таким же сложным, как и самый сложный случай (т. е. удаленный сетевой вызов с широким классом ошибок, которые невозможны при локальных вызовах). Он также скрывает неизбежные различия между двумя классами, делая невозможным для приложений выбор подходящей стратегии использования (то есть вызов с задержкой 1 мкс и гарантированным возвратом будет использоваться совсем не так, как вызов с задержкой 1 с с возможным транспортом). сбой, при котором статус доставки потенциально неизвестен и время ожидания может занять 30 секунд).
Недостатки конструкции и процесса
Создание стандарта CORBA также часто упоминается как процесс его разработки комитетом . Не было процесса разрешения противоречивых предложений или определения иерархии проблем, которые необходимо решить. Таким образом, стандарт был создан путем объединения характеристик всех предложений без учета их связности. [9] Это сделало спецификацию сложной, дорогостоящей в полной реализации и часто неоднозначной.
Комитет по проектированию, в состав которого вошли как поставщики решений, так и заказчики, сформировал широкий круг интересов. Это разнообразие затрудняло создание единого стандарта. Стандарты и совместимость усилили конкуренцию и облегчили переход клиентов между альтернативными реализациями. Это привело к большой политической борьбе внутри комитета и частым выпускам редакций стандарта CORBA, которые, по мнению некоторых разработчиков ORB, было трудно использовать без собственных расширений. [7] Менее этичные поставщики CORBA поощряли привязку к клиентам и добились хороших краткосрочных результатов. Со временем поставщики ORB, поощряющие переносимость, захватили долю рынка. [ нужна цитата ]
Проблемы с реализациями
На протяжении всей своей истории CORBA страдала от недостатков в плохой реализации ORB. К сожалению, многие статьи, критикующие CORBA как стандарт, являются просто критикой особенно плохой реализации CORBA ORB.
CORBA — это комплексный стандарт со множеством функций. Лишь немногие реализации пытаются реализовать все спецификации. [9] и первоначальные реализации были неполными или неадекватными. Поскольку не было требований предоставлять эталонную реализацию, участники могли свободно предлагать функции, которые никогда не проверялись на предмет полезности или реализуемости. Реализациям также препятствовала общая тенденция стандарта к многословию и обычная практика компромисса путем принятия суммы всех представленных предложений, что часто создавало API, которые были бессвязными и трудными в использовании, даже если отдельные предложения были совершенно разумными. . [ нужна цитата ]
В прошлом было очень трудно приобрести надежные реализации CORBA, но сейчас их гораздо легче найти. SUN Java SDK поставляется со встроенной поддержкой CORBA. Некоторые плохо спроектированные реализации оказались сложными, медленными, несовместимыми и неполными. Начали появляться надежные коммерческие версии, но за значительную цену. Когда стали доступны бесплатные реализации хорошего качества, плохие коммерческие реализации быстро умерли.
Брандмауэры
CORBA (точнее, GIOP ) не привязан к какому-либо конкретному коммуникационному транспорту. Специализацией GIOP является Интернет-протокол Inter-ORB или IIOP. IIOP использует необработанные соединения TCP/IP для передачи данных.
Если клиент находится за очень строгим брандмауэром или прозрачной средой прокси-сервера, которая разрешает только HTTP- соединения с внешним миром через порт 80, связь может быть невозможна, если только рассматриваемый прокси-сервер не разрешает метод HTTP CONNECT или соединения SOCKS также . Когда-то было сложно даже заставить реализации использовать один стандартный порт — вместо этого они имели тенденцию выбирать несколько случайных портов. На сегодняшний день существующие ORB имеют эти недостатки. Из-за таких трудностей некоторые пользователи все чаще используют веб-сервисы вместо CORBA. Они взаимодействуют с использованием XML / SOAP через порт 80, который обычно остается открытым или фильтруется через HTTP-прокси внутри организации, для просмотра веб-страниц через HTTP. Однако последние реализации CORBA поддерживают SSL и могут быть легко настроены для работы на одном порту. Некоторые ORBS, такие как TAO , omniORB и JacORB, также поддерживают двунаправленный GIOP, что дает CORBA преимущество, заключающееся в возможности использовать обратную связь, а не метод опроса, характерный для реализаций веб-сервисов. Кроме того, большинство современных межсетевых экранов поддерживают GIOP и IIOP и, таким образом, являются межсетевыми экранами, дружественными к CORBA.

См. также [ править ]

Программная инженерия [ править ]

Компонентно-ориентированные программные технологии [ править ]

Языковые привязки [ править ]

Ссылки [ править ]

  1. ^ «История КОРБА» . Группа управления объектами . Проверено 12 марта 2017 г.
  2. ^ «История КОРБА» . Группа управления объектами . Проверено 4 июня 2017 г.
  3. ^ «Версия OMG IDL Corba» . Группа управления объектами . Проверено 4 декабря 2023 г.
  4. ^ «Модель компонентов CORBA» . Журнал доктора Добба . 1 сентября 2004 года . Проверено 13 марта 2017 г.
  5. ^ «ORBexpress: CORBA ORB в реальном времени» .
  6. ^ «omniORB: Бесплатный CORBA ORB» . sourceforge.net . Проверено 9 января 2014 г.
  7. ^ Перейти обратно: а б Чаппель, Дэвид (май 1998 г.). «Проблема с CORBA» . davidchappel.com. Архивировано из оригинала 3 декабря 2012 года . Проверено 15 марта 2010 г.
  8. ^ Уолдо, Джим; Джефф Вайант; Энн Волрат; Сэм Кендалл (ноябрь 1994 г.). «Заметки о распределенных вычислениях» (PDF) . Лаборатории Сан Микросистем . Архивировано (PDF) из оригинала 10 октября 2022 года . Проверено 4 ноября 2013 г.
  9. ^ Перейти обратно: а б Хеннинг, Мичи (30 июня 2006 г.). «Взлет и падение CORBA» . Очередь АКМ . 4 (5). Ассоциация вычислительной техники : 28–34. дои : 10.1145/1142031.1142044 . S2CID   12103742 .

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 651D9D6B367F1B21DE26C761E09484E3__1718134500
URL1:https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture
Заголовок, (Title) документа по адресу, URL1:
Common Object Request Broker Architecture - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)