PDA

View Full Version : [java/servlet/JSP] Generica risposta su concorrenza


Univac
22-04-2008, 14:20
Salve, avrei bisogno di un chiarimento anche solo generico riguardante la concorrenza di accesso ad un file in ambito web.
:fagiano:
Mi spiego:
In un sito web in cui i dati sono memorizzati su file di testo XML,
come e' possibile gestire la concorrenza sull'aggiornamento di questo file?

Io ho la possibilita' di usare 3 alternative di programmazione.

1- Server(java) + client(Applet) che qui vabbe', credo di sapere come fare (visto che il server genera thread per ogni richiesta) ma vorrei evitare....

2- Servlet

3- JSP (che se non ho capito male, alla fine generano poi sempre delle servlet, quindi....)

Cioe' quello che non capisco... Se nel server posso gestire la concorrenza con i metodi classici per il fatto che e' un singolo programma che genera threads, nelle servlet come funziona? come se fossero loro stesse threads? o sono da considerare programmi "isolati" l'uno dall'altro... o cosa?

Come cacchio li coordino 2 servlet chiamate da 2 utenti diversi che aggiornano il file?

ho fatto troppo casino? :stordita: :help:

vladix
22-04-2008, 15:15
le applet sono ormai obsolete .... , e jsp/servlet lavorano insieme ( almeno dovrebbero ) , ma nn vedo perche 2 utente devono chiamare 2 servlet diverse x aggiornare lo stesso file ( xche nn la stessa ?)

Come cacchio li coordino 2 servlet chiamate da 2 utenti diversi che aggiornano il file?

forse creando una classe con un metodo ( sincronizzato ) che viene chiamato da entrambe le servlet ?

Univac
22-04-2008, 15:49
le applet sono ormai obsolete .... , e jsp/servlet lavorano insieme ( almeno dovrebbero ) , ma nn vedo perche 2 utente devono chiamare 2 servlet diverse x aggiornare lo stesso file ( xche nn la stessa ?)

Perche' se oltre che 2 utenti, ho anche 2 servlet differenti (intese come pagine internet dalle quali aggiornare il file) il caso diventa piu' complicato che 2 volte la stessa servlet ..... o no? boh :mbe:


forse creando una classe con un metodo ( sincronizzato ) che viene chiamato da entrambe le servlet ?

Be diciamo che quello e' il metodo "standard" (+o-) per dei thread appartenenti allo stesso programma, quello che mi domandavo e' se funziona anche per le servlet, in quanto non so se sono thread o veri e propri programmi separati con le loro aree di memoria separate (dove synchronized non funzionerebbe... credo)

(potrei stare a dire cavolate, java lo conosco poco)

Cmq provo quella strada li, anche perche' per ora e' l'unica...