Remote Procedure Call leicht verständlich

Remote Procedure Call mit oder ohne XML und der Unterschied zu Webservices

Ein Remote Procedure Call, kurz RPC beschreibt eine Client-Server-Anwendung womit der Client eine Prozedur auf dem Server auslöst. Anders ausgedrückt ist RPC nur eine besondere Art und Weise der Durchführung von Webservices. Der Unterschied besteht im Wesentlichen darin, daß bei einem RPC dem Server lediglich der Name der serverseitig auszuführenden Funktion mitgeteilt wird, bei einem Webservice hingegen wird der serverseitige Programmablauf über Schlüsselparameter oder auch Method-Namen gesteuert. Beispielsweise im Rahmen einer serverseitigen Parameter-Kontrollstruktur:

if( $id = $self->param('show') ){
    # Zeige einen bestimmten Eintrag
}
elsif( $self->param('mesg') ){
    # Erzeuge einen neuen Eintrag
}
elsif( $ENV{REQUEST_METHOD} eq 'DELETE' ){
    # Lösche einen bestimmten Eintrag
}

Für RPC's hingegen sieht der serverseitige Code anders aus:

# Deserialisierung, Rückgewinnung der Datenstruktur
# für den wahlfreien Zugriff: Schlüssel-Werte-Paare
$self->param;
my $in = $self->{CGI}{param};

my $methodname = delete $in->{methodname};
my $coderef = $self->can($methodname)
    or die "Unknown methodname '$methodname'\n";

# Mit in %$in verbleibenden Parametern
# wird die namentlich übergebene Methode aufgerufen
$response = $self->$coderef(%$in);

Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. s​os­@rolf­rost.de.