Лекція 06. Промисловий стандарт CORBA

50
Діденко Д.Г. © 2010 Лекція 06. Промисловий стандарт CORBA Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна

description

Лекція 06. Промисловий стандарт CORBA. Діденко Дмитро Георгійович Старший викладач кафедри ММСА ННК «ІПСА» Національний технічний університет України «Київський політехнічний інститут» м. Київ, Україна. Питання заняття. Промисловий стандарт CORBA. 1 . Історія розвитку CORBA. - PowerPoint PPT Presentation

Transcript of Лекція 06. Промисловий стандарт CORBA

Page 1: Лекція 06. Промисловий стандарт CORBA

Діденко Д.Г. © 2010

Лекція 06. Промисловий стандарт CORBA

Діденко Дмитро ГеоргійовичСтарший викладач кафедри ММСА ННК «ІПСА»

Національний технічний університет України «Київський політехнічний інститут»

м. Київ, Україна

Page 2: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

2

1. Промисловий стандарт CORBA.

Питання заняття

Page 3: Лекція 06. Промисловий стандарт 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

Page 4: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

4

2. Архiтектура CORBA

Page 5: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

5

Завдання CORBA - виконати iнтеграцiю iзольованих систем, дати змогу програмам, написаним рiзними мовами, тим, що працюють на рiзних вузлах мережi, взаємодiяти так само просто, якби вони були в адресному просторi одного процесу.

3. Завдання CORBA

Page 6: Лекція 06. Промисловий стандарт 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

Page 7: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

7

Брокер ORB пiдтримує вiддалений зв'язок мiж об'єктами та клiєнтами i приховує проблеми, пов'язанi з розподiленням i рiзнорiднiстю частин системи.

5. Властивості CORBA

Page 8: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

8

однаковi для всiх реалiзацiй ORB; специфiчнi для конкретного об'єктного

типу; специфiчнi для окремих видiв

реалiзацiй об'єктiв.

6. Категорії операцій

Page 9: Лекція 06. Промисловий стандарт CORBA

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. Засоби реалізації

Page 10: Лекція 06. Промисловий стандарт CORBA

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. Опис об’єктів і служб

Page 11: Лекція 06. Промисловий стандарт CORBA

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)

Page 12: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

12

операцiї маршалiнгу i демаршалiнгу посилань на об'єкти пiд час обмiну мiж процесами та операцiї для порiвняння посилань;

операцiї початкового пошуку доступних для процесу служб. Зазвичай ORB надає данi для отримання початкового посилання на об'єкт, який реалiзує конкретну службу CORBA.

10. Функції брокера

Page 13: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

13

11. Структура клiєнта i сервера на основi брокера ORB

Page 14: Лекція 06. Промисловий стандарт CORBA

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. Сховища інтерфейсів та реалізацій

Page 15: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

15

13. Послiдовнiсть проходження

Page 16: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

16

Iнтерфейс - це набiр методiв, а об'єкт визначає, якi служби клiєнт може запросити.

Система об'єктiв забезпечує клiєнта набором служб.

14. Інтерфейсів та набори служб

Page 17: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

17

15. Взаємодiя мереж на основi ORB i протоколу IIOP

Page 18: Лекція 06. Промисловий стандарт CORBA

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

Page 19: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

19

транзакцiй; подiй; сповiщень; служби обмiну; схоронностi; захисту.

17. Типи служб CORBA

Page 20: Лекція 06. Промисловий стандарт 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. Види зв’язку

Page 21: Лекція 06. Промисловий стандарт CORBA

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й

Page 22: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

22

Для схоронного зв'язку черги повiдомлень використовують службу повiдомлень (message service) з об'єктним пiдходом до взаємодiї.

20. Схоронний зв'язок

Page 23: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

23

У моделi зворотного виклику (callback model) клiєнт є об'єктом, що реалiзує iнтерфейс, який мiстить методи зворотного виклику. Базова комунiкацiйна система може викликати цi методи для передавання результату асинхронного звернення, яке не впливає на реалiзацiю об'єкта. Тобто клiєнт перетворює синхронне звернення на асинхронне, а сервер виконує звичайний синхронний виклик.

21. Зворотній виклик

Page 24: Лекція 06. Промисловий стандарт CORBA

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. Асинхронний виклик

Page 25: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

25

23. Модель зворотного виклику за асинхронним зверненням до

методу

Page 26: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

26

За модель опитування клiєнту надається набiр операцiй для опитування брокера ORB на наявнiсть отриманих результатiв, тобто метод опитування реалiзує клiєнтський брокер ORB. Повiдомлення мiж непрацездатним клiєнтом або сервером зберiгається базовою системою.

24. Модель опитування (polling model)

Page 27: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

27

25. Модель опитування за асинхронним зверненням до

методу

Page 28: Лекція 06. Промисловий стандарт CORBA

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

Page 29: Лекція 06. Промисловий стандарт 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домлення

Page 30: Лекція 06. Промисловий стандарт CORBA

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

Page 31: Лекція 06. Промисловий стандарт CORBA

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)

Page 32: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

32

30. Використання перехоплювачiв у CORBA

Page 33: Лекція 06. Промисловий стандарт 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)

Page 34: Лекція 06. Промисловий стандарт CORBA

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)

Page 35: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

35

Агент розглядають як сутнiсть, складену з набору класiв або файлу з текстом програми. Реалiзацiя агента через iм'я агента передається в систему агентiв з подальшою можливiстю створювати цей агент i передавати його на iншi машини.

33. Агенти

Page 36: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

36

34. Моделi агентiв CORBA

Page 37: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

37

створення агенту; припинення роботи агента; ведення списку агентiв i мiсць, де

вони розташованi; призупинення i повторний запуск

агента. Регiон має шукача (Finder), який визначає

мiсцеположення агента, реєструє та знiмає агента з реєстрацiї.

35. Операції системи агентів

Page 38: Лекція 06. Промисловий стандарт CORBA

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. Служби брокера

Page 39: Лекція 06. Промисловий стандарт CORBA

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

Page 40: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

40

38. Структура IOR CORBA

Page 41: Лекція 06. Промисловий стандарт 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

Page 42: Лекція 06. Промисловий стандарт CORBA

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

Page 43: Лекція 06. Промисловий стандарт CORBA

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

Page 44: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

44

Служба паралельного доступу реалiзовується центральним менеджером блокувань, який пiдтримує кiлька ступенiв деталiзацiї блокувань, що особливо важливо для БД (зокрема, блокування записiв та таблиць).

42. Служба паралельного доступу

Page 45: Лекція 06. Промисловий стандарт CORBA

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я

Page 46: Лекція 06. Промисловий стандарт CORBA

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

Page 47: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

47

Ядро захисту CORBA формується пiдтриманням захищених звернень до об'єкта. При цьому об'єкти прикладного рiвня нiчого «не знають» про використання служб захисту, крiм випадкiв, коли цього вимагає клiєнт.

45. Захист в CORBA

Page 48: Лекція 06. Промисловий стандарт 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

Page 49: Лекція 06. Промисловий стандарт CORBA

www.simulation.kiev.ua/dis/ Промисловий стандарт CORBA

Діденко Д.Г. © 2010

49

1. Промисловий стандарт CORBA.

Питання заняття

Page 50: Лекція 06. Промисловий стандарт CORBA

Діденко Д.Г. © 2010

Питання?

Розподілені інформаційні системи

www.simulation.kiev.ua/dis/