alma mater studiorum - universita' di bologna - sede di cesena facolta' di scienze...

16
ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE DELL'INFORMAZIONE IMPLEMENTAZIONE DI UN SISTEMA DI TIPI PER JOLIE Relatore Chiar.mo Prof. Zavattaro Gianluigi Correlatori Dr. Guidi Claudio Dott. Montesi Fabrizio Controrelatore Chiar.mo Prof. Maniezzo Vittorio Presentata da Ciotti Elvis

Upload: annunziata-meloni

Post on 02-May-2015

221 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENAFACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI

CORSO DI LAUREA SPECIALISTICA IN SCIENZE DELL'INFORMAZIONE

IMPLEMENTAZIONE DI UNSISTEMA DI TIPI PER JOLIE

RelatoreChiar.mo Prof. Zavattaro Gianluigi

CorrelatoriDr. Guidi ClaudioDott. Montesi Fabrizio

ControrelatoreChiar.mo Prof. Maniezzo Vittorio

Presentata daCiotti Elvis

Page 2: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Sommario presentazione

• JOLIE- panoramica

- creazione messaggi e invio

• SISTEMA DI TIPI PER JOLIE- dichiarazione tipi e controlli di conformità

- esportazione tipi XML Schema

• DEMO- applicazione distribuita JOLIE con sistema di tipi

• CONCLUSIONI

Page 3: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

• Linguaggio di programmazione

• Orchestrazione di servizi web

• Alternativa a WS-BPEL

• Basato su calcolo formale SOCK

(primitive per descrizione meccanismi SOC)

• Sintassi linguaggio in stile C/Java

• Interprete rende operativi i servizi

Java Orchestration Language Interpreter Engine

Alcune caratteristiche

Progetto europeo SENSORIA,Università di Bologna

http://jolie.sourceforge.net/

Page 4: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Primitive di comunicazione

B

NOTIFICATION ONE WAY

<xml …>….

</xml>

<xml …>….

</xml>A

RETE

SOLICIT RESPONSE REQUEST RESPONSE

C

<xml …>….

</xml>

<xml …>….

</xml>

D

RETE

<xml …>FAULT</xml>

<xml …>FAULT</xml>

<xml …>….

</xml>

<xml …>….

</xml>

Operatori di composizione

Sequenza

Parallelo

Scelta non deterministica sugli input

Page 5: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

ordine.cliente = “Mario Rossi”;ordine.articoli.prodotto[0] = “a128”;ordine.articoli.prodotto[0].qta = 1;ordine.articoli.prodotto[1] = “b131”;ordine.articoli.prodotto[1].qta = 3;

Strutture dati

ordine> <cliente>Mario Rossi</cliente> <articoli> <prodotto> a128 <qta>1</qta> </prodotto> <prodotto> b131 <qta>3</qta> </prodotto> </articoli></ordine>

Rappresentazione XML Codice JOLIE

invio con notification

inviaOrdine@ServizioOrdini( ordine )

Page 6: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

In questa tesi…

• Introduzione sistema di tipi per JOLIE- Sintassi per la definizione dei tipi

- Controllo di conformità messaggio / tipo

- Associazione tipi alle operazioni

- Controlli inseriti in ingresso e uscita nelle operazioni

• Estensione generatore WSDL con tipi XML Schema“Strumento per la generazione di documenti WSDL che descrivono servizi JOLIE”

Tesi di Laurea di Malagoli Davide - a.a. 07/08

Relatore: prof Gorrieri Roberto, Correlatori: Dr, Guidi Claudio, Dott. Montesi Fabrizio

Page 7: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Introduzione sistema di tipi 1) Sintassi per la definizione dei tipi dei messaggi

TYPE_DECLARATION

NATIVE_YPE

SUB_TYPE_LIST_N

TYPE_LIST_N

SUBTYPE

CARDINALITY

type id: NATIVE_YPE SUB_TYPE_LIST_N

void | string | int | double | any | undefined

{ SUBTYPE TYPE_LIST_N } | { ? } | Є

, SUBTYPE TYPE_LIST_N | Є

.id CARDINALITY: NATIVE_YPE SUB_TYPE_LIST_N | .id CARDINALITY: idTypeDeclared

[NUMBER, NUMBER] | [NUMBER, *] | * | ? | Є

Page 8: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Introduzione sistema di tipiEsempio di dichiarazioni di tipo del messaggio “ordine”

type ORDINE_TYPE: void {

.cliente: string .articoli: void {

.prodotto[1,*]: string {

.qta: int

} } .altre_info: any {?}}

<ordine> <cliente>Mario Rossi</cliente> <articoli> <prodotto> a128 <qta>1</qta> </prodotto> <prodotto> b131 <qta>3</qta> </prodotto> </articoli></ordine>

Page 9: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Introduzione sistema di tipi2) Algoritmo di controllo conformità messaggio al tipo dichiarato

<ordine> 20081218A12 <cliente>Mario Rossi</cliente> <articoli> <prodotto> a128 <qta>1</qta> </prodotto> <prodotto> b131 ??? </prodotto> <data>2008/12/18</data> </articoli></ordine>

type ORDINE_TYPE: void {

.cliente: string .articoli: void {

.prodotto[1,*]: string {

.qta: int

} } .altre_info: any {?}}

Page 10: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Introduzione sistema di tipi3) Associazione tipi alle operazioni

outputPort OrdiniServicePort { Location: “http://xyz:2002” Protocol: soap OneWay: inviaOrdine RequestResponse: opRR throws fault1 fault2 }

( ORDINE_TYPE )

( TIPO1 )( TIPO2 )(TIPO3) (TIPO4)

Page 11: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Introduzione sistema di tipi4) Controlli nelle operazioni a tempo di esecuzione

A B

NOTIFICATION ONE WAY

RETE

ricezione effettiva solo se il messaggio è conforme al tipo locale

<ordine>

…</ordine>

Invio effettivo solo se il messaggio è conforme al tipo locale

TypeMismatch

<ordine>

…</ordine>

Page 12: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

SCANNERPARSER

CONTROLLORESEMANTICO

OOITBUILDER

Introduzione sistema di tipi

Modifiche apportate

all’architettura JOLIE

CodiceJOLIE

servizio

AMBIENTE DI ESECUZIONE

GESTORE DELLACOMUNICAZIONE

OOIT

op1 opN

OGGETTI DICHIARAZIONI TIPOINSERITI NELLE OPERAZIONI

COMPONENTECONTROLLO

CONFORMITA’

CONTROLLI IN/OUT OPERAZIONI- TIPI- ASSOCIAZIONI TIPI-OPERAZIONI

- ESISTENZA TIPI- CARDINALITA’

Page 13: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Introduzione sistema di tipiDemo: gestore sessioni esami

DATABASECORSI E VOTI

DATABASEACCOUNTS

GESTORE SESSIONID’ESAME

PROFESSORE 1

PROFESSORE N

1. Autenticazione

2. Creazione sessione(esame, studente)

3. Domande

4. Proposta voto

1. Autenticazione

2. Partecipazione sessione(esame, studente)

3. Risposte a domande

4. Accettazione voto

STUDENTE 1

STUDENTE M

… …

sessione sessione…

sessione sessione…

Page 14: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Esportazione WSDL

<wsdl:definitions ..><wsdl:types>…</wsdl:types><wsdl:message…>…<wsdl:message…><wsdl:portType …> <wsdl:operation…> … </wsdl:operation…> <wsdl:input … /><wsdl:output … /></wsdl:portType …>

outpuPort outPort { Location:… Protocol: soap{ .schema=“file.xsd” ... } OneWay: op1}…

TRASFORMATOREJOLIE -> WSDL

DICHIARAZIONI XML Schema ESTERNE

ESPORTAZIONETIPI -> XSD

type TIPO1 {...}

outpuPort outPort { Location: ... Protocol: soap

OneWay: op1(TIPO1)}…

Codice JOLIE del servizio Documento WSDL

Page 15: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Conclusioni

Sistema di tipi: considerazioni

• Messaggi strutturalmente corretti: diminuzione anomalie di funzionamento

• Visualizzazione dettagliata errori di conformità: strumento di debug

• Dichiarazione tipi molto flessibile: qualsiasi contenuto per sottostruttura del tipo

Sviluppi futuri

• Supporto per altri tipi derivati e costrutti XSD

• Sviluppo linguaggio di coreografia complementare a JOLIE con supporto tipi

Con questa tesi si è introdotto un sistema di tipi per JOLIE che permette la dichiarazione dei tipi

dei messaggi ed effettua dei controlli in ingresso e uscita dalle operazioni, in modo che le

operazioni inviino e ricevano messaggi conformi ai relativi tipi dichiarati.

E’ stato anche modificato lo strumento per la creazione di documenti WSDL descriventi servizi

JOLIE, inserendo l’esportazione dei tipi dichiarati in formato XSD nelle relative operazioni.

Page 16: ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA - SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA SPECIALISTICA IN SCIENZE

Domande ?

Grazie dell’attenzione