Service-Discovery
# Service-Discovery

Service-Discovery bezeichnet die automatische Erkennung von Diensten in einem Rechnernetz. Hierbei kommen Kommunikationsprotokolle zum Einsatz, welche beschreiben, wie sich die Dienste finden, um miteinander kommunizieren können.
Grundsätzlich unterscheidet man zwischen zwei Gruppen von Service-Discovery-Protokollen (SDPs):
* Dienste registrieren sich in einem Dienst (einer Registry) und können über diesen gefunden werden. Dieser Dienst kann sowohl zentral wie auch dezentral (z. B. Peer-to-Peer) organisiert sein.
* Dienste fragen mittels Broadcasting das gesamte Netzwerk nach einem bestimmten Dienst. Der gesuchte Dienst oder ein Dienst (eine Registry) antworten auf diese Anfrage.

## Protokolle

Häufig eingesetzte Service-Discovery-Protokolle sind:
* Service Discovery Protocol (SDP) bei Bluetooth
* DNS-Based Service Discovery (DNS-SD) im Domain Name System (RFC 6763)
* Dynamic Host Configuration Protocol (DHCP, DHCP RFCs)
* Internet Storage Name Service (iSNS, RFC 4171)
* Apache River für Java-Objekte.
* Service Location Protocol (SLP, RFC 2165, RFC 2608)
* Session Announcement Protocol (SAP, RFC 2974) für RTP-Sessions
* Simple Service Discovery Protocol (SSDP) für Universal Plug and Play (UPnP)
* Universal Description, Discovery and Integration (UDDI) für Webservices, die WS-Interoperability unterstützen
* Web Proxy Autodiscovery Protocol (WPAD)
* Web Services Dynamic Discovery (WS-Discovery) für SOAP-Dienste
* XMPP Service Discovery (XEP-0030)
* eXtensible Resource Descriptor Sequence (XRDS) für XRI, OpenID, OAuth etc.
Zudem gibt es noch weitere und proprietäre Protokolle. So unterstützt etwa Consul sowohl das Discovery über DNS-SD, als auch über eine REST-Schnittstelle.