Newsgroup: it.comp.java
Titolo: ejb, un esempio pratico

Ciao,
sono relativamente nuovo di java. Fin'ora l'ho usato piu' come esercizio di
programmazione, soprattutto riguardo i database.
Da poco sto cercando di comprendere la filosofia dietro gli ejb, ma devo
ammettere che se i concetti sono "chiari"... i meccanismi non lo sono
altrettanto.
Il progetto (di studio) in cui sono impegnato prevede l'utilizzo di ejb per
gestire:
. lista utenti
. lista documenti appartenenti agli utenti
Ho usato un entity-bean per gestire gli utenti: UserEJB
Finche' faccio prove in locale tutto ok
1) quando utilizzo piu' pc mi accade che risultano visibili solo gli UserEJB
presenti sull'app.Server di quel computer.
2) Se uso un solo app.Server per tutti i pc devo usare un solo database
centralizzato, ma lo scopo del progetto era avere il db distribuito (ogni pc
ha la sua lista di utenti che si collegano da quel pc, gli ejb collegati ai
vari db distribuiti sono xo' accessibili ovunque)
Come devo comportarmi?
Il db contenente la lista dei documenti:
3) ho pensato che lista potrebbe essere accessibile direttamente dall'
UserEJB, questo xo' solo se la l' UserEJB e il db dei documenti relativo
sono sulla stessa macchina
4) altrimenti la lista dei doc puo' essere a sua volta un ejb (stateless ?).
Mi sarebbe piu' comoda sottoforma di db, ma andrebbe bene cmq.
L'importante e' che quando un utente chiude la sua applicazione l' UserEJB
non sia piu' disponibile, cosi' come la lista dei suoi doc.
L'ambiente che uso e' JBuilder 5 con BAS 4.5.
Grazie mille.
p.s. Finora ho trovato solo tutorial english. Di italiano solo appunti.
Esiste una guida ita abbastanza comprensibile (non sono un neofita della pgm
in generale, eccetto java enterprise)

 wrote in message
news:L0qh9.448$bG1...@tornado.fastwebnet.it...


 ha scritto nel messaggio
news:am5c0s$1aev$1...@newsreader1.mclink.it...


 Grazie mille.
You are welcome.
Giuseppe

 ha scritto nel messaggio
news:am5u50$1etb$1...@newsreader1.mclink.it...


 percorsi assoluti nel nome del db.
Andiamo per gradi: ho visto che fai una distinzione di persone, o meglio di
ruoli, non puoi utilizzare le feature di sicurezza dell'EJB per discernere
chi sta chiamando quel particolare metodo e regolarti di conseguenza?
intendo, Il db doc lo fai vedere a tutti, ma ovviamente i record di un
particolare ruolo vengono mostrati/elaborati, e gli altri no?
[CUT]
Fammi sapere se ti fa schifo quello che ho detto ;)
Giuseppe

 particolare ruolo vengono mostrati/elaborati, e gli altri no?
Ruoli? No non mi pare. Dove hai inteso o immaginato potessi usare
dei ruoli. Per filtrare le query uso semplicemente dei sql opportuni:
SELECT * FROM "docs" WHERE "docs"."codUser"= xx
1) E' stupido? con gli ejb c'e' un modo piu' performante/migliore?
Ho letto i tutorial consigliatemi... sto metabolizzando !
A tinte piu' chiare mi pare di intuire che:
Esiste una macchina con il db degli utenti registrati al servizio
centralizzata.(si evitano doppioni) Su questa macchina puo' girare
l'AS che istanziera' i entity Ejb (mi puzza che sia meglio un session,
o meglio un session, per autenticarmi al logon, ed un entity, per
amministrare gli utenti)
2) critiche a questa mia analisi? andiamo avanti...
Ogni macchina che avvia il servizio avra' un AS su cui registrare il server
locale che si occupa del db dei documenti (puo' essere un ejb od un
datasource)
3) con initialContext() vedo tutti i AS presenti in rete? il firewall mi
dice che
avviene sempre un broadcast, quindi posso stare sicuro che mi trova tutto?
4) se uso un datasource.getconnection(), ed il datasource ha delle
impostazioni
locali per la macchina da cui e' stato creato, posso usarlo remotamente?
Io non voglio che le altre macchine sappiano come e' gestita la connessione,
dovrebbero solo vedersi un resultset (rowset) di ritorno.
5) nel caso dell'ejb session caricherebbe in locale nella macchina in cui e'
deploied, quindi una connessione locale al db non e' un problema.
Ma e' il modo giusto di procedere?
Grazie.