WebService Concurrency

Generic1

Top Contributor
Hallo,

ich habe eine Frage zum WebService und zwar wie schaut es im Zusammenhang mit Webservices mit der
Cuncurrency aus?
Muss ich da beim WebService- Code darauf achten, dass mehrere User zur gleichen Zeit einen "WebService- Operation" aufrufen oder ist da eine andere Methodik dahinter?
lg
 
G

Gast2

Gast
Solltest du. Normalerweise wird ja irgendwo in deinem Servlet doPost/doGet aufgerufen. In der Methode solltest du z.B. keine Objecte sharen. Idealerweise von da weiterdeligieren. Oder aber besser gleich ein Framework einsetzen (z.B. Axis).
 

Generic1

Top Contributor
Ja, Axis wird eh eingesetzt aber WebServices und Servlets sehe ich jetzt nicht direkt in einem Zusammenhang ausser das beides Web- Technologien sind. Kannst du das mit den Servlets nochmal erklären, wie du das meinst?
lg
 

Generic1

Top Contributor
Ok, der Zusammenhang war mir nicht klar,
also zusammenfassend kann man sagen, dass man im WebService- Code auf die Concurrency- Problematik aufpassen muss und da WebServices sicher von mehr als einem Client benutzt werden. ist das bei WebServices immer ein Thema.

Kann man das so sagen?
lg
 

Noctarius

Top Contributor
Kommt auf deine Implementierung an, generell sollte man bei Web-Dingen niemals Instanzvariablen nutzen und Parameter nur als Parameter innerhalb des eigenen Threads nutzen.
Nur bei externen Instanzen wo Daten geändert werden muss man auf Concurrency achten. Aber das sollte man sowieso immer. Nicht nur bei Webanwendungen. Wenn Code von Anfang an sauber implementiert wird sollte er auch immer gleich Threadsafe gemacht werden. So spart man sich später eventuelle Probleme.

Ergo Ja und Nein: Ja man muss drauf achten, Nein es ist kein Sonderfall sondern sollte immer beachtet werden.
 

Keo

Mitglied
Webservices werden idealerweise zustandslos entworfen. Um eine möglichst hohe Skarlierbarkeit zu erreichen, bietet jedoch Axis2 -ähnlich wie das Servlet-API- verschiedene Typen von Sessions an, die unterschiedliche Lebensdauer und Scopes haben. Stichwort Session Verwaltung. Beim Session Management geht es darum, client-spezifische Informationen zu verwalten, zur Laufzeit wird es zwar je deployten Service nur eine Service-Instanz geben, jedoch könnte durch den Session Scope zur Laufzeit mehrere Instanzen der Implementierungsklasse existieren und somit auch mehrere Service-Kontexte, die jeweils ihre eigenen Lebenszyklus haben.
 

Generic1

Top Contributor
Geht die Session- Verwaltung auch mit Axis 1.4, ich hab nämlich momentan den Fall, dass sich die ganze Logik in den JSPs befindet - auch die Session- Verwaltung -> und das muss ich in meinen WebService bekommen (WebService mit Axis 1.4) -> deshalb brauch ich die Session- Verwaltung für Axis 1.4!?
lg
 

Noctarius

Top Contributor
Dann entwerfe doch gleich ein sauberes, zustandsloses, neues System. Aus Legacy Gründen kann man das alte System noch eine Weile laufen lassen, Kunden aber ans Herz legen möglichst zeitnah die neue Schnittstelle zu implementieren.
 

Generic1

Top Contributor
Das Problem ist, ich brauche die Session- Verwaltung, da ich verschiedene User mit verschiedenen Berechtigungen habe. Ein zustandsloses System würde da nicth gehen.
lg
 

Noctarius

Top Contributor
Doch, du brauchst halt nur ein transparentes Authorisierungssystem, z.B. per BasicAuth. Du musst bei keiner Anwendung irgendwas in einer Session halten. Das ist generell (meiner Ansicht nach) ein schlechtes Softwaredesign. Wir haben in der Firma bei altem Code genau das Problem.
 

Noctarius

Top Contributor
Wieso befürchtet? Ist doch nichts schlimmes wenn man nicht gerade einen Login mit Minutenberechnung hat.

Wenn man einen Servlet-Container hat kann man das Auth relativ simpel in einem Servlet-Filter abhandeln, noch bevor man am eigentlichen WebService ankommt. Damit kann man sich den Code sauber halten und hat eine sichere Authentifizierung vorweg :)
 
G

Gast2

Gast
Man kann es auch noch eine Ebene tiefer machen mit SSL Client Zertifikaten. Ist halt nur sinnvoll bei einer recht fest eingegrenzter Menge an Clients.
 

weeedoo

Mitglied
Wenn man einen Servlet-Container hat kann man das Auth relativ simpel in einem Servlet-Filter abhandeln, noch bevor man am eigentlichen WebService ankommt. Damit kann man sich den Code sauber halten und hat eine sichere Authentifizierung vorweg :)
Ich finde es eigentlich sehr nett, dass ich die ServiceMethoden mithilfe der Port-Referenz direkt aus dem Client benutzen kann. Irgendwie kann ich mir nicht vorstellen wie ich da ein Servlet zwischen packen soll... würden dann nicht die Vorteile die ein WebService bietet verloren gehen?
Höchstwahrscheinlich ist die Frage totaler Quatsch..entschuldigt mein Halbwissen :oops:
 

Noctarius

Top Contributor
Irgendwo hast du schon ein Servlet, was aber im Hintergrund von den Frameworks bereitgestellt wird. Schau mal in deine web.xml da müsste ein Servlet und ein passendes Mapping hinterlegt sein.

Vor dieses Servlet kannst du nun z.B. einen ServletFilter hängen, der unabhängig von der dahinterliegenden Implementierung die Authorisierung vornimmt.

Dies könnte BasicAuth oder eben ein SSL Zertifikat sein oder auch (dann natürlich mit etwas Handarbeit) Logindaten im XML.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Error beim Versuch, einen Webservice zu kontaktieren SOA 4
J SOA WebService JAX-WS Java-Klasse per wsimport generieren lassen SOA 3
K Webservice: 4 counts of IllegalAnnotationExceptions SOA 0
D Zertifikat Authentifizierung am Webservice SOA 0
P JBOSS 7 und Restful Webservice SOA 1
N WebService Ausgabe einer ArrayList SOA 2
N Web Services Client aus externen WebService erstellen SOA 4
I SOAP Webservice Methoden und Parameter auslesen SOA 3
F [WebService] Array von eigenen Objekten SOA 0
P SOAP Webservice mit HTTP Basic Authentifizierung SOA 1
M JAVA Webservice Währungsrechner DRINGEND Hilfe SOA 1
A Up-/ Download von Dateien zu WebService SOA 6
D WebService Technik - Aufwand Änderung des Application Server SOA 3
R Webservice Timeout Konfiguration SOA 3
D SOAP Webservice (SAP) SOA 3
MQue WebService Versionierung SOA 9
L [AXIS2] OutOfMemory Exception bei Übertragung von größerer Datei via Webservice SOA 3
A Funktion mit Map als WebService SOA 4
T Webservice serviceName im Handler ermitteln SOA 3
N Webservice Einbinden wsdl SOA 7
M Edit und Remove über Webservice SOA 3
F Client Problem gegen Webservice SOA 3
P Java Webservice mit JWS Bindingnamen customizen SOA 4
L wie ArrayList an Webservice geben? SOA 3
B Webservice Config / SoapStub: Best Practice SOA 3
S Objektübertragung Fehler über Webservice SOA 10
E Webservice durch Java ansprechen SOA 7
L Webservice HTTPS Netbeans SOA 2
G NullPointerException bei Parameterübergabe an Webservice mittels kSoap2 SOA 2
M Webservice per URL ansprechen SOA 14
M Webservice Client erstellen und XML Request senden SOA 3
T Verwendung von Eclipse Projekten im Axis2 Webservice SOA 8
S Webservice als "CronJob" SOA 4
M Webservice (JaxWS) extern verfügbar machen SOA 5
M Welches WebService Framework ist denn das beste FRAMEWORK? SOA 5
D Webservice fürs Internet sichtbar machen SOA 2
W WebService aus einer HTML-Seite SOA 9
T WebService innerhalb von Seam-Projekt, komplexe Datentypen SOA 6
N JAX-WS WebService und Tomcat 7 SOA 11
E Trennung von Daten und WebService und Wiederverwendung der Daten SOA 2
D Sicherheit bei REST-Webservice SOA 19
G WebService, was darf der Client alles sehen SOA 19
M Nutzen des Webservice AWSECommerceService SOA 1
S AXIS2 Webservice: Umgang mit komplexen Datentypen SOA 5
G Webservice Contract first SOA 8
G WebService -> ServletFilter SOA 2
M Fehler beim Veröffentlichen eines Webservice SOA 6
G WebService Types SOA 7
G OpenLigaDB Webservice Client SOA 4
G WebService WSDL SOA 3
A PHP WebService aus Java aufrufen SOA 2
R Proxy WebService erstellen SOA 3
G JPA/ Webservice: Passwort Feld einer Klasse fürs Lesen "verschleiern" SOA 10
G WebService mit wsdl erstellen SOA 4
P WebService SOA 6
H Webservice: BindingProvider SOA 6
D WebService DB abfrage SOA 4
mabe83 EJB Klassen für Webservice nutzen SOA 2
S Webservice-Client-Klasse gibt immer null zurück SOA 3
G WebService mit komplexen Objekten SOA 5
C Problem mit Java Webservice - SOAPBinding.Style - Wrapper class fehlt SOA 1
T Rest Webservice der 2 verschiedene XML Objekte(JaxB) entgegennimmt SOA 10
S Webservice, Vererbung und Netbeans SOA 3
E Lesen der kompletten SOAP als WebService Provider/Server SOA 4
T WebService Authentifizierung SOA 11
mabe83 Suche Hilfe zum Thema Webservice + EJB SOA 3
T WebService erstellen SOA 28
T Krankes Vorhaben: Von VB auf Java Webservice SOA 10
M Webservice RuntimeModelerException? SOA 5
G Webservice mit Java aufrufen SOA 2
G WebService: mehrere methoden mit demselben Namen SOA 4
T einfacher Webservice SOA 3
G Webservice im JBoss: runtime modeler error SOA 3
V webservice von aussen (webbrowser) ansprechen SOA 2
V Webservice, allgemeine Fragen SOA 9
G Alfresco - WebDav oder WebService SOA 2
0 Webservice nutzen (rpc/enc style) SOA 2
R XML verschicken mit Webservice Server Client SOA 2
R Webservice aufrufen mit SOAP Style.DOCUMENT ? SOA 5
G Webservice zugreifen SOA 6
G Deploy Apache CXF WebService mit Eclipse SOA 2
G Webservice mit JSON SOA 8
T Webservice über Tomcat loggen SOA 5
thE_29 WebService - JAXBElement - richtige Klasse? SOA 2
L Probleme mit komplexen Datentypen in einen Webservice SOA 2
O brauche hilfe bei java/webservice geschichte SOA 29
M Webservice/ Axis/ Bea Weblogic Server 8.1 SOA 12
E Webservice konfigurieren SOA 2
Y Webservice erstellen SOA 4
F Tutorial zu WebService mit JBoss, Eclipse und Jax-ws? SOA 3
C Webservice im Unternehmen SOA 4
L webservice frage (eclipse/wtp, wsdl) SOA 12
U Webservice mit Axis, Hello World Beispiel SOA 2
J Frage zu Webservice SOA 3
L WebService TestClient Problem SOA 2

Ähnliche Java Themen

Neue Themen


Oben