Simple Object Access Protocol (SOAP) war das Standardprotokoll für
Webservice in den 2000er Jahren. In den 2010er Jahren wurde SOAP zunehmend durch
REST-basierte Web
APIs (einfache HTTP-Dienste), zunächst mit
XML-
Serialisierung, mittlerweile hauptsächlich mit
JSON-
Serialisierung abgelöst.
Versionen
SOAP 1.2 ist der aktuelle Standard, Stand 27.4.2007:
https://www.w3.org/TR/soap/
SOAP 1.1 war übrigens nie eine
Recommendation, sondern nur im Vorstadium "Note" – dennoch wurde es von allen Herstellern implementiert.
Die für SOAP zuständige Arbeitsgruppe beim
W3C wurde am 10.7.2019 aufgelöst:
https://www.w3.org/2000/xp/Group/
Ein neuerer SOAP-Standard ist aktuell nicht zu erwarten
SOAP
Das beim
World Wide Web Consortium (
W3C) entwickelte SOAP basiert auf der
Extensible Markup Language (
XML) und dem
Hypertext Transfer Protocol (HTTP): Der Aufruf einer entfernten Routine wird in eine
XML-
Datenstruktur verpackt und via HTTP-Request (in der Regel auf dem Standardport 80) vom Client an den Server übertragen. Nach Abarbeitung der Routine verpackt der Server die Rückgabewerte ebenfalls in eine
XML-Struktur und sendet diese per HTTP-Response zurück. Um auf einem System eine Routine per SOAP starten zu können, ist es also Voraussetzung, dass das aufgerufene System über einen HTTP-
Listener verfügt.
SOAP in .NET Core
Der WCF-Client ist partiell vorhanden, der WCF Server nicht geplant von Microsoft.
Offizieller WCF Client für .NET Core
https://github.com/dotnet/wcf
Diskussionen über WCF Server auf .NET Core
https://github.com/dotnet/wcf/issues/1200#issuecomment-356422289
https://www.infoq.com/articles/WCF-Net-Core-Debate/
Community-Projekt für WCF in .NET Core
https://github.com/dotnet/wcf
Alternativen für SOAP in .NET Core
SOAP Core
https://github.com/DigDes/SoapCore
Hierbei ist SOAP als eine Custom Middleware in
ASP.NET Core realisiert (vgl.
https://blogs.msdn.microsoft.com/dotnet/2016/09/19/custom-asp-net-core-middleware-example)
ServiceStack
https://docs.servicestack.net/soap-support
https://docs.servicestack.net/netcore