44
Servizi applicativi in Internet Prof. Alfio Lombardo

Servizi applicativi in Internet

  • Upload
    camden

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Servizi applicativi in Internet. Prof. Alfio Lombardo. Problematiche inerenti al livello applicativo. Differenze sintattiche. Differenze Semantiche. Affinchè due processi applicativi possano cooperare devono possedere: Un Universo del Discorso comune 2. Uno schema concettuale - PowerPoint PPT Presentation

Citation preview

Page 1: Servizi applicativi in Internet

Servizi applicativi in Internet

Prof. Alfio Lombardo

Page 2: Servizi applicativi in Internet

Problematiche inerenti al livello applicativo

•Differenze sintattiche

•Differenze Semantiche

Page 3: Servizi applicativi in Internet

Affinchè due processi applicativi possano cooperare devono possedere:

1. Un Universo del Discorso comune

2. Uno schema concettuale

3. Un linguaggio comune

cioè qualcosa di cui parlare

cioè una descrizione comprensibile dell'universo del discorso

cioè una sintassi comune con cui esprimere le interazioni da svolgeree gli eventi che devono accadere nell'universo del discorso

Page 4: Servizi applicativi in Internet

CLIENTE10=1010

SERVENTE10=1010

!

Conversione asimmetrica

0101

0101

Page 5: Servizi applicativi in Internet

Conversione Simmetrica:Sintassi di trasferimento in Internet

XDR: eXternal Data Representation

(rfc 1014)Lunghezza costante

Tagging implicito

CLIENTSintassi Loc. A

Sintassi Trasferimen.

SERVERSintassi Loc. B

Sintassi Trasferimen.

Sintassi Trasferimento

Page 6: Servizi applicativi in Internet

Differenze semantiche Affinche’ due processi possano comunicare occorre definireun "universo del discorso" comune, cioè l'insieme di concetti su cui si baserà la comunicazione (semantica comune) .

Page 7: Servizi applicativi in Internet

Universo del Discorso: esempio Oggetto: volo Attributi: n° del volo, ora partenza, ora arrivo,

luogo di partenza, luogo di arrivo, n° posti in business,n° posti in economy, …

Azioni: prenotazioni posti in classe x, disdetta prenotazione posti in classe x

Page 8: Servizi applicativi in Internet

Semantica virtuale dello FTAM

Page 9: Servizi applicativi in Internet

Affinchè due processi applicativi possano cooperare devono possedere:

1. Un Universo del Discorso comune

2. Uno schema concettuale

3. Un linguaggio comune

cioè qualcosa di cui parlare

cioè una descrizione comprensibile dell'universo del discorso

cioè una sintassi comune con cui esprimere le interazioni da svolgeree gli eventi che devono accadere nell'universo del discorso

Page 10: Servizi applicativi in Internet

Il progetto di un protocollo

Prof. Alfio Lombardo

Page 11: Servizi applicativi in Internet

Componenti di un’entità di protocollo

Page 12: Servizi applicativi in Internet

Il progetto di un protocollo (1)

1.definizione delle funzioni eseguite dal protocollo ( il servizio fornito all'utente dal protocollo che si sta definendo);

Service provider

utente utente

Es.1: scambio affidabile di dati di dimensione qualsiasi tra utenti remoti

Es.2: accesso “sicuro” ai dati del proprio c/c

Page 13: Servizi applicativi in Internet

Il progetto di un protocollo (2)2. La definizione delle PDUs, (la loro struttura ed eventualmente la loro codifica)

utente utente

Entità di

protocollo

Entità di

protocollo

Page 14: Servizi applicativi in Internet

Il progetto di un protocollo (3) 3.gli elementi di procedura (le operazioni attraverso cui il protocollo permette lo scambio delle strutture dati per espletare le funzionalità definite nel punto 1)

utente utente

Entità di

protocollo

Entità di

protocollo

Page 15: Servizi applicativi in Internet

Il progetto di un protocollo (4) 4.il "mapping" delle suddette PDU e procedure coi servizi sottostanti (come le entità scambiano le PDUs)

utente utente

Entità di

protocollo

Entità di

protocollo

Servide provider

Page 16: Servizi applicativi in Internet

Rappresentazione delle strutture dati: ASN1

Permette di rappresentare i dati in modo astratto ovvero

di descrivere i dati in modo indipendente dalla rappresentazione concreta interna alla macchina (sintassi locale) dalla sintassi di trasferimento utilizzata per trasferire i dati all'esterno (sintassi di trasferimento).

ASN1 e’ stata definita nell’ambito del livello di Presentazione OSI

Page 17: Servizi applicativi in Internet

On/OFFOn=1volt/off=2 volt

On=255 / Off=0

On=ctrl_A_D/off=Alt_K

Boolean: True=On,False=Off

Esempio: indipendenza dalla sintassi locale

Page 18: Servizi applicativi in Internet

C code:Printer::=Boolean

Esempio: indipendenza dalla sintassi di trasferimento

Codificaaltolivello

(8 bit) 11111111=true00000000=false

Codificabassolivello

In rete

(16 bit) 1111111111111111=true00000000000000=false

In rete

Page 19: Servizi applicativi in Internet

Dichiarazioni di tipo

[type name] ::= [type definition].

Ad esempio Married ::= BOOLEAN

Dichiarazioni di valore[value name] [type name] ::= [value definition]

Ad esempio single Married ::= FALSE

Rappresentazione delle strutture dati: ASN1

Page 20: Servizi applicativi in Internet

Siniziale

in

out

Sfinale

Descrizione delle procedure

FDT:Formal Description Techniques

FSM, Finite State Machine, un insieme di stati S; un insieme di messaggi di input I; un insieme di messaggi di output O; una funzione di transizione di stato f: Sin x I -> Sfin; una funzione di uscita g: Sin x I -> O.

Transizione (atomica) di stato

Page 21: Servizi applicativi in Internet

Esempio:Alternating bit protocol

Entità Tx

User

Entità Tx

New Message

(dati)

Pack(m,bit)

Ack(bit)

Page 22: Servizi applicativi in Internet

New Message

(dati)

m=dati

Pack(m,0)

Start

T1=20ms

Wait for Ack 0

Esempio:Alternating bit protocol

Entità Tx: 1/3

User

Entità Tx

IDLE

New Message

(dati)

Pack(m,0)

Prepare

pack(m,0)

Page 23: Servizi applicativi in Internet

Wait for New

Message

New Message

(dati)

m=dati

Pack(m,1)

Start

T1=20ms

Wait for Ack1

Prepare

pack(m,1)

Page 24: Servizi applicativi in Internet

S= Idle, Wait for Ack 0,

Wait for New Message

Wait for Ack 1

In Messages =

NewMessage (),

Ack( ), Timer

Out Messages:

Pack ( )

Page 25: Servizi applicativi in Internet

Extended FSM: Esempio

Y

m=datibit=B

Page 26: Servizi applicativi in Internet

Specification Description Language (SDL)

Procedure: EFSM

Strutture dati: ASN1

Page 27: Servizi applicativi in Internet

Esempio: sistema Bancomat

Block: Terminale Block: Gestore ServizioProcessoInterfacciaUtente

ProcessoAttuatore

ProcessoSaldo

ProcessoControlloFunzione

ProcessoControlloUtente

Ch3Ch1

Ch5

Ch4

Ch6Ch2

Page 28: Servizi applicativi in Internet

Esempio: Sistema di gestione di card per acquisti

sistema diffuso nei grandi magazzini;consiste nel rilascio al cliente di una Card con banda magnetica con la quale:

  l’amministrazione ha uno strumento di controllo della clientela e dei flussi di denaro che ne provengono.

la clientela ha degli sconti particolari sui loro normali acquisti quando le somme degli acquisti effettuati superano una determinata soglia.

Page 29: Servizi applicativi in Internet

Struttura del sistema

Rappresenta il terminale utilizzato dal cassiere. E’ collegato ad un lettore di schede magnetiche, ad un dispositivo di stampa nonché al blocco Amministrazione

rappresenta il terminale remoto presente nellasede dell’Amministrazione che riceve e risponde alle richieste di tutte le casse

Page 30: Servizi applicativi in Internet

Blocco Cassa

·   Gestisce il dispositivo necessario per leggere la Card dell’utente. Se i dati vengono letti correttamente vengono trasferiti al terminale, altrimenti viene indicato di ripetere l’operazione.

Gestisce l’interazione tra il cassiere ed il terminale (verosimilmente composto da tastiera e monitor) tramite il canale Ch1, comunica le richieste del cassiere al blocco Amministrazione tramite il canale Ch5, invia dei comandi al processo Lettura Card e al processo Stampa rispettivamente attraverso Ch3 e Ch4

gestisce il dispositivo di stampa del terminale

Ch5

Page 31: Servizi applicativi in Internet

Blocco Amministrazione

  Riceve le richieste dal blocco Cassa, quali l’accredito della spesa effettuata dal titolare di una card, gli estremi relativi ad un acquisto per della merce che un cliente chiede di restituire, ecc. Dialoga col Processo Gestione Archivi tramite Ch6.

gestisce tutte le informazioni relative ai clienti, alla merce venduta, alle condizioni di garanzia o di restituzione della merce, alle statistiche e previsioni delle vendite, alle norme che regolano la vendita, ecc

Page 32: Servizi applicativi in Internet

Canale ::= [APPLICATION 0] CHOICE {ch1 Ch1 ch2 Ch2 ch3 Ch3 ch4 Ch4 ch5 Ch5 ch6 Ch6 ch7 Ch7}

Definizione canali

Page 33: Servizi applicativi in Internet

Su Ch1 (interfaccia cassiere / processo_interfaccia_cassiere):

funzioneCassa: usato dal cassiere per indicare al Processo Interfaccia Cassiere quale sarà la prossima operazione che vuole effettuare ( l’inizio di un nuovo conteggio di articoli, la lettura della Card del cliente, ecc…); comandoConteggio: usato dal cassiere per effettuare il conteggio degli articoli oppure per visualizzare il totale dovuto dal cliente per i suoi acquisti; datiResoMerce: usato dal cassiere per effettuare un reso merce e consegnare al cliente buono spese del corrispondente importo; Messaggio: generico messaggio visualizzato sul terminale di cassa;

Ch1::=[APPLICATION 1] CHOICE{ funzioneCassa[1]IMPLICIT ENUMERATED

{ nuovoConteggio(1), letturaCard(2), resoMerce(3), pagamentoArticoliInContanti(4)},

comandoConteggio[2] CHOICE {articoloSuccessivo[1] DatiArticolo, totale[2] INTEGER}, datiResoMerce[3] IMPLICIT SEQUENCE { datiArticolo DatiArticolo, dataAcquisto Data}, messaggio[4] IMPLICIT PRINTABLE STRING}

DatiArticolo ::= SEQUENCE {codiceArticolo OBJECT ID, quantità INTEGER}

Page 34: Servizi applicativi in Internet

Ch2 [APPLICATION 2] ::= datiLetturaCard IMPLICIT SEQUENCE {letturaCorretta BOOLEAN, datiCard DatiCard OPTIONAL} }

Su Ch2 (interfaccia dispositivo lettura card / processo_lettura_carta): datiLetturaCard: dati della card letti dal dispositivo e forniti al processo

Lettura Carta;

DatiCard ::= SEQUENCE {numeroCard OBJECT IDENTIFIER, titolare PRINTABLE STRING, scadenza Data}

Page 35: Servizi applicativi in Internet

Su Ch3 (interfaccia processo_lettura_card / processo_interfaccia_cassiere): richiestaLetturaCard: richiesta di lettura della Card inviata al Processo Lettura Carta da parte del Processo Interfaccia cassiere;rispostaDispositivoLetturaCard: invio dei dati della Card al Processo Interfaccia Cassiere parte del Processo Lettura Carta;

Ch3 ::= [APPLICATION 3] CHOICE {richiestaLetturaCard[1] IMPLICIT BOOLEAN, rispostaDispositivoLetturaCard [2] IMPLICIT SEQUENCE {

letturaCorretta BOOLEAN, datiCard DatiCard OPTIONAL}

}

Page 36: Servizi applicativi in Internet

 Ch4 ::= [APPLICATION 4] CHOICE { richestaStampa[1] IMPLICIT SEQUENCE { modelloStampa ModelloStampa, datiStampa OCTET STRING }, rispostaDispositivoStampa [2] IMPLICIT ENUMERATED { stampaCorretta(0),

cartaEsaurita(1), inchiostroEsaurito(2), altriProblemi(3)}

}

Su Ch4 (interfaccia processo_stampa / processo_interfaccia_cassiere): richiestaStampa: richiesta di stampa inviata al Processo Stampa da parte del Processo Interfaccia Cassiere;rispostaDispositivoStampa: informazioni sul funzionamento del dispositivo inviate al Processo Interfaccia Cassiere da parte del Processo Stampa;

ModelloStampa ::= ENUMERATED {normale (0), finanziamento (1), buonoSpesa (2)}

Page 37: Servizi applicativi in Internet

Su Ch5 (interfaccia processo_Raccolta_Richieste / processo_interfaccia_cassiere): richiestaAccredito: richiesta di accredito della somma spesa del cliente, inviata al Processo Raccolta Richieste dal Processo Interfaccia cassiere; richiestaReso: richiesta di effettuare un reso merce; rispostaAccredito: indicazione dello sconto di cui attualmente può usufruire il cliente e del totale delle spese che ha effettuato finora, inviata al Processo Interfaccia Cassiere dal Processo Raccolta Richieste; rispostaReso: indicazione della possibilità di effettuare il reso merce richiesto dal cliente, inviata al Processo Interfaccia Cassiere dal Processo Raccolta Richieste;

Ch5::= [APPLICATION 5] CHOICE { richestaAccredito[1] IMPLICIT SEQUENCE {

importo INTEGER, datiCard DatiCard},

richestaReso[2] IMPLICIT SEQUENCE { datiArticolo DatiArticolo, dataAcquisto Data},

rispostaAccredito[3] IMPLICIT SEQUENCE { scontoAttuale INTEGER, speseTotali INTEGER},

rispostaReso[4] IMPLICIT BOOLEAN}

Data ::= GENERALIZED TIME

Page 38: Servizi applicativi in Internet

Ch6::= [APPLICATION 6] CHOICE { aggiornaCreditoCliente[1] IMPLICIT SEQUENCE { spesaAttualeCliente INTEGER,

datiCard DatiCard}, aggiornamentoEseguito[2]IMPLICIT SEQUENCE {

scontoAttuale INTEGER, speseTotali INTEGER}

}

Su Ch6 (interfaccia processo_Raccolta_Richieste / processo_getione_archivi): aggiornaCreditoCliente:comando inviato al Processo Gestione Archivi dal Processo Raccolta Richieste per aggiornare il credito del cliente i cui dati si trovano nel database contenente le informazioni di tutti i clienti titolari della Card; aggiornamentoEseguito: messaggio di conferma dell'avvenuto aggiornamento inviato al Processo Raccolta Richieste dal Processo Gestione Archivi;

Page 39: Servizi applicativi in Internet

Su Ch7: (interfaccia dispositivo di stampa / processo_stampa): avvioStampa: comando inviato al dispositivo di stampa dal Processo Stampa per effettuare la stampa di uno dei tre modelli possibili;

Ch7::= [APPLICATION 7] avvioStampa BOOLEAN

Page 40: Servizi applicativi in Internet
Page 41: Servizi applicativi in Internet
Page 42: Servizi applicativi in Internet

Macrolezione 3:Progetto di un protocollo di comunicazione I

Approfondimento Macrolezione 3:Sintassi di trasferimento

Macrolezione 4: Progetto di un protocollo di comunicazione II

Page 43: Servizi applicativi in Internet
Page 44: Servizi applicativi in Internet

Programma Applicativo (C code):Printer::=Booleanprinter Boolean:= true

Esempio: la programmazione

Codificaaltolivello

(8 bit) 11111111=true

Codificabassolivello

In rete

On=1volt/off=2 volt

Interprete del Protocollo:

True=1 volt (ON)

(8 bit) true=11111111

On=255 / Off=0