Hallo Java Freunde,
welche Möglichkeiten gibt es, einen WebService abwärtskompatibel zu gestalten?
Zum Szenario:
Ich benötige einen WebService, der Daten, in Form eines Objektes, von mehreren Clients entgegen nehmen kann und persistent macht (z.B. in eine Textdatei oder eine Datenbank). Das Client-Objekt, welches zum WebService-Server geschickt wird, kann in diversen Versionen vorliegen. Eine neue Version des Client-Objekts entsteht, wenn der Client ein Update der Anwendung ausführt. Das Resultat eines Updates, kann z.B. sein, dass das zu übertragene Objekt ein weiteres Attribut enthält. Der vom Client angesprochene WebService, befindet sich stets in der aktuellsten Programmversion (d.h. er hat auch immer die aktuellste Objekt-Version).
Nehmen wir an, NEU ist die neueste, ALT eine ältere und ÄLTER eine noch ältere Objekt-Version. Wenn alle Beteiligten NEU sind, dann sollte es kein Problem darstellen. Wenn eine beteiligte Client-Anwendung z.B. noch kein Update gefahren hat, befindet sich das zu übertragene Client-Objekt in der Version ALT. Was würde dann passieren? Nehmen wir noch an, dass der WebService ein weiteres Update enthält und sich der Client immer noch nicht upgedatet hat. Somit befindet sich der Client im Zustand ÄLTER (und soll aber trotzdem vom WebService verarbeitet werden können).
Soviel zum Szenario.
Welche Möglichkeiten bestehen ein solches Szenario zu realisieren? Ich würde gerne so etwas wie einen Versions-Verteiler-WebServie vermeiden, da sonst für jede Version des Clients ein WebService zur Verfügung stehen muss. Die Logik auf dem Server sollte auch nicht Versiongetrieben sein. Dadurch würde ich nur eine Schnittstelle haben, jedoch stets wachsenden, redundanten Verarbeitungs-Code.
Habt ihr Ideen, ein solches Szenario sinnvoll zu gestalten? Welche Möglichkeiten gibt es? Ich sehe meine beiden Möglichkeiten nicht als Ansätze einer Lösung, lasse mich aber gerne des Besseren belehren.
Ich lasse diese Anfrage einfach mal so im Raum stehen, um es wirken zu lassen, und bin sehr dankbar für Antworten.
Grüße
welche Möglichkeiten gibt es, einen WebService abwärtskompatibel zu gestalten?
Zum Szenario:
Ich benötige einen WebService, der Daten, in Form eines Objektes, von mehreren Clients entgegen nehmen kann und persistent macht (z.B. in eine Textdatei oder eine Datenbank). Das Client-Objekt, welches zum WebService-Server geschickt wird, kann in diversen Versionen vorliegen. Eine neue Version des Client-Objekts entsteht, wenn der Client ein Update der Anwendung ausführt. Das Resultat eines Updates, kann z.B. sein, dass das zu übertragene Objekt ein weiteres Attribut enthält. Der vom Client angesprochene WebService, befindet sich stets in der aktuellsten Programmversion (d.h. er hat auch immer die aktuellste Objekt-Version).
Nehmen wir an, NEU ist die neueste, ALT eine ältere und ÄLTER eine noch ältere Objekt-Version. Wenn alle Beteiligten NEU sind, dann sollte es kein Problem darstellen. Wenn eine beteiligte Client-Anwendung z.B. noch kein Update gefahren hat, befindet sich das zu übertragene Client-Objekt in der Version ALT. Was würde dann passieren? Nehmen wir noch an, dass der WebService ein weiteres Update enthält und sich der Client immer noch nicht upgedatet hat. Somit befindet sich der Client im Zustand ÄLTER (und soll aber trotzdem vom WebService verarbeitet werden können).
Soviel zum Szenario.
Welche Möglichkeiten bestehen ein solches Szenario zu realisieren? Ich würde gerne so etwas wie einen Versions-Verteiler-WebServie vermeiden, da sonst für jede Version des Clients ein WebService zur Verfügung stehen muss. Die Logik auf dem Server sollte auch nicht Versiongetrieben sein. Dadurch würde ich nur eine Schnittstelle haben, jedoch stets wachsenden, redundanten Verarbeitungs-Code.
Habt ihr Ideen, ein solches Szenario sinnvoll zu gestalten? Welche Möglichkeiten gibt es? Ich sehe meine beiden Möglichkeiten nicht als Ansätze einer Lösung, lasse mich aber gerne des Besseren belehren.
Ich lasse diese Anfrage einfach mal so im Raum stehen, um es wirken zu lassen, und bin sehr dankbar für Antworten.
Grüße