Difference between revisions 19255623 and 19257301 on ukwiki

'''CORBA''' ({{lang-en|Common Object Request Broker Architecture}} — загальна архітектура брокера об'єктних запитів) — це запропонований консорціумом [[OMG]] технологічний стандарт розробки розподілених [[Застосунок|застосунків]].

(contracted; show full)

== Ключові поняття технології ==

=== Об'єкти за значенням (ОЗЗ) ===

Крім віддалених об'єктів в 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:. Їхнє призначення в тому, щоб надати людині можливість читати/редагувати посилання, за допомогою якого можна отримати IOR.

Ось приклад corbaloc:

:::: corbaloc::160.45.110.41:38693/standardns/nameserver-poa/_root

Реалізація CORBA може надавати підтримку форматів «"http:» ", «"ftp:» " і «"file:» ". Призначення цих форматів в тому, щоб вказати спосіб, звідки узяти рядкове представлення IOR.

== Мова OMG IDL ==
Мова OMG IDL (Interface Definition Language — Мова Опису Інтерфейсу) представляє собою технологічно незалежний синтаксис для опису інтерфейсу об'єктів. При описі програмної архітектури, OMG IDL добре використовується як універсальна нотація для окреслювання границь об'єкту, які визначають його поведінку у відношенні до інших компонентів ІС. OMG IDL дає змогу описати інтерфейс(contracted; show full)
* [http://omniorb.sourceforge.net/ omniORB] — Вільний (LGPL) ORB для C++ і [[Python]].
* [http://www.gnome.org/projects/ORBit2/ ORBit2]  — Вільний (LGPL) ORB для C, C++ і Python.
* [http://www.jacorb.org/ JacORB] — Вільний (LGPL) ORB з підтримкою Java.
* [http://www.cs.wustl.edu/~schmidt/TAO.html TAO] — The ACE ORB, відкритий ORB для C++.
* [http://www.orbacus.com/ Orbacus] — комерційний ORB від IONA Technologies.

== 
ДивисьЛітература ==
* Б. В. Кузьменко, О. А. Чайковська «ТЕХНОЛОГІЯ РОЗПОДІЛЕНИХ СИСТЕМ ТА ПАРАЛЕЛЬНИХ ОБЧИСЛЕНЬ» Навчальний посібник. — Київ — 2011. 19-32 с.
* Корнеев В. В. Параллельные вычислительные системы. — М.: Нолидж, 1999 г.

== Див. також ==

* [[Ice]]
* [[ILU]]
* [[COM]]
* [[Взаємодія між процесами]]

== Посилання ==

* [http://www.omg.org/spec/CORBA/Current/ Специфікація OMG CORBA (поточна версія)]
* [http://www.omg.org/spec/CORBA/ Специфікація OMG CORBA (всі версії)]
* [http://www.corba.org/ Офіційний сайт CORBA]
* [http://www.omg.org/technology/documents/formal/components.htm Official OMG CORBA Components page]
* [http://ditec.um.es/~dsevilla/ccm Unofficial CORBA Component Model page]
* [https://osportal.remedy.nl/documents/25 Comparing IDL to C++ with IDL to C++11]


{{refimprove}}
{{Compu-prog-stub}}
{{ВП-портали|Програмування|Інформаційні технології|}}
[[Категорія:Розподілені обчислення]]
[[Категорія:Об'єктно-орієнтоване програмування]]
[[Категорія:Взаємодія між процесами]]

== Джерела ==
* Б. В. Кузьменко, О. А. Чайковська «ТЕХНОЛОГІЯ РОЗПОДІЛЕНИХ СИСТЕМ ТА ПАРАЛЕЛЬНИХ ОБЧИСЛЕНЬ» Навчальний посібник. — Київ — 2011. 19-32 с.
* Корнеев В. В. Параллельные вычислительные системы. — М.: Нолидж, 1999 г.