Gli anni 2010 segnano il ritorno dell'informatica centralizzata, tipica degli anni 1960-1970, ma al posto di fare riferimento a un solo elaboratore servente ci si avvale oggi di quello che è noto come cloud provider, il quale fornisce i propri servizi attraverso sistemi elaborativi molto più complessi, ma in modo trasparente per l'utenza.
Il cloud provider può fornire servizi di vario genere, i quali hanno generalmente in comune la garanzia per l'utenza della preservazione dei dati coinvolti.
La fruizione dei servizi di un cloud provider può dipendere da software specifico, necessario presso i terminali degli utenti, oppure di navigatori ipertestuali comuni.
Quando un servizio riguarda la gestione o la conservazione di dati, si pone il problema della riservatezza di questi. In pratica, quando si conservano o si elaborano dati presso un servizio esterno, c'è il rischio che qualcuno, presso il gestore, possa trafugarli per qualche scopo.
Il problema della riservatezza può essere più o meno importante, a seconda del contesto. Allo stesso modo, il rischio che i propri dati siano usati in modo scorretto varia a seconda della reputazione di chi si trova a gestirli. Pertanto si affronta il problema a due livelli: scegliendo oculatamente il gestore di servizi oppure gestendo in proprio una struttura di cui si può avere il controllo completo.
Il metodo tradizionale per accedere a un servente remoto consiste nell'uso di un programma in grado di connettersi attraverso protocolli come TELNET e SSH (sezioni 36.8 e 44.7). Tuttavia, l'introduzione sempre più importante di software grafico, a partire dagli anni 1990, ha relegato l'uso del terminale testuale remoto alle sole attività amministrative dei sistemisti.
Il sistema grafico X consente di interagire con un'applicazione grafica remota (sezione 28.5.5); tuttavia, questa facoltà viene attuata normalmente attraverso un tunnel SSH (sezione 28.5.6), per garantire che la comunicazione non possa essere intercettata.
Attraverso VNC (sezione 28.13) è poi possibile mantenere attiva una sessione di lavoro grafica, presso un servente remoto, riprendendola e sospendendola a piacimento.
L'avvento dei navigatori ipertestuali in grado di interpretare il linguaggio HTML (con tutti i suoi sviluppi successivi) e la nascita della programmazione CGI (sezioni 40.4 e 40.5), ha messo a disposizione un'interfaccia universale, sulla quale la costruzione di un programma diventa indipendente dal sistema usato per interagire.
Per mettere in pratica un'applicazione «web» presso un servente, occorre un servente HTTP (capitolo 40) e un programma CGI. Di solito, il programma CGI è scritto utilizzando il linguaggio PHP (http://php.net), affidando la gestione dei dati a un DBMS (parte v). A Questo proposito si usa spesso la sigla «...AMP» per indicare l'integrazione di Apache, MySQL e PHP (Apache in qualità di servente HTTP, MySQL in qualità di DBMS e PHP come interprete di programmi CGI scritti nel linguaggio omonimo), anche se la combinazione di questi programmi non è necessariamente obbligata.
Dal lato «cliente», ovvero nel sistema che deve poter fruire del servizio «web» remoto, occorre un navigatore ipertestuale in grado di interpretare correttamente il linguaggio HTML e il linguaggio JavaScript (sezione 54.7), e in grado di visualizzare documenti in formato PDF. Infatti, il linguaggio JavaScript affogato nei documenti HTML consente di disporre di funzionalità dinamiche gestite localmente, senza richiedere necessariamente un'interazione continua con il servente remoto per l'aggiornamento della schermata visualizzata. Inoltre, la capacità di visualizzare documenti PDF serve per la gestione delle stampe: un'applicazione remota, per poter produrre una stampa, fornisce un file PDF che poi, una volta visualizzato, può essere stampato effettivamente (o archiviato elettronicamente).
Un'applicazione «web» che per funzionare presso un terminale richiede soltanto un navigatore normale, con la capacità di interpretare il linguaggio JavaScript e di visualizzare file PDF, è universale, in quanto ha la garanzia ragionevole di poter essere fruita in qualunque condizione.
Tuttavia esistono applicazioni «web» invadenti, nel senso che richiedono di più, costringendo l'utenza a procurarsi software specifico. In particolare questo è il caso di quei servizi che per essere fruiti spediscono al terminale cliente un'applicazione ad-hoc da eseguire localmente. Si tratta di solito di programmi Java (http://java.com), SWF (Shockwave Flash o semplicemente Flash http://www.adobe.com/products/flash.html) o Silverlight (http://silverlight.net).
L'invadenza consiste nel fatto che si è costretti a eseguire localmente un'applicazione sulla quale non si può avere alcun controllo e nel fatto che per poterlo fare può essere necessario scaricare altro software la cui licenza deve essere valutata (e di norma ciò non viene fatto con la dovuta cura).
eyeOS(1) è un'applicazione «web» che si comporta come se fosse un sistema operativo grafico, in grado di eseguire applicazioni scritte in PHP, utilizzando però le interfacce previste nel «kernel» di questo pseudo sistema. Qui si considera la versione 1.9.0.3 che ha la caratteristica di essere «stabile» e relativamente facile da installare, anche da un utente comune che possa gestire la propria directory ~/public_html/
.
Il sistema operativo (quello vero) che deve ospitare il servizio di eyeOS, deve disporre di un servente HTTP configurato in modo da poter funzionare con un interprete PHP. Le versioni 1.9.* di eyeOS non richiedono necessariamente la presenza di MySQL, che invece diventa indispensabile nelle versioni 2.*.
Quando il sistema ospitante è in grado di far funzionare correttamente il PHP, si può procedere a scaricare la versione scelta di eyeOS, presso http://sourceforge.net/projects/eyeos/files/eyeos/1.9.0.3/, ottenendo il file eyeOS_1.9.0.3-1.zip
(si suppone di averlo salvato nella directory /tmp/
). Il file va estratto dove il servente HTTP può utilizzarlo: potrebbe essere la directory /var/www/
oppure ~/public_html/
, o qualcosa di simile.
#
cd /var/www
[Invio]
#
unzip /tmp/eyeOS_1.9.0.3-1.zip
[Invio]
Oppure:
$
cd ~/public_html/
[Invio]
$
unzip /tmp/eyeOS_1.9.0.3-1.zip
[Invio]
A questo punto, però, occorre attribuire tutti i permessi di accesso alla struttura espansa, e occorre inserire un file php.ini
che consenta espressamente al codice PHP di poter scrivere e cancellare file.
Questo fatto rappresenta il punto dolente di eyeOS che espone se stesso ad attacchi al codice PHP. |
#
chmod -R a+rwX /var/www/eyeOS
[Invio]
Oppure:
$
chmod -R a+rwX ~/public_html/eyeOS
[Invio]
Il file php.ini
che segue va collocato nella directory eyeOS/
e una sua copia anche nella directory eyeOS/installer/
:
|
A questo punto si può accedere al programma di «installazione», ma in realtà è un programma di preparazione che modifica però il contenuto della directory eyeOS/
appena creata. Si tratta di accedere con il navigatore all'indirizzo http://localhost/eyeOS/installer/
, ovvero a http://localhost/~utente/eyeOS/installer/
, a seconda di come è stato collocato.
La maschera che si ottiene va compilata per attribuire la parola d'ordine che deve usare l'utente amministratore del sistema eyeOS (il nominativo di tale utente è root, come si fa nei sistemi Unix) e per stabilire se sia concesso agli utenti comuni di registrarsi automaticamente e senza formalità.
Si procede quindi alla «installazione», nel senso della sistemazione automatica della directory eyeOS/
, dopo aver definito le informazioni amministrative fondamentali. A questo punto, però, è probabile che si presenti un errore, del tipo: «404 not found», perché dopo i cambiamenti che vengono apportati automaticamente, mancano certi permessi di accesso. Si procede quindi manualmente, una seconda volta, a cambiarli:
#
chmod -R a+rwX /var/www/eyeOS
[Invio]
Oppure:
$
chmod -R a+rwX ~/public_html/eyeOS
[Invio]
A questo punto si può ricaricare la pagina che prima dava la segnalazione di errore e si ottiene il primo vero avvio di eyeOS:
A seconda di come è stato configurato nella prima fase di installazione, può essere possibile aggiungere un nuovo utente, selezionando la voce {New User
}; diversamente si può iniziare in qualità di utente root, e da lì procedere poi all'inserimento manuale dei nuovi utenti.
Un'installazione di eyeOS 1,*, dopo che è stata definita la configurazione iniziale dell'amministratore, può essere copiata, tale e quale, in un'altra collocazione, o semplicemente archiviata per un'ulteriore installazione semplificata. Eventualmente è utile sapere che i dati principali delle utenze sono memorizzati nella directory eyeOS/eyeOS*/accounts/*/nome.xml
; per esempio, le informazioni fondamentali dell'utente root potrebbero trovarsi precisamente nel file eyeOS/eyeOS*/accounts/rt4/root.xml
:
|
Nel caso venga dimenticata o non si conosca la parola d'ordine dell'utente root, è possibile creare un'utenza comune, stabilendo una parola d'ordine, per poi copiarne la versione cifrata nel file di configurazione dell'amministratore. Per fare questo, ovviamente, è necessario che sia abilitata la facoltà di creazione libera degli utenti. Eventualmente si può intervenire nel file eyeOS/eyeOS*/system/conf/system.xml
, dove va abilitata la direttiva ALLOW_USER_REGISTER:
|
Nello stesso modo, è sempre possibile in un secondo momento togliere la facoltà di aggiunta libera delle utenze, intervenendo nella stessa direttiva, mettendo il valore zero.
Per installare eyeOS 1.* presso un servizio come quello di http://altervista.org, si deve copiare un'installazione già completata (munita del file php.ini
come descritto in precedenza), tenendo conto delle osservazioni fatte nella sezione precedente. È sufficiente che il linguaggio PHP sia interpretato correttamente e tutto dovrebbe funzionare correttamente, senza ulteriori complicazioni.
Le versioni 2.* di eyeOS sono un po' difficili da installare, perché richiedono che il sistema ospitante abbia dei requisiti specifici; in particolare serve che disponga di PHP 5.3, MySQL 5 e che il servente HTTP sia precisamente Apache 2. Nella spiegazione seguente si fa riferimento all'installazione di eyeOS 2.4.1.0 in un sistema GNU/Linux Debian.
Per prima cosa è indispensabile che nel sistema ospitante siano installati i pacchetti seguenti, con le rispettive dipendenze:
Name Version Description =============================-============================== apache2 2.x Apache HTTP Server metapackage mysql-server 5.x MySQL database server (metapackage depending on the latest version) build-essential 11.5 Informational list of build-essential packages libapache2-mod-php5 5.3.* server-side, HTML-embedded scripting language (Apache 2 module) libimage-exiftool-perl Library and program to read and write meta information in multimedia files libreoffice office productivity suite php-pear 5.3.x PEAR - PHP Extension and Application Repository php5 5.3.x server-side, HTML-embedded scripting language (metapackage) php5-curl 5.3.x CURL module for php5 php5-dev 5.3.x Files for PHP5 module development php5-gd 5.3.x GD module for php5 php5-imagick ImageMagick module for php5 php5-mcrypt 5.3.x MCrypt module for php5 php5-mysql 5.3.x MySQL module for php5 php5-sqlite 5.3.x SQLite module for php5 python-uno Python-UNO bridge unzip De-archiver for .zip files zip Archiver for .zip files |
Quindi occorre installare un'estensione al PHP, con il comando pecl:
#
pecl install uploadprogress
[Invio]
Poi, per far sì che tale estensione venga presa in considerazione dal PHP, occorre intervenire in un file php.ini
, aggiungendo la direttiva extension=uploadprogress.so. Ma questa viene inserita in un file php.ini
complessivo di eyeOS, senza disturbare ulteriormente la configurazione generale del PHP.
È necessario intervenire comunque nella configurazione di sistema di Apache 2, modificando il file /etc/apache2/sites-available/default
, nel modo evidenziato nel listato seguente:
|
Inoltre, se si vuole concedere l'esecuzione di codice PHP nelle cartelle personali degli utenti, conviene intervenire nel file /etc/apache2/mods-available/php5.conf
:
|
Infine, occorre accertarsi che Apache 2 applichi la riscrittura degli URI:
#
a2enmod rewrite
[Invio]
Module rewrite already enabled |
Avendo completato la sistemazione di Apache e del PHP, si può riavviare il servizio in modo da rendere attivi i cambiamenti:
#
/etc/init.d/apache2 restart
[Invio]
Con MySQL occorre creare una base di dati, con un nome di fantasia, con un'accortezza: non va usato il nome «eyeos», altrimenti gli script di configurazione iniziale di eyeOS si confondono e sbagliano il procedimento. Per questo occorre intervenire nella base di dati in qualità di amministratore dei DBMS e logicamente MySQL deve essere in funzione:
#
/etc/init.d/mysql status
[Invio]
MySQL is stopped.. |
#
/etc/init.d/mysql start
[Invio]
Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. |
#
mysql -u root -p
[Invio]
Enter password:
digitazione_all'oscuro
[Invio]
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 300 Server version: 5.1.49-3 (Debian) ... |
mysql>
CREATE DATABASE nome_db;
[Invio]
Query OK, 1 row affected (0.10 sec) |
mysql>
GRANT ALL ON nome_db.* TO nome_utente@'localhost'
\
\ IDENTIFIED BY 'mia_password';
[Invio]
Query OK, 0 rows affected (0.00 sec) |
mysql>
\q
[Invio]
Bye |
Si può quindi procedere con l'installazione del pacchetto di eyeOS, precisamente utilizzando il file http://sourceforge.net/projects/eyeos/files/eyeos2/eyeos-2.4.1.0.tar.gz/download; si suppone di averlo scaricato nella directory temporanea /tmp/
:
#
mkdir /var/www/eyeos-2.4
[Invio]
#
cd /var/www/eyeos-2.4
[Invio]
#
tar xzvf /tmp/eyeos-2.4.1.0.tar.gz
[Invio]
A questo punto, nella directory /var/www/eyeos-2.4/
va predisposto un file php.ini
appropriato alle esigenze di eyeOS. In pratica serve il contenuto seguente:
|
Quindi va sistemata la proprietà e i permessi dei file: purtroppo eyeOS deve scrivere nelle sue directory.
#
chown -R www-data:www-data /var/www/eyeos-2.4
[Invio]
#
chmod -R ug+rwX /var/www/eyeos-2.4
[Invio]
#
chmod -R o-rwx /var/www/eyeos-2.4
[Invio]
Finalmente si può cominciare a comunicare con eyeOS, allo scopo di configurare il collegamento con la base di dati e per definire la parola d'ordine dell'utente amministratore di eyeOS stesso. Si usa il navigatore all'indirizzo http://localhost/eyeos-2.4/install
. Se tutto va bene, si ottiene la schermata seguente:
Terminata l'installazione si può passare all'indirizzo http://localhost/eyeos-2.4/
per verificare che tutto sia in ordine. Se funziona, si può cancellare la directory /var/www/eyeos-2.4/install/
, perché è bene evitare di ripetere il procedimento di configurazione iniziale.
Il pacchetto di eyeOS 2.5 non funziona, perché mancano alcuni file. Per ottenerne una versione funzionante, occorre scaricare la versione 2.4.1.0 e aggiornarla con un pacchetto apposito. In pratica servono i pacchetti http://sourceforge.net/projects/eyeos/files/eyeos2/eyeos-2.4.1.0.tar.gz/download e http://sourceforge.net/projects/eyeos/files/eyeos2/eyeos-2.5-update.tar.gz/download. Quindi, nella directory /var/www/eyeos-2.5
si estraggono in successione:
#
tar xzvf /tmp/eyeos-2.4.1.0.tar.gz
[Invio]
#
tar xzvf /tmp/eyeos-2.5-update.tar.gz
[Invio]
Le altre operazioni si svolgono allo stesso modo già visto per la versione 2.4.
Si può fare a meno della procedura guidata di «installazione», se si è in grado di ricostruire la base di dati che serve a eyeOS. Per eyeOS 2.5 serve precisamente il codice SQL che dovrebbe essere disponibile presso allegati/eyeos/eyeos-2.5.sql.
In tal modo, dopo la preparazione della base di dati vuota, è possibile popolarla delle tabelle necessarie:
$
cat eyeos-2.5.sql | mysql -u utente_db -p nome_db
[Invio]
Partendo dal pacchetto originario, è poi sufficiente modificare il file settings.php
per far sapere a eyeOS quale base di dati contattare.
#
mkdir /var/www/eyeos-2.5
[Invio]
#
tar xzvf /tmp/eyeos-2.4.1.0.tar.gz
[Invio]
#
tar xzvf /tmp/eyeos-2.5-update.tar.gz
[Invio]
Nel file /var/www/eyeos-2.5/settings.php
occorre intervenire nelle righe nell'estratto seguente, sostituendo il testo in corsivo con i nomi della base di dati, dell'utente della base di dati e con la parola d'ordine relativa:
|
Nella tabella eyeosuser è memorizzata la parola d'ordine necessaria all'utente root di eyeOS. Nel caso dell'esempio, la parola d'ordine corrisponde a «root»:
|
Purtroppo, eyeOS 2.x richiede molto dal servente in cui si installa. Questo rende difficile il trovare un gestore esterno presso cui installarlo (al momento della versione 2.5 non esiste alcun servizio gratuito in grado di gestire eyeOS 2.x). In ogni caso, prima di perdere tempo a installare tutta la struttura di eyeOS, conviene limitarsi a copiare la directory install/
, per verificare con il programma iniziale di configurazione se i requisiti principali sono soddisfatti o meno: se appaiono segnalazioni in rosso, come nell'esempio seguente, è meglio rinunciare subito.
Se si ha fortuna, l'installazione può essere tentata utilizzando poi la procedura guidata per la configurazione della base di dati e della parola d'ordine dell'amministratore, oppure si può usare il metodo descritto in precedenza, con il quale si carica un file SQL che produce le tabelle necessarie, con una parola d'ordine nota per l'utente root di eyeOS, modificando manualmente il file settings.php
.
Lucid desktop(2) è un'applicazione «web» che si comporta come se fosse un sistema operativo grafico, in grado di eseguire applicazioni scritte in Javascript, utilizzando però le interfacce previste nel «kernel» di questo pseudo sistema. Qui si considera la versione 1.0.1 scaricata da Github.
Il sistema operativo ospitante Lucid desktop, deve disporre di un servente HTTP configurato in modo da poter funzionare con un interprete PHP e con un DBMS comune. Tuttavia, dalle prove fatte, sembra che solo Apache 2 sia adeguato al funzionamento di Lucid desktop.
Quando il sistema ospitante è in grado di far funzionare correttamente il PHP, si può procedere a scaricare la versione corrente di Lucid desktop presso http://github.com/lucid/lucid/:
$
git clone git://github.com/lucid/lucid.git lucid
[Invio]
Cloning into lucid... remote: Counting objects: 46095, done. remote: Compressing objects: 100% (19258/19258), done. Receiving objects: ... |
Così facendo si ottiene la directory ./lucid/
contenente la distribuzione di Lucid desktop. Questa directory (con il suo contenuto) va collocata dove il servente HTTP può utilizzarlo: potrebbe essere la directory /var/www/lucid/
oppure ~/public_html/lucid/
, o qualcosa di simile.
A questo punto, però, occorrerebbe intervenire nei permessi di accesso ai file, per consentire al servente HTTP di modificare il propri stessi file. Tuttavia, a differenza di altri sistemi del genere, come eyeOS, con Lucid desktop è più facile capire cosa deve essere accessibile in scrittura e cosa può rimanere protetto. Pertanto, inizialmente si lasciano le cose come sono e si attende il responso della procedura di configurazione iniziale.
A questo punto si può accedere al programma di configurazione. Si tratta di accedere con il navigatore all'indirizzo http://localhost/lucid/install/
, ovvero a http://localhost/~utente/lucid/install/
, a seconda di come è stato collocato.
Mano a mano che si compilano le varie schede si deve selezionare il bottone <->
> che appare in basso a destra.
La maschera successiva riguarda il controllo dei permessi di accesso. È lo stesso sistema di configurazione che avvisa su quali directory occorre intervenire, come si vede nella figura successiva.
Lasciando in sospeso il procedimento di configurazione, si interviene nelle directory indicate, cercando di fare il meglio possibile. Quello che viene richiesto, in pratica, è che il servente HTTP, funzionando con una certa utenza fittizia definita nel sistema ospitante, possa accedere, leggere e scrivere ai contenuti che si articolano a partire dalla directory specificate. Mano a mano che questi permessi vengono cambiati, la maschera si aggiorna; quando tutto è a posto, si può proseguire.
Si passa quindi alla scelta della base di dati: si può scegliere tra i DBMS più comuni; nelle due figure successive si vede la configurazione per SQLite e MySQL:
Segue la configurazione dell'amministrazione.
Va osservato che se si usa SQLite, il file in questione deve essere accessibile in lettura e scrittura dal servente HTTP, come già per le altre directory indicate espressamente dal procedimento di configurazione.
A questo punto si può rimuovere la directory lucid/install/
, in modo da impedire che la configurazione possa essere rifatta e dall'indirizzo «normale», che secondo gli esempi sarebbe http://localhost/lucid/
ovvero http://localhost/~utente/lucid/
, si ottiene il sistema funzionante.
Dal procedimento mostrato si intende che sia relativamente facile installare Lucid desktop anche in un servizio remoto che offre Apache2, PHP e MySQL, senza esigenze particolarmente difficili da soddisfare.
Va però tenuto in considerazione che la costruzione di applicazioni per Lucid desktop è più semplice rispetto ad altri sistemi simili. Il tutto è documentato nel sito di riferimento del progetto.
Feng Office(3) (ex OpenGoo) è un'applicazione «web» con lo scopo di organizzare l'attività di ufficio, consentendo la condivisione selettiva di parte delle attività e facilitando la comunicazione tra gli utenti in relazione alle attività svolte, con funzionalità vicine a quelle di Google documenti (http://docs.google.com) e di Zoho (http://zoho.com).
Il sistema operativo ospitante Feng Office deve disporre di Apache 2, PHP e MySQL. Prima di installare Feng Office è anche necessario predisporre una base di dati, sapendo comunque che è possibile condividerne una già usata per altre applicazioni. Nell'esempio successivo viene creata la base di dati fengoffice a cui si accede con un utente avente lo stesso nome.
#
/etc/init.d/mysql status
[Invio]
MySQL is stopped.. |
#
/etc/init.d/mysql start
[Invio]
Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. |
#
mysql -u root -p
[Invio]
Enter password:
digitazione_all'oscuro
[Invio]
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 300 Server version: 5.1.49-3 (Debian) ... |
mysql>
CREATE DATABASE fengoffice;
[Invio]
Query OK, 1 row affected (0.10 sec) |
mysql>
GRANT ALL ON fengoffice.* TO fengoffice@'localhost'
\
\ IDENTIFIED BY 'password';
[Invio]
Query OK, 0 rows affected (0.00 sec) |
mysql>
\q
[Invio]
Bye |
A questo punto si può prelevare il pacchetto di Feng Office ed estrarlo in una collocazione che lo renda accessibile al servente HTTP. Per esempio potrebbe trattarsi della directory /var/www/
o ~/public_html/
. Nell'estrazione viene creata la sottodirectory fengoffice/
; qui si suppone di intervenire nella directory ~/public_html/
dell'utente appunti2, secondo il sistema ospitante, e che il pacchetto da estrarre si trovi in una directory temporanea:
$
cd ~/public_html
[Invio]
$
unzip /tmp/fengoffice_1.7.5.zip
[Invio]
Nelle figure successive si procede con la configurazione successiva di Feng Office.
È sufficiente intervenire nei permessi delle directory indicate, senza continuare ricorsivamente nel loro contenuto.
Al primo accesso al sistema di Feng Office, viene chiesto ancora di configurare l'utenza amministrativa.
A questo punto, è possibile accedere. Naturalmente si può iniziare solo in qualità di utente amministrativo; poi, è possibile aggiungere altri utenti.
La prima cosa importante che deve fare l'amministratore è l'inserimento delle altre utenze ed eventualmente dei gruppi e dei progetti di lavoro (workplace). Per questo si deve selezionare la voce {Amministrazione
}, in alto a destra.
Nell'approccio più semplice si aggiungono gli utenti soltanto, a cui si abbina semplicemente un proprio progetto personale e il gruppo predefinito. Durante la creazione degli utenti è possibile fare in modo che la registrazione si completi attraverso un messaggio di posta elettronica; tuttavia, per questo è necessario che nel servente che ospita Feng Office sia attivo un MTA (un sistema di trasferimento dei messaggi di posta elettronica). Se così non fosse, diventa necessario che la registrazione sia completata subito con l'inserimento della parola d'ordine dell'utente.
Sulla base degli esempi mostrati fino a questo punto, ogni utente viene creato un proprio progetto personale, avente lo stesso nome. Se poi agli utenti viene concesso di aggiungere altri progetti, questi possono intervenire nella voce {Aggiungi progetto
} (add workplace) e {Modifica progetto
} (edit workplace), che appaiono nella parte sinistra della superficie di lavoro dell'utente.
Nell'ambito di ogni progetto è possibile gestire dei documenti, in modo simile a quanto si fa con Google documenti, con la differenza che la condivisione di questi deve avvenire a livello complessivo di progetto (nella figura precedente si abilita l'utente caio a partecipare ai documenti di tizio) e che la loro modifica, se concessa, non può avvenire simultaneamente. Pertanto, quando un utente vuole modificare un documento condiviso (proprio o di altri), deve prima bloccarlo, liberandolo solo dopo che ne ha salvato le modifiche.
Come si può intendere dal procedimento mostrato per l'installazione di Feng Office in un proprio sistema, è abbastanza semplice anche l'installazione in un sistema remoto, dove sia possibile accedere ai file solo attraverso il protocollo FTP, anche perché in quel caso, i processi del servente HTTP e degli script PHP si trovano verosimilmente a funzionare impersonando l'identità dell'utente a cui appartengono i file che vengono caricati.
Google documenti è una specie di applicazione per l'ufficio (documento di testo, foglio elettronico, presentazione, ecc.) che consente il lavoro di gruppo, simultaneamente sugli stessi file. Il servizio di Google documenti è accessibile a chiunque disponga di un indirizzo di posta elettronica, oppure a chi ha già un'utenza Gmail (la posta elettronica di Google). Il servizio può essere usato, sia per la gestione di documenti, sia per l'archiviazione di dati in formati che Google non riconosce o non gestisce direttamente.
Chi dispone di un'utenza Gmail (http://mail.google.com) ha già accesso alle funzioni di Google documenti. Chi invece utilizza la posta elettronica presso un gestore differente, può registrarsi a Google documenti attraverso una procedura relativamente semplice, attraverso la quale ottiene però anche un'utenza per Gmail.
Durante la procedura di registrazione, Google richiede di inserire il proprio numero di telefono cellulare, o almeno un indirizzo di posta elettronica alternativo, che verrebbero usati solo per ripristinare l'utenza in caso di difficoltà.
Google documenti è una specie di sistema operativo a cui si accede attraverso un navigatore comune. Tale sistema operativo offre un file system, gestito in maniera simile a quella di un sistema grafico strutturato in «cartelle» e un applicativo per l'ufficio, tutto in-linea. Vanno però osservate subito due cose importanti: le cartelle sono chiamate «raccolte» ed è consentito avere più file differenti, ma con lo stesso nome, anche se collocati nella stessa raccolta.
Si crea un file o una raccolta selezionando il bottone <Crea
>, dal quale si ottiene un menù con i vari tipi di opzioni disponibili. Tutte le altre operazioni relative alla gestione dei file e delle cartelle creati, procedono in modo intuitivo, anche attraverso l'uso del tasto destro del mouse. Va però osservato che i file creati compaiono inizialmente in una classificazione speciale, denominata «home page», e anche quando vengono spostati in una raccolta, continuano a mostrarsi lì. I file e le raccolte che sono stati collocati consapevolmente, possono essere fatti scomparire dalla «home page», ma ciò potrebbe essere fatto anche per file non collocati diversamente. In ogni caso, se non si trova un file, si può usare la funzione di ricerca che riguarda principalmente il nome del file ed eventualmente anche il suo contenuto.
Questo video mostra la creazione di un paio di file, la loro collocazione in raccolte appropriate e l'uso del cestino: ogv http://www.youtube.com/watch?v=9tXjkjvMF60.
Un file può essere caricato nella gestione di Google documenti e archiviato tale e quale, oppure convertito nei formati di Google. La conversione consente successivamente la modifica dei file caricati e sarebbe la soluzione preferibile, tenendo conto però che file originali troppo complessi non vengono convertiti in maniera ottimale. Questo video mostra il caricamento di alcuni file, di cui solo uno viene effettivamente convertito in un formato di Google documenti: ogv http://www.youtube.com/watch?v=rcAshzi33Gg.
I file caricati o creati con Google documenti, possono essere scaricati, ovvero se ne può ottenere una copia presso il proprio elaboratore locale. A seconda dei casi, può essere necessaria una conversione; per esempio un documento di testo può richiedere di essere convertito in formato ODT, oppure DOC. Anche in questo caso, se si richiede la conversione, c'è però il rischio di perdere informazioni relative all'impaginazione originale. Questo video mostra lo scaricamento di un foglio di lavoro che viene convertito nel formato ODT: ogv http://www.youtube.com/watch?v=JpMhqI1ptqo.
La condivisione dei file è l'aspetto più importante del servizio di Google documenti. Ogni file che viene creato o caricato, appartiene all'utente stesso e inizialmente è un file privato. Quindi è possibile estendere l'accessibilità di questo file, in lettura o anche in scrittura, a gruppi limitati di persone o a tutti indiscriminatamente. In questo video si mostra l'utente appunti2@fastmail.fm che condivide alcuni file con l'utente appunti2@gmail.com, concedendogli la facoltà di modifica: ogv http://www.youtube.com/watch?v=ddo8UR29sI0.
I permessi di accesso ai file hanno anche altre sfumature che, con lo sviluppo del servizio, potranno arricchirsi nel tempo. Le figure successive mostrano i casi principali con la spiegazione del significato che hanno.
I tipi file gestiti direttamente da Google documenti (quelli nel formato nativo di Google documenti) possono essere ceduti, nel senso che si può cedere la proprietà a un utente diverso, al quale precedentemente è stata concessa la condivisione.
Si può rinunciare alla condivisione togliendo la propria «sottoscrizione».
La cancellazione di un file condiviso ha implicazioni differenti: se il file non appartiene all'utente che lo cancella, ciò comporta al massimo la rinuncia alla condivisione; se invece appartiene all'utente che lo cancella, si richiede di scegliere se cancellarlo per tutti i collaboratori o se si preferisce cederne la proprietà a uno dei collaboratori esistenti.
Google documenti consente di operare sui file condivisi in modo simultaneo, visualizzando in tempo reale le modifiche apportate dagli altri collaboratori: ogv http://www.youtube.com/watch?v=9Q5PIt1YF1c. La cronologia consente di mantenere traccia delle modifiche e di attribuirle correttamente al responsabile.
Oltre ai file, anche le raccolte possono essere condivise, ma ciò comporta la condivisione implicita di tutto il loro contenuto. Pertanto, se successivamente si mette un file privato in una cartella condivisa, questo diviene accessibile con le stesse modalità della cartella che lo ospita.
I nomi dei file sono stabiliti e possono essere cambiati da chi ha i permessi di modifica su di essi. Ciò significa che se «tizio» crea il file «a» e lo mette in condivisione con «caio» consentendogli la modifica, «caio» può cambiargli nome, per esempio trasformandolo in «b». Ma la cosa più importante è che il cambiamento si trasmette a tutti gli altri collaboratori, proprietario incluso.
Quando si condivide un file e si invia la notifica attraverso la posta elettronica, occorre considerare che il volume delle notifiche può essere eccessivo per il destinatario, ma soprattutto, se si sbaglia indirizzo di condivisione, si rischia di importunare una persona diversa, probabilmente sconosciuta. Pertanto, quando si usa il servizio nell'ambito di un'attività già organizzata, è più prudente evitare l'invio delle notifiche, in modo da avere ancora la possibilità di correggere (annullando una condivisione errata), senza creare disagi inutili.
Google documenti è un vero sistema «cloud», dove l'elaboratore con cui si dialoga cambia nel tempo, anche durante il lavoro. Ciò comporta dei fenomeni che per i più possono risultare misteriosi. Per esempio, apparentemente in modo inspiegabile, può capitare che i comandi impartiti non diano esito, o che l'accesso a un file si blocchi improvvisamente. In tutti questi casi, l'unica cosa che si può fare è il tentare di ricaricare la pagina, attraverso il comando apposito del navigatore utilizzato per accedere al servizio. Infatti non bisogna dimenticare che si sta operando con un sistema remoto, eccezionalmente complesso, che sta servendo una quantità enorme di utenti simultaneamente.
Un altro aspetto della complessità del servizio comporta un problema subdolo per chi non se lo aspetta: la scomparsa dei file. Per comprendere la cosa, va prima considerata la modalità con cui Google documenti gestisce i file: i file (e le raccolte) sono entità numeriche che possono essere abbinate a una classificazione in raccolte. Va chiarito che possono, ma ciò non è obbligatorio. Per questo motivo, normalmente, i file e le raccolte che vengono creati o acquisiti attraverso le condivisioni, compaiono inizialmente nella classificazione generica «home page». Ma dalla «home page» i file e le raccolte possono essere fatti scomparire, e ciò è opportuno farlo quando si vanno a collocare in raccolte appropriate, ma lo si può fare anche se questi non sono ancora stati abbinati ad alcuna raccolta! Esiste sicuramente la possibilità di trovare i propri file nella classificazione denominata «tutti gli elementi», ma quando si gestiscono migliaia di file, questo elenco diventa ingestibile. Pertanto:
L'unico modo per gestire correttamente i file attraverso Google documenti è quello di usare regole precise nella denominazione, perché in caso di necessità si possa usare la funzione di ricerca per far riemergere i file apparentemente scomparsi. |
L'attività con Google documenti è sottoposta a un certo tipo di controllo, automatico, volto a evitarne l'uso improprio. Quando il sistema di Google «sospetta» lo svolgimento di un'attività scorretta, tende a limitare le funzionalità accessibili. L'aspetto su cui Google documenti è più sensibile è la condivisione in massa di un documento; per esempio, se si deve condividere un documento con 30 persone, è necessario farlo in più fasi, durante le quali almeno alcune di queste persone devono aprire il documento, dimostrando la «sincerità» o l'approvazione dell'operazione.
Wikipedia, Cloud computing, http://it.wikipedia.org/wiki/Cloud_computing
Wikipedia, Architettura telematica, http://it.wikipedia.org/wiki/Architettura_telematica
eyeOS, http://eyeos.org/
eyeisp, http://eyeisp.com/
Lucid desktop, http://www.lucid-desktop.org, http://people.slitaz.org/~pankso/packages/lucid-1.0.1.tar.gz, extra/lucid-desktop/backup/
Feng Office, http://www.fengoffice.com/web/community/community_index.php, http://sourceforge.net/projects/opengoo/files/fengoffice/
ownCloud, http://owncloud.org
Etherpad foundation, http://etherpad.org
Altervista, http://it.altervista.org/
Google documenti, http://docs.google.com
Zoho, http://www.zoho.com/
Docs for Facebook, http://docs.com/
Microsoft Skydriver, https://skydriver.live.com
2) Lucid desktop AFL: Academic Free License
3) Feng Office GNU AFL: Affero General Public License
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net