Etäproseduurikutsu

Etäproseduurikutsu on ohjelmoinnissa ja käyttöjärjestelmäsuunnittelussa käytetty paradigma hajautetun järjestelmän toteuttamiseen. Hajautettu järjestelmä voidaan toteuttaa käyttöjärjestelmätasolla tai sovellustasolla, jolloin voidaan käyttää ohjelmointirajapintoja, ohjelmistokehyksiä ja tietoliikenneprotokollia apuna.[1]

Hajautettuja käyttöjärjestelmiä ovat esimerkiksi Apollo Computer -yrityksen Domain/OS sekä Bell Labsin Plan 9.

Tarkoitukseen kehitettyjä rajapintoja ja protokollia:[2]

  • RPC (Remote Procedure Call, "Sun RPC", IETF-standardoitu, eri toteutuksia)
  • CORBA (Object Management Group)
  • DCOM (Microsoft)
  • RMI (Remote Method Invocation, Java)

Menetelmä

Etäproseduurikutsujärjestelmän kaavio.

Etäproseduurikutsussa ohjelma etenee kahden prosessin kautta: asiakasohjelma (client) kutsuu palvelinohjelmaa (server).[3] Asiakasohjelma lähettää kutsuviestin parametreineen palvelinohjelmalle ja jää odottamaan vastausta.[3] Palvelinohjelma, joka on ollut odottamassa kutsuviestiä, käsittelee kutsun parametrit, suorittaa toiminnon ja lähettää vastausviestin, sekä jää odottamaan seuraavaa kutsuviestiä.[3] Asiakasohjelma saa vastausviestin, käsittelee tuloksen ja jatkaa suoritusta.[3]

Mallissa vain toinen ohjelma kerrallaan on aktiivisena toiminnon suorituksessa, mutta totetus voi käyttää rinnakkaisuutta sekä asynkronisia kutsuja.[3]

Lähteet

  1. Arpaci-Dusseau, Remzi H. & Arpaci-Dusseau, Andrea C.: Introduction to Distributed Systems (PDF) Arpaci-Dusseau Books. Viitattu 3.6.2019. (englanniksi)
  2. https://www.oreilly.com/library/view/oracle-database-10g/9780072263251/9780072263251_ch11lev1sec1.html
  3. a b c d e RPC Model IBM. Viitattu 3.6.2019. (englanniksi)

Aiheesta muualla

  • A Critique of the Remote Procedure Call Paradigm (PDF) (englanniksi)