Sessione. Stato Del Server. Stato Della Sessione. Design Pattern Client Session State. Un server stateful usa più risorse di un server stateless
|
|
- Renata Simone
- 5 anni fa
- Visualizzazioni
Transcript
1 Sessione Una sessione è un interazione a lungo termine fra un client e un server. Può consistere di una singola richiesta o di una serie di richieste. Tipicamente una sessione inizia quando un utente fa login, e termina quando l utente fa log out o semplicemente va via Sessioni (o server) stateful e stateless Con server stateless si intende un server che non mantiene (conserva) uno stato fra le richieste Stato Del Server Un server stateful usa più risorse di un server stateless In un server stateful dovremo usare lo stesso oggetto per servire le richieste dello stesso utente Durante l attesa di richieste, l oggetto server deve tenere il suo stato. Per ciascun utente vi sarà un corrispondente oggetto server, es. per 100 utenti, vi saranno 100 oggetti server Durante l interazione con l oggetto server, vari campi dell oggetto prenderanno certi valori, quindi l oggetto ha uno stato Quando la risposta è stata data, lo stato dell oggetto è inutile. Ad una nuova richiesta lo stato viene reimpostato Un server stateful tiene traccia di ciò che il client da un certo indirizzo IP ha visitato. La lista di pagine visitate è mantenuta fra una richiesta e l altra Se l utente interagisce ogni 10 secondi e la computazione lato server prende un secondo, l oggetto server aspetta in memoria per il 90% del tempo Per un server stateless, non importa quale oggetto usiamo per servire una richiesta 1 2 Stato Della Sessione Un server che ha tanti utenti dovrebbe essere stateless, per evitare un enorme uso di risorse D altra parte, per fornire una funzionalità tipo carrello della spesa la sessione dovrebbe essere stateful I dettagli del carrello della spesa sono lo stato della sessione, ovvero sono rilevanti solo per quella sessione I dati di sessione sono distinti dai dati permanenti che devono essere conservati e disponibili per tutte le sessioni Alcuni dati di sessione possono essere conservati per diventare dati permanenti Ci sono tre scelte di base per conservare lo stato della sessione: sul client, sul server, sul database 3 4
2 Intento: conserva lo stato della sessione sul client Tutti i dati della sessione sono sul client, ed il client manda tutto i dati di sessione con ogni richiesta al server, e il server manda tutto lo stato con ogni risposta Si può usare un Data Transfer Object per tenere i dati Con un rich-client, i dati possono essere tenuti da campi dell interfaccia, o (meglio) nello stesso Data Transfer Object senza essere visualizzati Con un'interfaccia HTML ci sono tre modi: parametri dell URL, campi nascosti, cookie Dati di sessione su URL La dimensione dell URL è limitata Con pochi dati, per es. un ID di sessione, funziona bene e può essere una scelta ricorrente L associazione di un ID di sessione può essere fatta in automatico dalla piattaforma cambiando l URL, quindi il bookmark può essere un problema Dati di sessione su campi nascosti Un campo nascosto è un campo inviato al browser ma non visualizzato sulla pagina web. Tag: <input type= hidden > Lo stato della sessione è inserito in un campo nascosto e serializzato con la risposta. XML può essere usato come formato per i dati inseriti nel campo nascosto 5 6 Dati di sessione su cookie I cookie sono inviati avanti e indietro automaticamente Lo stato della sessione è serializzato su un cookie Se l utente disattiva i cookie per il suo browser il sito non funziona Un cookie funziona solo per un singolo nome di dominio, quindi siti separati in diversi nomi di dominio non vedranno i cookie di altri siti Quando usarlo Funziona bene insieme a server object stateless, e riesce a far recuperare la sessione quando un server va giù e viene sostituito Quando il client va giù si perde tutto, ma l utente se lo aspetta Si usa quasi sempre per identificare la sessione. Per evitare che qualcuno catturi una sessione di un altro (cambiando l ID di sessione) si usa l hash di un ID semplice Possibili svantaggi Con grandi quantità di dati, il tempo di trasferimento durante una richiesta può diventare proibitivo I dati inviati al client possono essere visti e alterati, i dati re-inviati al server devono essere ri-convalidati. Il criptaggio e decriptaggio ad ogni richiesta può essere un problema per le prestazioni 7 8
3 Server Session State Intento: conserva lo stato della sessione sul server in forma serializzata Server Session State Un oggetto di sessione è tenuto in memoria sul lato server dell applicazione Una mappa in memoria tiene il riferimento a oggetti di sessione tramite la chiave pari all ID di sessione. Dall ID si prende l oggetto dalla mappa e si può servire la richiesta del client. Si ha: (i) sufficiente memoria sul server, (ii) un solo application server Per risolvere il problema della memoria limitata, si serializza lo stato dell'oggetto sessione (vedi Memento [GoF]) e si immagazzina su uno storage, ovvero l oggetto di sessione è passivato Si può serializzare in binario o in XML 9 10 Server Session State Lo storage può essere il file system o un database dello stesso host Se lo storage è accessibile da più host, si rende possibile Clustering, ovvero distribuzione di richieste a più server Failover, se un host va giù, il controllo si trasferisce ad un altro host che recupera lo stato Si può aver bisogno del pattern Serialized LOB per tenere lo stato Se si memorizza lo stato in un database, ci si deve preoccupare sulla gestione delle sessioni che vanno via, le vecchie sessioni devono essere cancellate controllando periodicamente i timestamp sul database Quando usarlo Il punto di forza è la semplicità, se vi è sufficiente memoria, tuttavia clustering e failover possono essere complicati da gestire 11 12
4 Intento: conserva dati di sessione come dati dedicati su database Quando una richiesta del client arriva sul server, anzitutto il server prende i dati necessari dal database Per riprendere i dati della sessione è necessario almeno un ID di sessione che è conservato sul client (è la chiave per l accesso ai dati del database) I dati recuperati sono tipicamente dati di sessione (utili solo per l interazione corrente) e dati rilevanti per tutte le interazioni I dati di sessione devono essere considerati locali, e altre parti del sistema non dovrebbero usarli, fino a quando non si fa commit della sessione I dati di sessione conservati sul database devono essere considerati dati intermedi e distinti dagli altri che sono stati confermati Aggiungere un campo nella riga del database che indica che i dati della riga sono in sospeso (pending) Campo ispending di tipo boolean, oppure Campo ispending che conserva l ID di sessione, così che sarà facile trovare tutti i dati per una certa sessione Aggiungere questo campo costringe altre parti (altre applicazioni) a conoscerne il significato e gestirlo (invasività) Inserire un set di tabelle separate solo per i dati di sessione, quindi pending Quando i dati diventano permanenti devono essere conservati in altre tabelle Rimuove invasività, il codice deve mappare sulle tabelle opportune Tipicamente ci sono regole per la convalida dei dati conservati sul database che assicurano l integrità dei dati. Tali regole non vanno applicate ai dati pending, che invece potrebbero necessitare di altre regole. Avere tabelle separate facilita l applicazione di regole diverse Le tabelle di dati pending dovrebbero essere clonate dalle tabelle reali, ovvero stessi nomi di campi fra le due tabelle, e un campo aggiuntivo per le tabelle pending per l ID di sessione Questo facilita l implementazione della logica di mapping Se una sessione è cancellata l ID di sessione permette di trovare tutti i dati da cancellare, oppure Se la sessione è abbandonata, si può usare un timeout, un daemon esegue ad intervalli di pochi minuti per trovare e cancellare i vecchi dati Quando usarlo Permette di avere server con object che non tengono lo stato, quindi abilita il pooling e facilita il clustering E necessario del tempo per l accesso ai dati per ciascuna richiesta. Una cache può ridurre questi tempi La programmazione della gestione dello stato della sessione può essere semplificata non tenendo lo stato in memoria, ma conservandolo sul database Clustering e failover sono più facili con il Database Session State La tabella del database deve tener traccia del momento dell ultima interazione con la sessione 15 16
5 Serialized LOB Intento: conserva un grafo di oggetti serializzandoli dentro un singolo grande oggetto (LOB), che è inserito in un campo di un database Problema Serialized LOB I sistemi ad oggetti consistono di grafi complessi di piccoli oggetti. Parte dell informazione non è negli oggetti ma nelle loro interconnessioni L organizzazione di una gerarchia per i clienti può essere modellata da composizioni di oggetti con metodi che permettono di trovare genitori, fratelli, e altre relazioni Non è banale mettere queste informazioni in uno schema relazionale. Lo schema base è semplice: una tabella con una chiave esterna, ma manipolare tale schema richiede molti join Gli oggetti non devono essere righe di una tabella con relazioni. Un altra forma di persistenza è la serializzazione, in cui tutto il grafo di oggetti è scritto come un singolo grande oggetto (LOB) in una tabella Serialized LOB La serializzazione può essere fatta in binario (BLOB) o come caratteri (CLOB) Un oggetto serializzato è un oggetto rappresentato come una sequenza di byte che include i dati dell oggetto e informazioni sul tipo dell oggetto e sui tipi di dati conservati nell oggetto Quando si usa il Serialized LOB bisogna fare attenzione ai problemi di duplicazione di dati Un Serialized LOB per i dettagli di un cliente potrebbero essere messi su un ordine, se il LOB si inserisce sulla tabella degli ordini i dati del cliente verranno ricopiati per ciascun ordine Il LOB può essere messo in una tabella dei clienti e gli ordini possono avere un link ad essa In generale, una parte dei dati del LOB può essere quella duplicata public class TestSerialize { private FileOutputStream fos; private ObjectOutputStream oos; public static void main(string args[]) throws Exception { ContainerFinder finder = new ContainerFinder(); TestSerialize demo = new TestSerialize(); demo.serialize(finder); ContainerFinder obj = demo.deserialize(); System.out.println("Box width is " + obj.getcontainer().getbox().getwidth()); System.out.println("Box height is " + obj.getcontainer().getbox().getheight()); System.out.println("Class from getcontainer is "+obj.getcontainer().getclass()); System.out.println("Class from getbox is "+obj.getcontainer().getbox().getclass()); private void serialize(containerfinder cf) throws Exception { fos = new FileOutputStream("container.ser"); oos = new ObjectOutputStream(fos); // Serialize object oos.writeobject(cf); fos.close(); oos.close(); private ContainerFinder deserialize() throws Exception { FileInputStream fis = new FileInputStream("container.ser"); ObjectInputStream ois = new ObjectInputStream(fis); // Deserialize object ContainerFinder serobject = (ContainerFinder) ois.readobject(); fis.close(); ois.close(); return serobject; 19 20
6 public class ContainerFinder implements Serializable { private Container c = new Container(); public Container getcontainer() { return c; public void setcontainer(container c1) { c = c1; public class Container implements Serializable { private Box b = new Box(); private int width = 50; public Box getbox() { System.out.println("Container width " + width); return b; public void setbox(box b1) { b = b1; public class Box implements Serializable { private int width = 10; private int height = 20; public int getwidth() { return width; public void setwidth(int w) { width = w; public int getheight() { return height; public void setheight(int h) { height = h; 21
Persistenza e Serializzazione
Persistenza e Serializzazione JUG Sardegna Cagliari, 30 Ottobre 2004 Pierangelo Caboni Persistenza e Serializzazione 1 Persistenza Spesso si ha la necessità che gli oggetti creati nel corso dell esecuzione
JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita:
JAVA - I/O System Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: 1. InputStream: Flusso di byte in ingresso. Con questa classe
domenica 9 giugno 13 Serializzazione
Serializzazione A cosa serve? Ad ottenere una rappresentazione di una struttura dati che possiamo memorizzare, trasmettere via rete Cosa possiamo serializzare? OK NO Tipi primitivi, Riferimenti stringhe
La Serializzazione in Java. L24_Serialization 1
La Serializzazione in Java L24_Serialization 1 La Serialization è la trasformazione di un oggetto in memoria in una sequenza di byte (ospitata in un file, trasmessa in rete, ecc). La Deserialization è
Parte 6 JSON, Web Storage API, funzioni JavaScript e user script
Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2017/2018 Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Riccardo
Programmazione ad Oggetti
Programmazione ad Oggetti Java File Flussi e file Flusso (stream) = sequenza di dati di input: da cui leggere di output: su cui scrivere I file sono visti come flussi di dati Il package java.io definisce
Strategie Di Distribuzione. Strategie Di Distribuzione. Dove Separare. Come Separare
Strategie Di Distribuzione Le classi di un applicazione, es. Clienti, Ordini, Prodotti, etc. potrebbero essere distribuite, in modo che ciascun oggetto sia posizionato su un suo host Una chiamata di metodo
Lezione n.5 LPR-Informatica Applicata 13/3/2006
Lezione n.5 LPR-Informatica Applicata 13/3/2006 1 LA CLASSE BYTEARRAYOUTPUTSTREAM Definisce una struttura dati protected byte buf [ ]; protected int count buf memorizza i bytes che vengono scaricati sullo
PROVA FINALE Ingegneria del software
PROVA FINALE Ingegneria del software Jody Marca jody.marca@polimi.it Laboratorio N 2 Cosa faremo oggi 2 Javadocs Uso del debugger Input Output Serializzazione degli oggetti Javadoc 3 Javadoc è uno strumento
Serializzazione Java. Serializzazione. Calendario esercitazioni e laboratori. Applicazioni della Serializzazione
Calendario esercitazioni e laboratori 29 Marzo esercitazione 12 Aprile esercitazione 26 Aprile laboratorio (lab721) 2 Maggio laboratorio (lab721) 3 Maggio esercitazione 9 Maggio laboratorio (???) 17 Maggio
Parte 6 JSON, Web Storage API, funzioni JavaScript e user script
Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2018/2019 Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Riccardo
Serializzazione Java. Serializzazione. Complicazioni 1/2. Complicazioni 2/2. Calendario esercitazioni e laboratori. Applicazioni della Serializzazione
Calendario esercitazioni e laboratori Martedì 17 Aprile Esercitazione Martedì 24 Aprile Esercitazione Giovedì 3 Maggio Laboratorio (lab721, 9.30-12.30) Giovedì 10 Maggio Laboratorio (lab721, 9.30-12.30)
Parte II: Reti di calcolatori Lezione 7 (31)
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Parte II: Reti di calcolatori Lezione 7 (31) Martedì 27-03-2018 1 Messaggio di
Mantenimento dello stato
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it Abbiamo visto come il passaggio di informazioni (parametri) tra le pagine possa avvenire
Organizzazione della lezione. 16. Java Remote Method Invocation (4) Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili
Organizzazione della lezione 16. Java Remote Method Invocation (4) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Oggetti attivabili
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A2 I file binari 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
16. Java Remote Method Invocation (4)
16. Java Remote Method Invocation (4) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Oggetti attivabili
Serializzazione. Programmazione in Ambienti Distribuiti A.A
Serializzazione Programmazione in Ambienti Distribuiti A.A. 2003-04 Messaggi La comunicazione tra due entità remote richiede la comprensione dei messaggi scambiati Occorre specificarne il formato: A livello
Organizzazione della lezione. Lezione 17 Remote Method Invocation - 5. Remote. Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili
Organizzazione della lezione Lezione 17 Remote Method Invocation - 5 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno
Programmazione distribuita in Java. da materiale di Carlo Ghezzi e Alfredo Motta
Programmazione distribuita in Java da materiale di Carlo Ghezzi e Alfredo Motta Obiettivo Poter allocare computazioni su nodi fisici diversi, in modo trasparente, e consentire il coordinamento tra le computazioni
Mantenimento dello stato
Mantenimento dello stato Laboratorio Progettazione Web AA 2010/2011 Claudio Lucchese / Chiara Renso ISTI- CNR claudio.lucchese@isti.cnr.it Abbiamo visto come il passaggio di informazioni (parametri) tra
La paninoteca. Mi resta da scrivere solo costo()
La paninoteca Mi resta da scrivere solo costo() La paninoteca Usiamo l ereditarietà per definire dei Panini particolari Ci sono alcuni tipi di pane Estendendo Panino scrivo meno codice Nell esempio eredito
Il TDA Map. Tabelle hash
Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale
Definizione informale. Il TDA Map memorizza coppie formate da una chiave k e da un valore v. La coppia è chiamata entry. Ogni chiave deve essere unica
Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale
Il TDA Map. Definizione informale. I metodi del TDA Map 2. I metodi del TDA Map 1. Interfaccia Map 1 NO_SUCH_KEY. Tabelle hash
Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale
INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)
INPUT OUTPUT 2004-05 Le operazioni di I/O avvengono attraverso stream (sequenze di byte) programma stream in lettura sorgente Programmazione in rete e laboratorio programma stream in scrittura destinazione
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è
Unità 2 I file binari
Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA file binari file di tipi primitivi file di oggetti serializzazione (B) CONOSCENZA E COMPETENZA Rispondere alle seguenti domande
Applicazioni web. Sommario. Parte 4 http. http Metodi, intestazioni e codici di stato get post Parametri e cookie. Applicazioni web.
Parte 4 http Sommario http Metodi, intestazioni e codici di stato get post Parametri e cookie 1 Http Hyper Text Transfer Protocol Protocollo di livello applicazione per sistemi informativi distribuiti,
Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server
Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto
Informatica I. Ingegneria Medica. Prof. Diego Salamon
Informatica I Ingegneria Medica Prof. Diego Salamon Gestione I/O Prof. Diego Salamon Introduzione Nella creazione e gestione del software è necessario interagire con entità esterne a quelle del programma
Corso di Reti di Calcolatori T
Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019
L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto
Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe
Indice generale. Introduzione. Capitolo 1 Installazione Introduzione a PHP...11
Indice generale Introduzione...ix A chi è rivolto questo libro... ix La programmazione è cambiata molto... x 10.000 ore per diventare esperti... x Resistete alla tentazione del salto in avanti... xi Il
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface
Concetti Fondamentali Interfaccia pubblica di una classe Le API di Java Lo spazio di memoria della macchina astratta Java Blocchi e sottoblocchi Variabili di frame e loro visibilità Importazioni di classi
Prova d Esame Compito A
DOMANDA1 Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { protected int value; public static boolean flag = false; public General() { value = 1; public
Implementare un'interfaccia
Le interfacce Un metodo astratto è un metodo senza corpo, con un ";" dopo l'intestazione. Una interfaccia (interface) in Java ha una struttura simile a una classe, ma può contenere SOLO costanti e metodi
Tecnologie e applicazioni web JSON Web Token (JWT)
Tecnologie e applicazioni web JSON Web Token (JWT) Filippo Bergamasco ( filippo.bergamasco@unive.it) http://www.dais.unive.it/~bergamasco/ DAIS - Università Ca Foscari di Venezia Anno accademico: 2017/2018
Programmazione Java Avanzata PATTERN
Programmazione Java Avanzata PATTERN Anno 2011/2012 Pattern Una soluzione progettuale generale a un problema ricorrente Elementi per il riuso di software ad oggetti Vantaggiosi e obbligatori da usare Pattern
Esercitazione 2. Java:
Esercitazione 2 Java: Eccezioni @andreamocci Casi Eccezionali (1) /* * Produce un numero complesso a partire dalla sua forma polare */ public static Complex frompolarform(double abs, double phase) { /*
Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript
Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) 1 Linguaggio di script interpretato con alcune caratteristiche Object Oriented
LETTURA DI DATI DA INPUT
LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream FileDescriptor InputStream SequenceInputStream ByteArrayInputStream
Laboratorio di Basi di Dati
Laboratorio di Basi di Dati Cookie e gestione delle sessioni con PHP Anno accademico 2017-2018 Paolo Perlasca Parte di questi lucidi è tratta da una versione precedente di Marco Mesiti, Stefano Valtolina,
Interfaccia del file system
Interfaccia del file system Concetto di file Metodi di accesso Struttura delle directory Protezione 1 Concetto di File Insieme di informazioni correlate, registrate in memoria secondaria, con un nome.
Introduzione alla Programmazione in Java attraverso un esempio commentato
Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria
JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript
Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) Linguaggio di script interpretato con alcune caratteristiche Object Oriented HTTP
18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
Indice generale. Introduzione...xiii. Uno sguardo più da vicino a JavaScript...17
Indice generale Introduzione...xiii Perché Node.js?... xiii Il Web... xiii Nuove tecnologie...xiv Cos è esattamente Node.js?...xiv A chi si rivolge questo libro?...xvi Come usare questo libro...xvi Scaricate
Oggetti e classi. Cos è un oggetto
Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,
Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati
Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario
Java: Definire Classi e Creare Oggetti
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito
Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO
Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Basi di Dati e Web Credits to: Prof. M. Di Felice UniBO " Molti sistemi software prevedono la presenza di un database gestito da un
Architettura Client-Server
Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server
OLTRE LE CLASSI OLTRE LE CLASSI
OLTRE LE CLASSI Nella sua parte non statica, una classe fornisce la definizione di un ADT parte visibile esternamente (public) implementazione dati privati, protetti, o visibili nel package metodi privati,
Programmazione orientata agli oggetti Classi, package e file system. Package
Programmazione orientata agli oggetti Classi, package e file system 1 Classi e file Java impone delle regole molto precise di corrispondenza tra classi e file In generale, le regole sono: Ogni classe deve
SMARTFRIDGE. Progetto per il corso di Programmazione. Davide Coccomini. Documento di analisi
SMARTFRIDGE Progetto per il corso di Programmazione Davide Coccomini Documento di analisi Premessa SmartFridge è un programma per la gestione degli alimenti del proprio frigorifero. Ogni qualvolta si va
OLTRE LE CLASSI OLTRE LE CLASSI OLTRE LE CLASSI OLTRE LE CLASSI. Alcune domande. Nella sua parte non statica, una classe
Nella sua parte non statica, una classe fornisce la definizione di un ADT parte visibile esternamente (public) implementazione dati privati, protetti, o visibili nel package metodi privati, protetti, o
Poiché è necessario che le selezioni si aggiornino automaticamente, occorre che queste siano notificate di ogni cambiamento pattern observer! Altro?
Processo di Sviluppo Design Requisiti del cliente Analisi del Dominio Analisi dei Rischi (Parziale) Analisi dei Requisiti Casi d uso Scenari Diagramma statico delle classi Design Ingegneria del Software
Programmazione orientata agli oggetti Classi, package e file system. Package
Programmazione orientata agli oggetti Classi, package e file system 1 Classi e file Java impone delle regole molto precise di corrispondenza tra classi e file In generale, le regole sono: Ogni classe deve
Parte II: Reti di calcolatori Lezione 6 (30)
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Parte II: Reti di calcolatori Lezione 6 (30) Venerdì 24-03-2017 1 Messaggio di
A che vi servono BioPerl e la programmazione a oggetti?
Perl, OOP e BioPerl Programma di oggi: BioPerl e programmazione a oggetti: (a che vi servono?) La programmazione ad oggetti in Perl Funzioni e moduli Oggetti Il Tutorial BioPerl Esempi d'uso A che vi servono
Collezioni, mappe e iteratori (a cura del Prof. Marco Patella)
, mappe e iteratori (a cura del Prof. Marco Patella) 1 Introduzione al Java Collections Framework Una collezione (o contenitore) consente di organizzare e gestire un gruppo di oggetti collezioni (vere
ORDINAMENTO PER SELEZIONE ORDINAMENTO PER SELEZIONE ORDINAMENTO VELOCE CONFRONTI
ORDINAMENTO PER SELEZIONE Per l analisi delle prestazioni di tale algoritmo di ordinamento, si considerano i due cicli for annidati: poiché i confronti avvengono nel ciclo interno si ha che n 2 i= 0 (
GRAFI. Angelo Di Iorio Università di Bologna
GRAFI Angelo Di Iorio Università di Bologna Esercizio 1 Implementare una classe Java per memorizzare e manipolare un grafo orientato di nodi di tipo T (usando il framework Generics) Applicazioni: rete
Informatica. Prof. A. Longheu. Input e Output
Informatica Prof. A. Longheu Input e Output 1 Il package java.io Il package java.io definisce i concetti base per gestire l I/O da qualsiasi sorgente e verso qualsiasi destinazione. L obiettivo è fornire
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi Programmazione orientata a oggetti 1 Programmazione OO Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di controllo
Informativa estesa uso dei Cookie
I sito web soluzionijava utilizza cookie e tecnologie simili per garantire il corretto funzionamento delle procedure e migliorare l'esperienza di uso delle applicazioni online. Il presente documento fornisce
PROGRAMMA DEL CORSO MASTER IN WEB DESIGN & DEVELOPER
PROGRAMMA DEL CORSO MASTER IN WEB DESIGN & DEVELOPER Il corso Master Web Developer con Certificazione internazionale W3Schools prepara lo studente a entrare nel mondo dello sviluppo Web (blog, siti, portali).
Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved
Capitolo 9 Sistemi di basi di dati 2007 Pearson Addison-Wesley. All rights reserved Capitolo 9: Sistemi di basi di dati 9.1 Definizione di Sistemi di Basi di Dati 9.2 Modello relazionale 9.3 Basi di dati
LINKEDLIST: implementazione iteratore. LINKEDLIST: iteratore INNERITERATOR INNERITERATOR
LINKEDLIST: iteratore Il metodo iterator() restituisce un oggetto iteratore sulla lista per scandire gli elementi in sequenza a partire dall inizio della lista. public Iterator iterator() { return new
Elementi di Base. Introduzione a Python.
Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Clonazione e Serializzazione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario API di Java Istruzione di scrittura Istruzione di lettura 21/03/2011 2 API di Java Java è un linguaggio orientato agli oggetti basato
Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio
Relazioni e tabelle Introduzione alle Basi di Dati Relazionali Nelle Basi di Dati relazionali le informazioni sono organizzate in tabelle Le tabelle sono rappresentate mediante griglie suddivise in colonne
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per
Tito Flagella - Il protocollo HTTP
Tito Flagella - tito@link.it Il protocollo HTTP Il protocollo HTTP È il protocollo standard tramite il quale i server Web rispondono alle richieste dei client (inizialmente i browser); È basato su un modello
Antonio d Acierno 13/01/2006
Introduzione alle Servlet Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Servlet Alternativa Java ai CGI-BIN Classi java che estendono le funzionalità di un server Web generando dinamicamente
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Corso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client
Procedura tecnica di accreditamento dei Registrar
Procedura tecnica di accreditamento dei Registrar Linee Guida Versione 2.1 settembre 2015 SOMMARIO 1 Revisioni 1 2 Introduzione 2 3 Durata e tempi del test 2 4 Accounts 2 5 Corretta esecuzione e completamento
Introduzione Generics Iteratori. Collezioni in Java. Dr. Giulio Pellitta. 13 aprile 2011
13 aprile 2011 Cos è una collezione? Gerarchia delle collezioni Introduzione Una collezione è semplicemente un oggetto che raggruppa più oggetti (detti elementi della collezione) in una singola unità.
Flussi, lettori e scrittori
Flussi, lettori e scrittori Per sequenze di byte, InputStream, OutputStream e loro sottoclassi. Es: InputStream in = ; int next = in. read(); if (next!= -1) byte b = (byte) next; Per sequenze di caratteri,
La piattaforma di acquisti per i clienti commerciali. File disponibilità. Mercateo
La piattaforma di acquisti per i clienti commerciali File disponibilità Mercateo Versione 1.2.2. del 16/07/2013 Indice 1. Richiesta disponibilità... 3 1.1. Inventario... 3 2. File disponibilità... 4 2.1
789:;<:' .&+/"0&12%34%5&66+,("%3787%% %"+&%88$77%9%8:$:7%% ;<'&12%8%=,+>"%3787 % % % %"+&%88$77%9%8:$:7%
!"#$"%&'()')*+'!"#$%!&'()%*&++,+&-%%!"#$%&'"(()("*+,#$'"&$-. 789:;"%3787 % % % %"+&%88$77%9%8:$:7%?("'(%)"'"%'&0% 0,6"+,@"+("%1(%A'5"+=,B/,%C+,'1&$%
Tener traccia del client
Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Java I/O e serializzazione
Java I/O e serializzazione Caratteristiche dell I/O in Java Diverse classi per gestire I/O differenti sotto un unica struttura. Possibilità di combinare classi differenti. Modalità di interazione distinte
Tecnologie e applicazioni web Cookies
Tecnologie e applicazioni web Cookies Filippo Bergamasco ( filippo.bergamasco@unive.it) http://www.dais.unive.it/~bergamasco/ DAIS - Università Ca Foscari di Venezia Anno accademico: 2017/2018 Da stateless
Compute engine generici in RMI
Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo - a Programmare con il Polimorfismo versione 1.2 Questo lavoro è concesso in uso secondo i termini di
Java Classi wrapper e classi di servizio. Classi di servizio
Java Classi wrapper e classi di servizio 1 Classi wrapper Concetti di base In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti. Una classe wrapper (involucro) incapsula
MODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti
Linguaggi e tecnologie per il Web. Parte 6 JSON, localstorage e funzioni in JavaScript
Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2016/2017 Parte 6 JSON, localstorage e funzioni in JavaScript Riccardo Rosati JSON
Introduzione. A Tecnologie 1
Indice Prefazione Introduzione XIII XIX A Tecnologie 1 1 Tecnologie per applicazioni Web 3 1.1 Introduzione 3 1.2 HTTP e HTML: i fondamenti delle tecnologie Web 4 1.2.1 Accesso a risorse remote: il protocollo