La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Servizi applicativi in Internet Prof. Alfio Lombardo.

Presentazioni simili


Presentazione sul tema: "Servizi applicativi in Internet Prof. Alfio Lombardo."— Transcript della presentazione:

1 Servizi applicativi in Internet Prof. Alfio Lombardo

2 Problematiche inerenti al livello applicativo Differenze sintattiche Differenze Semantiche

3 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 svolgere e gli eventi che devono accadere nell'universo del discorso

4 CLIENTE 10=1010 SERVENTE 10=1010 ! Conversione asimmetrica 0101

5 Conversione Simmetrica: Sintassi di trasferimento in Internet XDR: eXternal Data Representation (rfc 1014) Lunghezza costante Tagging implicito CLIENT Sintassi Loc. A Sintassi Trasferimen. SERVER Sintassi Loc. B Sintassi Trasferimen. Sintassi Trasferimento

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

7 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

8 Semantica virtuale dello FTAM

9 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 svolgere e gli eventi che devono accadere nell'universo del discorso

10 Il progetto di un protocollo Prof. Alfio Lombardo

11 Componenti di unentità di protocollo

12 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 Es.1: scambio affidabile di dati di dimensione qualsiasi tra utenti remoti Es.2: accesso sicuro ai dati del proprio c/c

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

14 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 Entità di protocollo Entità di protocollo

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

16 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 nellambito del livello di Presentazione OSI

17 On/OFF On=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

18 C code: Printer::=Boolean Esempio: indipendenza dalla sintassi di trasferimento Codifica alto livello (8 bit) =true =false Codifica basso livello In rete (16 bit) =true =false In rete

19 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

20 S iniziale in out S finale 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: S in x I -> S fin ; una funzione di uscita g: S in x I -> O. Transizione (atomica) di stato

21 Esempio:Alternating bit protocol Entità Tx User Entità Tx New Message (dati) Pack(m,bit) Ack(bit)

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

23 Wait for New Message New Message (dati) m=dati Pack(m,1) Start T1=20ms Wait for Ack1 Prepare pack(m,1)

24 S= Idle, Wait for Ack 0, Wait for New Message Wait for Ack 1 In Messages = NewMessage (), Ack( ), Timer Out Messages: Pack ( )

25 Extended FSM: Esempio Y m=dati bit=B

26 Specification Description Language (SDL) Procedure: EFSM Strutture dati: ASN1

27 Esempio: sistema Bancomat Block: Terminale Block: Gestore Servizio Processo Interfaccia Utente Processo Attuatore Processo Saldo Processo Controllo Funzione Processo Controllo Utente Ch3 Ch1 Ch5 Ch4 Ch6 Ch2

28 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: lamministrazione 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.

29 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 nella sede dellAmministrazione che riceve e risponde alle richieste di tutte le casse

30 Blocco Cassa · Gestisce il dispositivo necessario per leggere la Card dellutente. Se i dati vengono letti correttamente vengono trasferiti al terminale, altrimenti viene indicato di ripetere loperazione. Gestisce linterazione 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

31 Blocco Amministrazione Riceve le richieste dal blocco Cassa, quali laccredito 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

32 Canale ::= [APPLICATION 0] CHOICE {ch1 Ch1Ch1 ch2 Ch2 ch3 Ch3 ch4 Ch4 ch5 Ch5 ch6 Ch6 ch7 Ch7}Ch2Ch3Ch4Ch5Ch6Ch7 Definizione canali

33 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 ( linizio 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}

34 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}

35 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} }

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

37 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

38 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;

39 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

40

41

42 Macrolezione 3: Progetto di un protocollo di comunicazione I Approfondimento Macrolezione 3: Sintassi di trasferimento Macrolezione 4: Progetto di un protocollo di comunicazione II

43

44 Programma Applicativo (C code): Printer::=Boolean printer Boolean:= true Esempio: la programmazione Codifica alto livello (8 bit) =true Codifica basso livello In rete On=1volt/off=2 volt Interprete del Protocollo: True=1 volt (ON) (8 bit) true= On=255 / Off=0


Scaricare ppt "Servizi applicativi in Internet Prof. Alfio Lombardo."

Presentazioni simili


Annunci Google