Виклик віддалених процедур (англ. Remote procedure call, RPC) — протокол, що дозволяє програмі, запущеній на одному комп'ютері, звертатись до функцій (процедур) програми, що виконується на іншому комп'ютері, подібно до того, як програма звертається до власних локальних функцій.
Передача повідомлень
RPC працює за принципом протоколів "запит-відповідь" . Виклик ініціюється клієнтом, що надсилає повідомлення віддаленого сервера з запитом щодо виконання заданої процедури з деякими параметрами. Віддалений сервер надсилає відповідь до клієнта і додаток продовжує процесс, що обробляє відповідь. Поки сервер оброблює відповідь, клієнт заблокований (він чекає поки сервер завершить свій процес, перед тим як відновити виконання своєї задачі) що, наприклад, не відбувається при роботі з асинхрооними запитами до сервера, такими як, XMLHttpRequest. Існує дуже багато тонкощів у реалізації цього принципу, що призводить до великого різноманіття (несумісних одне з іншим) RPC протоколів.
Важливий нюанс полягає в тому, що на відміну від локальних викликів, відаленний виклик може не дійти через неочікувані проблеми з мережою. Також, ініціатор виклику може зіткнутись з такими проблемами, не знаючи, що вони виникли. Ідемпотентність процедури (тобто вона не викликає додаткового еффекту, якщо її викликають більше ніж раз) можна зробити, але можуть виникнути додаткові труднощі, тому що процедура викликів зазвичай викорисовує мови низького рівня.
Послідовність подій
- Клієнт викликає клієнтський стаб. Робиться виклик локальної процедури, під час якої параметри записується у стак.
- Стаб збирає параметри в повідомлення і викликає системний процесс надсилання повідомлення.
- Локальна операційна система клієнта надсилає повідомлення з клієнтської машини до сервера.
- Локальна операційна система сервера передає прийняті пакети до стабу сервера.
- Стаб сервера розпаковує параметри з повідомлення.
- Наприкінці, серверний стаб викликає процедуру на сервері. Відповідь формується та надсилається за цією ж послідовністю, але у зворотньому напрямку
Див. також
Джерела
Олифер В. Г., Олифер Н. А. Сетевые операционные системы. — 2. — СПб. : Питер, 2009. — 669 с. — .(рос.)
Remote Procedure Calls (RPC) — A tutorial on ONC RPC by Dr Dave Marshall of Cardiff University}}(англ.)
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Viklik viddalenih procedur angl Remote procedure call RPC protokol sho dozvolyaye programi zapushenij na odnomu komp yuteri zvertatis do funkcij procedur programi sho vikonuyetsya na inshomu komp yuteri podibno do togo yak programa zvertayetsya do vlasnih lokalnih funkcij Peredacha povidomlenRPC pracyuye za principom protokoliv zapit vidpovid Viklik iniciyuyetsya kliyentom sho nadsilaye povidomlennya viddalenogo servera z zapitom shodo vikonannya zadanoyi proceduri z deyakimi parametrami Viddalenij server nadsilaye vidpovid do kliyenta i dodatok prodovzhuye process sho obroblyaye vidpovid Poki server obroblyuye vidpovid kliyent zablokovanij vin chekaye poki server zavershit svij proces pered tim yak vidnoviti vikonannya svoyeyi zadachi sho napriklad ne vidbuvayetsya pri roboti z asinhroonimi zapitami do servera takimi yak XMLHttpRequest Isnuye duzhe bagato tonkoshiv u realizaciyi cogo principu sho prizvodit do velikogo riznomanittya nesumisnih odne z inshim RPC protokoliv Vazhlivij nyuans polyagaye v tomu sho na vidminu vid lokalnih viklikiv vidalennij viklik mozhe ne dijti cherez neochikuvani problemi z merezhoyu Takozh iniciator vikliku mozhe zitknutis z takimi problemami ne znayuchi sho voni vinikli Idempotentnist proceduri tobto vona ne viklikaye dodatkovogo effektu yaksho yiyi viklikayut bilshe nizh raz mozhna zrobiti ale mozhut viniknuti dodatkovi trudnoshi tomu sho procedura viklikiv zazvichaj vikorisovuye movi nizkogo rivnya Poslidovnist podij Kliyent viklikaye kliyentskij stab Robitsya viklik lokalnoyi proceduri pid chas yakoyi parametri zapisuyetsya u stak Stab zbiraye parametri v povidomlennya i viklikaye sistemnij process nadsilannya povidomlennya Lokalna operacijna sistema kliyenta nadsilaye povidomlennya z kliyentskoyi mashini do servera Lokalna operacijna sistema servera peredaye prijnyati paketi do stabu servera Stab servera rozpakovuye parametri z povidomlennya Naprikinci servernij stab viklikaye proceduru na serveri Vidpovid formuyetsya ta nadsilayetsya za ciyeyu zh poslidovnistyu ale u zvorotnomu napryamkuDiv takozhDistributed Component Object Model Viddalene administruvannya Vzayemodiya mizh procesami CRUD REST Mova opisu interfejsivDzherelaOlifer V G Olifer N A Setevye operacionnye sistemy 2 SPb Piter 2009 669 s ISBN 978 5 91180 528 9 ros Remote Procedure Calls RPC A tutorial on ONC RPC by Dr Dave Marshall of Cardiff University angl Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi https stackoverflow com a 69591570 816449