500 likes | 687 Views
Лекція 06. Промисловий стандарт CORBA. Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна. Питання заняття. Промисловий стандарт CORBA. 1 . Історія розвитку CORBA.
E N D
Лекція 06. Промисловий стандарт CORBA Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна
Питання заняття • Промисловий стандарт CORBA. Промисловий стандарт CORBA
1. Історія розвитку CORBA Узагальнена арх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. Промисловий стандарт CORBA
2. Архiтектура CORBA Промисловий стандарт CORBA
3. Завдання CORBA Завдання CORBA - виконати iнтеграцiю iзольованих систем, дати змогу програмам, написаним рiзними мовами, тим, що працюють на рiзних вузлах мережi, взаємодiяти так само просто, якби вони були в адресному просторi одного процесу. Промисловий стандарт CORBA
4. Реалізація CORBA • широко використовуються 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. Промисловий стандарт CORBA
5. Властивості CORBA Брокер ORB пiдтримує вiддалений зв'язок мiж об'єктами та клiєнтами i приховує проблеми, пов'язанi з розподiленням i рiзнорiднiстю частин системи. Промисловий стандарт CORBA
6. Категорії операцій • однаковi для всiх реалiзацiй ORB; • специфiчнi для конкретного об'єктного типу; • специфiчнi для окремих видiв реалiзацiй об'єктiв. Промисловий стандарт CORBA
7. Засоби реалізації • горизонтальнi засоби (horizontal facilities) - незалежнi вiд прикладного рiвня i являють собою високорiвневi служби загального призначення для обслуговування користувацького iнтерфейсу, керування iнформацiєю, системою i завданнями для визначення систем робочих потокiв. • вертикальнi засоби (vertical facilities) - це високорiвневi служби для конкретних предметних галузей (електронна комерцiя, банкiвська справа, виробництво тощо). Промисловий стандарт CORBA
8. Опис об’єктів і служб Об'єкти 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. Промисловий стандарт CORBA
9. Компонентна модель CORBA (CCM) Компонентна модель CORBA (CCM) - недавнє доповнення до сімейства визначень CORBA. CCM була введена починаючи з CORBA 3.0 і описує стандартний каркас додатку для компонент CORBA. CCM побудований під сильним впливом Enterprise Javabeans (EJB) і фактично є його незалежним від мови розширенням. CCM надає абстракцію суті, яка може надавати і отримувати сервіси через чітко певні іменовані інтерфейси, порти. Модель CCM надає контейнер компонентів, в якому можуть поставлятися програмні компоненти. Контейнер надає набір служб, які може використовувати компонент. Ці служби включають (але не обмежують) службу повідомлення, авторизації, персистентності і управління транзакціями. Це найчастіше використовувані розподіленим додатком служби. Промисловий стандарт CORBA
10. Функції брокера • операцiї маршалiнгу i демаршалiнгу посилань на об'єкти пiд час обмiну мiж процесами та операцiї для порiвняння посилань; • операцiї початкового пошуку доступних для процесу служб. Зазвичай ORB надає данi для отримання початкового посилання на об'єкт, який реалiзує конкретну службу CORBA. Промисловий стандарт CORBA
11. Структура клiєнта i сервера на основi брокера ORB Промисловий стандарт CORBA
12. Сховища інтерфейсів та реалізацій Ус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в). Промисловий стандарт CORBA
13. Послiдовнiсть проходження Промисловий стандарт CORBA
14. Інтерфейсів та набори служб Iнтерфейс - це набiр методiв, а об'єкт визначає, якi служби клiєнт може запросити. Система об'єктiв забезпечує клiєнта набором служб. Промисловий стандарт CORBA
15. Взаємодiя мереж на основi ORB i протоколу IIOP Промисловий стандарт CORBA
16. Інтерфейс динамiчного звернення DII Компiлятор IDL компiлює код зв'язку мiж клiєнтським i серверним ORB. Якщо статично визначений iнтерфейс недоступний клiєнтовi, то CORBA надає iнтерфейс динамiчного звернення DII (Dynamic Invocation Interface), який дозволяє створювати запити пiд час виконання додаткiв. Промисловий стандарт CORBA
17. Типи служб CORBA • транзакцiй; • подiй; • сповiщень; • служби обмiну; • схоронностi; • захисту. Промисловий стандарт CORBA
18. Види зв’язку • асинхронний запит без вiдповiдi - використовується одностороннiй запит (one-way request) з використанням служби доставляння з максимальним зусиллям (best effort delivery) без гарантiї якостi доставки. • вiдкладений синхроний запит (differed synchronous reqest) - ресурс повертається клiєнтовi асинхронно пiсля отримання результату сервера. Iснує також одноразовий синхронний запит. Промисловий стандарт CORBA
19. Служба подiй Служба подiй (event service) асоцiюється з посиланням на одиничний елемент даних. Зазвичай служба передає подiю каналами подiй (event channel) без гарантiї схоронностi та доставляння подiй. Для фiльтрацiї подiй користувача застосовують окремi канали подiй за допомогою служби сповiщення (notification service). Промисловий стандарт CORBA
20. Схоронний зв'язок Для схоронного зв'язку черги повiдомлень використовують службу повiдомлень (message service) з об'єктним пiдходом до взаємодiї. Промисловий стандарт CORBA
21. Зворотній виклик У моделi зворотного виклику (callback model) клiєнт є об'єктом, що реалiзує iнтерфейс, який мiстить методи зворотного виклику. Базова комунiкацiйна система може викликати цi методи для передавання результату асинхронного звернення, яке не впливає на реалiзацiю об'єкта. Тобто клiєнт перетворює синхронне звернення на асинхронне, а сервер виконує звичайний синхронний виклик. Промисловий стандарт CORBA
22. Асинхронний виклик У разi асинхронного звернення вихiдний iнтерфейс замiнюється на два iншi клiєнтськi, один з яких мiстить специфiкацiю методiв, якi може викликати клiєнт, а другий - iнтерфейс зворотного виклику згiдно зi схемою. Звернення вiдбувається у два етапи: виклик з додатка i запит до сервера. Клiєнт сам надає реалiзацiю зворотного виклику. Промисловий стандарт CORBA
23. Модель зворотного виклику за асинхронним зверненням до методу Промисловий стандарт CORBA
24. Модель опитування (polling model) За модель опитування клiєнту надається набiр операцiй для опитування брокера ORB на наявнiсть отриманих результатiв, тобто метод опитування реалiзує клiєнтський брокер ORB. Повiдомлення мiж непрацездатним клiєнтом або сервером зберiгається базовою системою. Промисловий стандарт CORBA
25. Модель опитування за асинхронним зверненням до методу Промисловий стандарт CORBA
26. Сумiснiсть версiй CORBA Сум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). Промисловий стандарт CORBA
27. Повiдомлення GIOP Промисловий стандарт CORBA
28. Склад загального протоколу межброкерного взаємодії GIOP • Internet INTERORB Protocol (IIOP) — Міжброкерний протокол для Інтернет, це протокол для організації взаємодії між різними брокерами, опублікований консорціумом OMG. IIOP використовується GIOP в середовищі інтернет, і забезпечує відображення повідомлень між GIOP і шаром TCP/IP. • SSL INTERORB Protocol (SSLIOP) — це IIOP поверх SSL, підтримуються шифрування і аутентифікація. • Hypertext INTERORB Protocol (HTIOP) — це IIOP поверх HTTP. Промисловий стандарт CORBA
29. Перехоплювачi (interceptors) Для модиф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лить за фрагментами), що надходить через ОС на сервер. Промисловий стандарт CORBA
30. Використання перехоплювачiв у CORBA Промисловий стандарт CORBA
31. Адаптери об'єкта (Wrappers) Адаптери об'єкта (Wrappers) реалiзують правила активiзацiї групи об'єктiв. Вони викликають методи об'єкта i вiдповiдають за створення цiлiсного образу об'єкта; адаптують для клiєнта програми як об'єкти. Так, наприклад, переносний адаптер об'єктiв POA (Portable Object Adapter) без прив'язки до конкретного ORB дає змогу сприймати серверний код об'єктом для клiєнта. Промисловий стандарт CORBA
32. Система агентiв AS (agent system) Система агентiв AS (agent system) визначає платформу створення, виклику i перенесення на iншу машину агентiв та припинення їх роботи. Система AS має профiль, який визначає вигляд агента i складається з множини процесiв, кожний з яких пiдтримує одного або кiлькох агентiв. Систему агентiв групують за регiонами. Промисловий стандарт CORBA
33. Агенти Агент розглядають як сутнiсть, складену з набору класiв або файлу з текстом програми. Реалiзацiя агента через iм'я агента передається в систему агентiв з подальшою можливiстю створювати цей агент i передавати його на iншi машини. Промисловий стандарт CORBA
34. Моделi агентiв CORBA Промисловий стандарт CORBA
35. Операції системи агентів • створення агенту; • припинення роботи агента; • ведення списку агентiв i мiсць, де вони розташованi; • призупинення i повторний запуск агента. Регiон має шукача (Finder), який визначає мiсцеположення агента, реєструє та знiмає агента з реєстрацiї. Промисловий стандарт CORBA
36. Служби брокера Служба 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 служби. Промисловий стандарт CORBA
37. Посилання IOR Брокер 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бну для звернення до об'єкта. Промисловий стандарт CORBA
38. Структура IOR CORBA Промисловий стандарт CORBA
39. Посилання IOR Брокер 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бну для звернення до об'єкта. Промисловий стандарт CORBA
40. Пряма і непряма прив'язка IOR • пряма прив'язка (direct binding); • непряма прив'язка (indirect binding), за якими вони спочатку пересилаються у сховище реалiзацiй, яке являє собою процес, iдентифiкований в IOR об'єкта. Сховище реалiзацiй переглядає свої таблицi реєстру i шукає потрiбний сервер об'єктiв. Промисловий стандарт CORBA
41. Синхронiзацiя в CORBA Синхрон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 зазвичай лише для зчитування. Промисловий стандарт CORBA
42. Служба паралельного доступу Служба паралельного доступу реалiзовується центральним менеджером блокувань, який пiдтримує кiлька ступенiв деталiзацiї блокувань, що особливо важливо для БД (зокрема, блокування записiв та таблиць). Промисловий стандарт CORBA
43. Кешування та реплiкацiя CORBA не пiдтримує узагальненого кешування та реплiкацiї, але окремi їх реалiзацiї використовують для забезпечення вiдмовостiйкостi. Тому в додатках передбачають спецiальнi засоби, зокрема для їх реалiзацiї з використанням перехоплювачiв. Промисловий стандарт CORBA
44. Вiдмовостiйкiсть CORBA В останн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 об'єкти. Промисловий стандарт CORBA
45. Захист в CORBA Ядро захисту CORBA формується пiдтриманням захищених звернень до об'єкта. При цьому об'єкти прикладного рiвня нiчого «не знають» про використання служб захисту, крiм випадкiв, коли цього вимагає клiєнт. Промисловий стандарт CORBA
46. Посилання на об’єкт 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. Промисловий стандарт CORBA
Питання заняття • Промисловий стандарт CORBA. Промисловий стандарт CORBA
Питання? Розподілені інформаційні системи www.simulation.kiev.ua/dis/