Documentazione
(relazione progetto ODALISK)
ODALISK è un portale per l'accesso multicanale a dati e applicazioni di provenienza multiple implementato secondo le specifiche stabilite da due working group: DS e DF.
La logica server side è stata sviluppata nel contesto della piattaforma Java. Il parsing e la creazione di documenti XML vengono eseguiti tramite DOM. Il portale interagisce con i datasource
TrippaPerGatti (Storage),
Findability4 All (storage),
web book (storage),
42? (intermediary) e con i formatter
42 (XHTML),
Findability4All (XHTML),
Lotus (XHTML).
1. Data Source
Il datasource è composto da un catalogo di 50 libri del genere classici latini e greci. E' accessibile dai seguenti link:
- URL catalogo xml:
http://sbrigas.web.cs.unibo.it/BrigataSassariDS.xml
- URL catalogo html:
http://sbrigas.web.cs.unibo.it/BrigataSassariDS.html
- URL elenco:
http://kurwenal.cs.unibo.it:8080/odalisk/DataSource?req=elenco
- URL scheda:
http://kurwenal.cs.unibo.it:8080/odalisk/DataSource?req=scheda
1.1 Le schede
Si è scelto di creare un DS di libri appartenenti al genere classici latini e greci. Ogni scheda e' stata definita in linguaggio XML e codificata in UTF-8 nel rispetto delle specifiche stabilite nel WG DS. Le schede sono state validate attraverso il
RelaxNG? fornito dalle specifiche.
1.2 La ricerca
La ricerca viene effettuata su un qualunque campo di una scheda previsto dal protocollo. Per ragioni di tempo non è stato possibile creare un file di indice (sarebbe stata la versione ottimale)
1.3 La chiamata elenco
La richiesta di un elenco avviene effettuando una GET HTTP all'indirizzo di reperimento configurato nel descrittore della servlet che funge da listener delle richieste.
I parametri di costruzione dell'elenco sono scelti tra quelli supportati dai DS acquistati e vengono specificati al momento della richiesta da parte del AC.
Es. di richiesta:
http://kurwenal.cs.unibo.it:8080/odalisk/DataSource?req=elenco&titolo=alessandro
Il DS risponde con l'elenco delle schede il cui titolo contiene la stringa alessandro in sintassi XML.
1.4 La chiamata scheda
La richiesta di una scheda avviene effettuando una GET HTTP all'indirizzo di reperimento configurato nel descrittore della servlet che funge da listener delle richieste.
Nella richiesta è necessario specificare l'identificativo univoco della scheda richiesta.
Ad esempio la richiesta di una scheda potrebbe essere:
Es. di richiesta:
http://kurwenal.cs.unibo.it:8080/odalisk/DataSource?req=scheda&id=1
Il DS risponde restituendo la scheda identificata da 1.
2. Data Formatter
Il Data Formatter è accessibile dai seguenti link:
- URL catalogo html:
http://sbrigas.web.cs.unibo.it/BrigataSassariDF.html
- URL catalogo xml:
http://sbrigas.web.cs.unibo.it/BrigataSassariDF.xml
- URL Elenco
http://kurwenal.cs.unibo.it:8080/odalisk/ElencoLayout
- URL Formattazione Pagina:
http://kurwenal.cs.unibo.it:8080/odalisk/DataFormatter?tipo=pagina
- URL Formattazione Frammento:
http://kurwenal.cs.unibo.it:8080/odalisk/DataFormatter?tipo=frammento
2.1 Formattazione di una pagina
Tutte le pagine del progetto vengono prodotte tramite delle richieste al formatter.
Il formatter risponde a richieste di formattazione di un documento completo con un documento completo formattato in HTML.
Nell'header HTTP della risposta viene specificato il content-type text/html
L'output è quindi un documento completo e pronto per la visualizzazione, per cui l'AC lo inoltra semplicemente al richiedente.
2.2 Formattazione di un frammento
Il formatter risponde a richieste di formattazione di frammenti di documento con una porzione di documento formattata e decorata secondo il layout e la skin richiesti.
E' compito dell'AC integrare i frammenti in risposta del formatter nel documento finale.
3. Application Controller
L'Application Controller e' un dispatcher delle richieste ricevute dall'utente. La discriminazione tra una richiesta e l'altra avviene tramite la lettura di un parametro di GET indicante il tipo della richiesta stessa.
L'AC analizza la richiesta dell'utente, richiede (se necessario) dei dati ai DS, crea il DOM da formattare, inoltra il DOM ad un formatter e infine visualizza all'utente i dati formattati.
4. AJAX
La versione client-side e' stata realizzata in javascript.
Il funzionamento e' il seguente: al primo caricamento della Home Page del sito, un metodo onLoad contenuto nell'elemento BODY invoca una funzione javascript incaricata di verificare se sono supportate le richieste HTTP tramite la creazione di un oggetto
XMLHttpRequest?.
In caso positivo, la medesima funzione provvede a sostituire tutti i link (che puntano a risorse sul server) contenuti nella pagina con link a funzioni javascript.
In questo modo ogni operazione dell'utente passera' attraverso delle funzioni javascript che inoltreranno le richieste (al DS o al DF) HTTP all'Ajax Engine.
In particolare, dopo aver controllato se Javascript e' abilitato nel server oppure no, viene inoltrata all'Application Controller una richiesta in merito all'indirizzo del data formatter.
Successivamente, viene quindi inviata al Data Formatter la richiesta tramite metodo POST relativa alla formattazione vera e propria dei dati.
Il file ricevuto dal Data Formatter viene visualizzato all'interno della pagina HTML in posizione finale, inquanto inerente i "crediti" di tale pagina.
5.Ontologia
La parte ontologica del progetto permette di creare percorsi interessanti e rilevanti per alcune delle schede del portale.
Schema dell'ontologia:
http://sbrigas.web.cs.unibo.it/ontologia_schema.xsd
Indirizzo dell'ontologia:
http://sbrigas.web.cs.unibo.it/ontologia.xml
6 Interoperabilità e rispetto delle specifiche
La versione server-side del progetto e' perfettamente compatibile con le specifiche stabilite nei WG DS e DF.
Simone Brigas
o Matricola: 0000193123
o E-mail: sbrigas [AT] cs.unibo.it
Bruno Zamborlin
o Matricola: 0900027348
o E-mail: bruno.zamborlin [AT] gmail.com
- Set ALLOWTOPICVIEW =
- Set ALLOWTOPICCHANGE =
to top