17
La seconda release di Virtuose basata su database XML Chinosi 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

Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su

Embed Size (px)

Citation preview

Page 1: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

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

Page 2: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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.

Page 3: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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.

Page 4: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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

Page 5: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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

Page 6: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 6 -

La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329

<? virtuose

version= “2.0”?>

La proposta in dettaglio

Page 7: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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

Page 8: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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

Page 9: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 9 -

La seconda release di Virtuose basata su database XMLChinosi Michele – matr.: 592329

<? virtuose

version= “2.0”?>

Schema concettuale del database

Page 10: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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.

Page 11: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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”/>

Page 12: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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)”>

Page 13: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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)

Page 14: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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

Page 15: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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).

Page 16: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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.

Page 17: Chinosi Michele – matr.: 592329La seconda release di Virtuose basata su database XML  La seconda release di Virtuose basata su

- 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