Skip to topic | Skip to bottom
Home

Tesi
Tesi.BetterServerr1.10 - 07 Jun 2006 - 16:59 - AngeloDiIoriotopic end

Start of topic | Skip to actions

Better Server

L'obiettivo della tesi è migliorare il ServerIsaWiki ed aggiungere nuove funzionalità. In particolare possiamo individuare 4 filoni di sviluppo:

  • EDITAZIONI DEI FILE XML (o dei TEX) Estendere il lato server per gestire il caso dell'editazione di un file XML (cheora il file viene salvato come HTML). E' necessario riconoscere che è un file XML e salvarlo come tale.
    • Editor TEX: le stesse considerazioni vanno fatte per i file TeX?.
    • Documenti mal-formati o tag inesistenti: gestire il caso in cui viene inserito un tag al DTD di HTML nella fase di editazione, o si sottomette un document mal-formato. L'errore deve essere notificato, senza generare inconsistenze nel file-system. NON VOGLIAMO VEDERE ERRORI O WARNING derivati dal comportamento errato dell'utente.
  • Gestione dei gruppi: aggiungere la possibilità di creare un gruppo, scegliere gli utenti che appartengono al gruppo e settarne i permessi
  • Miglioramento dei meccanismi di errore e report dettagliato degli errori (deve essere più chiaro, per risolvere successivamente il problema)
  • MECCANISMO DI INTERNAZIONALIZZAZIONE DEI MESSAGGI DI ERRORE.
  • Verifica e miglioramento dei meccanismi di cache
  • OVVIO: correzione di eventuali bug trovati nel codice wink

Materiale iniziale

Come organizziamo il lavoro

  • Installare il server
  • Analizzarne il funzionamento
  • Scrivere un documento programmatico sul lavoro da svolgere.
  • Sviluppare il codice
  • Scrivere tesi

Inizio implementazione, dopo la fase di analisi

Punti su cui lavorare per ora:

  • Editabilità dei nuovi formati attraverso l'editor testuale:
    • XML: provare ad invocare domxml() in PHP, se non va il documento è mal-formato, quindi restituiamo la stessa textarea con un messaggio di errore che riporta il messaggio di PHP. §Se è salvato correttamente, visualizziamo un messaggio di avvenuto salvataggio ed un tasto per aprire il file XML. Il Converter a quel punto dovrebbe essere in grado di ri-trasformarlo negli altri formati supportati da IsaWiki.
    • HTML: prova a validare con il DTD di HTML o lavorare con TIDY (forse ha un meccanismo di validazione) o con librerie php (guarda PEAR PhP?, una serie di librerie esterne che possiamo includere)
    • TeX?: Angelo procura la nuova versione che gestisce TeX? e facciamo l'integrazione.
  • Provare ad implementare un modello "classico" di gestione dei gruppi. L'idea base è che i gruppi ricalcano il comportamente degli utenti. Il gruppo non è niente altro che una etichetta gestibile dall'amministratore in scrittura e da tutti gli utenti in lettura, per racchiudere un insieme di utenti. Probabilmente sarà necessario:
    • Una classe che gestisce i gruppi ed esporta metodi molto simili a User
    • Un file XML che riporta la conformazione dei gruppi
    • Manteniamo le stesse metainformazioni ma pensiamo ad una sintassi per includere un gruppo piuttosto che un utente ([Group]. - Group. - G. ....)
    • Una pagina con l'elenco dei gruppi e degli utenti per gruppo
    • Una pagina per l'amministratore che permettono di includere, esclude o modificare gli utenti nei gruppi

Fase II di implementazione

Punti su cui lavorare in questa fase:

  • Verificare il comportamento di TIDY, con i tag e accertarsi che produca un HTML corrispondente all'input
  • Far funzionare la PREVIEW. Anche in questo caso, deve verificare la correttezza del file sottomesso.
  • Implementare il Core del controllo sui gruppi, cioè:
    • pensare ad una sintassi per specificare i gruppi nei permessi
    • espandere i gruppi nell'elenco di utenti corrispondenti
  • Migliorare il layout e l'usabilità della gestione dei gruppi
    • Magari aggiungendo una pagina per gruppo, visibile a tutti con l'elenco degli utenti
    • Una pagina per gestire il gruppo, con tante checkbox quanti sono gli utenti. Queste checkbox devono essere abilitate se un utente già appartiene al gruppo e devono aggiornarsi dopo l'upload. Questa pagina è visibile solo all'amministratore.
  • Tenere conto di eventuali errori nella scelta dei gruppi e nel settare i permessi in lettura e scrittua. Eventuali errori di sintassi dell'utente non devono produrre warning o "bombare".
  • Verificare l'eventuale integrazizone con il Converter di Giacomo.

Fase III di implementazione

  • Integrare con la nuova versione del converter (prima mandare una mail a Angelo)
  • Estendere la messaggistica di errore (non bisogna avere warning e nel caso di errore avere tutte le informazioni per capire cosa è successo)
  • Completare il test sui gruppi
  • Verificare i meccanismi di cache
  • Completare il test sui documenti mal-formati
  • Risolvere il problema di file/index.html
  • Verificare i permessi, con particolare attenzione ai livelli di sicurezza.
  • Risolvere eventuali altri bug trovati nel codice.
  • Arrivare ad una nuova versione facilmente installabile.
In poche parole bisogna render "solido" il server in modo da "sopportare" i comportamenti irregolari, errori e "tranelli" dell'utente. Dopo questa parte, conttattare fabio e fargli vedere il lavoro discutendo con lui (e con me via mail) di eventuali estensioni.

Fase IV - miglioramenti al codice

Alcuni miglioramenti da fare al codice:

  • migliorare la grafica del form di gestione del gruppo.
  • ricaricare (attributo action del form) la pagina dei gruppi dopo la modifica di un gruppo e dopo la creazione di uno nuovo
  • non richiedere la parentesi [] nella creazione di un nuovo gruppo
  • controllare i messaggi di errore.
  • verificare la struttura del nome di un gruppo (sequenza di lettere o numeri)
  • [facoltativo, ma da fare!]: per creare un gruppo di amministratori non va bene usare la sintassi AdminGroup?, ma è meglio usare una checkbox.
  • non utilizzare il file error.xml ma tenere gli errori in una stringa
  • spostare nel file XML statico la struttura degli errori. LE SOTTOCLASSI e LA STRUTTURA COMPLESSIVA RESTANO. Le esprimiamo solo esternamente per permettere INTERNAZIONALIZZAZIONE.

Fase IV - altre modifiche

  • se rimuovo in gruppo di amminitratori devo cancellare il gruppo e rimuovere il permesso di amministratore per gli utenti, SOLO se questi utenti non sono amministratori in altri gruppi. DEVE COMUQUE RIMANERE SEMPRE UN AMMINISTRATORE ATTIVO.
  • fare in modo che si riinstalli dal browser (creare in config-ui.xml sia il menu della cache che quello per il linguaggio, più qualunque altra cosa utile). Verificare il file config.xml, config-ui.xml e provare l'installazione da zero. IsaWiki si re-installa cancellando il file config.xml e passwd.xml; poi si lancia http://.../isawiki.php?EnvConfig e si settano le variabili. i form devono essere corretti.
  • deve essere possibile aggiungere un nuovo linguaggio semplicemente aggiungendo un nuovo file che lo descrive.
  • Perchè abbiamo lavorato agli errori: RIORGANIZZAZIONE, ESTENSIONE E DESCRIZIONE DETTAGLIATO. INOLTRE GENERALIZZAZIONE DEL MECCANISMO DI ERRORE E POSSIBILITA' DI RIUSARLI IN ALTRO AMBITO. INTERNAZIONALIZZAZIONE.
  • Perchè abbiamo lavorato alla cache: PER VELOCIZZARE IL FLUSSO ED ESTENDERE UN MECCANISMO DI BASE IN UNO PIU' POTENTE.

Fase V - Altri dettagli da modificare

  • trasformare "Errors details" in "Error detail".
  • trasformare "Controlla gli errori" in "Non puoi salvare il file. Controlla gli errori". IN GENERALE: dobbiamo prima dire cosa succede e poi le contromisure da adottare.
  • aggiornare i CSS per migliorarli graficamente.
  • evitare la proliferazione delle versioni. E' un casino, ma va risolto. ASSOLUTAMENTE.

to top

You are here: Tesi > BetterServer

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback