Newsgroup: it.comp.java
Titolo: Progetto database con Java

In occasione del rinnovo di un database su Access, avrei pensato ad un
radicale cambiamento del tutto.
Vorrei che la nuova versione fosse indipendente dalla piattaforma ed
estremamente semplice ed intuitiva da utilizzare, dato che dovrà
essere adoperata da persone poco competenti in ambito informatico.
Oltre a questo dovrà avere delle caratteristiche un po' particolari,
in quanto il database dovrà essere accessibile e modificabile da più
pc non interconnessi tra loro (chiaramente si suppone che il singolo
utente operi in contesto non coincidente con quello di altri),
garantendo una sincronizzazione delle versioni tramite LAN  a fine
giornata.
Informandomi un po' m'è parso di capire che una situazione
interessante potrebbe vedere:
- un DBMS, quale ad esempio MySQL
- framework per la persistenza (se non ho capito male permette di
interfacciare la logica Object-Oriented di Java con quanto previsto da
un database relazionale), e qui m'è parso di capire che convenga
adoperare Hibernate
- Java per la definizione delle funzioni e per la GUI, oltre che per
gestire la questione della sincronizzazione.
Innanzitutto, mi piacerebbe avere un parere su questa configurazione.
Inoltre, avete qualche indicazione su libri e manuali, relativi a
questi ambiti, che vale la pena acquistare? (diverso materiale ce l'ho
già, soprattutto per quanto riguarda Java, ma qualche altra fonte può
non guastare)
Quali possono essere i punti più ostici? (si tenga presente che ho una
preparazione accademica su Java e sui database in generale, che però è
caratterizzata da bassa conoscenza di grafica in Java e da conoscenza
praticamente nulla dell'interfacciamento Java-database. Di tempo e
voglia ne ho in quantità, se non altro...)
Java è il linguaggio più indicato per un progetto di questo tipo, o
devo prendere in considerazione anche qualcos'altro? (Ho sentito
alcune persone entusiaste di Python)
In ultima, ma assolutamente fondamentale: è possibile e semplice
generare report   decenti in Java? Dovrei prendere in considerazione
qualche altra soluzione, possibilmente gratuita o (ancora meglio)
gratuita e open source?
Grazie in anticipo.

 Innanzitutto, mi piacerebbe avere un parere su questa configurazione.
Da quello che ho capito hai intenzione di far lavorare gli utenti ognuno 
su una copia privata del database con un'applicazione locale e poi di 
tanto in tanto sincronizzare i database tra loro. Correggimi se sbaglio.
Questo tipo di approccio e' da scartare in partenza a causa della 
montagna di problemi che sicuramente avrai. Se gli utenti non sono molto 
avezzi all'informatica, nella mia esperienza, farai molta fatica anche 
fargli premere un pulsantino a fine giornata. Poi se i PC non sono 
interconnessi come diamine fai a fare la sincronizzazione ? 
Telepaticamente ?
Io ti consiglierei di realizzare una web application utilizzabile da un 
comunissimo browser residente su un server centrale con il proprio 
database super-blindato e con tutti gli accorgimenti necessari per fare 
i backup automatici, ecc. ecc. Per il server basta un qualsiasi PC, 
anche non molto recente, con Linux, Apache, PHP (eventualmente, tanto 
viene allo stesso prezzo), Tomcat e MySQL.
In questo modo ti eviti i problemi di sincronizzazione, puoi far 
lavorare piu' utenti contemporaneamente senza problemi, non hai problemi 
di aggiornamenti, l'applicazione potrebbe essere utilizzata 
tranquillamente da internet e, dulcis in fundo, trattandosi di Linux e' 
gestibile completamente in remoto.

 Grazie in anticipo.
miaoo  maks.

 generare report   decenti in Java? 
http://jasperreports.sourceforge.net/
-- 
Giambo - Occhio al filtro antispam _e_ alla whitelist !


Io utilizzerei postgres: ha molte features in + di mysql....
per la webapp sono totalmente d'accordo per tomcat ;)
M 

 
Purtroppo non è cosa che possa scegliere. Cercherò di spiegare la 
situazione che devo gestire con un semplice esempio.
Si immagini di dover gestire una ditta di trasporto. Si vorrebbe che 
ogni fattorino disponesse di un portatile con una copia del database, in 
maniera da poter reperire tutti i dati di cui potrebbe aver necessità. I 
vari portatili non possono quindi essere in rete tra loro, e non possono 
accedere ad Internet (si scartano soluzioni tipo Connect Card e simili).
In aiuto viene il fatto che i dati di interesse non sono necessariamente 
recentissimi (non interessa ciò che viene inserito in giornata da altri 
fattorini), ed il fatto che le modifiche al database non riguardano lo 
stesso contesto (una modifica di un dato di un cliente verrà fatta solo 
dal fattorino che si è recato da lui, perciò si assume che non ci siano 
problemi quali sovrascritture o alterazioni di dati tra diversi fattorini).
Tra l'altro, per vari motivi, non è neanche realizzabile una soluzione 
che vede il database in sola lettura e l'esecuzione degli aggiornamenti 
solo sul computer del magazzino.
In altre parole è necessario:
- che tutti i fattorini dispongano di una copia locale del database
- che a fine gionrata tutte le modifiche apportate ai database locali 
vengano riportate al computer di riferimento del magazzino, tramite rete 
locale
- che in occasione dell'aggiornamento del magazzino vengano di 
conseguenza aggiornati anche i database dei portatili
Per questo non vedo altre soluzioni se non quella da me indicata.
Per quanto riguarda l'alto rischio di incongruenze dovute a persone poco 
avezze all'informatica, l'unica cosa che posso fare è istruirli 
adeguatamente e sperare nel loro scrupolo, oltre che aiutarli con una 
GUI il più possibile semplice, intuitiva e veloce.

 
cosa intendi dire?

 cosa intendi dire?
ehm, intendevo collegando i pc ... ma dal tuo altro post è evidente che non
è fattibile ...
cmq, mi sembra un lavoro tuttaltro che semplice, buona fortuna :P
miaooo maks.

 accedere ad Internet (si scartano soluzioni tipo Connect Card e simili).
Questo cambia un po' le cose, naturalmente, tuttavia la replica del 
database nel portatile la escluderei comunque, ci sono troppi potenziali 
problemi che sarebbe meglio evitare.
Piuttosto, se l'esempio corrisponde piu' o meno all'esigenza reale, mi 
sposterei verso l'uso di computer palmari (che costano anche molto meno 
dei portatili). Immagino che il fattorino dovra' modificare l'elenco 
delle consegne che deve fare, quindi non ha senso replicargli tutto il 
database contenente anche dati che non lo riguardano e la cui modifica 
accidentale potrebbe causare problemi. Farei un'applicazioncina su 
palmare che gestisca l'attivita' del fattorino e scambi i dati con il 
server centrale quando e' possibile (per lo scambio si potrebbe anche 
utilizzare un web service, senza doversi reinventare la ruota 
progettando un protocollo di comunicazione ad hoc).
L'uso di un palmare poi apre a futuri miglioramenti del sistema, per 
esempio con una rete wireless si possono fare gli aggiornamenti non 
appena il fattorino rientra in sede e torna sotto la copertura degli 
access point. Con il bluetooth poi si potrebbero fare gli aggiornamenti 
via cellulare GPRS/UMTS. Il touch screen del palmare poi potrebbe 
servire anche per memorizzare la firma del destinatario e togliere di 
mezzo tutta la cartaccia (mi sembra che UPS o DHL usino un dispositivo 
del genere).

 ha scritto nel messaggio 
news:jZXCd.69751$C94....@tornado.fastwebnet.it...


inVidia ha scritto:

Interbase è il database di Borland? Ho provato a dargli un occhiata, e 
promette cose molto buone, soprattutto quando viene detto "Nearly zero 
maintenance"; purtroppo però il costo del prodotto non è proprio basso.
Di conseguenza, o è un prodotto così utile e potente da influire in 
maniera drammatica sullo sviluppo del mio progetto, o l'idea è da scartare.

 wrote in message
news:7fQDd.380056$b5.18...@news3.tin.it...

al tempo quando l'ho usato era opensource
dai un occhiata a firebird è nato da interbase ma ne parlano molto meglio
...
miaooo maks.

 ha scritto nel messaggio 
news:mXRDd.73536$C94....@tornado.fastwebnet.it...

interbase6 dovrebbe essere opensource 

 scartare.
Punti di vista. Se lo devo utilizzare per lo sviluppo, allora non sono io
che ne pago la licenza (peraltro meno cara di un Oracle o di un SQL Server
qualsiasi). Inoltre, tieni presente che puoi sempre utilizzare Firebird,
che non e` altri che un fork open source di Interbase 6 (che, all'epoca, fu
rilasciato open source dalla Borland stessa) disponibile su
http://firebird.sourceforge.net
Henryx