День атомної енергетики 2014. Вітчизняний атомно-промисловий комплекс і енергобезпека країни: реалії
Лекція 06. Промисловий стандарт CORBA
description
Transcript of Лекція 06. Промисловий стандарт CORBA
Діденко Д.Г. © 2010
Лекція 06. Промисловий стандарт CORBA
Діденко Дмитро ГеоргійовичСтарший викладач кафедри ММСА ННК «ІПСА»
Національний технічний університет України «Київський політехнічний інститут»
м. Київ, Україна
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
2
1. Промисловий стандарт CORBA.
Питання заняття
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
3
Узагальнена архiтектура брокера об'єктних запитiв CORBA (Common Object Request Broker Architecture) являє собою специфiкацiю побудови розподiлених систем, технологiчний стандарт написання розподiлених додаткiв, який розроблено консорцiумом OMG (Object Management Group). Першi версiї специфiкацiї з'явились на початку 90-х рокiв. Поширеними є версiї 2.4 i 3.
1. Історія розвитку CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
4
2. Архiтектура CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
5
Завдання CORBA - виконати iнтеграцiю iзольованих систем, дати змогу програмам, написаним рiзними мовами, тим, що працюють на рiзних вузлах мережi, взаємодiяти так само просто, якби вони були в адресному просторi одного процесу.
3. Завдання CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
6
широко використовуються SOM i DSOM фiрми IBM; платформа ONE (Open Network Environment) фiрми
Netscape; 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 — комерційний ORB від IONA
Technologies.
4. Реалізація CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
7
Брокер ORB пiдтримує вiддалений зв'язок мiж об'єктами та клiєнтами i приховує проблеми, пов'язанi з розподiленням i рiзнорiднiстю частин системи.
5. Властивості CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
8
однаковi для всiх реалiзацiй ORB; специфiчнi для конкретного об'єктного
типу; специфiчнi для окремих видiв
реалiзацiй об'єктiв.
6. Категорії операцій
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
9
горизонтальнi засоби (horizontal facilities) - незалежнi вiд прикладного рiвня i являють собою високорiвневi служби загального призначення для обслуговування користувацького iнтерфейсу, керування iнформацiєю, системою i завданнями для визначення систем робочих потокiв.
вертикальнi засоби (vertical facilities) - це високорiвневi служби для конкретних предметних галузей (електронна комерцiя, банкiвська справа, виробництво тощо).
7. Засоби реалізації
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
10
Об'єкти i служби описуються в CORBA мовою опису iнтерфейсiв IDL (Interface Definition Language).
Мову розроблено OMG для опису iнтерфейсiв розподiлених об'єктiв - набору методiв i їх параметрiв. Специфiкацiя iнтерфейсу, задана в IDL, вiдображається мовами програмування С, C++, Java, SmallTalk, ADA, Cobol, Perl, Visual Basic, Ruby и Tcl.
8. Опис об’єктів і служб
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
11
Компонентна модель CORBA (CCM) - недавнє доповнення до сімейства визначень CORBA. CCM була введена починаючи з CORBA 3.0 і описує стандартний каркас додатку для компонент CORBA. CCM побудований під сильним впливом Enterprise Javabeans (EJB) і фактично є його незалежним від мови розширенням. CCM надає абстракцію суті, яка може надавати і отримувати сервіси через чітко певні іменовані інтерфейси, порти. Модель CCM надає контейнер компонентів, в якому можуть поставлятися програмні компоненти. Контейнер надає набір служб, які може використовувати компонент. Ці служби включають (але не обмежують) службу повідомлення, авторизації, персистентності і управління транзакціями. Це найчастіше використовувані розподіленим додатком служби.
9. Компонентна модель CORBA (CCM)
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
12
операцiї маршалiнгу i демаршалiнгу посилань на об'єкти пiд час обмiну мiж процесами та операцiї для порiвняння посилань;
операцiї початкового пошуку доступних для процесу служб. Зазвичай ORB надає данi для отримання початкового посилання на об'єкт, який реалiзує конкретну службу CORBA.
10. Функції брокера
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
13
11. Структура клiєнта i сервера на основi брокера ORB
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
14
Усi визначенi iнтерфейси зберiгаються у сховищi iнтерфейсiв (interface repository) i викликаються за iдентифiкатором зберiгання (repository identifier), призначеним компiлятором IDL.
Сховище реалiзацiї CORBA (implementation repository) надає потрiбнi данi для реалiзацiї та активiзацiї об'єкта для адаптера об'єктiв в адресному просторi сервера (наприклад, таблицю серверiв i портiв).
12. Сховища інтерфейсів та реалізацій
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
15
13. Послiдовнiсть проходження
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
16
Iнтерфейс - це набiр методiв, а об'єкт визначає, якi служби клiєнт може запросити.
Система об'єктiв забезпечує клiєнта набором служб.
14. Інтерфейсів та набори служб
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
17
15. Взаємодiя мереж на основi ORB i протоколу IIOP
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
18
Компiлятор IDL компiлює код зв'язку мiж клiєнтським i серверним ORB. Якщо статично визначений iнтерфейс недоступний клiєнтовi, то CORBA надає iнтерфейс динамiчного звернення DII (Dynamic Invocation Interface), який дозволяє створювати запити пiд час виконання додаткiв.
16. Інтерфейс динамiчного звернення DII
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
19
транзакцiй; подiй; сповiщень; служби обмiну; схоронностi; захисту.
17. Типи служб CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
20
асинхронний запит без вiдповiдi - використовується одностороннiй запит (one-way request) з використанням служби доставляння з максимальним зусиллям (best effort delivery) без гарантiї якостi доставки.
вiдкладений синхроний запит (differed synchronous reqest) - ресурс повертається клiєнтовi асинхронно пiсля отримання результату сервера. Iснує також одноразовий синхронний запит.
18. Види зв’язку
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
21
Служба подiй (event service) асоцiюється з посиланням на одиничний елемент даних. Зазвичай служба передає подiю каналами подiй (event channel) без гарантiї схоронностi та доставляння подiй. Для фiльтрацiї подiй користувача застосовують окремi канали подiй за допомогою служби сповiщення (notification service).
19. Служба подiй
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
22
Для схоронного зв'язку черги повiдомлень використовують службу повiдомлень (message service) з об'єктним пiдходом до взаємодiї.
20. Схоронний зв'язок
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
23
У моделi зворотного виклику (callback model) клiєнт є об'єктом, що реалiзує iнтерфейс, який мiстить методи зворотного виклику. Базова комунiкацiйна система може викликати цi методи для передавання результату асинхронного звернення, яке не впливає на реалiзацiю об'єкта. Тобто клiєнт перетворює синхронне звернення на асинхронне, а сервер виконує звичайний синхронний виклик.
21. Зворотній виклик
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
24
У разi асинхронного звернення вихiдний iнтерфейс замiнюється на два iншi клiєнтськi, один з яких мiстить специфiкацiю методiв, якi може викликати клiєнт, а другий - iнтерфейс зворотного виклику згiдно зi схемою. Звернення вiдбувається у два етапи: виклик з додатка i запит до сервера. Клiєнт сам надає реалiзацiю зворотного виклику.
22. Асинхронний виклик
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
25
23. Модель зворотного виклику за асинхронним зверненням до
методу
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
26
За модель опитування клiєнту надається набiр операцiй для опитування брокера ORB на наявнiсть отриманих результатiв, тобто метод опитування реалiзує клiєнтський брокер ORB. Повiдомлення мiж непрацездатним клiєнтом або сервером зберiгається базовою системою.
24. Модель опитування (polling model)
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
27
25. Модель опитування за асинхронним зверненням до
методу
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
28
Сумiснiсть версiй CORBA вiд рiзних виробникiв забезпечується стандартизованим протоколом GIOP (General Inter-Orb Protocol) взаємодiї мiж брокерами та унiверсальними посиланнями на об'єкти. Реалiзацiю GIOP над рiвнем TCP OSI називають iнтернет-протоколом обмiну мiж брокерами IIОР (Internet Inter-Orb Protocol).
26. Сумiснiсть версiй CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
29
27. Повiдомлення GIOPТип
повiдомленняДжерело Опис
Request Клiєнт Повiдомлення пiсля маршалiнгу з посиланнями i параметрами об'єкта
Reply Сервер Повернення значень i параметрiв
Local request Клiєнт Запит до сховища реалiзацiй про розмiщення об'єкта
Local reply Сервер Вiдповiдь на локальний запит
Cancel request Клiєнт Вiдмiна дiй ранiше вiдправлених повiдомлень для сервера
Close connection Клiєнт/сервер Припинення зв'язку
Message error Клiєнт/сервер Заголовок повiдомлення помилки
Fragment Клiєнт/сервер Частина повiдомлення
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
30
• Internet INTERORB Protocol (IIOP) — Міжброкерний протокол для Інтернет, це протокол для організації взаємодії між різними брокерами, опублікований консорціумом OMG. IIOP використовується GIOP в середовищі інтернет, і забезпечує відображення повідомлень між GIOP і шаром TCP/IP.
• SSL INTERORB Protocol (SSLIOP) — це IIOP поверх SSL, підтримуються шифрування і аутентифікація.
• Hypertext INTERORB Protocol (HTIOP) — це IIOP поверх HTTP.
28. Склад загального протоколу межброкерного взаємодії GIOP
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
31
Для модифiкацiї запиту на шляху «клiєнт-сервер» i зворотного повiдомлення сервера використовують кiлька типiв фрагментiв кодiв перехоплювачiв (interceptors). Так, перехоплювач рiвня запитiв (Request Level Interceptor) модифiкує записи вiд замiсника, а пiсля проходження ORB перехоплювач повiдомлення (Message Level Interceptor) модифiкує повiдомлення (наприклад, дiлить за фрагментами), що надходить через ОС на сервер.
29. Перехоплювачi (interceptors)
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
32
30. Використання перехоплювачiв у CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
33
Адаптери об'єкта (Wrappers) реалiзують правила активiзацiї групи об'єктiв. Вони викликають методи об'єкта i вiдповiдають за створення цiлiсного образу об'єкта; адаптують для клiєнта програми як об'єкти. Так, наприклад, переносний адаптер об'єктiв POA (Portable Object Adapter) без прив'язки до конкретного ORB дає змогу сприймати серверний код об'єктом для клiєнта.
31. Адаптери об'єкта (Wrappers)
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
34
Система агентiв AS (agent system) визначає платформу створення, виклику i перенесення на iншу машину агентiв та припинення їх роботи. Система AS має профiль, який визначає вигляд агента i складається з множини процесiв, кожний з яких пiдтримує одного або кiлькох агентiв.
Систему агентiв групують за регiонами.
32. Система агентiв AS (agent system)
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
35
Агент розглядають як сутнiсть, складену з набору класiв або файлу з текстом програми. Реалiзацiя агента через iм'я агента передається в систему агентiв з подальшою можливiстю створювати цей агент i передавати його на iншi машини.
33. Агенти
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
36
34. Моделi агентiв CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
37
створення агенту; припинення роботи агента; ведення списку агентiв i мiсць, де
вони розташованi; призупинення i повторний запуск
агента. Регiон має шукача (Finder), який визначає
мiсцеположення агента, реєструє та знiмає агента з реєстрацiї.
35. Операції системи агентів
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
38
Служба iменування (Naming Service) об'єктiв пiдтримує вiдображення iмен на iдентифiкатори об'єктiв через iмена нижнього рiвня (посилання на об'єкти i символьнi iмена) i через властивостi об'єктiв за допомогою служби властивостей (property service), яка асоцiює об'єкт з парою <атрибут, значенням>. Для цих двох служб служба обмiну (trading service) дозволяє об'єктам регламентувати свої можливостi, а клiєнтам - шукати потрiбнi служби.
36. Служби брокера
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
39
Брокер ORB має власне подання посилань на об'єкти у формi мiжпроцесорного посилання на об'єкт IOR (Interoperable Object Reference), зрозумiле iншому брокеру ORB, i мiстить потрiбну iнформацiю для iдентифiкацiї об'єкта.
Посилання IOR мiстить, зокрема, типовий профiль (tagged profile), який включає всю iнформацiю, потрiбну для звернення до об'єкта.
37. Посилання IOR
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
40
38. Структура IOR CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
41
Брокер ORB має власне подання посилань на об'єкти у формi мiжпроцесорного посилання на об'єкт IOR (Interoperable Object Reference), зрозумiле iншому брокеру ORB, i мiстить потрiбну iнформацiю для iдентифiкацiї об'єкта.
Посилання IOR мiстить, зокрема, типовий профiль (tagged profile), який включає всю iнформацiю, потрiбну для звернення до об'єкта.
39. Посилання IOR
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
42
пряма прив'язка (direct binding); непряма прив'язка (indirect binding), за
якими вони спочатку пересилаються у сховище реалiзацiй, яке являє собою процес, iдентифiкований в IOR об'єкта.
Сховище реалiзацiй переглядає свої таблицi реєстру i шукає потрiбний сервер об'єктiв.
40. Пряма і непряма прив'язка IOR
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
43
Синхронiзацiя в CORBA здiйснюється за допомогою служб паралельного доступу i транзакцiй. Транзакцiя мiстить послiдовнiсть звернень до об'єкта. Пiсля виклику об'єкт стає частиною транзакцiї, про що опосередковано повiдомляється сервер. Вiдновлювальний об'єкт (recoverable object) транзакцiї здатен включатись у процес двофазного пiдтвердження, який передбачає вiдкат. Транзакцiйнi об'єкти (transactional objects) не можуть включатись у процес двофазного пiдтвердження i призначенi зазвичай лише для зчитування.
41. Синхронiзацiя в CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
44
Служба паралельного доступу реалiзовується центральним менеджером блокувань, який пiдтримує кiлька ступенiв деталiзацiї блокувань, що особливо важливо для БД (зокрема, блокування записiв та таблиць).
42. Служба паралельного доступу
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
45
CORBA не пiдтримує узагальненого кешування та реплiкацiї, але окремi їх реалiзацiї використовують для забезпечення вiдмовостiйкостi. Тому в додатках передбачають спецiальнi засоби, зокрема для їх реалiзацiї з використанням перехоплювачiв.
43. Кешування та реплiкацiя
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
46
В останнiх версiях CORBA вiдмовостiйкiсть забезпечується реплiкацiєю та створенням груп об'єктiв, якi мiстять однаковi копiї, i використанi спецiальнi посилання IOR (мiжоперацiйне посилання) на групу об'єктiв IOGR (Interoperable Object Group Reference), на реплiки групи як на рiзнi об'єкти.
44. Вiдмовостiйкiсть CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
47
Ядро захисту CORBA формується пiдтриманням захищених звернень до об'єкта. При цьому об'єкти прикладного рiвня нiчого «не знають» про використання служб захисту, крiм випадкiв, коли цього вимагає клiєнт.
45. Захист в CORBA
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
48
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.
46. Посилання на об’єкт Corba Location
www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA
Діденко Д.Г. © 2010
49
1. Промисловий стандарт CORBA.
Питання заняття
Діденко Д.Г. © 2010
Питання?
Розподілені інформаційні системи
www.simulation.kiev.ua/dis/