Newsgroup: it.comp.java
Titolo: condivisione risorse su istanze diverse deployate su tomcat diversi

Salve a tutti,
come da oggetto ho più istanze di una webapplication deployate su
tomcat diversi in macchine diverse e avrei la necessità che le singole
istanze facessero uso della risorsa in base all'utilizzo che le altre
istanze ne fanno. Avevo pensato a due soluzioni:
1) soluzione con un webservice,
cioè ogni istanza della webapplication comunica al servizio web il suo
stato(richieste entranti nell'istanza, numero di client che chiedono
una risorsa,ecc ecc.) e richiede l'aggiornamento di se stesso sempre
tramite il webservice. Il webservice effettua gli aggiornamenti delle
istanze che lo chiedono con un algoritmo basato su tutti gli
aggiornamenti disponibili e assegna le risorse alle istanze in maniera
bilanciata rispetto alle informazioni pervenute dagli
aggiornamenti(richieste entranti nell'istanza, numero di client che
chiedono una risorsa,ecc ecc.).
2)ogni istanza della webapplication comunica il suo stato(richieste
entranti nell'istanza, numero di client che chiedono una risorsa,ecc
ecc.) direttamente in una tabella del database e si aggiorna con un
algoritmo interno che valuta i dati sulla suddetta "tabella degli
aggiornamenti" decide quante risorse assegnarsi.
avete soluzioni migliori?sicueramente si, spero mi possiate aiutare
Saluti


wrote:

Non ho capito che vuoi fare ... ed il perchè lo vuoi fare :) però se
ho interpretato bene questo ti aiuta: 
http://www.terracotta.org/
Ciao


allora rispiego più chiaramente(spero :)....
Nodo 1(129.232.100.5)
---------------------------------
istanza 1 webapplication
istanza 2 webapplication
Nodo 2(129.232.100.6)
---------------------------------
istanza 3 webapplication
le tre istanza condividono una risorsa(Esempio: dieci posti in una
struttura dati). Ogni istanza può usare la risorsa(x posti con x < 10)
sulla base di quanto già la stanno usando gli altri quindi se sul Nodo
1 istanza 1 usa 4 posti e istanza 2 usa un posto, sul Nodo 2 istanza 3
potrà usufruire di cinque posti

 Ciao
O anche Oracle Coherence (commerciale):
 
http://www.oracle.com/lang/it/products/middleware/coherence/index.html
o Hazelcast (opensource):
 
http://www.hazelcast.com/
o JBoss Infinispan (opensource):
 
http://www.jboss.org/infinispan
o altri prodotti commerciali che non sto ad elencare.
Tra Hazelcast e Infinispan:
- Hazelcast è più maturo, Infinispan ha avuto il primo rilascio il mese 
scorso;
- dietro Infinispan c'è JBoss (Redhat) che da un po' più di garanzie, 
Hazelcast è un po' più dilettantesco nel processo di sviluppo;
- Hazelcast è molto ha più funzionalità, ma ognuna è meno configurabile, 
viceversa Infinispan fa poche cose, ma permette un tuning più fine.
Coherence è altra storia: è più versatile, più stabile, ha migliori 
prestazioni e un miglior supporto, ma costa un botto.
Ciao.


wrote:

Ok, credo di aver capito ...
In generale risolvi il problema settando il livello di isolamento del
DB; vedi: 
http://en.wikipedia.org/wiki/Isolation_(database_systems)
 e
con cose del tipo : 
http://www.techonthenet.com/oracle/cursors/for_update.php
Per cose piu complesse i prodotti che ti hanno consigliato vanno
benissimo.
Ma perchè non usi un cluster con degli application server e magari
sopra ci metti un entity? :)