Skip to content

Commit

Permalink
Modifiche al capitolo 4 e 5
Browse files Browse the repository at this point in the history
  • Loading branch information
20 committed Mar 19, 2012
1 parent 1940c94 commit 30a6975
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 32 deletions.
2 changes: 1 addition & 1 deletion Bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ @article{RMSobre
Url = {http://www.mocambos.net/sobre},
Title = {Rede Mocambos, Uma Rede de Comunicação Social},
Volume = {},
Year = {}}
Year = {2007}}

@book{ProDjango2009,
Abstract = {Pro Django represents two and a half years of
Expand Down
2 changes: 1 addition & 1 deletion Capitoli/Capitolo3.tex
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ \subsection{Gestione delle identità di rete}
all'ultima sincronizzazione.


\subsection{Mocambos\_LDAP}
\subsection{Mocambos\_LDAP}\label{MocambosLDAP}
\framebox[\textwidth]{\footnotesize Il codice è disponibile su
\url{https://github.com/RedeMocambos/Mocambos_LDAP}}

Expand Down
68 changes: 53 additions & 15 deletions Capitoli/Capitolo4.tex
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,17 @@ \section{Archivio multimediale}
accessibile via rete informatica'', tratto da Wikipedia:
\url{http://it.wikipedia.org/wiki/Dublin_Core}.}.

Un aspetto importante per l'archivio multimediale sono le operazioni
di sincronizzazione. Gli strumenti basati su \emph{git} ereditano la
sua natura decentrata e la capacità di comunicare in maniera
trasparente usando una ampia gamma di protocolli. In particolare è
interessante la possibilità di eseguire le sincronizzazioni con
sistemi di archiviazione di massa, caratteristica utile nella fase di
creazione di un nuovo nodo, per cui la prima sincronizzazione via rete
potrebbe richiedere giorni. I trasferimenti comunque avvengono, nel
caso di \emph{git-annex}, tramite il protocollo \emph{rsync}, che
gestisce eventuali interruzioni, evitando costose ritrasmissioni.

\subsection{git-annex}
\emph{git-annex}\footnote{\emph{git-annex} è un programma che estende
le funzionalità di \emph{git} ed è disponibile su
Expand Down Expand Up @@ -119,20 +130,18 @@ \subsection{git-annex}
\end{itemize}

\section{Portale Comunitario}
\framebox[\textwidth]{\footnotesize Il codice è disponibile su
\url{https://github.com/RedeMocambos/Mocambos_Portal_Local}}

Il portale locale deve dare accesso ai principali servizi locali della
comunità. Per lo sviluppo è stato scelto l'uso di un framework basato
su python, \emph{Django}, che consente un'integrazione flessibile e
su Python, \emph{Django}, che consente un'integrazione flessibile e
avanzata con altri sistemi grazie alle numerose librerie disponibili
quale, ad esempio, quella per l'autenticazione LDAP.

Per gestire l'archivio multimediale \emph{git-annex} sono stati
sviluppati due moduli per \emph{Django}, che definiscono il modello
dei dati e si prendono cura di aggiungere i contenuti sul
\emph{repository} eseguendo le operazioni di \emph{commit},
\emph{push} e \emph{pull}.
Per l'installazione del framework e del modello base del prototipo di
portale comunitario è stato creato uno \emph{script} mentre, per
gestire l'archivio multimediale \emph{git-annex} sono stati sviluppati
due moduli per \emph{Django}, che definiscono il modello dei dati e si
prendono cura di aggiungere i contenuti sul \emph{repository}
eseguendo le operazioni di \emph{commit}, \emph{push} e \emph{pull}.

\begin{figure}[htbp]
\centering
Expand All @@ -142,6 +151,22 @@ \section{Portale Comunitario}
\label{fig:SchemaUMLDjango}
\end{figure}

\subsection{Mocambos\_Portal\_Local}
\framebox[\textwidth]{\footnotesize Il codice è disponibile su
\url{https://github.com/RedeMocambos/Mocambos_Portal_Local}}

Lo \emph{script bash}, \verb|script/install-django-env.sh|, installa i
pacchetti di sistema necessari, inoltre crea un ambiente virtuale,
usando il programma \emph{virtualenv}\footnote{\emph{Virtualenv} è un
programma libero per creare ambienti Python isolati disponibile su
\url{http://www.virtualenv.org}.}, che consente di installare
facilmente versioni specifiche delle librerie e dell'interprete
Python, oltre che di \emph{Django}, senza alterare quelle già presenti
nel sistema. Nella cartella \verb|exemplos/| si trovano invece dei
file di configurazione di esempio, preimpostati per la connessione al
server LDAP della RM (vedi \ref{MocambosLDAP}).


\subsection{Django mmedia}
\framebox[\textwidth]{\footnotesize Il codice è disponibile su
\url{https://github.com/RedeMocambos/mmedia}}
Expand All @@ -150,7 +175,7 @@ \subsection{Django mmedia}
multimediali con supporto al salvataggio su \emph{repository
git-annex}.

I modelli, in Django, devono essere creati nel file \verb|model.py|,
I modelli, in \emph{Django}, devono essere creati nel file \verb|model.py|,
dove, innanzitutto, definiamo la struttura base della classe
\emph{MMedia}, con gli attributi comuni a tutti gli oggetti
multimediali. Le classi \emph{Audio}, \emph{Image} e \emph{Video},
Expand Down Expand Up @@ -181,7 +206,7 @@ \subsection{Django gitannex}
\url{https://github.com/RedeMocambos/gitannex}}

Il modulo \emph{gitannex} implementa parte del modello dei dati di un
\emph{repository git-annex} in Django, aggiungendo gli attributi e le
\emph{repository git-annex} in \emph{Django}, aggiungendo gli attributi e le
funzionalità necessarie alla programmazione della sincronizzazione.

\begin{figure}[htbp]
Expand All @@ -196,9 +221,23 @@ \subsection{Django gitannex}

Seguendo la specifica, viene definito, tramite l'attributo
\emph{syncStartTime}, un orario per l'inizio della sincronizzazione,
che viene lanciata dalla funzione \emph{runScheduledJobs()}.

Django fornisce un sistema di segnali, lanciati in concomitanza di
che viene lanciata dalla funzione \emph{runScheduledJobs()}. Per
interagire più facilmente con il framework tramite shell è possibile
definire nuovi comandi che devono essere creati nella cartella
\verb|management/commands/|, dove si trova, ad esempio, il comando
\verb|run_scheduled_jobs| che richiama la funzione omonima. In questo
modo è possibile eseguire operazioni programmandole tramite il
\emph{cron}\footnote{``Nei sistemi operativi Unix e Unix-like, il
comando crontab consente la pianificazione di comandi, ovvero
consente di registrarli presso il sistema per essere poi mandati in
esecuzione periodicamente.'', tratto da Wikipedia:
\url{http://it.wikipedia.org/wiki/Crontab}.} o direttamente da shell
con:
\begin{verbatim}
zumbi@palmares:~$ python manage.py run_scheduled_jobs
\end{verbatim}

\emph{Django} fornisce un sistema di segnali, lanciati in concomitanza di
operazioni quali la \emph{save()} di un oggetto, che possono essere
intercettati altrove dal sistema. Il modulo \emph{gitannex} intercetta
il segnale standard di Django, \emph{post-save} (vedi figura
Expand All @@ -209,7 +248,6 @@ \subsection{Django gitannex}
rete (vedi il codice nel file \texttt{gitannex/signals.py}).},
tramite la funzione \emph{gitMMediaPostSave()}:


\begin{code}
@receiver_subclasses(post_save, MMedia, ``mmedia_post_save'')
def gitMMediaPostSave(instance, **kwargs):
Expand Down
33 changes: 18 additions & 15 deletions Capitoli/Capitolo5.tex
Original file line number Diff line number Diff line change
Expand Up @@ -44,24 +44,27 @@ \chapter{Conclusioni e sviluppi futuri}

Dal punto di vista strutturale la componente più importante è il
sistema di gestione delle identità digitali federate. Pertanto è
essenziale una sperimentazione approfondita della soluzione con LDAP
adottata, che se funzionale può essere estesa e integrata ad altri
meccanismi. Sarebbe, ad esempio, interessante esplorare le possibilità
date dai protocolli XMPP, come ad esempio l'integrazione con OpenID,
per cui, una volta autenticati, si ricevono le richieste di
autorizzazione ad accedere a siti terzi, tramite messaggi
essenziale una sperimentazione approfondita della soluzione LDAP
adottata che può comunque essere estesa e integrata ad altri
meccanismi. Per la messaggistica e il VOIP, sarebbe interessante
esplorare le possibilità date dai protocolli XMPP, che inoltre si
presta per la facilità con cui può integrarsi in sistemi
eterogenei. Ad esempio l'integrazione tra XMPP e OpenID, per cui, una
volta autenticati, si ricevono le richieste di autorizzazione ad
accedere a siti terzi, tramite messaggi
istantanei\footnote{Un'implementazione pubblica di questo sistema è
disponibile sul sito: \url{http://openid.xmpp.za.net/}.}.
disponibile sul sito: \url{http://openid.xmpp.za.net/}.}. In questo
senso il trio LDAP, XMPP e OpenID coprirebbe le necessità di servizi
federati rispettivamente ``desktop'', ``client'' e ``web oriented''.

Per quanto riguarda i servizi invece, il prototipo realizzato
costituisce un primo passo, e la prova su campo costituisce un
passaggio fondamentale per testare le reali capacità e i limiti che
sussistono. La distribuzione di file di grandi dimensioni, oltre ai
limiti di banda, comporta un notevole uso di spazio. È necessario
quindi imporre dei limiti, ad esempio, sulle dimensioni massime dei file
accettate dal sistema.
Nel frattempo il prototipo realizzato costituisce un primo passo, e la
prova su campo è un passaggio fondamentale per testare le reali
capacità e i limiti che sussistono. La distribuzione di file di grandi
dimensioni, oltre ai limiti di banda, comporta un notevole uso di
spazio su disco. È necessario quindi imporre dei limiti, ad esempio,
sulle dimensioni massime dei file accettate dal sistema.

Da implementare e migliorare nelle prossime versioni:
Da implementare o migliorare nelle prossime versioni:
\begin{itemize}
\item trasferimento selettivo dei contenuti/valori basato sull'uso
statistico o su richiesta
Expand Down

0 comments on commit 30a6975

Please sign in to comment.