1 / 44

Servizi applicativi in Internet

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

camden
Download Presentation

Servizi applicativi in Internet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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: • 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. SERVENTE CLIENTE 0101 0101 Conversione asimmetrica 10=1010 10=1010 !

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

  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: • 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 un’entità 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); utente utente Service provider 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 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 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 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 nell’ambito del livello di Presentazione OSI

  17. On/OFF Boolean: True=On, False=Off On=255 / Off=0 On=ctrl_A_D/off=Alt_K Esempio: indipendenza dalla sintassi locale On=1volt/off=2 volt

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

  19. Rappresentazione delle strutture dati: ASN1 Dichiarazioni di tipo [type name] ::= [type definition]. Ad esempio Married ::= BOOLEAN Dichiarazioni di valore [value name] [type name] ::= [value definition] Ad esempiosingle Married ::= FALSE

  20. 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. Siniziale in Transizione (atomica) di stato out Sfinale

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

  22. IDLE New Message (dati) m=dati Prepare pack(m,0) Pack(m,0) Start T1=20ms Wait for Ack 0 Esempio:Alternating bit protocol Entità Tx: 1/3 User New Message (dati) Entità Tx Pack(m,0)

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

  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 m=dati bit=B Y

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

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

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

  29. 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 remotopresente nella sede dell’Amministrazione che riceve e risponde alle richieste di tutte le casse Struttura del sistema

  30. Blocco Cassa gestisce il dispositivo di stampa del terminale · 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 Ch5

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

  32. Definizione canali Canale ::= [APPLICATION 0]CHOICE {ch1 Ch1 ch2 Ch2ch3 Ch3ch4 Ch4ch5 Ch5ch6 Ch6ch7 Ch7}

  33. DatiArticolo ::= SEQUENCE { codiceArticolo OBJECT ID, quantità INTEGER} 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}

  34. DatiCard ::= SEQUENCE {numeroCard OBJECT IDENTIFIER, titolare PRINTABLE STRING, scadenza Data} Su Ch2(interfaccia dispositivo lettura card / processo_lettura_carta): datiLetturaCard: dati della card letti dal dispositivo e forniti al processo Lettura Carta; Ch2 [APPLICATION 2] ::= datiLetturaCard IMPLICIT SEQUENCE {letturaCorretta BOOLEAN, datiCard DatiCard OPTIONAL} }

  35. Su Ch3(interfaccia processo_lettura_card / processo_interfaccia_cassiere): richiestaLetturaCard: richiesta di lettura della Card inviata al ProcessoLettura 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. ModelloStampa ::= ENUMERATED {normale (0), finanziamento (1), buonoSpesa (2)} 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; 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)} }

  37. Data ::= GENERALIZED TIME 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 totaledelle 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}

  38. 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; Ch6::= [APPLICATION 6] CHOICE { aggiornaCreditoCliente[1] IMPLICIT SEQUENCE { spesaAttualeCliente INTEGER, datiCard DatiCard}, aggiornamentoEseguito[2]IMPLICIT SEQUENCE { scontoAttuale INTEGER, speseTotali INTEGER} }

  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. Macrolezione 3: Progetto di un protocollo di comunicazione I Approfondimento Macrolezione 3: Sintassi di trasferimento Macrolezione 4: Progetto di un protocollo di comunicazione II

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

More Related