[linux-l] SUN-RPC

Jan-Benedict Glaw jbglaw at lug-owl.de
Fr Dez 12 09:06:31 CET 2003


On Thu, 2003-12-11 22:43:15 +0100, SaintDX <SaintDX at web.de>
wrote in message <001b01c3c02f$c8f12a70$43aee7d9 at teshimaserver>:

[Email neu umgebrochen]

> Das DCOM nutzt prinzipiell den RPC-Dienst, um Daten über ein Netzwerk

Hier ist ein Denkfehler. Es gibt nicht "den" RPC-Dienst. Es gibt viele,
viela Ansätze dazu. RPC heißt ja nichts anderes als "Funktionsaufruf auf
einem fremden Rechner".

Wenn Du eine HTML-Seite mit einem (ausgefüllten) Formular abschickst,
ist das schon RPC: auf der anderen Seite wird das Formular ausgewertet
(ev. sogar sofort, sodaß Du augenblicklich das Ergebnis angezeigt
bekommst). Das ist hier mehr in einem recht großen Rahmen, da Du Dich
nicht um bits und bytes kümmern mußt.

Dann gibt es SUN-RPC: damit kannst Du einzelne (C-)Funktionen ganz
gezielt ausführen.

...und dann ist da noch DCOM+: Du stellst Objekte (resp. deren Methoden)
bereit, was irgendwo zwischen den beiden vorhergehenden Beispielen
steht.

> zu senden und zu empfangen. Im Prinzip ist DCOM quasi ein Parasit, 
> der die RPC-Header und Daten infiziert, um die RPC-Strukturen für

Es gibt nicht "den RPC-Header".

> seine eigene Zwecke zu verwenden. Daher wird DCOM häufig auch als 
> ORPC (Object RPC) bezeichnet. 

> Letztes Semester konnte ich unter Linux zwei Applikationen entwickeln,
> welche mittels Sockets über ein Netzwerk kommunizieren.

...was dann oft ebenfalls eine Art von RPC darstellt:)

> Nun bin ich auf die Idee gekommen, zwei Applikationen zu schreiben,
> eine unter Linux die andere unter Windows, welche mittels RPC, Daten
> austauschen.

Schön. Du denkst an Portabilität.

> Nun existiert unter Linux das SUN-RPC, so weit ich das mitbekommen
> habe, erstellt man x-Files, läßt diese kompilieren und erhält 
> dann entsprechend den Quellcode für die Stubs. 

Ja. Wenn man RPC in der Form von SUN-RPC machen möchte.

> Gibt es unter Linux die Möglichkeit mit einer Applikation unter
> Windows zu kommunizieren, welche nach außen hin eine konkrete
> Schnittstelle anbietet?

Das geht natürlich, ..., genau dann, wenn Du die Schnittstelle kennst.
Weißt Du, wie DCOM "im Innersten der Welt" arbeitet? Wenn Du einen
"char *" verschiffen möchtest (z.B. als Argument einer Funktion), wie
wird der dann aufbereitet?

> Wenn nicht, würde es Sinn machen, so einen Daemon unter Linux zu
> entwickeln, welcher eine RPC-Verbindung mit einer Windows-Applikation
> herstellt?

Vermutlich nicht. Ich rate mal, daß man in 6 Jahren nicht mehr von DCOM
sprechen wird... Das wäre dann wohl vergebene Liebesmüh'.

> Theoretisch müßte man doch nur diese PDU-Pakete empfangen,auswerten
> und entsprechend zurücksenden.

Sicher.

Du wirst dafür in etwa (von der Logik her) soetwas wie die
SUN-RPC-Schnittstelle nachprogrammieren müssen. Das heißt dann:

- Ein Programm, daß die einkommenden Daten (genauer:
  Verbindungsaufbauwünsche) empfängt und weitergibt (das entspricht dem
  "portmap"-Programm).
- Viele kleine Programme, die sich bei dem portmap-Ersatz anmelden und
  ihre "Objekte" zur Verfügung stellen. Das entspricht dann
  (beispielsweise) dem rpc.mountd, rpc.nfsd, rpc.lockd, dem 3ware
  RAID-Überwachungsprogramm, ...).

Vorausgesetzt, daß das DCOM-Kommunikations-Protokoll offengelegt ist,
mach' ich mal so wilde Schätzungen, daß Du etwa 50 Tage mit dem Parser
beschäftigt bist und 5 Tage mit dem portmap-Ersatz. Das sind IMHO
optimistische Schätzungen, _wenn_ die abgeleitete Objekte als neue,
eigenständige Objekte abgebildet werden und die ganze Vererbungs-Theorie
nicht mit ins DCOM-Protokoll eingearbeitet worden ist...

Unter'm Strich rate ich da eher, daß Du mit Corba besser beraten bist...
Nach drei Tagen kannst Du damit effektiv schon 'was anfangen.

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20031212/e409005f/attachment.sig>


Mehr Informationen über die Mailingliste linux-l