edit
RMI & Web Services
RPC
- Analog zu einem Function Call
- Transparent, ob Function lokal oder remote ist
- Normalerweise ein synchroner Aufruf
- Mit modernen Frameworwks auch asynchron
- Procedure Calls werden gegen einen lokalen Stub aufgerufen, der dann den Aufruf in eine Message verpackt ("marshalling")
- Auf dem Emfpänger empfängt der Server Stub (Skeleton) die Message und called die server procedure
Herausforderungen
- blocking calls
- Fehlgeschlagene Aufrufe wegen Netzwerk-Ausfall
- Der Client muss dies behandeln
- Schwierig für nicht-idempotente Funktionen
RMI
- Jave Implementation von RPC
- Lässt Objekte mit beliebig komplexen Typen übertragen
- Remote Objects werden vom Server in einer Registry eingetragen, damit sie aufgerufen werden können
- Es können auch Klassen-Definitionen in beide Richtungen übertragen werden
- So kann der Client unabhängig von der Implementation der Business Logik sein
- Objects werden über HTTP übertragen
Remote Object
- Objects werden Remote, wenn sie ein Interface implementieren, das von
java.rmi.Remote
ableitet
Probleme
- Enge Kopplung Client-Server wegen Serialisierung
- Gleiche JVM-Version auf Client und Server
- Ist inheränt synchron, während message-based Protokolle inheränt asynchron sind
Interface Description Language
- Sprache, um Interfaces sprachunabhängig zu definieren
Web Services
WSDL
- Web Service Description Language
- Beschreibt das Interface des Servers und dessen Datenstrukturen
- Wird z.B. in WCF verwendet