RPC mit at-least-once
-
hallöchen,
es geht hier nur mal um eine kleine Aufgabe, die ich von meiner Uni bekommen hab und von der ich mal meine Lösung von Leuten checken lassen wollte, die sich damit auskennen, weil es doch immer ein nettes Ratespiel ist, was die von mir hören wollen
Gefragt war also, welche Vorkehrungen man bei RPC treffen muss (bezügl. Puffer, Algorithmus, Zusatzinfos in den Messages auf Client- und Serverseite), wenn man at-least-once Fehlersemantik benutzt.
Ich vermute mal die meinen jetzt einfach gegenüber der maybe-Semantik, deshalb hätte ich jetzt einfach mal behauptet, man muss den Pufferinhalt auf der Clientseite speichern, da er ja bei einem timeout nochmal verschickt werden muss, den Algorithmus muss man dann logischerweise auch so ändern, dass er das ganze eben nochmal verschickt, falls es zu einem timeout vorkommt und dass er den Puffer löscht, wenn die Serverantwort zurückkommt. Zusatzinfos in den messages braucht man jetzt mMn nicht, denn der client blockiert ja immer solange, bis eine Antwort zurückkommt, weiß also auch, welche Serverantwort zu welcher Anfrage gehört.
Und den Server müsste man doch komplett unveränder lassen können oder? Also ich würde jetzt mal davon ausgehen, dass der Benutzer davon ausgeht, dass der Server die gleiche Nachricht in ungünstigen Fällen mehrfach bearbeitet.
Stimmt das so alles halbwegs?