Zdalne procedury: wywoływanie zdalnych procedur, definicji i funkcji

Wielu użytkowników systemów komputerowych słyszało o takich pojęciach, jak zdalne procedury, zdalne wywoływanie procedur lub RPC. Po prostu nie wszyscy sobie wyobrażają, jaka jest technologia, jak działają i czego potrzebują. Jednak wielu z tych, którzy wyłączają tę usługę w systemach Windows, często otrzymuje krytyczne awarie. Ta i inne rzeczy zostaną omówione dalej.

Zdalne wywołanie procedury: co to jest?

Warto zacząć od kilku informacji teoretycznych. Uważa się, że zdalne procedury (zdalne wywoływanie procedur) to mechanizm, który pozwala na uruchamianie lub używanie dowolnej funkcji systemów komputerowych w innym niż terminal w przestrzeni adresowej. Mówiąc najprościej, jest to sposób dostępu do zdalnego komputera, na przykład za pośrednictwem sieci lokalnej lub połączenia internetowego.

Jednak zdalne procedury (wywoływanie procedur zdalnych), oznaczone jako RPC (ang. Remote Procedure Call), można przypisać nie tylko komputerom zdalnym. Na poziomie lokalnym wykorzystywane są również takie technologie. Prostym przykładem jest wywołanie określonej funkcji jednej aplikacji z innego programu poprzez interakcję za pośrednictwem specjalnych bibliotek. Ponadto istnieje taka usługa we wszystkich wersjach systemu Windows, a gdy jest wyłączona lub wyłączona, modyfikacja XP nie działa w ogóle.

Zasada działania

Zazwyczaj usługa zdalnego wywoływania usługi RPC do pracy w trybieKlient-serwer wymaga co najmniej dwóch głównych komponentów: protokołu sieciowego do wymiany danych i języka serializacji (tłumaczenie procesu lub struktury danych na sekwencję bitową).
Architektury mogą być zupełnie inne i różnić się możliwościami. Ale do wymiany danych na tak zwanej "warstwie transportowej najczęściej używane są protokoły UDP i TCP, rzadziej HTTP
.
Aby przejść do aspektów technicznych, najprostsze wyjaśnienie zasady takiej technologii może być następny przykład: proces klienta jest żądanie do serwera wraz z opisem procedur określonych parametrów i wysyła go, a usługa wykonuje niezbędne dyrektywy i wysyła odpowiedź klienta wyświetlany na komputerze klienta. Jednak sam procesor serwera jest, że tak powiem, w trybie gotowości i aktywowany tylko w momentach odbierania żądań klienta. Jednocześnie nie jest konieczne, aby realizacja programu "żądanie-odpowiedź" była realizowana natychmiast.

W tym przypadku maksymalny efekt działania osiąga się, wymieniając stosunkowo małe ilości danych i krótki czas odpowiedzi komponentów, pomiędzy którymi ustanowione jest połączenie interaktywne.

procedury zdalnego (RPC): cechy i wykonania

Zatem, istnieją dwa główne cechy tych technologii
  • asymetria (inicjacja procedur zdalnego wykonanie z tylko jedną stronę);
  • synchronizacja (zawieszenie powodujeprocedury od momentu zgłoszenia wniosku i przedłużenia po wysłaniu odpowiedzi).
  • Jak implementacje procedury zdalnej (RPC) dziś korzystać z wielu podstawowych technologii, najbardziej powszechnie stosowane są następujące:
  • DCE /RPC - binarny protokół oparty na protokole TCP /IP, SMB /SIFC etc. etc. .;
  • DCOM - zorientowanym obiektowo stosowania z możliwością łącza transmisyjnego dla obiektów i wywołać ich metody przetwarzania;
  • JSON-RPC - protokół tekstowy HTTP;
  • NET Remoting - binary protokołu opartego na UDP, HTTP i TCP;
  • JAVA RMI;
  • SOAP;
  • XML-RPC;
  • SUN RPC;
  • ZeroC ICE;
  • Routix.RPC i in.
  • problemy i wyzwania

    Teraz kilka słów o braki. Najważniejszym problemem, a co za tym idzie i problemem implementacji, jest to, że ta sama operacja zdalnego wywoływania procedury przez węzeł usługi "Remote Procedure Call" musi być jednocześnie wykonywana na różnych maszynach, często z różnymi systemami operacyjnymi, przestrzeniami adresowymi i architekturą. W trakcie procesu parametry te muszą być kopiowane z jednego terminala do drugiego. Używa nie tylko transportu, ale serializacji, która pozwala włączyć w sekwencji baytovuyu różnych typów danych. Drugi punkt odnosi się do faktu, że procedura zdalna (RPC) wykorzystać więcej niż jeden proces jest na poziomie lokalnym, a dwa (na komputerze klienta a serwerem). Dlatego awarie jednego z terminali mogą powodować taką samą reakcję na drugiej.
    Wreszcie jeden zgłówny problem nazywa się kompatybilnością ze względu na niejednorodność niektórych języków programowania, nawet pomimo ustalonych wspólnych standardów.

    Główne rodzaje podsystemów

    Remote Procedure Call systemu Windows 10 lub dowolny inny system niższej rangi wymaga użycia specjalnych podsystemów:
  • podsystemu transportowego do zarządzania połączeń wejściowych i wyjściowych z gwarancją dostarczenia pakietów danych;
  • protokoły puli - koncepcja wykonania procedury na tzw. Terminalu;
  • serializacja (marshaling) - przekształcanie strumieni danych w standardowe bajtody niezależne od architektury;
  • szyfrowanie przesyłanych i otrzymywanych paczek z narzuconym na nich podpisem cyfrowym;
  • System uwierzytelniania i autoryzacji.
  • Jakie rodzaje programów wymagają wdrożenia RPC?

    Jeśli mówimy o tym, które moduły oprogramowania systemu operacyjnego wymagają usługi RPC, po prostu nie można ich wszystkich wymienić.
    Ale wśród wszystkich znanych elementów systemów opartych na systemie Windows można zauważyć Fax, Usługi kryptograficzne, błędy rejestracyjnych, pomoc i wsparcie, dostęp do urządzeń HID, wiadomości sieciowe (Messenger), dyski Administracja i partycje logiczne, zarządzają dyski wymienne, audio, instalator Windows i nadal wiem co.

    Wydaje się, że lista jest wystarczająco, aby zrozumieć, jak wiele składników systemu i użytkownika, są zależne od tej usługi.

    Na co wpływa RPC

    Ogólnie, na podstawie poprzedniego opisu, można oszacowaćwpływ RPC. Na przykład, znamy wiele przypadków, gdy odłączenie usługi jest całkowicie stracił dźwięk, okazało się niemożliwe, aby przywrócić system po awarii krytycznych lub inicjowane przez użytkownika „poleciał” się z siecią bezprzewodową. Ale najsmutniejsze jest to, że jeśli wyłączyć zdalne wywołanie procedury RPC, czasami nie można nawet uzyskać dostęp do najważniejszych ustawień systemowych, każdy user Administrator przynajmniej trzy razy na własnym terminalu.

    Możesz wyłączyć tę usługę

    Ogólnie wielu próbowało (i próbuje) dezaktywować usługę Remote Calling Procedures. Jest to surowo zabronione. Zasadniczo sam system, podejmując taką próbę, nie zrobi tego poprzez wydanie powiadomienia.
    Ale nie każdy wie, że w usługach (services.msc) istnieje coś takiego jak „Lokalizator Remote Procedure Call (RPC». Tutaj jest po prostu coś, co można bezpiecznie wyłączyć system. Aplikacje, które mogą z niego korzystać ich praca, niezależnie powodować usługę, jeśli to konieczne.

    Rozwiązywanie problemów i błędów

    w końcu zobaczyć, co można zrobić, jeśli błąd jest w pilota zdalnego wywołania procedury. w najprostszym przypadku można spróbować ponownie (włączyć usługę o ile, oczywiście, )
    W tym celu, w sekcji, gdzie pożądana usługa spowodowane przez dwukrotne kliknięcie przycisku Opcje menu edycji jest włączone, a typ jest ustawiony do automatycznego włączenia. Jeśli wykonasz taką proceduręPrzy standardowym rozruchu system nie jest możliwy, możesz spróbować wykonać podobne akcje w trybie awaryjnym. Niektórzy eksperci doradzają w tym samym czasie, aby po prostu wyłączyć oprogramowanie antywirusowe.
    ​​Jeśli to nie pomoże, ale pod ręką to system disk składnik lub odzyskiwania można uruchomić konsolę poleceń jako root (rozruchu z dysku nie jest to konieczne) i zarejestrować go następujące polecenia:
  • CD z: i386 (Z - List napęd optyczny);
  • expand explorer.ex_% TEMP% explorer.exe;
  • poszerzenie svchost.ex_% Temp% svchost.exe.
  • Po tym run „Zadanie» (Ctrl + Alt + Del lub taskmgr w menu "Uruchom") i kończy się proces Explorer.exe. Następnie konsola poleceń określa następujące: copy% TEMP% explorer.exe% SYSTEMROOT% r /r. W „Menedżer” zatrzymać wszystkie procesy svhost.exe, a następnie w ciągu 60 sekund, aby wejść do wiersza poleceń kopiowania ciąg% TEMP% svchost.exe% systemroot% system32 /r. Wreszcie, jeśli masz dostęp do edytora rejestru (regedit) przywrócone, trzeba przejść przez oddział sekcjach HKCC SYSTEM CurrentControlSet i dostać się do CSConfigFlags ustawień, zmieniając wartość na zero. Jest to dalekie od wszystkich metod naprawiania błędów związanych z RPC. Faktem jest, że jeśli usługa doprowadziło do wadliwego działania innych usług może być konieczne, aby rozwiązać problemy z ich wykonania, a następnie wykonać pewne działania na RPC. Nie zawsze można uzyskać pełny dostęp do ustawień i ustawień opisanych powyżej. Jeśli jesteśmy w ogóle nie działa, niestety brzmi trzeba całkowicie ponownie zainstalować system operacyjny,chociaż chciałbym mieć nadzieję, że tak nie będzie.

    Podsumowanie

    Oto krótkie podsumowanie wszystkiego, co dotyczy technologii i usług RPC. W rzeczywistości wszystko to wygląda o wiele bardziej skomplikowanie, niż zostało to przedstawione w tym opisie, a do pełnego zrozumienia problemu niezbędna jest przynajmniej podstawowa wiedza. Jednak aby mieć ogólne pojęcie o RPC, wciąż wystarczy. Jeśli chodzi o odłączanie, nie myśl o robieniu podobnych rzeczy, w przeciwnym razie cały system odmówi. Te poprawki zazwyczaj pomagają, ale pełna gwarancja nie może zostać udzielona, ​​ponieważ dezaktywacja usługi może spowodować awarie również w innych komponentach.

    Powiązane publikacje