mercoledì 19 dicembre 2007

Nuovo progetto su sourceforge: szTreeView

In questi giorni, io ed un mio amico, stiamo preparando un nuovo progetto sf. E' il lavoro che abbiamo fatto per l'esame di Sistemi Distribuiti (che mi è valso un 30L ed una collaborazione di 6 mesi in università..).

Il risultato finale è piuttosto difficile da spiegare in poche parole, ma ci proverò lo stesso, senza entrare troppo nei dettagli: una libreria javascript per gestire strutture dati ad albero con metodi per accedere alla struttura e modificarla (getNode, openNode, addNode, removeNode ..)in "java style". Infatti abbiamo cercato di imitare la struttura degli alberi java, prevedendo per esempio la presenza di uno UserObject associato ad ogni nodo.
L'albero inoltre è in grado di usare una libreria ajax (ajaxLoader, scritta ad hoc) per caricare il sottoalbero e notificare eventuali modifiche effettuate dall'utente. Altra caratteristica importante è la possibilità di rappresentare e tenere allineate una struttura dati java lato server con la visualizzazione javascript lato client (condivisa tra più utenti).

E qua si arriva al problema grosso: gestire le modifiche in ambiente distribuito. La soluzione è la seguente: come ogni sistema di controllo di versione non facciamo altro che affidarci ad un revisionNumber incrementale; visto che su http non è prevista l'opzione 'push' (con il server che avvisa di sua spontanea volontà il client) abbiamo implementato gli altri modi possibili: il polling e la notifica dei cambiamenti al momento della risposta di un messaggio del client.

Abbiamo inoltre preparato diverse classi java atte alla gestione dell'albero e degli accessi in modifica. Per cui esistono classi base da estendere e interfacce da implementare per poter adattare la libreria alla propria situazione: per esempio in alcuni casi la struttura ad albero deriva da query ricorsive su database piuttosto che da un file xml o altro

Nel package trovano posto anche delle taglib JSP per velocizzare la stesura delle pagine jsp che utilizzano questa libreria.

Il nome del progetto originariamente era jsTreeView, che su sourceforge è già presente, per cui abbiamo usato le iniziali dei nostri cognomi.. per cui il risultato è szTreeView.

Vista la dimensione che ha raggiunto, è un progetto a cui teniamo molto, per cui spero di riuscire a dedicargli abbastanza tempo da tenerlo vivo ed utilizzabile. A breve il primo commit e se qualcuno ha intenzione di utilizzarlo mi contatti senza problemi

1 commento:

Anonimo ha detto...
Questo commento è stato eliminato da un amministratore del blog.