SlideShare a Scribd company logo
1 of 10
Операційні
системи
Лекція 16
Виклик віддалених процедур
Remote Procedure Call (RPC)
2/9Лекція 16
План лекції
3/9Лекція 16
Концепція віддаленого
виклику процедур
 Добре відомий механізм передачі керування і даних
всередині програми, що виконується на одній машині,
поширюється на передачу керування і даних через
мережу
 Найбільша ефективність RPC – коли існує
інтерактивний зв’язок між віддаленими компонентами з
 невеликим часом відповідей
 відносно малим обсягом даних, що передають
 Характерні риси локального виклику процедур
 Асиметричність – одна із сторін є ініціатором взаємодії
 Синхронність – процедуру, яка викликає, блокують до
повернення з процедури, яку викликали
 Ідея полягає в тому, щоби віддалений виклик процедур
виглядав для прикладної програми точно так, як виклик
локальної процедури
4/9Лекція 16
Можливі проблеми
реалізації RPC
 Процедури виконуються на різних машинах, вони мають
різні адресні простори, і не мають спільної пам’яті
 Параметри не повинні містити покажчиків на пам’ять (в тому
числі на стек)
 Значення параметрів виклику слід передавати з одного
комп’ютера на інший
 RPC обов’язково використовує систему обміну
повідомленнями
 Необхідно забезпечити прозорість RPC для прикладних
програм
 Існує можливість аварійного завершення одного з процесів
без повідомлення про це іншого, а також можливість втрати
повідомлень у мережі
 У разі краху програми, що викликає, віддалені процедури
стають “сиротами”
 У разі краху віддаленої процедури, програма, яка їх викликала,
стає “обездоленою”
 Існують розбіжності у форматах подання чисел у різних
архітектурах, у порядку параметрів викликів, у порядку
байтів, у кодуваннях символів
5/9Лекція 16
Досягнення прозорості
RPC
 В бібліотеку процедур на клієнтському комп’ютері замість коду
процедури поміщають так званий стаб (stub – заглушка)
 Клієнтський стаб викликають шляхом звичайної передачі
параметрів через стек
 На комп’ютер-сервер поміщають оригінальний код процедури,
а також серверний стаб
 Призначення клієнтського та серверного стабів – організувати
передачу параметрів виклику процедури і повернення
результату через мережу
 Клієнтський стаб формує повідомлення, що містить ім’я процедури
і параметри виклику (упаковка, або маршалізація повідомлення)
 Серверний стаб отримує повідомлення, розпаковує (демаршалізує)
параметри, і здійснює звичайний локальний виклик процедури
 Стаби використовують системні засоби обміну повідомленнями
(send і receive)
 Іноді у підсистемі обміну повідомленнями виділяють окремий
програмний модуль для організації зв’язку стабів з примітивами
обміну повідомленнями (RPC Runtime)
6/9Лекція 16
Виконання віддаленого
виклику процедури
Процес-клієнт
Return Call
Клієнтський стаб
Демаршалізація Маршалізація
Ядро ОС
Підсистема
обміну повідомленнями
RPC Runtime
Receive Send
Процедура RPC
Call Return
виконання
Серверний стаб
Демаршалізація Маршалізація
Ядро ОС
Підсистема
обміну повідомленнями
RPC Runtime
Receive Send
Комп’ютер-клієнт Комп’ютер-сервер
Повідомлення-
виклик
Повідомлення-відповідь
7/9Лекція 16
Генерація стабів
 Ручна генерація стабів
 Програміст використовує ряд допоміжних функцій,
наданих розробниками засобів RPC
 Є свобода вибору способу передачі параметрів виклику і
застосування тих чи інших примітивів передачі
повідомлень
 Вимагає значного обсягу ручної праці
 Автоматична генерація стабів
 Застосовується мова визначення інтерфейсу (Interface
Definition Language, IDL)
 Опис інтерфейсу між клієнтом і сервером RPC містить
список імен процедур, а також список типів аргументів і
результатів цих процедур
 Опис достатній для перевірки стабом типів аргументів і
генерації повідомлення-виклику
 IDL-компілятор створює вихідні модулі клієнтських і
серверних стабів, а також генерує файли-заголовки з
описом типів процедур і їхніх аргументів
8/9Лекція 16
Формат повідомлень RPC
Ідентифікатор
повідомлення
Ідентифікатор
клієнта Номер
програми
Номер
версії
Номер
процедури
Ідентифікатор
віддаленої процедуриТип
повідомлення
Аргументи
Ідентифікатор
повідомлення
Статус відповіді
/
помилка
Тип
повідомлення
Результат
або причина
помилки
Повідомлення-виклик
Повідомлення-відповідь
9/9Лекція 16
Зв’язування клієнта з
сервером
 Процедуру, що встановлює відповідність між клієнтом і
сервером RPC, називають зв’язуванням (binding)
 У різних реалізаціях RPC, можуть відрізнятись:
 Способи завдання сервера, з яким хотів би бути зв’язаним
клієнт
 Способи визначення мережної адреси (місцезнаходження)
потрібного сервера
 Стадії, на якій відбувається зв’язування
 Статичне зв’язування:
 Ім’я або адреса RPC-сервера задається явно
 Відсутня гнучкість і прозорість
 Динамічне зв’язування:
 Ім’я інтерфейсу RPC задається у вигляді
<тип інтерфейсу><екземпляр інтерфейсу>
 Тип визначає усі характеристики, крім місцезнаходження
 Якщо клієнту важливий лише тип інтерфейсу, то процес
знаходження сервера може застосовувати або широкомовні
запити, або централізованого агента зв’язування
9/9Лекція 16
Зв’язування клієнта з
сервером
 Процедуру, що встановлює відповідність між клієнтом і
сервером RPC, називають зв’язуванням (binding)
 У різних реалізаціях RPC, можуть відрізнятись:
 Способи завдання сервера, з яким хотів би бути зв’язаним
клієнт
 Способи визначення мережної адреси (місцезнаходження)
потрібного сервера
 Стадії, на якій відбувається зв’язування
 Статичне зв’язування:
 Ім’я або адреса RPC-сервера задається явно
 Відсутня гнучкість і прозорість
 Динамічне зв’язування:
 Ім’я інтерфейсу RPC задається у вигляді
<тип інтерфейсу><екземпляр інтерфейсу>
 Тип визначає усі характеристики, крім місцезнаходження
 Якщо клієнту важливий лише тип інтерфейсу, то процес
знаходження сервера може застосовувати або широкомовні
запити, або централізованого агента зв’язування

More Related Content

What's hot

Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiсть
cit-cit
 

What's hot (19)

Лекція №12
Лекція №12Лекція №12
Лекція №12
 
Лекція №7
Лекція №7Лекція №7
Лекція №7
 
Лекція №11
Лекція №11Лекція №11
Лекція №11
 
Лекція №1
Лекція №1Лекція №1
Лекція №1
 
Лекція №13
Лекція №13Лекція №13
Лекція №13
 
Лекція №8
Лекція №8Лекція №8
Лекція №8
 
Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiсть
 
Лекція №6
Лекція №6Лекція №6
Лекція №6
 
ФАЙЛОВА СИСТЕМА LINUX
ФАЙЛОВА СИСТЕМА LINUX ФАЙЛОВА СИСТЕМА LINUX
ФАЙЛОВА СИСТЕМА LINUX
 
урок7
урок7урок7
урок7
 
Підсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПідсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часі
 
Урок 3
Урок 3Урок 3
Урок 3
 
IIHE-Lecture-3_1
IIHE-Lecture-3_1IIHE-Lecture-3_1
IIHE-Lecture-3_1
 
5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC
 
урок 4 9кл
урок 4 9клурок 4 9кл
урок 4 9кл
 
Операційні системи
Операційні системи Операційні системи
Операційні системи
 
Computers and Computing Works lecture №6
Computers and Computing Works lecture №6Computers and Computing Works lecture №6
Computers and Computing Works lecture №6
 
Урок 7. Класифікація та загальна характеристика програмного забезпечення
Урок 7. Класифікація та загальна характеристика програмного забезпеченняУрок 7. Класифікація та загальна характеристика програмного забезпечення
Урок 7. Класифікація та загальна характеристика програмного забезпечення
 
Computers and Computing Works lecture №4
Computers and Computing Works lecture №4Computers and Computing Works lecture №4
Computers and Computing Works lecture №4
 

Viewers also liked

Viewers also liked (20)

Are You Afraid of the Dark?
Are You Afraid of the Dark?Are You Afraid of the Dark?
Are You Afraid of the Dark?
 
Entrepreneurship
EntrepreneurshipEntrepreneurship
Entrepreneurship
 
Fudan interview
Fudan interviewFudan interview
Fudan interview
 
Question 4 media studies
Question 4 media studiesQuestion 4 media studies
Question 4 media studies
 
Obra aberta
Obra aberta Obra aberta
Obra aberta
 
Iso9000
Iso9000Iso9000
Iso9000
 
Popeye - A creativity in itself
Popeye - A creativity in itselfPopeye - A creativity in itself
Popeye - A creativity in itself
 
Atlantic Resort Victoria Island, Lagos, Nigeria.
Atlantic Resort Victoria Island, Lagos, Nigeria.Atlantic Resort Victoria Island, Lagos, Nigeria.
Atlantic Resort Victoria Island, Lagos, Nigeria.
 
Concept 34 Low Resolution
Concept 34 Low ResolutionConcept 34 Low Resolution
Concept 34 Low Resolution
 
LA CARIES
LA CARIESLA CARIES
LA CARIES
 
INHALASI TOKSIK
INHALASI TOKSIKINHALASI TOKSIK
INHALASI TOKSIK
 
Planificacion narracion-analisis-avidencias
Planificacion narracion-analisis-avidencias Planificacion narracion-analisis-avidencias
Planificacion narracion-analisis-avidencias
 
Sistem Kardiovaskular Jantung
Sistem Kardiovaskular JantungSistem Kardiovaskular Jantung
Sistem Kardiovaskular Jantung
 
BRONCHIAL ASTHMA
BRONCHIAL ASTHMABRONCHIAL ASTHMA
BRONCHIAL ASTHMA
 
Rational use of Otc medications
 Rational use of Otc medications Rational use of Otc medications
Rational use of Otc medications
 
Paula rego
Paula regoPaula rego
Paula rego
 
Pelayanan igd dan standar akreditasi
Pelayanan igd dan standar akreditasiPelayanan igd dan standar akreditasi
Pelayanan igd dan standar akreditasi
 
Tatry mk (1)
Tatry mk (1)Tatry mk (1)
Tatry mk (1)
 
Biografía de rousseau
Biografía de rousseauBiografía de rousseau
Biografía de rousseau
 
HRN
HRNHRN
HRN
 

Similar to Лекція №16

Lec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпеченняLec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпечення
cit-cit
 
урок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережаурок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережа
Helen Pata
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
 

Similar to Лекція №16 (20)

Opc
OpcOpc
Opc
 
Lec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпеченняLec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпечення
 
Rpc
RpcRpc
Rpc
 
урок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережаурок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережа
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_net
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
лр5 основи modbus tcp
лр5 основи modbus tcpлр5 основи modbus tcp
лр5 основи modbus tcp
 
лр4 основи modbus
лр4 основи modbusлр4 основи modbus
лр4 основи modbus
 
Урок №4 9 клас
Урок №4 9 класУрок №4 9 клас
Урок №4 9 клас
 
Socks v5
Socks v5Socks v5
Socks v5
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
4
44
4
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
 
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
 
Гаврилюк К.docx
Гаврилюк К.docxГаврилюк К.docx
Гаврилюк К.docx
 

Лекція №16

  • 3. 3/9Лекція 16 Концепція віддаленого виклику процедур  Добре відомий механізм передачі керування і даних всередині програми, що виконується на одній машині, поширюється на передачу керування і даних через мережу  Найбільша ефективність RPC – коли існує інтерактивний зв’язок між віддаленими компонентами з  невеликим часом відповідей  відносно малим обсягом даних, що передають  Характерні риси локального виклику процедур  Асиметричність – одна із сторін є ініціатором взаємодії  Синхронність – процедуру, яка викликає, блокують до повернення з процедури, яку викликали  Ідея полягає в тому, щоби віддалений виклик процедур виглядав для прикладної програми точно так, як виклик локальної процедури
  • 4. 4/9Лекція 16 Можливі проблеми реалізації RPC  Процедури виконуються на різних машинах, вони мають різні адресні простори, і не мають спільної пам’яті  Параметри не повинні містити покажчиків на пам’ять (в тому числі на стек)  Значення параметрів виклику слід передавати з одного комп’ютера на інший  RPC обов’язково використовує систему обміну повідомленнями  Необхідно забезпечити прозорість RPC для прикладних програм  Існує можливість аварійного завершення одного з процесів без повідомлення про це іншого, а також можливість втрати повідомлень у мережі  У разі краху програми, що викликає, віддалені процедури стають “сиротами”  У разі краху віддаленої процедури, програма, яка їх викликала, стає “обездоленою”  Існують розбіжності у форматах подання чисел у різних архітектурах, у порядку параметрів викликів, у порядку байтів, у кодуваннях символів
  • 5. 5/9Лекція 16 Досягнення прозорості RPC  В бібліотеку процедур на клієнтському комп’ютері замість коду процедури поміщають так званий стаб (stub – заглушка)  Клієнтський стаб викликають шляхом звичайної передачі параметрів через стек  На комп’ютер-сервер поміщають оригінальний код процедури, а також серверний стаб  Призначення клієнтського та серверного стабів – організувати передачу параметрів виклику процедури і повернення результату через мережу  Клієнтський стаб формує повідомлення, що містить ім’я процедури і параметри виклику (упаковка, або маршалізація повідомлення)  Серверний стаб отримує повідомлення, розпаковує (демаршалізує) параметри, і здійснює звичайний локальний виклик процедури  Стаби використовують системні засоби обміну повідомленнями (send і receive)  Іноді у підсистемі обміну повідомленнями виділяють окремий програмний модуль для організації зв’язку стабів з примітивами обміну повідомленнями (RPC Runtime)
  • 6. 6/9Лекція 16 Виконання віддаленого виклику процедури Процес-клієнт Return Call Клієнтський стаб Демаршалізація Маршалізація Ядро ОС Підсистема обміну повідомленнями RPC Runtime Receive Send Процедура RPC Call Return виконання Серверний стаб Демаршалізація Маршалізація Ядро ОС Підсистема обміну повідомленнями RPC Runtime Receive Send Комп’ютер-клієнт Комп’ютер-сервер Повідомлення- виклик Повідомлення-відповідь
  • 7. 7/9Лекція 16 Генерація стабів  Ручна генерація стабів  Програміст використовує ряд допоміжних функцій, наданих розробниками засобів RPC  Є свобода вибору способу передачі параметрів виклику і застосування тих чи інших примітивів передачі повідомлень  Вимагає значного обсягу ручної праці  Автоматична генерація стабів  Застосовується мова визначення інтерфейсу (Interface Definition Language, IDL)  Опис інтерфейсу між клієнтом і сервером RPC містить список імен процедур, а також список типів аргументів і результатів цих процедур  Опис достатній для перевірки стабом типів аргументів і генерації повідомлення-виклику  IDL-компілятор створює вихідні модулі клієнтських і серверних стабів, а також генерує файли-заголовки з описом типів процедур і їхніх аргументів
  • 8. 8/9Лекція 16 Формат повідомлень RPC Ідентифікатор повідомлення Ідентифікатор клієнта Номер програми Номер версії Номер процедури Ідентифікатор віддаленої процедуриТип повідомлення Аргументи Ідентифікатор повідомлення Статус відповіді / помилка Тип повідомлення Результат або причина помилки Повідомлення-виклик Повідомлення-відповідь
  • 9. 9/9Лекція 16 Зв’язування клієнта з сервером  Процедуру, що встановлює відповідність між клієнтом і сервером RPC, називають зв’язуванням (binding)  У різних реалізаціях RPC, можуть відрізнятись:  Способи завдання сервера, з яким хотів би бути зв’язаним клієнт  Способи визначення мережної адреси (місцезнаходження) потрібного сервера  Стадії, на якій відбувається зв’язування  Статичне зв’язування:  Ім’я або адреса RPC-сервера задається явно  Відсутня гнучкість і прозорість  Динамічне зв’язування:  Ім’я інтерфейсу RPC задається у вигляді <тип інтерфейсу><екземпляр інтерфейсу>  Тип визначає усі характеристики, крім місцезнаходження  Якщо клієнту важливий лише тип інтерфейсу, то процес знаходження сервера може застосовувати або широкомовні запити, або централізованого агента зв’язування
  • 10. 9/9Лекція 16 Зв’язування клієнта з сервером  Процедуру, що встановлює відповідність між клієнтом і сервером RPC, називають зв’язуванням (binding)  У різних реалізаціях RPC, можуть відрізнятись:  Способи завдання сервера, з яким хотів би бути зв’язаним клієнт  Способи визначення мережної адреси (місцезнаходження) потрібного сервера  Стадії, на якій відбувається зв’язування  Статичне зв’язування:  Ім’я або адреса RPC-сервера задається явно  Відсутня гнучкість і прозорість  Динамічне зв’язування:  Ім’я інтерфейсу RPC задається у вигляді <тип інтерфейсу><екземпляр інтерфейсу>  Тип визначає усі характеристики, крім місцезнаходження  Якщо клієнту важливий лише тип інтерфейсу, то процес знаходження сервера може застосовувати або широкомовні запити, або централізованого агента зв’язування