Upload
jacopo-repetto
View
215
Download
0
Embed Size (px)
Citation preview
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
La seconda release di Virtuose basata su database XML
Studio del database
Chinosi Michele – matricola 592329
Anno accademico 2003/2004
Relatore: Prof. ssa Fiorella De Cindio
Correlatori: Marco Benini – Leonardo Sonnante
- 2 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Obiettivo:Elaborare un’ipotesi di miglioramento del database del motore per comunità virtuali VIRTUOSE, sostituendo all’RDBMS esistente un database XML e modificando l’intera architettura al fine di sfruttare pienamente le peculiarità che tale linguaggio offre.
- 3 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
VIRTUOSE
1
2
3
PostgreSQL
Variante della strutturaa tre livelli:
1. presentazione2. logica applicativa3. dati
VIRTual commUnity Open Source Engine
Apache
Struttura logica basata su conferenze e messaggi.
- 4 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
PostgreSQL
• Problemi prestazionali: hanno impedito la completa esecuzione di test dell’intera architettura.
• I messaggi sono salvati in forma tabellare separando le intestazioni dal body per costituire un indice. Possibilità di definire nuovi tipi di messaggi.
• Grande numero di tabelle• Numero variabile di interrogazioni e di join ad ogni accesso
- 5 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
La proposta multi-tierL’architettura precedente viene sostituita da un’architettura multi-tier
- 6 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
La proposta in dettaglio
- 7 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
I linguaggi utilizzati
• XML (ID, IDREF(S), Namespaces)• XSchema (tipizzazione, validazione)• Xpath, Xquery, Xpointer• Xupdate
• Java (J2EE)
W3C
XML:DB
SUN
- 8 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Il framework utilizzato
• prodotti sviluppati e distribuiti dall’Apache foundation.• ottimo livello di integrazione• prestazioni difficilmente raggiungibili altrimenti
• Xerces2-J:Validazione
• Xindice:Repository
• Tomcat: Middle-tier
• Jetspeed: Web-tier
- 9 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Schema concettuale del database
- 10 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
• Collezioni
• File paginati compressi
• B-alberi
• Scritto in Java
• Include validatore Xerces2-J
• Indicizzazione
• Supporta Xpath, Xquery, Xupdate, SAX2, DOM Level 3, XSchema
Scelta del repositoryCome DBMS viene utilizzato il database XML nativo Xindice distribuito da Apache.
- 11 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Il documento XSchema• Tipizzazione: tipi predefiniti, restrizione e pattern
<xsd:simpleType name=“telefono”>
<xsd:restriction base=“xsd:string”>
<xsd:pattern value=“([0-9])+/([0-9])+”/>
</xsd:restriction>
</xsd:simpleType>
• Elemento any:
<xsd:any namespace=“##any”
minOccurs=“0”
maxOccurs=“unbounded”
processContent=“strict”/>
- 12 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Il database XML• La conferenza tipimsg contiene all’interno dei suoi messaggi la
dichiarazione dei tipi di messaggio sottoforma di documenti XSchema:
<content> <t2:schema xmlns:t2= ... targetNamespace= ... xmlns= ...> ... </t2:schema> </content>
• Ogni conferenza contiene l’elemento hook, di tipo xsd:anyType, in modo da permettere la personalizzazione della struttura delle conferenze.
• Ogni messaggio non appartenente alla conferenza tipimsg contiene un attributo xsi:schemaLocation che punta al corrispondente documento XSchema dichiarato all’interno di tipimsg tramite un’espressione XPointer:
<utente xmlns=“http://www.virtuose.it/ns/t2” xml:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“[URI] #xpointer(t2/content/t2:schema)”>
- 13 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Parsing e Validazione• E’ stato implementato in Java un parser SAX (event-based) basato sulle API di Apache Xerces2-J.
• Le query si basano su parsing DOM (tree-based)
- 14 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Middle-tier: Tomcat
Apache Tomcat è un web-container.
Implementa le funzioni di:
• HTTP Server
• Servlet e JSP Engine
• Web application container:
• Apache Jakarta Jetspeed: EIP
• Logica applicativa: classi e JSP
• Apache Xindice: DBMS XML
- 15 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Web-tier: Jetspeed
Si basa sui portlets che possono:
• eseguire al loro interno frammenti di codice Java (Classi, JavaBeans, Servlet)
• presentare pagine JSP e XML
• visualizzare pagine PHP, ASP, …
Apache Jakarta Jetspeed è un EIP open-source.E’ fornito come web-application (archivio Java con estensione .war).
- 16 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Prestazioni ottenute
Test prestazionali su EISTest prestazionali
sull’intera architettura
I risultati ottenuti dall’esecuzione delle classi Java hanno dato i seguenti risultati:
• 4 ms: query Xpath
• 36 - 50 ms: query Xupdate
• 140 ms: validazione db XML
• 400 ms: query Xpath su di una collezione di 6500 documenti
• quasi 5 s: validazione e importazione del file XML in Xindice.
I risultati ottenuti dall’esecuzione di pagine JSP associate a classi Java hanno dato risultati complessivamente inferiori ai 2 s.
- 17 -
La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329
<? virtuose
version= “2.0”?>
Conclusioni
Stabilità:• Contesto in continua evoluzione
• Scelti solo versioni stabili
Semplicità:• Possibilità di implementazione
• Facilità di installazione
• Struttura e gestione del db
Standardizzazione:• XML, Xschema, Xpath, Xpointer, XQuery, SAX, DOM, Java, …
• Architettura multi-tier
Velocità di esecuzione:• Non ancora ottenuti i risultati ottimali, ma i software sono in continuo aggiornamento
Universalità:• Una soluzione standard risulta universalmente riconosciuta e applicata secondo la documentazione ufficiale
Personalizzazione:• XML
• Portlet
• Personalizzazione EIP