1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Zusammenhang zwischen SOAP und WSDL

Dieses Thema im Forum "XML Technologien" wurde erstellt von oraclin25, 22. August 2013.

  1. oraclin25

    oraclin25 Erfahrenes Mitglied

    Hallo zusammen,

    ich habe folgenden Text im Internet gefunden:

    Normalerweise greifen unsere Kunden über unsere Web-Oberfläche auf die Daten ihres Accounts zu oder sie lassen sich regelmäßig ihre Daten per Statistik Export und E-Mail zusenden. Allerdings sind diese Daten nur schwer oder überhaupt nicht für eine weitergehende Verarbeitung geeignet.

    Über die Web Services API können Sie ein standardisiertes Verfahren unter Einsatz von SOAP und WSDL zur Abfrage und weiteren Verarbeitung der Daten nutzen.

    Ich habe nicht verstanden, was der rote Text meint; daraufhin habe ich ein bisschen gegoogelt und habe folgende Erkenntnise rausgezogen:
    1. Es gibt offensichtlich eine WSDL-Datei(eine schlichte Datei, sieht aus wie eine XML-Datei)
    2. SOAP ist irgendwie "nur" ein Protokoll zur Datenübertragung zwischen Systemen
    3. WSDL ist eine Beschreibungssprache, ähnlich wie XML-Sprache

    Bei XML-Thematik ist ja klar, dass man die XML-Datei parsen muss; in der XML-Datei steht dann die Logik der Datei.

    Was ist denn hier der Zusammenhang zwischen WSDL und SOAP. Noch verwirrender steht im Text, "über die Web Services API können Sie ..." Was für eine API ist hier gemeint, vielleicht eine Webservices API von irgendeiner höheren Sprace wie Java?

    Vielen Dank für Eure Hilfe.

    Viele Grüße aus Rheinland,

    Eure Ratna;)
     
  2. Martin Honnen

    Martin Honnen Mitglied

    WSDL ist "Web Services Description Language", siehe http://de.wikipedia.org/wiki/Web_Services_Description_Language. Damit werden die Methoden samt Parameter eines Webservice definiert. Es ist richtig, das WSDL ein XML-Format ist. SOAP (http://de.wikipedia.org/wiki/SOAP) ist das Netzwerkprotokoll, in dem der Datenaustausch zwischen Client und Webservice funktioniert. Eine SOAP-Nachricht ist auch wieder ein XML-Dokument.

    Normalerweise schreibt man heute weder als Ersteller des Webservice noch als sein Benutzer selber die XML-Dokumente oder SOAP-Nachrichten, sondern es gibt in den API/Frameworks wie .NET Framework oder Java EE die Möglichkeit (http://docs.oracle.com/javaee/6/tutorial/doc/giqsx.html), mit Klassen bzw. Interfaces und Objekten und ihren Methoden in der Programmiersprache der Wahl (also z.B. C# oder VB oder Java) den Webservice zu implementieren bzw. darauf zuzugreifen, siehe docs.oracle.com/javaee/6/tutorial/doc/bnayn.html.

    Dadurch sollte es zumindest in der Theorie möglich sein, den Webservice z.b. in Java zu implementieren, dann aber mit Clients in anderen Sprachen wie z.B. C# darauf zuzugreifen. WSDL und SOAP haben aber eine gewisse Komplexität, so das die Interoperabilität in der Praxis nicht immer gegeben ist.
     
  3. oraclin25

    oraclin25 Erfahrenes Mitglied

    Hallo Martin Honnen,

    vielen lieben Dank für die ausfühliche Erklärung. So wie ich es verstanden habe:
    1. Es gibt ein Web Service
    2. Es gibt eine WSDL-Datei
    3. Es gibt die Web Service API/Schnittstelle

    Ist 2 = 3 ?

    Was ist denn aber hierbei die Web Service API/Schnittstelle? Der Original-Text sieht wie folgt aus:

    Über die Web Services API können Sie ein standardisiertes Verfahren unter Einsatz von SOAP und WSDL zur Abfrage und weiteren Verarbeitung der Daten nutzen.

    Im Zuge einer serviceorientierten Architektur unterstützen heute alle gängigen Programmiersprachen die Verwendung von Web Services. Es wird eine WSDL-Datei (Web Service Description Language) im Web zur Verfügung gestellt, die die Schnittstelle technisch beschreibt. Damit der Zugriff auf die Web Services API möglich ist, muss jedoch zunächst ein Client erstellt werden, der die WSDL-Datei liest

    Im letzten Satz steht, dass auf die Web Services API zugegriffen werden muss. Ich verstehe nicht wie hier gemeint ist? Ich greife doch nicht auf irgendeine API zu, sondern ich benutze diese API um (in diesem Fall) irgendwelche Sachen zu holen.


    Vielen Dank.

    Viele Grüße aus Rheinland,

    Eure Ratna
     
    Zuletzt bearbeitet: 23. August 2013
  4. Martin Honnen

    Martin Honnen Mitglied

    Das WSDL-Dokument beschreibt die Schnittstelle und ist dazu gedacht bzw. wird üblicherweise dazu benutzt, dass ein Client generiert werden kann.
    Siehe für Java z.b. http://docs.oracle.com/javaee/6/tutorial/doc/bnayn.html#bnayx, da steht: "The HelloAppClient class is a stand-alone application client that accesses the sayHello method of HelloService. This call is made through a port, a local object that acts as a proxy for the remote service. The port is created at development time by the wsimport task, which generates JAX-WS portable artifacts based on a WSDL file.".

    Man kann also mit dem Tool "wsimport" und der WSDL-Beschreibung eines Webservice Javacode generieren, um auf den Webservice zuzugreifen. In Java macht man dann nicht mehr als

    Code (Text):
    1. package appclient;
    2.  // hier wird die von wsimport generierte Klasse importiert
    3. import helloservice.endpoint.HelloService;
    4. import javax.xml.ws.WebServiceRef;
    5.  
    6. public class HelloAppClient {
    7.     @WebServiceRef(wsdlLocation =
    8.       "META-INF/wsdl/localhost_8080/helloservice/HelloService.wsdl")
    9.     private static HelloService service;
    10.  
    11.     /**
    12.      * @param args the command line arguments
    13.      */
    14.     public static void main(String[] args) {
    15.        System.out.println(sayHello("world"));
    16.     }
    17.  
    18.     private static String sayHello(java.lang.String arg0) {
    19.         helloservice.endpoint.Hello port = service.getHelloPort();
    20.         return port.sayHello(arg0);
    21.     }
    22. }
    Dabei wird also vollkommen mit Java gearbeitet, weder SOAP noch WSDL muss der Benutzer des Webservice verstehen, vor allem müssen keine SOAP-Nachrichten oder andere XML-Dokumente erstellt und ausgelesen werden, dass passiert durch den generierten Code.
     
Die Seite wird geladen...