SOAP - eigener Service vs fremder Service?

Hallo zusammen,

ich bin mit Konzipierung eines Bestellsystems beauftragt, welches mit fremden Systemen über Webservices (SOAP/XML) kommunizieren soll. Die Frage bezüglich dieser Webservices ist nun, welche Vor- und Nachteile es hat, wenn ich einen Webservices in meinem System anbiete (Ein fremdes System stellt den Request an mein System) oder wenn das fremde System den Service anbieten und mein System diesen aufruft (Mein System stellt Request an fremdes System)?

Die Menge der fremden Systeme die mit meinem System kommunizieren liegt bei 1-N, wobei davon auszugehen ist, dass N sich hier zukünftig im 2-stelligen Bereich bewegen wird.

Folgende Überlegungen habe ich hier bereits angestellt:

  1. Fehler
    Biete ich selbst den Webservice an und ein fremdes System ruft diesen auf, so erhält der fremde Anbieter den Fehler und muss hier zunächst Aktiv werden. Andersherum (Ich rufe Webservice bei anderem System auf) muss ich selbst aktiv werden. Von der Seite her wäre es aus meiner Sicht einfacher, wenn ich den Webservice selbst anbiete. Ich sehe die größere Fehlerquelle eher beim Request als beim Response.

  2. Steuerung / Verwaltung fremder Systeme
    Biete ich selbst einen Webservice an, so muss ich die fremden Systeme nicht kennen. Lagere ich die Webservices in fremde System aus, so muss ich jedes andere System kennen und verwalten, sowie jedes Mal im Systeme überlegen, bei welchem System ich jetzt den Service aufrufen muss. Dies spricht also auch wieder für einem Webservice in meinem System.

Gibt es noch weitere Vor- und Nachteile, welche nicht nicht berücksichtigt habe?

Vielen Dank für Eure Antworten.
LG

Hallo,

schon einmal gut auf jeden Fall, dass du dir darüber Gedanken machst. Das machen viele wahrscheinlich nicht :smile:

Im Prinzip steckt die Antwort schon in der Bezeichnung „Webservice“, also ein Dienst. Und das System, welches die fachliche Interpretation eines Services übernimmt, das muss ihn auch anbieten.

Beispiel:
Wenn du ein Bestellsystem hast und darin Bestellungen verwalten möchtest, dann bist du derjenige, der den Webservice anbieten sollte. Deine Kunden nutzen diesen dann. Wenn du z.B. noch eine Lagerverwaltung eines dritten Anbieters verwendest, dann würdest du natürlich dessen Webservice nutzen.

Aber so ganz verstehe ich deine Frage nicht. Wenn du selbst schreibst, dass die Beziehung von deinem System zu fremden Systemen 1:n ist, dann steckt darin eigentlich die Antwort. Du bietest den Service an!

Viele Grüße,
Robert

Hallo,

vielen Dank für die Antwort.

Ja, du hast vollkommen Recht, dass in der 1:N Beziehung eigentlich die Antwort schon drin steckt. Hintergrund der Frage ist eher die, dass mein Vorgesetzter aus seiner business logik heraus die andere Variante favorisiert. Nur macht dies aus systemtechnischer Sicht überhaupt keinen Sinn und ich möchte bei meiner Antwort auch alle Kriterien bedacht haben, daher die Frage, ob ich was nicht bedacht habe.

Hier wäre z.B. noch ein weiterer Punkt, über den man nachenken könnten:

  1. Performance / Anzahl Systemzugriffe
    Webservice in fremde Systeme ausgelagert:
    In diesem Fall hat mein System die Bestellung im direkten Zugriff und kann dazu einen entsprechenden Webservice aufrufen um die Daten weiterzuleiten, aber hier muss das System dann noch den Zielwebservice des Kunden ermitteln (zusätzliches Select, sofern dies nicht mit in der Bestellung verankert ist).
    Webservice im eigenen System:
    Ich erhalte mehr Zugriffe auf mein System vom außen, da die fremden Systeme regelmäßig Abfragen an mein System ausführen, ob es neue/geänderte Daten für Sie gibt.