Kann Anbieter eines (REST) Webservice seine Konsumenten automatisch benachrichtigen?

MrX

Mitglied
Hallo zusammen,
ich beschäftige mich derzeit mit (REST) Webservices und habe eine Frage, die ich aus Diskussion mit Kollegen und Internetrecherche bisher nicht beantworten konnte:
Funktioniert ein Webservice grundsätzlich so, dass der Nutzer eines Webservice aktiv beim Service-Anbieter durch Aufruf entsprechender URL nachfragen muss, um den Service zu nutzen, oder ist es auch möglich, dass ein Webservice dessen Nutzer (z.B. durch Registrierung am WS) automatisch mit Daten versorgt, ohne dass diese aktiv nachfragen?
In der aktuellen Literatur finde ich nur Beispiele bzgl. aktivem Nachfragen des Konsumenten beim Anbieter.

Hintergrund:
Es sollen Datensätze vom Webservice zum Abruf angeboten werden, die Konsumenten sollen aber nicht aktiv danach "fragen", sondern sich am Webservice "registrieren" (?) und somit über neue/update/delete Datensätze automatisch informiert werden.

Wenn es für meine Frage ein Beispiel, Link oder sonstiges Infomaterial gibt, danke schon einmal für eure Hilfe!
 

Thallius

Top Contributor
Jetzt überleg doch einmal. Wie soll er denn informiert werden? Soll der Postbote ihm ein Paket bringen? Ich glaube nicht. Er soll sich die Daten in einer App, Programm oder was auch immer ansehen. Was muss er also machen? Er muss diese App starten. Was macht dann dieser App? Sie schaut nach ob es was neues gibt. Du brauchst also die andere Richtung gar nicht.

Ansonsten sind Notifications dafür gedacht den User darauf aufmerksam zu machen das es etwas neues gibt. Diese schicken aber eben nur die Info "Es gibt was neues in einem Satz" und dann muss der User immer noch die App öffnen und sich die Daten ansehen.

Gruß

Claus
 

MrX

Mitglied
Hi,
Jetzt überleg doch einmal. Wie soll er denn informiert werden? Soll der Postbote ihm ein Paket bringen? Ich glaube nicht.
=> Überflüssig

Er soll sich die Daten in einer App, Programm oder was auch immer ansehen. Was muss er also machen? Er muss diese App starten. Was macht dann dieser App? Sie schaut nach ob es was neues gibt. Du brauchst also die andere Richtung gar nicht.
Dass man "die andere Richtung nicht braucht" hängt wohl eher stark vom Szenario ab. Wenn der Serviceanbieter nur alle paar Stunden einen neuen Datensatz zur Verfügung stellt, der Nutzer aber sekündlich beim Anbieter nachfragt, um zeitnah die Daten konsumieren zu können, ist dies aus Performance-Gründen sicherlich nicht ratsam?

Deswegen hört sich der Hinweis bzgl. "Notifications" aus meiner Sicht gut an:

Ansonsten sind Notifications dafür gedacht den User darauf aufmerksam zu machen das es etwas neues gibt. Diese schicken aber eben nur die Info "Es gibt was neues in einem Satz" und dann muss der User immer noch die App öffnen und sich die Daten ansehen.

Bzgl. Notifications habe ich in der Tat jetzt noch nichts gelesen, es stellt sich aber auch hier dann wieder für mich deine Eingangsfrage, wie die Notification an den-, bzw. die Konsumenten gesendet werden? Ich vermute nicht per Post. WS-Notifications (https://de.wikipedia.org/wiki/WS-Notification) ist hier die Basistechnologie?

Den Ablauf stelle ich mir dann wie folgt vor:
  • Neuer Datensatz X wird durch App. A erzeugt.
  • App. A weist Webservice an, eine Notification ("Neuer Datensatz X") an die registrierten Konsumenten zu senden (PUT).
  • Konsument(en) empfängt/empfangen Notification und sendet/senden an WS eine Anfrage, um den Datensatz X anzufragen (GET).
Szenarien für POST (Update) und DELETE je nach Bedarf.

Wäre das in etwa der Weg, so etwas umsetzen zu können?

Grüße...
 

mrBrown

Super-Moderator
Mitarbeiter
Ja, ziemlich genau das ist der Weg - man muss es halt nur noch technisch umsetzen ;)

Möglichkeiten gibts einige.
zB eine dauerhafte TCP-Verbindung zum Server offen halten, oder die Clients halten selbst einen Server offen und registrieren sich als Hook, etc
 

Thallius

Top Contributor
Ja, ziemlich genau das ist der Weg - man muss es halt nur noch technisch umsetzen ;)

Möglichkeiten gibts einige.
zB eine dauerhafte TCP-Verbindung zum Server offen halten, oder die Clients halten selbst einen Server offen und registrieren sich als Hook, etc

Und warum nicht einfach einen der tausend Push notification Anbieter nehmen? Bei Apple ist das sogar integriert.
 

mrBrown

Super-Moderator
Mitarbeiter
Und warum nicht einfach einen der tausend Push notification Anbieter nehmen? Bei Apple ist das sogar integriert.
Weil man bei nem Java-Desktop-Client für Linux schlecht den in iOS integrierten nutzen kann? ;P

Und zumindest habe ich seine Frage so verstanden, dass ihr die technische Umsetzung interessiert...
 

AndyJ

Bekanntes Mitglied
Ein Webservice ist eine ziemlich einseitige Geschichte. Der Client schickt einen Request und der Webservice die Response. Fuer deine Anforderung musst du mehrere Technologien kombinieren. Im Webbereich gibt es z.B. Websockets. Da baut der Client eine Verbindung auf, die dann vom Server gehalten wird. Wenn's was Neues gibt, kann der Server ein Update senden. Eine andere Moeglichkeit waere einen Webservice auf beiden Seiten einzurichten. In so einem Szenario kann der Client sich beim Server registrieren, indem er eine URL sendet. Der Server kann dann Neuigkeiten an diese URL senden. Ist sozusagen eine Server-Server Kommunication via Callback.

https://en.wikipedia.org/wiki/WebSocket
https://en.wikipedia.org/wiki/Observer_pattern
http://soapatterns.org/design_patterns/service_callback

Cheers,
Andy
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T "Parent" Node eines Attributes XML & JSON 2
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
R Zugriff auf Inhalt eines Elements XML & JSON 2
D DTD genaue Anzahl eines Elements XML & JSON 0
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
A Fehler beim Erzeugen eines XML-Schema XML & JSON 4
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
G xpath: Inhalt eines Kindelements auslesen XML & JSON 2
T Möchte JSP Code in Attribut eines HTML Tags hinein generieren XML & JSON 3
T xsl schleife alle kindeelemtente eines elternelementes durchlaufen XML & JSON 2
K XML als Inhalt eines DropDown XML & JSON 6
M Probleme beim Parsen eines gefilterten XML-Dokuments XML & JSON 6
S XMLStreamReader, letzten eintrag eines xml lesen? XML & JSON 5
F Marshaling eines JAXB Objektes worin ein anderes JAXB Objekt eingeschlossen ist XML & JSON 6
C Kompletten Inhalt eines Tags ausgeben XML & JSON 2
G Welche Klassen zum erzeugen/auslesen eines XML Files verwend XML & JSON 9
Wildcard Namespace Präfixe eines Elements XML & JSON 8
G XML Export und Import eines Files. gibts Tutorials o.ä? XML & JSON 2
G Rekonstruktion eines XML Dokumentes XML & JSON 3
M TextContent eines XML-Elements enthält HTML-Tags . was nun XML & JSON 2
J DOM: Attribut und Inhalt eines Elements nachträglich ändern? XML & JSON 3
H Elemente eines Node auslesen XML & JSON 2
P Problem beim erstellen eines neuen Elements (JDOM) XML & JSON 5
K Größe eines JDOM-Dokuments XML & JSON 6
S Problem beim Erstellen eines pdfs XML & JSON 3
T Rest-API Status-Code 415: Unsupported Media Type XML & JSON 3
K Hilfe bei Integration von Rest API in Homepage XML & JSON 3
LimDul SOAP & Rest Service - Contract First XML & JSON 2
D Rest Api und komplexe Objekte XML & JSON 3
S Java REST Client + Json XML & JSON 8
B JAXB-Fehler bei REST-Api XML & JSON 0
R JDOM Root-Element entfernen aber Rest behalten XML & JSON 10

Ähnliche Java Themen

Neue Themen


Oben