Oddaljeni postopki: klic oddaljenih postopkov, definicij in funkcij

9. 4. 2019

Mnogi uporabniki računalniških sistemov so slišali za koncepte, kot so oddaljeni postopki, oddaljeni postopki klicev ali RPC. Ampak samo ne vsi si predstavljajo, kakšne tehnologije so, kako delujejo in za kaj so. Toda mnogi od tistih, ki so onemogočili to storitev v sistemih z operacijskim sistemom Windows, lahko pogosto dobijo napake, povezane s kritičnimi napakami. O tem in še veliko več bomo razpravljali kasneje.

Klic oddaljenega postopka: kaj je to?

Vredno je začeti z nekaterimi teoretičnimi informacijami. Oddaljeni postopki (oddaljeni klici v postopku) veljajo za mehanizem, ki vam omogoča zagon ali uporabo vseh funkcij računalniških sistemov v naslovnem prostoru, ki se razlikuje od uporabljenega terminala. Preprosto povedano, to je način za dostop oddaljenega računalnika na primer prek lokalnega omrežja ali internetne povezave.

oddaljeni postopki kličejo oddaljene postopke

Vendar pa se oddaljeni postopki (klici oddaljenih postopkov), imenovani RPC (kratica za oddaljeni postopek v angleščini), ne pripisujejo samo oddaljenim računalnikom. Na lokalni ravni se uporabljajo tudi te tehnologije. Kot preprost primer lahko pokličete določeno funkcijo enega programa iz druge aplikacije prek interakcije prek posebnih knjižnic.

Poleg tega imajo absolutno vse različice operacijskega sistema Windows takšno storitev, in če je onemogočena ali pa napaka pri spremembi XP sploh ne deluje.

Načelo delovanja

Storitev RPC za oddaljeni klic procedur za operacijo odjemalec-strežnik praviloma zahteva vsaj dve glavni komponenti: omrežni protokol za izmenjavo podatkov in jezik za serijsko rabo (prevod neke strukture procesnih ali informacijskih podatkov v bitno zaporedje).

okno 10 oddaljenega postopka

Arhitekture so lahko popolnoma drugačne in se razlikujejo po svojih zmožnostih. Za izmenjavo podatkov na tako imenovani transportni ravni se najpogosteje uporabljajo protokoli UDP in TCP, manj pogosto - HTTP.

napaka klica oddaljenega postopka

Da ne bi šli v tehnične vidike, je lahko najpreprostejša razlaga, kako takšne tehnologije delujejo, naslednji primer: proces odjemalca oblikuje zahtevo za strežnik, ki opisuje izbrani postopek s podanimi parametri in ga pošlje, po katerem strežnik izvede zahtevano direktivo in pošlje odjemalcu odgovor, ki je prikazan na odjemalcu. avto. Vendar pa je sam upravljalnik strežnika, tako rekoč, v stanju pripravljenosti in se aktivira samo v času sprejemanja odjemalskih zahtev. Hkrati pa sploh ni potrebno, da se izvajanje sheme „zahteva-odgovor“ izvede takoj.

Hkrati se doseže največji učinek delovanja pri izmenjavi relativno majhnih količin podatkov in kratkega odzivnega časa komponent, med katerimi je vzpostavljena interaktivna povezava.

Oddaljeni postopki (oddaljeni klic postopka): funkcije in izvedbe

Tako lahko ločimo dve glavni značilnosti teh tehnologij:

  • asimetrija (začetek oddaljenega postopka samo ena od strank);
  • sinhronosti (prekinitev klicnega postopka od trenutka, ko je zahteva sprožena in se nadaljuje po pošiljanju odgovora).

Pri implementacijah pa daljinski postopki (klic oddaljenih postopkov) danes uporabljajo več osnovnih tehnologij, med katerimi so najbolj razširjene naslednje:

  • DCE / RPC je binarni protokol, ki temelji na TCP / IP, SMB / SIFC itd.
  • DCOM je objektno usmerjen dodatek, ki omogoča prenos referenc na objekte in klicne metode za njihovo obdelavo;
  • JSON-RPC - protokol na osnovi HTTP;
  • .NET Remoting - binarni protokol na osnovi UDP, TCP in HTTP;
  • Java RMI;
  • SOAP;
  • XML RPC;
  • SUN RPC;
  • ZeroC ICE;
  • Routix.RPC et al.

Težave in naloge

Zdaj pa nekaj besed o pomanjkljivostih. Glavni problem in zato tudi izvedbena naloga je, da mora biti ista operacija klicev oddaljenega postopka prek storitvenega vozlišča za oddaljeni klic postopkov hkrati izvedena na različnih strojih, pogosto z različnimi operacijskimi sistemi, prostorskimi naslovi in ​​arhitekturo. . Pri tem je treba te parametre kopirati iz enega terminala v drugega. V ta namen se uporablja ne le transportni protokol, temveč tudi serijsko, kar omogoča pretvorbo različnih bajtnih zaporedij podatkovnih tipov.

Druga točka je povezana z dejstvom, da oddaljeni postopki (klic oddaljenih postopkov) ne uporabljajo enega procesa, kot na lokalni ravni, ampak dva (na odjemalskem stroju in na strežniku). Zato lahko nenormalna prekinitev programa na enem od terminalov povzroči enako reakcijo na drugi.

Končno, eno od glavnih vprašanj je problem združljivosti zaradi heterogenosti nekaterih programskih jezikov, kljub uveljavljenim enotnim standardom.

Glavni tipi podsistemov

Oddaljeni klic operacijskega sistema Windows 10 ali katerega koli drugega sistema z uvrstitvijo spodaj pomeni uporabo posebnih podsistemov:

  • transportni podsistem za upravljanje odhodnih in dohodnih povezav z zagotovljeno dostavo podatkovnih paketov;
  • Protokoli za bazene - koncept postopka na imenovanem terminalu;
  • serijsko (marshaling) - pretvorba podatkovnih tokov v standardne bajtne kode, neodvisne od arhitekture;
  • Šifriranje poslanih in prejetih paketov z uvedbo digitalnega podpisa na njih;
  • sistema za preverjanje pristnosti in avtorizacije.

Katere vrste programov zahtevajo izvajanje RPC?

Če govorimo o tem, kateri moduli programske opreme operacijskega sistema zahtevajo, da omogočite storitev RPC, je preprosto nemogoče vse našteti.

oddaljeni postopek rpc onemogoči

Toda med vsemi dobro znanimi komponentami sistemov Windows lahko omenimo storitve faksa, storitve kriptografije, beleženje napak, pomoč in podporo, dostop do naprav HID, storitve messenger, upravljanje diskov in logičnih particij, izmenljivo upravljanje shranjevanja podatkov, avdio sistem, namestitveni program Windows in drugo Bog ve kaj.

Zdi se, da je ta seznam dovolj za razumevanje, koliko komponent sistema in uporabnik sam je odvisen od te storitve.

Na kaj vpliva RPC

Na splošno lahko na podlagi prejšnjega opisa ocenite učinek RPC. Tako je na primer veliko primerov, ko je ob prekinitvi te storitve zvok popolnoma izginil, ni bilo mogoče obnoviti sistema po kritičnih napakah ali ko ga je uporabnik sprožil, so nastavitve brezžičnega omrežja »odletele«.

Toda najbolj žalostno je, da če izklopite oddaljeni klic postopka RPC, je včasih nemogoče celo dobiti dostop do osnovnih sistemskih nastavitev, biti uporabnik vsaj trikratni administrator na svojem terminalu.

Ali je mogoče onemogočiti to storitev

Mnogi so poskusili (in poskušajo) izklopiti storitev oddaljenega klica. To je strogo prepovedano. Na splošno sistem sam, pri izvajanju takšnega poskusa tega ne bo dal, izdajo ustreznega obvestila.

rpc daljinski postopek klic lokator

Ampak ne vsi vedo, da je v storitvenem oddelku (services.msc) še vedno taka stvar, kot je "Remote Locator Call Locator RPC". Tukaj je mogoče samo sistem brez bolečin izklopiti. Aplikacije, ki jih lahko uporabijo pri svojem delu, bodo po potrebi neodvisno zahtevale servis.

Odpravljanje napak in napak

Nazadnje pa poglejmo, kaj lahko naredimo, če se med klicem oddaljenega postopka generira napaka. V najpreprostejšem primeru lahko poskusite znova omogočiti storitev (če seveda uspe).

oddaljeni postopek klic storitve rpc

V ta namen v ustreznem razdelku, kjer se nahaja storitev, dvokliknite meni za urejanje parametrov, pritisnite gumb za vklop in vrsta vklopa je nastavljena na samodejno. Če tega postopka ni mogoče izvesti s standardnim sistemskim zagonom, lahko poskusite izvesti podobna dejanja v varnem načinu. Nekateri strokovnjaki svetujejo ob istem času, za vsak slučaj, onemogočiti protivirusno programsko opremo.

oddaljeni postopek pokliče, kaj je to

Če to ne pomaga, vendar imate nameščen ali obnovitveni disk sistema, lahko zaženete ukazno konzolo s skrbniškimi pravicami (ni vam treba zagnati z diska) in vanje vnesite naslednje ukaze:

  • cd z: i386 (Z je črka optični pogon) ;
  • razširite explorer.ex_% TEMP% explorer.exe;
  • Razširite datoteko svchost.ex_% TEMP% svchost.exe.

Po tem zaženite upravitelja opravil (Ctrl + Del + Alt ali taskmgr v meniju Zaženi) in končajte postopek Explorer.exe.

Nato v ukazno konzolo napišite naslednje: copy% TEMP% explorer.exe% SYSTEMROOT% / y.

V »Dispečerju« zaustavimo vse procese svhost.exe in v 60 sekundah moramo imeti v ukazni vrstici čas za vnos vrstice kopije% TEMP% svchost.exe% systemroot% system32 / y.

Nazadnje, če imate dostop do urejevalnika registra (regedit) obnovljen, morate iti skozi oddelek HKCC prek razdelkov SYSTEM in CurrentControlSet in se pomakniti do parametra CSConfigFlags in spremeniti vrednost na nič.

To niso vse metode popravljanja napak, povezanih z RPC. Dejstvo je, da če je ta storitev povzročila motnje pri delu drugih storitev, boste morda morali najprej odpraviti težave z njihovim delovanjem in šele nato ukrepati proti RPC. In ni vedno mogoče dobiti popolnega dostopa do zgoraj opisanih parametrov in nastavitev. Če se sploh ne zgodi nič, ne glede na to, kako žalostno se sliši, boste morali v celoti ponovno namestiti operacijski sistem, čeprav bi rad upal, da se to ne bo zgodilo.

Zaključek

Tukaj je kratko in vse, kar se nanaša na tehnologijo in storitve RPC. Pravzaprav je vse to precej bolj zapleteno, kot je bilo predstavljeno v tem opisu, za popolno razumevanje vprašanja pa je potrebno imeti vsaj osnovno znanje. Vendar, da bi imeli splošno idejo o RPC, je to še vedno dovolj.

Kar se tiče zaustavitve, ne poskušajte narediti teh stvari, sicer bo celoten sistem neuspešen. Zgornje rešitve za odpravljanje napak ponavadi pomagajo, vendar še vedno ni mogoče zagotoviti popolnega jamstva, saj bi lahko izklop storitve povzročil okvare drugih komponent.