Einstieg in Webservices WSDL/SOAP/XML

Hallo Hackerfreunde,

folgendes Szenario:

Core-Applikation:
Man übergibt auf Linux via Kommandozeilenparameter einer Core-Applikation eine oder mehrere Produktnamen und erhält als Ergebnis die entsprechenden Produktnummern. Das Ganze funktioniert auch andersherum: Produktnummern eingeben, korrelierende Produktnamen erhalten. Bei Fehleingabe von Produktnamen- oder -nummern wird eine entsprechende Fehlermeldung ausgegeben.

Web-Service:
Nun soll die o.g. Funktionalität für die Kommunikation zwischen mehreren Maschinen als neuer Webservice via WSDL/SOAP/XML bereitgestellt werden, d.h. also: Eine andere Maschine soll aus einer Produktnamenanfrage die korrelierenden Produktnummern erhalten und andersherum. Ich habe mich in WSDL/SOAP nun eingelesen und verstehe grundlegend worum es dort geht und wie es funktioniert. Was mir im Augenblick noch fehlt, ist der praktische Einstieg.

1.) Welche Applikationen /Programmiersprachen eignen sich für eine solche Umsetzung auf Linux?
2.) Welche Schritte müssen für die Umsetzung durchgeführt werden?
3.) Wie viel Aufwand steckt in der Umsetzung gem. o.g. Szenario?
4.) Wie werden die gefühlt unendlich großen WSDL-Dateien im XML-Format erzeugt?

Formal geht es nur darum mehrere Strings (Produktnamen) in mehrere Zahlen (Produktnummern) sowie mehrere Zahlen in mehrere Strings aus der Core-Applikation zu gewinnen und diese via Webservice zu übertragen. Die Core-Applikation ist bereits fertig. Es fehlt nur noch der Webservice.


Greetz
Hackse
 
Bei uns auf der Arbeit sind alle SOAP-Schnittstellen in PHP als Webservice umgesetzt (meist mit dem ZEND-Framework). Es gibt mittlerweile aber auch für jede andere gängige Programmiersprache SOAP-Libs oder Frameworks mit SOAP-Unterstützung. Und die WSDLs kannst du entweder selbst von Hand schreiben oder du kannst sie dir auch generieren lassen, wenn die Schnittstelle zu umfangreich wird (Google mal nach "create wsdl php" bspw).

Wie viel Aufwand das ist hängt im Wesentlichen von den Fähigkeiten des Entwicklers ab und wie viel Funktionalität bzw. Intelligenz man in die Schnittstelle bringen möchte. Aber wenn man fertige Libs oder Frameworks benutzt hält sich der Aufwand für den SOAP-Teil ziemlich in Grenzen.

Viel mehr kann ich dir dazu leider nicht sagen. Ich bin nur Hobbyprogrammierer und komme mit SOAP und WSDLs nur als Admin der Serversysteme in Berührung.
 
du stehst vor dem typischen problem eine lokale anwendung, oder teile davon über die systemgrenzen zu erweitern...

das simpelste ist an dieser stelle wirklich, sich eine scriptsprache wie php und einen webserver zu nehmen und damit die core-applikation anzusprechen und das ergebnis zurück zu liefern... mit aufbereitung entsprechend der schnittstelle

die alternative ist das ganze als dedizierten dienst zu verbauen, sprich die funktionen die in der core applikation stecken bibliotheks artig zu verwenden (oder die applikation genauso jedesmal zu starten, was aber wegen dem prozess auf und abbau irgendwann zum performance killer wird), und selbst gehosted einen minimalistischen web service drum herum aufzubauen ... ist in java recht einfach zu machen ... Java: SOAP - Web Service in 15 Sekunden schreiben (Quickstart) | AxxG Blog
 
Danke für Eure Antworten und für das Code-Beispiel.

Habe mich mittlerweile mal programmatisch in die Materie eingearbeitet.

Ich persönliche hätte gSoap via C++ präferiert. Leider wäre das jedoch problematisch, zum einen wegen der GPL und der damit verbundenen Veröffentlichung des Codes, zum anderen dadurch, dass andere interessante Teile des Codes wiederum einer kostenpflichtigen Lizenz unterliegen, während die Abbildung eines Web-Services in anderen Sprachen oft frei ist. Python und Perl wollte ich für dieses Problem nicht heranziehen, weil ich den Code nicht (vollständig) interpretieren lassen wollte (das Parsing der WSDL-Dateien ist bereits performancelastig genug), Web-Services in PHP sollen z.B. nicht optimal mit C-Sharp Clients harmonieren, also habe ich mich für Java entschieden.

Guter Einstiegspunkt für den SOAP-Server in Java:
Web-Service in Java

Die Umsetzung ist straight forward, wenn man verstanden hat wie SOAP und WSDL funktioniert.

Greetz
Hackse
 
Ich will das jetzt nicht weiter ausführen, aber SOAP ist Enterprise aus den 90ern. Bleib bei REST/ROA und JSON, und im Idealfall implementierst du das so, dass das Serialisierungs- und Transportformat einfach austauschbar sind.

Und nicht vergessen: API First.
 
Ich will das jetzt nicht weiter ausführen, aber SOAP ist Enterprise aus den 90ern. Bleib bei REST/ROA und JSON, und im Idealfall implementierst du das so, dass das Serialisierungs- und Transportformat einfach austauschbar sind.

Und nicht vergessen: API First.

Der Kunde verwendet hunderte von SOAP-Schnittstellen. Die enorm hohen Kosten einer Komplettumstellung auf REST/SOA und JSON lässt sich aus Kosten/Nutzen Sicht nicht rechtfertigen, vor allem da die SOAP-Schnittstellen seit 15 Jahren stabil laufen und es daher aus Sicht des Kunden keinen Grund für eine Umstellung gibt.

Aus den o.g. Gründen habe ich mich in die SOAP-Thematik eingearbeitet und die Schnittstellen entsprechend des vom Kunden vorgegeben Standards implementiert.

Da ich grundsätzlich an Technologien interessiert bin und das Thema Web-Services sehr interessant finde, werde ich mich in REST/ROA und JSON entsprechend einarbeiten. Danke für den Hinweis.

Greetz
Hackse
 
Zurück
Oben