ݺߣ

ݺߣShare a Scribd company logo
Операційні
системи
Лекція 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 (19)

Лекція №1
Лекція №1Лекція №1
Лекція №1
Michael Attwood
Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiсть
cit-cit
урок7
урок7урок7
урок7
Ирина Слуцкая
Підсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПідсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часі
Пупена Александр
Урок 3
Урок 3Урок 3
Урок 3
Ирина Слуцкая
IIHE-Lecture-3_1
IIHE-Lecture-3_1IIHE-Lecture-3_1
IIHE-Lecture-3_1
Georgii Zhabieiev
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
Lesia Sobolevska
Урок 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
Lesia Sobolevska
Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiсть
cit-cit
Підсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПідсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часі
Пупена Александр
5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC
Пупена Александр
Computers and Computing Works lecture №6
Computers and Computing Works lecture №6Computers and Computing Works lecture №6
Computers and Computing Works lecture №6
Lesia Sobolevska
Урок 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
Lesia Sobolevska

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?
misshivi_xo
Entrepreneurship
EntrepreneurshipEntrepreneurship
Entrepreneurship
Arslan Rafiq
Fudan interview
Fudan interviewFudan interview
Fudan interview
Robert R. Bianchi
Question 4 media studies
Question 4 media studiesQuestion 4 media studies
Question 4 media studies
Nicole Armstrong
Obra aberta Obra aberta
Obra aberta
Sara Loureiro
Iso9000
Iso9000Iso9000
Iso9000
Elni Gita Girsang
Popeye - A creativity in itself
Popeye - A creativity in itselfPopeye - A creativity in itself
Popeye - A creativity in itself
Kunal Agrawal
Atlantic Resort Victoria Island, Lagos, Nigeria.
Atlantic Resort Victoria Island, Lagos, Nigeria.Atlantic Resort Victoria Island, Lagos, Nigeria.
Atlantic Resort Victoria Island, Lagos, Nigeria.
Abiodun Fawole
Concept 34 Low Resolution
Concept 34 Low ResolutionConcept 34 Low Resolution
Concept 34 Low Resolution
Philip O'Donnell
LA CARIESLA CARIES
LA CARIES
maalderi331
INHALASI TOKSIK
INHALASI TOKSIKINHALASI TOKSIK
INHALASI TOKSIK
Muhammad Nasrullah
Planificacion narracion-analisis-avidencias Planificacion narracion-analisis-avidencias
Planificacion narracion-analisis-avidencias
Evelyn Gonzalez
Sistem Kardiovaskular Jantung
Sistem Kardiovaskular JantungSistem Kardiovaskular Jantung
Sistem Kardiovaskular Jantung
kakapalapes
BRONCHIAL ASTHMA
BRONCHIAL ASTHMABRONCHIAL ASTHMA
BRONCHIAL ASTHMA
Muhammad Nasrullah
Rational use of Otc medications
 Rational use of Otc medications Rational use of Otc medications
Rational use of Otc medications
Kirsha K S
Paula regoPaula rego
Paula rego
Ana Barreiros
Pelayanan igd dan standar akreditasi
Pelayanan igd dan standar akreditasiPelayanan igd dan standar akreditasi
Pelayanan igd dan standar akreditasi
Jumpa Utama Amrannur
Biografía de rousseauBiografía de rousseau
Biografía de rousseau
conejosa
Are You Afraid of the Dark?
Are You Afraid of the Dark?Are You Afraid of the Dark?
Are You Afraid of the Dark?
misshivi_xo
Obra aberta Obra aberta
Obra aberta
Sara Loureiro
Popeye - A creativity in itself
Popeye - A creativity in itselfPopeye - A creativity in itself
Popeye - A creativity in itself
Kunal Agrawal
Atlantic Resort Victoria Island, Lagos, Nigeria.
Atlantic Resort Victoria Island, Lagos, Nigeria.Atlantic Resort Victoria Island, Lagos, Nigeria.
Atlantic Resort Victoria Island, Lagos, Nigeria.
Abiodun Fawole
LA CARIESLA CARIES
LA CARIES
maalderi331
Planificacion narracion-analisis-avidencias Planificacion narracion-analisis-avidencias
Planificacion narracion-analisis-avidencias
Evelyn Gonzalez
Sistem Kardiovaskular Jantung
Sistem Kardiovaskular JantungSistem Kardiovaskular Jantung
Sistem Kardiovaskular Jantung
kakapalapes
Rational use of Otc medications
 Rational use of Otc medications Rational use of Otc medications
Rational use of Otc medications
Kirsha K S
Paula regoPaula rego
Paula rego
Ana Barreiros
Biografía de rousseauBiografía de rousseau
Biografía de rousseau
conejosa

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

Opc
OpcOpc
Opc
Пупена Александр
Lec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпеченняLec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпечення
cit-cit
Rpc
RpcRpc
Rpc
eleksdev
"gRPC-based microservice communication: pros and cons based on our experience...
"gRPC-based microservice communication: pros and cons based on our experience..."gRPC-based microservice communication: pros and cons based on our experience...
"gRPC-based microservice communication: pros and cons based on our experience...
Fwdays
урок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережаурок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережа
Helen Pata
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_net
Ringonoki
System programing module 2
System programing module 2System programing module 2
System programing module 2
Andrii Hladkyi
лр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 клас
Nikolay Shaygorodskiy
Socks v5
Socks v5Socks v5
Socks v5
Shevchenko Andriy
System programing module 1
System programing module 1System programing module 1
System programing module 1
Andrii Hladkyi
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
Anna Popravka
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
Anna Popravka
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
Lec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпеченняLec16 промiжне програмне забезпечення
Lec16 промiжне програмне забезпечення
cit-cit
"gRPC-based microservice communication: pros and cons based on our experience...
"gRPC-based microservice communication: pros and cons based on our experience..."gRPC-based microservice communication: pros and cons based on our experience...
"gRPC-based microservice communication: pros and cons based on our experience...
Fwdays
урок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережаурок 17 9 клас Локальна комп'ютерна мережа
урок 17 9 клас Локальна комп'ютерна мережа
Helen Pata
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
Anna Popravka
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
Anna Popravka
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga
глобальна мережа12
глобальна мережа12глобальна мережа12
глобальна мережа12
Olga

Лекція №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 задається у вигляді <тип інтерфейсу><екземпляр інтерфейсу>  Тип визначає усі характеристики, крім місцезнаходження  Якщо клієнту важливий лише тип інтерфейсу, то процес знаходження сервера може застосовувати або широкомовні запити, або централізованого агента зв’язування