Commit f99d2dc1 authored by Blanke, Daniela's avatar Blanke, Daniela
Browse files

Update distributed-soap.html

parent b9c120b8
Pipeline #8025 passed with stage
in 1 minute and 10 seconds
......@@ -2,13 +2,13 @@
<h4>SOAP</h4>
<p>Eine konkrete RPC-Implementierung ist hingegen das XML-basierte Protokoll <i><a href="https://www.w3.org/TR/soap/">SOAP</a></i>, das seit 2000 vom <a href="https://de.wikipedia.org/wiki/World_Wide_Web_Consortium">W3C</a> als empfohlener Standard etabliert worden ist. Wie wir noch im Detail sehen werden, definiert SOAP ein XML-Schema zur Repräsentation der auszutauschenden Daten in XML und nutzt die üblichen Protokolle des <a href="https://de.wikipedia.org/wiki/Internetprotokollfamilie">TCP/IP-Modells</a> zur Nachrichtenübertragung, auf oberste Ebene i.d.R. HTTPS. Ursprünglich war SOAP ein Akronym für <i>Simple Object Access Protocol</i>. Seit der aktuellen <a href="https://www.w3.org/TR/soap12/">Version 1.2</a> soll SOAP aber nicht mehr als Abkürzung sondern als Eigenname verstanden werden, da es subjektiv nicht unbedingt einfach (<i>simple</i>) ist und nicht ausschließlich dem Zugriff auf Objekte (<i>object access</i>) dient. Historisch geht SOAP auf das Protokoll <a href="https://en.wikipedia.org/wiki/XML-RPC">XML-RPC</a> zurück, das Microsoft und Dave Winer 1998 veröffentlicht haben.</p>
<p>Eine konkrete RPC-Implementierung ist hingegen das XML-basierte Protokoll <i><a href="https://www.w3.org/TR/soap/">SOAP</a></i>, das seit 2000 vom <a href="https://de.wikipedia.org/wiki/World_Wide_Web_Consortium">W3C</a> als empfohlener Standard etabliert worden ist. Wie wir noch im Detail sehen werden, definiert SOAP ein XML-Schema zur Repräsentation der auszutauschenden Daten in XML und nutzt die üblichen Protokolle des <a href="https://de.wikipedia.org/wiki/Internetprotokollfamilie">TCP/IP-Modells</a> zur Nachrichtenübertragung, auf oberster Ebene i.d.R. HTTPS. Ursprünglich war SOAP ein Akronym für <i>Simple Object Access Protocol</i>. Seit der aktuellen <a href="https://www.w3.org/TR/soap12/">Version 1.2</a> soll SOAP aber nicht mehr als Abkürzung, sondern als Eigenname verstanden werden, da es subjektiv nicht unbedingt einfach (<i>simple</i>) ist und nicht ausschließlich dem Zugriff auf Objekte (<i>object access</i>) dient. Historisch geht SOAP auf das Protokoll <a href="https://en.wikipedia.org/wiki/XML-RPC">XML-RPC</a> zurück, das Microsoft und Dave Winer 1998 veröffentlicht haben.</p>
<span>Im Folgenden soll das Bankkontoservice-Anwendungsbeispiel aus dem vorherigen <a href="#unit-rmi" class="navigate">Kapitel zu RMI</a> in einen SOAP-Webservice überführt werden. Dabei soll die fachliche Funktionaliät des Anwendungsbeispiels möglichst nicht verändert werden. Die einzelnen Methoden des Webservice sind:</span>
<ul>
<li><code>String createAccount(String: owner)</code>: In dieser Methode wird ein neues Bankkonto für den angegebenen Eigentümer erzeugt. Die eindeutige Id des Kontos (vom Typ <code>java.util.UUID</code>) wird in ihrer String-Repräsentation zurückgegeben. Die Klasse <code>java.util.UUID</code> selbst kann nicht als Input- oder Return-Argument verwendet werden, da die Klasse keinen leeren Default-Konstruktor besitzt, der für die Objekterzeugung per Reflection API erforderlich ist.</li>
<li><code>void addAccountEntry(String id, AccountEntry entry)</code>: In dieser Methode wird einem Bankkonto ein neuer Kontoeintrag (<code>AccountEntry</code>) hinzugefügt. Ein Kontoeintrag besteht weiterhin aus einem Betreff, einem Wert und einem Buchungsdatum. Der Klasse <code>AccountEntry</code> ist ein leerer Default-Konstruktor hinzugefügt worden.</li>
<li><code>AccountEntry[] getAccountEntries(String id)</code>: Diese Methode gibt alle Kontoeinträge zu einem Konto als Array zurück. Da die Bibliothek <a href="https://javaee.github.io/jaxb-v2/">JAXB (Java Architecture for XML Binding)</a> nicht ohne weiteres Schnittstellen wie z.B. <code>java.util.List</code> verarbeiten kann, ist das Return-Argument der Methode ein Array. JAXB übernimmt in der Java-Implementierung (s. unten) implizit die Serialisierung von Java-Objekten in eine XML-Repräsentation und die Deserialisierung in die andere Richtung.</li>
<li><code>AccountEntry[] getAccountEntries(String id)</code>: Diese Methode gibt alle Kontoeinträge zu einem Konto als Array zurück. Da die Bibliothek <a href="https://javaee.github.io/jaxb-v2/">JAXB (Java Architecture for XML Binding)</a> nicht ohne Weiteres Schnittstellen wie z.B. <code>java.util.List</code> verarbeiten kann, ist das Return-Argument der Methode ein Array. JAXB übernimmt in der Java-Implementierung (s. unten) implizit die Serialisierung von Java-Objekten in eine XML-Repräsentation und die Deserialisierung in die andere Richtung.</li>
<li><code>int getAccountBalance(String id)</code>: Diese Methode gibt den Saldo (= Summe der Werte aller Kontoeinträge) eines Kontos zurück.</li>
</ul>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment