Кіріспе

Бағдарламалық жасақтамаға қашықтан процедураны орындауға мүмкіндік беретін механизм. Таратылған есептеуде, қашықтан процедураны шақыру (RPC) – компьютерлік бағдарламаның басқа адрестік кеңістікте (көбінесе ортақ компьютерлік желідегі басқа компьютерде) процедураны (қосалқы бағдарламаны) орындауына себеп болуы, бұл бағдарламашы қашықтан өзара әрекеттесудің егжей-тегжейін нақты жазбай, әдеттегі (жергілікті) процедура шақыру сияқты жазылады. Яғни, бағдарламашы субпрограмма жергілікті түрде орындалса да, қашықтан орындалса да, бірдей код жазады. Бұл клиент-сервер өзара әрекеттесуінің бір түрі (шақырушы – клиент, орындаушы – сервер), әдетте сұрау-жауап хабар алмасу жүйесі арқылы іске асырылады. Объектіге бағытталған бағдарламалау парадигмасында RPC қашықтықтан әдіс шақыру (RMI) арқылы бейнеленеді. RPC моделі орналасу туралы ашықтықтың белгілі бір деңгейін білдіреді, атап айтқанда, процедураны шақыру жергілікті немесе қашықтан болсын, көбінесе бірдей болады, бірақ әдетте толықтай сәйкес емес, сондықтан жергілікті шақыруларды қашықтан шақырулардан ажырату қажет. Қашықтан шақырулар әдетте жергілікті шақырулардан әлдеқайда баяу және сенімсіз болады, сондықтан оларды ажырату маңызды. RPC процестер аралық байланыс (IPC) нысаны болып табылады, себебі әртүрлі процестер әртүрлі адрестік кеңістіктерге ие: егер бір хост машинасында болса, физикалық адрестік кеңістік бірдей болғанымен, олардың виртуалды адрестік кеңістіктері әртүрлі болады; ал егер олар әртүрлі хосттарда болса, физикалық адрестік кеңістік те әртүрлі болады. Бұл тұжырымдаманы іске асыру үшін көптеген түрлі (көбінесе үйлесімсіз) технологиялар қолданылған.

Тарих және шығу тегі

Сұрау-жауап протоколдары 1960 жылдардың соңында пайда болған, алғашқы таратылған есептеулер кезінде, 1970 жылдарда желілік операциялар моделі ретінде қашықтан процедура шақыруларының теориялық ұсыныстары жасалды, ал практикалық іске асыру 1980 жылдардың басында жүзеге асты. Брюс Джей Нельсон 1981 жылы «қашықтан процедура шақыруы» терминін енгізгенімен белгілі. Қазіргі операциялық жүйелерде қолданылатын қашықтан процедура шақыруларының тамыры RC 4000 көпбағдарламалық жүйесіне дейін жетеді, ол процестерді синхрондау үшін сұрау-жауап байланыс протоколын қолданды. Желілік операцияларды қашықтан процедура шақырулары ретінде қарау идеясы кем дегенде 1970 жылдарға, ARPANET-тің алғашқы құжаттарына дейін барып жетеді. 1978 жылы Пер Бринч Хансен «сыртқы сұрауларға» негізделген, процестер арасындағы процедура шақыруларынан тұратын таратылған есептеулер тілі – Таратылған процестерді ұсынды. Ең алғашқы практикалық іске асырулардың бірі 1982 жылы Брайан Рэнделл және оның әріптестері UNIX машиналары арасындағы Ньюкасл байланысы үшін жасалды. Осыған ілесіп, Эндрю Биррелл мен Брюс Нельсонның Xerox PARC компаниясының Cedar ортасында жасаған «Люпин» пайда болды. Люпин автоматты түрде штрихтарды жасап, қауіпсіз байланысты қамтамасыз етті және байланыс үшін тиімді протоколды қолданды. RPyC асинхронды шақыруларды қолдаумен RPC механизмдерін Python тілінде іске асырады. Бөлінген Ruby (DRb) Ruby бағдарламаларына бір машинада немесе желіде бір-бірімен байланысуға мүмкіндік береді. DRb процестер арасында командалар мен деректерді беру үшін қашықтан әдіс шақыруын (RMI) пайдаланады. Erlang процеске бағдарланған және таратуды және RPC-ді түйіндер мен жергілікті процестер арасында хабар алмасу арқылы табиғи түрде қолдайды. Elixir Erlang VM-нің үстіне салынған және процестер арқылы (Elixir/Erlang процестері, емес операциялық жүйе процестері) бір желіде байланысты автоматты түрде қамтамасыз етеді. Google-дің Rust RPC Tarpc фреймворкі әзірлеушілерге протобуфты пайдаланудың орнына Rust-тың құрылымдары мен қасиеттерін пайдаланып хабарламалардың құрылымын анықтауға мүмкіндік береді.

Қолданбаға тән

Action Message Format (AMF) Adobe Flex бағдарламаларының AMF қолдауы бар серверлік бөліктермен немесе басқа қолданбалармен байланысуына мүмкіндік береді. Қашықтықтанғы функция шақыру (RFC) – SAP жүйелері арасындағы байланыс үшін стандартты SAP интерфейсі. RFC қашықтағы жүйеде орындалатын функцияны шақырады.