WebService Versionierung

MQue

Top Contributor
Hi,

hätte eine Frage zu WebServices bzw. die ihr die Versionierung von Webservices handhabt.
Wir kaufen eine Applikation von einer externen Firma zu welche WebServices anbietet.

Wir gehen dann einfach her und nehmen die WSDL und machen uns über den Eclipse- Wizard einen Client - fertig.

Das Problem ist nur, dass von der externen Firma die WebServices jedes Jahr mindestens 3 mal geändert werden und wir dann 3 mal den Wizard neu anwerfen müssen.
Es werden z.B.: die namespaces geändert. Die heißen bei der Version V3 z.B.: http://firmen.name/V3 und bei der Version 4 dann http://fimen.name/V4.

Meinem Verständnis nach sollte die Version in den Namespaces gar nicht vorkommen denn dann ist ja der WebService nicht mehr abwärzkompartibel. Ich lass mir vielleicht einreden, dass man das so macht, aber in einem Jahr V3, V4 und V5 herauszubringen und als Client muss man das dann nachziehen (Wizard) find ich eher grenzwertig.
Bei einer anderen Appl haben wir das so gelöst, dass es eine Methode bei WebService gibt "getVersion"- mit dieser Methode kann man die Version des WebServices z.B.: über SOAPUI einfach abfragen.

Wie seht ihr das bzw. wie macht ihr das in eurer Firma?
 
Sind die Webservices von dieser "Firma" überhaupt dazu gedacht abwärtskompatibel zu sein?

Wobei, bei solch einer Firma würd ich nie einkaufen, aber hab schon schlimmeres gesehen :lol:
 
Sind die Webservices von dieser "Firma" überhaupt dazu gedacht abwärtskompatibel zu sein?

Wobei, bei solch einer Firma würd ich nie einkaufen, aber hab schon schlimmeres gesehen :lol:

Naja, es gibt mehrere Appl die von diesen WS abhängig sind - mir ist einfach immer unerklärlich wie man sowas machen kann,
das lustigste ist aber, dass es sich da um eine 5 Personen Firma handelt wo wir da einkaufen und wir sind 500 - die 5 tanzen uns auf der Nase herum und haben wahrscheinlich auch noch einen ziemlichen Spass dabei - naja was solls.

lg
MQue

PS: was hast du da schon schlimmes gesehen - würd mich interessieren - vielleicht könntest dus ja kurz schreiben
 
Naja, es gibt mehrere Appl die von diesen WS abhängig sind - mir ist einfach immer unerklärlich wie man sowas machen kann,
das lustigste ist aber, dass es sich da um eine 5 Personen Firma handelt wo wir da einkaufen und wir sind 500 - die 5 tanzen uns auf der Nase herum und haben wahrscheinlich auch noch einen ziemlichen Spass dabei - naja was solls.
tjaaaaa, das blöd :/

PS: was hast du da schon schlimmes gesehen - würd mich interessieren - vielleicht könntest dus ja kurz schreiben

Ach, Anwendungen aus den 70er Jahren die heute noch Produktiv eingesetzt werden. Ist eine Linuxterminalanwendung, die aber spezielle Sachen nutzt und somit nur mit einer einzigen TUN-Software funktioniert. Eigentlich läuft die Anwendung auf dem Linuxserver, aber ganz krank wird es dann, wenn die Anwendung plötzlich ein lokales Batchskript über die TUN-Software aufruft um das lokale Office zu starten, welches dann mit Makros die Word Datei mit Daten aus der Terminalsoftware befüllt. Natürlich alle Pfade hardcodiert, das keine Änderung an der Struktur möglich ist ...
 
Ach, Anwendungen aus den 70er Jahren die heute noch Produktiv eingesetzt werden. Ist eine Linuxterminalanwendung, die aber spezielle Sachen nutzt und somit nur mit einer einzigen TUN-Software funktioniert. Eigentlich läuft die Anwendung auf dem Linuxserver, aber ganz krank wird es dann, wenn die Anwendung plötzlich ein lokales Batchskript über die TUN-Software aufruft um das lokale Office zu starten, welches dann mit Makros die Word Datei mit Daten aus der Terminalsoftware befüllt. Natürlich alle Pfade hardcodiert, das keine Änderung an der Struktur möglich ist ...

Mit sowas in der Arbeit darf ich auch gerade arbeiten, aber es kann ja nur noch besser werden.

@TO Warum baut ihr keine Schnittstelle zwischen den Webservices und dem Wizard? Damit bekommt der Wizard die Daten immer in der gleichen Weise und ihr müsst nur noch die Schnittstelle updaten. Wenn es nur um die NameSpaces gehen würde, könntet ihr auch ein Proxy einrichten der von http://firmen.name/V zu http://firmen.name/Vxxx umleitet und dann nur noch diese geupdated währden müsste.
 
Mit sowas in der Arbeit darf ich auch gerade arbeiten, aber es kann ja nur noch besser werden.

@TO Warum baut ihr keine Schnittstelle zwischen den Webservices und dem Wizard? Damit bekommt der Wizard die Daten immer in der gleichen Weise und ihr müsst nur noch die Schnittstelle updaten. Wenn es nur um die NameSpaces gehen würde, könntet ihr auch ein Proxy einrichten der von http://firmen.name/V zu http://firmen.name/Vxxx umleitet und dann nur noch diese geupdated währden müsste.

Das wäre der Idealfall, aber kein Geld, keine Leute usw. vorhanden ...

Das einfachste wäre halt, einfach keine versionsspezifischen Sachen in die WSDL - aber das wäre zu einfach ... 🙂
 
ESB 🙂 oder einfach Apache Camel, dafür braucht man auch nicht mehr Leute als für die regelmäßige Anpassung an den Webservice
 
Also nen Proxy kostet m.E. auch nicht mehr Aufwand...

Was ändert sich eigentlich sonst noch zwischen einzelnen Versionsnummern?


Wenn sich bei meinen/unseren Webservices die Schnittstelle (in der Struktur) geändert hat, war dies meist in einer fachlichen Änderung begründet. Daher musste dann in der Regel auch der Client angepasst werden.
Wenn sich die zur Verfügung gestellten wsdl's nur in den von dir benannten Punkt unterscheiden, dann kapsele das halt wie schon beschrieben über eine Schnittstelle (DAO-Pattern) die du dann nur noch anpassen musst.


Eine WSDL nach euren WÜnschen wäre natürlich auch machbar, sofern die WSDLs nur euch zur Verfügung gestellt werden und dein Chef auch weiß, dass euch das massiv Zeit kostet.


@Noctarius:

Ist ne neue Technologie / ein ESB nicht etwas viel des Guten?
 

Zurück
Oben