www.wikidata.de-de.nina.az
Dieser Artikel beschaftigt sich mit dem Internet Protokoll Fur weitere Bedeutungen siehe Soap SOAP im TCP IP Protokollstapel Anwendung SOAPHTTP HTTPS Transport TCPInternet IP IPv4 IPv6 Netzzugang Ethernet TokenBus TokenRing FDDI SOAP ursprunglich fur Simple Object Access Protocol ist ein Netzwerkprotokoll mit dessen Hilfe Daten zwischen Systemen ausgetauscht und Remote Procedure Calls durchgefuhrt werden konnen SOAP ist ein industrieller Standard des World Wide Web Consortiums W3C SOAP stutzt sich auf XML zur Reprasentation der Daten und auf Internet Protokolle der Transport und Anwendungsschicht vgl TCP IP Referenzmodell zur Ubertragung der Nachrichten Die gangigste Kombination ist SOAP uber HTTP und TCP SOAP kann beispielsweise auch uber SMTP 1 oder JMS 2 verwendet werden Die mit der Nachricht ubermittelten Nutzdaten mussen nicht zwingend in XML gesendet werden andere Formate wie Base64 oder CSV sind auch moglich 3 4 Die Abkurzung SOAP wird offiziell ab Version 1 2 nicht mehr als Akronym gebraucht da es erstens subjektiv keineswegs einfach Simple ist und zweitens nicht nur dem Zugriff auf Objekte Object Access dient Inhaltsverzeichnis 1 Geschichte 2 Arbeitsweise 3 Aufbau von SOAP Nachrichten 4 Arbeiten mit SOAP 5 Implementierungen 6 Auf SOAP basierende Erweiterungen 7 Siehe auch 8 Weblinks 9 EinzelnachweiseGeschichte BearbeitenDave Winer der Vater von RSS 2 0 und Microsoft entwickelten 1998 die Spezifikation fur XML RPC Als Weiterentwicklung daraus entstand SOAP das Ende 1999 in Version 0 9 veroffentlicht wurde Die Reaktion der Entwickler war jedoch noch sehr zuruckhaltend Spater im Jahr 1999 wurde die Version 1 0 veroffentlicht Das war der Zeitpunkt an dem die Entwicklung mehr Unterstutzung fand Dies kann man vor allem daran erkennen dass sich IBM im Jahr 2000 der Entwicklung von SOAP anschloss was dazu fuhrte dass IBM Microsoft DevelopMentor Don Box und UserLand Software Dave Winer die Spezifikation von SOAP 1 1 beim World Wide Web Consortium W3C einreichten Dabei wurde das Ziel verfolgt eine Arbeitsgruppe anzustossen die SOAP weiterentwickeln sollte Das Ergebnis dieser Arbeitsgruppe ist SOAP Version 1 2 die im Juni 2003 als Empfehlung englisch recommendation anerkannt wurde Eine wichtige Anderung war dass SOAP seither kein Akronym mehr ist da samtliche Deutungen fur SOAP wie Simple Object Access Protocol oder Service Oriented Architecture Protocol den vollstandigen Sinn von SOAP nicht treffen Dadurch dass SOAP nicht mehr als gebrauchliche Abkurzung verstanden wird wurde es moglich SOAP als Markennamen in den USA anzumelden Arbeitsweise BearbeitenSOAP ist ein Protokoll zum Austausch XML Information Set basierter Nachrichten uber ein Rechnernetz und hat den Status einer W3C Empfehlung Es stellt Regeln fur das Nachrichtendesign auf Es regelt wie Daten in der Nachricht abzubilden und zu interpretieren sind und gibt eine Konvention fur entfernte Prozeduraufrufe mittels SOAP Nachrichten vor SOAP macht keine Vorschriften zur Semantik applikationsspezifischer Daten die versendet werden sollen sondern stellt ein Rahmenwerk framework zur Verfugung welches erlaubt dass beliebige applikationsspezifische Informationen ubertragen werden konnen SOAP wird fur entfernte Prozeduraufrufe ebenso genutzt wie fur einfache Nachrichtensysteme beziehungsweise zum Datenaustausch Zum Senden von Nachrichten konnen beliebige Transportprotokolle verwendet werden beispielsweise FTP SMTP HTTP oder auch JMS In der Praxis wird aufgrund der Kompatibilitat mit gangigen Netzwerk Architekturen wie Firewalls meist auf HTTP zuruckgegriffen Auch ist mittels HTTPS die verschlusselte Ubertragung von SOAP Nachrichten moglich Das ermoglicht jedoch keine End to End Verschlusselung Diese wird durch WS Security ermoglicht das auf der Ebene der Nachrichten und nicht auf der Ebene des unterliegenden Transportprotokolls ansetzt Das XML Information Set der SOAP Anfrage wird bei Nutzung von HTTP S im Body eines HTTP POST Requests als XML an eine gegebene URL geschickt SOAP wird regelmassig dort eingesetzt wo der direkte Zugang fremder Systeme zu einer Informationsquelle nicht sinnvoll erscheint Dies kann an Kompatibilitatsproblemen zwischen verschiedenen Anwendungsarchitekturen liegen aber auch an Sicherheitsaspekten So kann der partielle Zugriff auf eine Datenbank ermoglicht werden ohne dass dem Anwenderprogramm der direkte Zugang gestattet werden muss Uber die SOAP Schnittstelle kann die Menge der ausfuhrbaren Methoden reglementiert und definiert werden Die Kommunikation mit SOAP ermoglicht die Kopplung von Systemen der offene Entwurf von SOAP ermoglicht jedoch lediglich den Aufbau schwach gekoppelter Systeme Die Flexibilitat des Konzeptes wird durch Nachteile in Ubertragungsvolumen und Rechenaufwand erkauft Das XML Dokument muss beim Sender zunachst aufgebaut und anschliessend validiert werden Das Konzept verfolgt das Ziel eines leichtgewichtigen Protokolls aufgrund des flexiblen Einsatzbereiches fuhrt die zu ubertragende Datei jedoch eine Reihe von Metadaten mit sich die bei der Konstruktion des XML Dokuments hinzugefugt werden So fuhrt beispielsweise das einfache Versenden von Wahr oder Falsch zu einem Datenvolumen von mehreren hundert Bytes obwohl in einem stark gekoppelten System theoretisch ein Bit reichen wurde Durch die Moglichkeit des flexiblen Aufbaus des Dokuments konnen jedoch komplexe Transaktionen in einer Anfrage atomar zusammengefasst werden wahrend in stark gekoppelten Systemen hierzu oftmals mehrere Anfragen gestellt werden mussen Dies verbessert das Nutzlastverhaltnis Nutzdaten zu Meta Daten und den Kommunikationsaufwand fur den Aufbau einer Verbindung nur ein Senden Empfangen SOAP unterscheidet zwischen dem endgultigen Empfanger und Zwischenempfangern Dies ermoglicht es eine Nachricht uber verschiedene Hops zu schicken bei denen sogar verschiedene Transportprotokolle verwendet werden Beispielsweise kann zum ersten Hop die Nachricht mittels Java Message Service geschickt werden danach uber E Mail und schliesslich dem Empfanger mittels HTTP Der Absender muss uber die Zwischenhops keine Information haben die Middleware jedoch schon Aufbau von SOAP Nachrichten Bearbeiten nbsp SOAP StrukturEine minimale SOAP Nachricht besteht aus einem Envelope genannten Element welchem ein lokaler Name zugewiesen werden muss Dieses Element referenziert mittels eines Namensraum Attributes auf http www w3 org 2003 05 soap envelope Kind dieses Elements muss ein Body Element sein Optional kann zuvor ein Header Element stehen In diesem konnen Meta Informationen beispielsweise zum Routing zur Verschlusselung oder zu Transaktionsidentifizierung untergebracht werden Im Body Element sind die eigentlichen Nutzdaten untergebracht Struktur einer SOAP Nachricht lt xml version 1 0 gt lt s Envelope xmlns s http www w3 org 2003 05 soap envelope gt lt s Header gt lt s Header gt lt s Body gt lt s Body gt lt s Envelope gt Innerhalb des Body Elements konnen sowohl Informationen zum Datenaustausch als auch Anweisungen fur einen entfernten Prozeduraufruf stehen Dies ist vom Empfanger entsprechend zu interpretieren Im Header wird der nachste Hop intermediary und der endgultige Empfanger ultimate recipient angegeben 5 Ein intermediary kann beispielsweise die Nachricht verschlusseln sie loggen oder die Nachricht aufteilen Ersteres erlaubt es dass die Anwendungslogik sich nicht um die Sicherheit der Nachricht kummern muss sondern dies die Middleware ubernimmt Die Moglichkeit dass Intermediaries beliebige Dinge tun konnen ermoglicht Enterprise Application Integration beispielsweise mit den EAI Patterns von Gregor Hohpe und Bobby Woolf 6 Arbeiten mit SOAP BearbeitenSOAP wird zur Datenbankabfrage uber eine Internet Schnittstelle genutzt Beispielsweise nutzen eBay oder auch Amazon diese Technik zur Abwicklung von Suchanfragen Im Folgenden soll uber eine Internet Schnittstelle bei einer zentralen Datenbank nachgefragt werden ob dort eine Arbeit mit dem Titel DOM SAX und SOAP vorliegt und diese gegebenenfalls zuruckgegeben werden Diese Datenbank stellt hierzu die Methode TitleInDatabase zur Verfugung die den Titel als Eingabe verlangt Eine Anfrage konnte dann wie folgt aussehen lt xml version 1 0 gt lt s Envelope xmlns s http www w3 org 2003 05 soap envelope gt lt s Body gt lt m TitleInDatabase xmlns m http www lecture db de soap gt DOM SAX und SOAP lt m TitleInDatabase gt lt s Body gt lt s Envelope gt Diese SOAP Anfrage enthalt kein Header Element Das Element TitleInDatabase ist nicht Teil der SOAP Definition sondern anwendungsspezifisch Der Server empfangt die Nachricht und wertet sie aus Dabei kann zum Einlesen der Nachricht sowohl SAX als auch DOM verwendet werden In diesem Fall mag sich ein SAX Parser empfehlen der auf startElement TitleInDatabase eine entsprechende Datenbankabfrage aufruft deren Eingabewert beim nachsten character Ereignis eingelesen wird So kann eine Parallelitat zwischen dem Einlesen und dem Auswerten der Nachricht erreicht werden Anschliessend wird in diesem Beispiel eine SOAP Nachricht als Antwort zuruckgegeben lt xml version 1 0 gt lt s Envelope xmlns s http www w3 org 2003 05 soap envelope gt lt s Header gt lt m RequestID xmlns m http www lecture db de soap gt a3f5c109b lt m RequestID gt lt s Header gt lt s Body gt lt m DbResponse xmlns m http www lecture db de soap gt lt m title value DOM SAX und SOAP gt lt m Choice value 1 gt Arbeitsbericht Informatik lt m Choice gt lt m Choice value 2 gt Seminar XML und Datenbanken lt m Choice gt lt m title gt lt m DbResponse gt lt s Body gt lt s Envelope gt Der Server hat seiner Antwort ein Header Element angehangt welches in diesem Beispiel die Anfragekennung zuruckliefert Die angefragte Information findet sich wiederum im Body der Nachricht In diesem Fall wurden zwei Arbeiten gefunden und dem anfragenden System zuruckgesendet Dies fuhrt im Folgenden zu einer wechselseitigen Kommunikation einem dialogorientierten Austausch von XML Dokumenten mittels SOAP an deren Ende schliesslich die Ubermittlung des angeforderten Elements stehen wird Implementierungen BearbeitenApache CXF Fortfuhrung von Codehaus XFire Apache Axis Jakarta EE mSOAP kSOAP und Java API for XML Web Services API fur Java AWS Web Development Framework Curl package in CURL XML SOAP cSOAP und gSOAP fur C C PHP SOAP nuSOAP und PEAR SOAP Projekt fur PHP Python SOAP ZSI SOAPpy SUDS und Zeep sind SOAP Bibliotheken fur Python SOAP WSDL Open Source Toolkit fur Perl SOAP fur VisualWorks Smalltalk WebMethods GLUE SOAP4R und Savon fur Ruby TCLSOAP 7 fur die Skriptsprache Tcl 4th Dimension Qt Soap Teil der Solutions Add on der Qt Bibliothek KDSOAP Qt4 5 native Library mit einem Konverter von WSDL nach C Qt FEAST Ein Client Server Framework fur die Qt Bibliothek wsdl2objc Open Source Toolkit fur Objective C NET Framework 2 0 Zu Serialisierungszwecken in System Runtime Serialization Formatters Soap System Web Services NET Framework 3 x 4 x WCF System Web ServicesAuf SOAP basierende Erweiterungen BearbeitenWS Reliability Web Services Reliability Sicherheitsmechanismen um z B Transaktionen verlasslich abwickeln zu konnen 8 WS Security Web Services Security Sicherstellen von Integritat und Vertraulichkeit von Nachrichten 9 WSRP Web Services for Remote Portlets Integration von Prasentationslogik in Portale 10 weitere Spezifikationen WS TR 069 CPE WAN Management Protokoll CWMP Siehe auch BearbeitenServiceorientierte Architektur SOA auf SOAP oder ahnlichen Protokollen basierende Architektur UDDI setzt auf SOAP auf nutzt SOAP WSDL Beschreibungssprache fur auf SOAP basierte Schnittstellen inkl einer Nachrichten Beschreibung SoapUI Werkzeug fur den Test von SOAP Nachrichten Hessian Burlap alternative Protokolle MTOM Protokoll furs Versenden von Binardaten innerhalb von SOAP Nachrichten SOAP with Attachments W3C Vorschlag fur den Transport von SOAP Nachrichten innerhalb von MIME Nachrichten DSSP ein auf SOAP basierendes Protokoll 11 fur das Microsoft Robotic Developer StudioFerner REST CORBA Middleware Komponente Software Komponentenbasierte Entwicklung Internet Communications Engine ICE Universal Network ObjectsWeblinks BearbeitenW3C SOAP Specifications englisch XML protocol activity englisch Beispiel fur einen WebService mit Java SOAP Schritt fur Schritt Anleitung fur die Implementation eines WebServices in Java mit SOAP Stand 2008 deutsch Technologiebericht englisch xml coverpages org Sicherheit fur SOAP mit Tomcat und AXIS PDF deutsch Einzelnachweise Bearbeiten en SOAP Version 1 2 Email Binding en SOAP over Java Message Service 1 0 en SOAP Message Construct en XmlCsvReader Implementation en SOAP Processing Model en Patterns and Best Practices for Enterprise Integration TclSOAP Web Services Reliable Messaging TC WS Reliability 1 1 Web Services Security Memento vom 16 September 2012 im Internet Archive Web Services for Remote Portlets Specification Decentralized Software Services Protocol DSSP 1 0V DStandards des World Wide Web Consortiums W3C Empfehlungen ActivityPub ARIA Canonical XML CDF CSS DOM Geolocation API HTML HTML5 InkML ITS JSON LD MathML OWL P3P PLS PNG RDF RDF Schema RIF SCXML SISR SKOS SMIL SOAP SRGS SSML SVG SPARQL Timed Text Turtle VoiceXML WSDL XForms XHTML XHTML RDFa XInclude XLink XML XML Base XML Encryption XML Events XML Information Set XML Namespace XML Schema XML Signature XPath XPointer XProc XQuery XSL XSL FO XSLT Elemente nbsp Arbeitsentwurfeund Kandidaten CCXML CURIE SMIL Timesheets sXBL WICD XFrames XBL XHTML MathML SVG XMLHttpRequestAnmerkungen XAdES XFDL XHTML SMIL XUPRichtlinien Web Content Accessibility Guidelines Multimodal Interaction Activity Markup Validation ServiceInitiativen Web Accessibility InitiativeWebserver SchnittstellenProtokolle CGI SCGI FastCGI AJPAPIs C NSAPI C ASAPI C ISAPI Java Servlet ASP NET Python WSGI Ruby Rack JavaScript JSGI Perl PSGI Lua WSAPI Apache Module mod jk mod lisp mod parrot mod perl mod php mod python mod wsgi mod ruby Phusion Passenger Web APIs WSDL XML RPC SOAP REST Abgerufen von https de wikipedia org w index php title SOAP amp oldid 238742686