SOAP - Push-Verfahren
Verfasst: Mo Sep 05, 2011 8:30 am
Hello World,
Ich nutze derzeit SOAP für die Umsetzung eines Webservices. Soweit Alles kein Problem, bis auf dass ich mich gerade etwas durch das Request/Response-Modell eingeschränkt fühle.
Ich möchte Folgendes erreichen:
Mein Webservice bietet das Abonnieren eines Service an bei dem der Server fortan immer dann, wenn eine bestimmtes Ereignis eintritt, eine Botschaft an den Client abschickt. Das geschieht solange bis der Client diesen Service wieder abmeldet. Das ist eine Art Push-Service. Da der Client nicht weiss, wann dieses Ereignis eintritt, muss der Server die Initiative ergreifen und dann schicken, wenn es passiert. Ein zyklisches Abfragen durch den Client ist nicht vorgesehen und nicht sonderlich effektiv.
Die Frage:
Gibt es mit SOAP die Möglichkeit ein solches Verfahren zu realisieren? Also, das Senden vom Server zum Client ohne dessen vorherige Anfrage? Ist der SOAP multicast in diesem Bereich vielleicht hilfreich. Ich habe ein paar Dokumentationen gelesen und da wurde dieser erwähnt aber nicht erklärt? Oder muss man einen Workaround anwenden?
Vielen Dank schonmal
Ich nutze derzeit SOAP für die Umsetzung eines Webservices. Soweit Alles kein Problem, bis auf dass ich mich gerade etwas durch das Request/Response-Modell eingeschränkt fühle.
Ich möchte Folgendes erreichen:
Mein Webservice bietet das Abonnieren eines Service an bei dem der Server fortan immer dann, wenn eine bestimmtes Ereignis eintritt, eine Botschaft an den Client abschickt. Das geschieht solange bis der Client diesen Service wieder abmeldet. Das ist eine Art Push-Service. Da der Client nicht weiss, wann dieses Ereignis eintritt, muss der Server die Initiative ergreifen und dann schicken, wenn es passiert. Ein zyklisches Abfragen durch den Client ist nicht vorgesehen und nicht sonderlich effektiv.
Die Frage:
Gibt es mit SOAP die Möglichkeit ein solches Verfahren zu realisieren? Also, das Senden vom Server zum Client ohne dessen vorherige Anfrage? Ist der SOAP multicast in diesem Bereich vielleicht hilfreich. Ich habe ein paar Dokumentationen gelesen und da wurde dieser erwähnt aber nicht erklärt? Oder muss man einen Workaround anwenden?
Vielen Dank schonmal