Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#6

Re: WebService - Nur mit webserver möglich?

  Alt 20. Feb 2010, 16:56
Zitat von moelski:
Wird jeder Client der den Webservice nutzt mit einem eigenen Thread bedient?
Und wenn ja ... Dann kann ich ja nicht ohne weiteres mit der Hauptanwendung Daten austauschen ... !?
Web Services werden meist zustandslos gestaltet. Jeder Request ist also nicht Bestandteil einer "Session". Wie bei simplen HTTP, das zustandslos ist. Der Web Service Aufruf führt nur eine Operation auf dem Server aus, die das dortige Datenmodell ändert oder abfragt.

Bei Microsoft CRM zum Beispiel besteht der gesamte Web Service nur aus Objekten zum anlegen, suchen, speichern und löschen der bereitgestellten Geschäftsobjekte - vier sehr einfach gestrickte Methoden.

Wenn man einen Zustand der Web Anwendung benötigt, führt das zu einigem Aufwand: jeder Request muss einer Session zugeordnet werden (über eine Art Transaktions-ID) und der gesamte Zustand der Sitzung muss irgendwo gespeichert und von dort her wieder geladen werden, wenn der nächste Request eintrifft. Die Wartung solcher Monster ist aufwendig. Auch sind diese Zustände nicht einfach skalierbar: wenn jedesmal ein anderer Server den nächsten Request beantworten soll (bei Load Balancing), muss der gesamte Zustand auch auf diesem Server bereitgestellt werden.

Keines der Web Service Frameworks die ich bisher kennen gelernt habe arbeitet mit Zuständen, aber es waren auch noch nicht so viele

Bei WCF (Windows Communication Framework) hat man die dazu nötigen CookieContainer bei der neueren Version aber einfach über Bord geworfen:

http://stackoverflow.com/questions/1...cf-web-service

Darin wird empfohlen, mindestens dreimal nachzudenken, bevor man Zustand in einem Web Service einbaut...


Viele Grüße,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat