Analisi, progettazione e implementazione di un repository di componenti distribuite in Java basato su JNDI.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Analisi, progettazione e implementazione di un repository di componenti distribuite in Java basato su JNDI."

Transcript

1 UNIVERSITÀ DEGLI STUDI DI ROMA LA SAPIENZA TESI DI LAUREA IN SCIENZE DELL INFORMAZIONE Analisi, progettazione e implementazione di un repository di componenti distribuite in Java basato su JNDI. Relatore: Prof. Gianfranco Bongiovanni Candidato: Marco Bianchi Correlatori: Dott. Carlo Gaibisso Ing. Giuseppe Martufi Ing. Maurizio Vitale Matricola: Anno Accademico

2

3 Indice 1 INTRODUZIONE Ambientazione della tesi Evoluzione della programmazione object-oriented Evoluzione delle architetture software nella programmazione distribuita Evoluzione d Internet e della programmazione lato server Obiettivi della tesi Struttura della tesi 14 PARTE I: LE TECNOLOGIE UTILIZZATE 2 LE ARCHITETTURE SOFTWARE NELLA PROGRAMMAZIONE DISTRIBUITA Problema del Tempo di Risposta (Latency) Partial Failure Spazio d indirizzamento ORB RMI Architettura di RMI Le applicazioni RMI Rmiregistry Multithreading RMI e i firewall Attivazione di oggetti remoti CORBA Architettura di CORBA IDL L architettura di un ORB CORBA Multithreading CORBA e firewall L implementation repository e l interface repository JavaIDL La struttura di un applicazione CORBA basata su JAVA IDL Il supporto JAVA IDL Il Client 46

4 Il Server JAVA IDL Transient Nameservice Uso degli object reference in forma di stringa RMI-IIOP 53 3 SERVIZI DI NAMING E DIRECTORY Servizi di naming Servizi di directory Il directory Lightweight Directory Access Protocol Struttura delle informazioni memorizzate Il sistema di naming Tecniche di distribuzione Le operazioni Query Aggiornamento Autenticazione La sicurezza Java Naming and Directory Interface Package javax.naming Gestione dei contesti Il contesto iniziale La gestione dei nomi degli oggetti Il contenuto di un contesto Le altri classi del package Le eccezioni Package javax.naming.directory Gli oggetti directory Gli attributi Il contesto iniziale Le ricerche nel directory Package javax.naming.event La rappresentazione di un evento I Naming Listener L attivazione e la disattivazione di un listener Package javax.naming.ldap Package javax.naming.spi LE PROGRAMMAZIONE WEB 109

5 4.1 Evoluzione d Internet e della programmazione lato server La piattaforma J2EE Gli obiettivi di J2EE Caratteristiche generali Container e componenti Componenti lato Client Componenti di business logic Vantaggi della piattaforma J2EE J2EE: Scenari applicativi tipici Scenario Stand-Alone Client Scenario Web-Centric Scenario n-tier Scenario Business to Business Servizi offerti da J2EE Naming Deployment Transazioni Sicurezza Autenticazione Autorizzazione Pagine web a contenuto dinamico Tecnologie server side CGI (Common Gateway Interface) ASP (Active Server Pages) Sevlet e JSP Servlet Implementazione e ciclo di vita di una servlet JSP Template Text Comment Directive Action Scripting element ALTRE TECNOLOGIE UTILIZZATE Simple Network Management Protocol Breve introduzione Lo standard SNMP Il sistema di gestione SNMP L'agente SNMP Il MIB Struttura e rappresentazione dei nomi degli oggetti del MIB 142

6 PARTE II: NETLAB REMOTE COMPONENTS REPOSITORY 6 NETLAB REMOTE COMPONENTS REPOSITORY Requisiti funzionali di NRCR Requisiti non funzionali e scelte tecnologiche Portabilità Mobilità Usabilità Estendibilità Distribuibilità delle informazioni memorizzate Analisi e soluzione dell obiettivo 1: servizio di naming dinamico Utilizzatore di NRCR e vantaggi offerti da NRCR L oggetto directory repositorycomponent Struttura logica Implementazione di Component Address Provider Approfondimento sull Object Selector Implementazione dell Object Selector Un esempio pratico: SnmpObjectSelector Analisi e soluzione dell obiettivo 2: gestione delle applicazioni web NRCR Istanza di Servizio NRCR Servizio NRCR L oggetto directory repositoryservice Funzionamento della ServiceManagerServlet Spiegazione conclusiva su ServiceManager Osservazioni finali Analisi e soluzione dell obiettivo 3: Applicazione web per la navigazione delle componenti e dei servizi Due categorie d utenza: User e Developer L oggetto directory repositoryuser Implementazione dell applicazione web Funzionamento di RepositoryServlet Funzionamento ElencoServizi.jsp ed ElencoComponenti.jsp Esempio d interazione con il sistema NRCR L ambiente di sviluppo Netlab Gestione delle informazioni nel server LDAP 190

7 7 CONCLUSIONI E SVILUPPI FUTURI Sviluppi futuri Possibili miglioramenti a NRCR nell ambito del Netlab Nuovi argomenti di ricerca APPENDICE Pattern per la progettazione degli accessi ad oggetti remoti Factory Dispenser Legenda per i diagrammi di classi dei package JNDI Contenuto del CD-ROM Struttura e contenuto della cartella Sorgenti Struttura della cartella Software Struttura della cartella Documentazione 203 GLOSSARIO 204 BIBLIOGRAFIA 206

8 1 Introduzione 1.1 Ambientazione della tesi Per ambientare il lavoro svolto in questa tesi è opportuno analizzare l evoluzione che in quest ultimo decennio, ha portato tre diversi settori informatici a combinarsi tra loro per dar vita a ciò che oggi è conosciuto con il nome d applicazioni enterprise. I tre settori, di cui si evidenzieranno alcuni aspetti delle loro recenti evoluzioni, sono: La programmazione orientata agli oggetti; Le architetture software nella programmazione distribuita; Internet e la programmazione lato server Evoluzione della programmazione object-oriented Negli ultimi dieci anni si è potuto costatare la definitiva affermazione dei linguaggi orientati agli oggetti, a conclusione di un loro utilizzo sempre più frequente cominciato negli anni 80. Java è una testimonianza significativa: introdotto nel 1995, noto a tutti come il primo linguaggio multi-piattaforma, si è imposto nella comunità degli sviluppatori con una velocità sorprendente, tanto che, in meno di dieci anni, si è riuscito a ritagliare un ruolo molto importante nell ambito della programmazione lato server. Il successo dei programmi orientati agli oggetti è chiaramente legato a meccanismi come l incapsulamento, l ereditarietà e il

9 Introduzione Ambientazione della tesi polimorfismo, che, se correttamente applicati, permettono la realizzazione di un ambiente di programmazione che sostiene lo sviluppo d applicativi più solidi e scalabili, rispetto al modello orientato al processo. Infatti: l ereditarietà favorisce la definizione di una gerarchia ben progettata di classi in modo tale da riutilizzare quel codice il cui sviluppo e collaudo hanno richiesto tempo e fatica; l incapsulamento consente di modificare le varie implementazioni nel tempo, senza infrangere il codice che dipende dall interfaccia pubblica della classe ritoccata; il polimorfismo permette di creare un codice pulito, logico, leggibile ed elastico. Inoltre l affermazione dei linguaggi di programmazione objectoriented [6] ha influenzato anche le modalità costruttive delle applicazioni software, che si sono evolute verso la programmazione per componenti. Per componente s intende un modulo software progettato per essere utilizzato ripetutamente. Oggigiorno programmare per componenti comporta almeno due importanti vantaggi: Una maggiore competitività, in termini di velocità di sviluppo e di consegna delle applicazioni; Una riduzione dei costi di sviluppo e manutenzione. 2

10 Introduzione Ambientazione della tesi Evoluzione delle architetture software nella programmazione distribuita Per sistema distribuito s intende un insieme d elaboratori autonomi connessi tra loro attraverso una rete informatica ed equipaggiati da un software specializzato, che permette loro la condivisione di risorse a livello hardware, software e dati. Gli utenti di un sistema distribuito ben strutturato dovrebbero avere la sensazione di utilizzare un unico e potente elaboratore e quindi accedere a tali risorse senza sapere dove queste siano effettivamente localizzate. La Figura 1.1 mostra la struttura di un semplice sistema distribuito in cui personal computer e workstation condividono, attraverso una rete locale, le risorse messe a disposizione dal sistema per mezzo di server dedicati [1]. Figura Esempio di semplice sistema distribuito In questo decennio le potenzialità dei sistemi distribuiti hanno catturato l interesse dei maggiori produttori di tecnologie software, grazie anche alla contemporanea consacrazione delle reti di elaboratori come strumento di lavoro per le piccole, medie e grandi 3

11 Introduzione Ambientazione della tesi aziende. I risultati delle ricerche che sono state effettuate hanno portato all affermazione di architetture software object-oriented distribuite come CORBA (Common Object Request Broker Architecture), proposta dall OMG (Object Management Group) nel 1990, DCOM (Distributed Component Object Model) proposta da Microsoft nel 1996, RMI (Remote Method Invocation) e successivamente RMI/IIOP (RMI/Internet Inter Orb Protocol) entrambe introdotte da Javasoft, rispettivamente nel 1995 e La programmazione ad oggetti ed i sistemi distribuiti trovano un naturale punto d incontro che favorisce lo sviluppo di scenari in cui le componenti in esecuzione in ambienti distribuiti (oggetti remoti distribuiti o componenti remote distribuite) mettono a disposizione del sistema delle funzionalità. Tali funzionalità possono essere sfruttate e combinate da applicazioni o da altre componenti più complesse Evoluzione d Internet e della programmazione lato server La diffusione d Internet come mezzo di comunicazione è stata favorita dalla possibilità di accedere ad un numero d informazioni potenzialmente infinito, sia in termini di quantità che di tipologia. Nella seconda metà degli anni 90 si è assistito ad un importante evoluzione della rete che si è trasformata in uno strumento in grado anche di erogare dei servizi (si pensi, ad esempio, al commercio elettronico) attraverso un nuovo tipo d applicazioni distribuite: le applicazioni enterprise [41]. 4

12 Introduzione Ambientazione della tesi Le applicazioni enterprise implicano, per definizione, l accesso ad altre applicazioni, dati o servizi sparsi all interno delle infrastrutture informatiche del fornitore di servizi. Le informazioni gestite e i dati contenuti all interno di tali infrastrutture rappresentano la ricchezza del fornitore e come tali vanno trattati con estrema cura, garantendone l integrità. Al modello bidimensionale delle vecchie forme di business legato ai sistemi informativi (Figura 1.2), è stato oggi sostituito un nuovo modello denominato e-business (Figura 1.3). Esso introduce una terza dimensione che rappresenta la necessità da parte del fornitore di garantire accesso ai dati contenuti nell infrastruttura aziendale via web a partner commerciali, consumatori, impiegati e altri sistemi informativi. Figura Vecchio Modello Business 5

13 Introduzione Ambientazione della tesi Figura Nuovo Modello Business Le applicazioni enterprise hanno reso obsoleta l iniziale architettura client-server inizialmente utilizzata in Internet per accedere alle pagine web statiche, ovvero a pagine memorizzate su server web, che vengono restituite al client senza alcun tipo di elaborazione, come mostrato in Figura 1.4. Figura Semplice architettura client server Oggi la possibilità di creare pagine web dinamiche, vale a dire pagine il cui contenuto può cambiare in base al tipo di richiesta e/o d utente, comporta, nel caso più semplice, l introduzione di un nuovo strato (three tier model) [38]. 6

14 Introduzione Ambientazione della tesi Figura Modello 3 tier In questo caso, come mostrato in Figura 1.5, si possono distinguere tre parti logiche: livello presentazione (presentation layer); livello di business-logic (business logic layer); livello dati (data layer). Il livello presentazione fornisce di solito le funzionalità strettamente legate all interazione con l utente. Il livello di business logic racchiude la logica dell applicazione e funge da ponte verso il terzo strato. Il livello dati, è il livello dove generalmente si trovano memorizzati i dati utilizzati dall applicazione web. Naturalmente questo modello costituito da tre livelli può essere ulteriormente frammentato secondo le esigenze specifiche dando così vita a ciò che è chiamato modello client-server a n strati (n-tieer model) [37]. 7

15 Introduzione 1.2 Obiettivi della tesi Questa tesi è stata realizzata presso il Netlab, un gruppo di lavoro del CNR (Centro Nazionale di Ricerca) di Roma, che sviluppa ricerche in ambienti di rete. Lo scopo è di progettare un architettura software distribuita chiamata Netlab Remote Components Repository (NRCR) che permetta ad un programmatore d applicazioni enterprise e/o distribuite di essere facilitato nel creare, trovare, utilizzare componenti remote distribuite sulla rete. Più esplicitamente si vogliono raggiungere i seguenti obiettivi: 1. Permettere l accesso trasparente agli oggetti distribuiti registrati nel repository. Il termine trasparente va inteso in due modi: Trasparenza rispetto alla locazione. Si vuole dare la possibilità di localizzare e utilizzare un oggetto remoto conoscendone il nome, senza possederne a priori l indirizzo; Trasparenza rispetto all istanza. Si vuole dare la possibilità di gestire più copie dello stesso oggetto remoto 1 in esecuzione su diverse macchine. Questo significa che non si può sapere a priori a quale istanza d oggetto si sta facendo riferimento. I vantaggi sono 1 Due copie di un oggetto remoto si considerano uguali se, a parità d input, produrranno gli stessi output, indipendentemente dalla loro locazione. 8

16 Introduzione Obiettivi della tesi molteplici: si possono aggiungere nuove copie delle componenti rendendole immediatamente disponibili, si rende il sistema più robusto, si prevede la possibilità di bilanciare il carico di lavoro, ecc.; 2. Prevedere la possibilità di visualizzare i risultati prodotti dagli oggetti remoti ai navigatori Internet. Generalmente un oggetto remoto è progettato per restituire dei risultati e non per presentarli agli utenti Internet. Ad esempio, una componente software potrebbe restituire il risultato di un calcolo eseguito sotto forma di numero intero. Affinchè tale risultato possa essere visualizzato ad un utente Internet bisognerà formattare un opportuna pagina HTML. Per questo motivo il sistema deve prevedere la gestione di quello strato software che interagisce con le componenti e confeziona risultati in modo da renderli interpretabile da un web browser e presentabili all utente. In pratica si sta richiedendo al sistema una gestione delle applicazioni enterprise; 3. Pubblicizzare le componenti remote rendendo accessibili le informazioni che le riguardano attraverso un web browser. Nel precedente paragrafo sono stati evidenziati i vantaggi che derivano dal riutilizzo delle componenti. Un problema che molte società di sviluppo software si trovano costrette a risolvere è quello di far conoscere ai propri programmatori quali componenti sono già state sviluppate e quali funzionalità forniscono. Generalmente tale problema è risolto con l introduzione di un database. Il sistema NRCR 9

17 Introduzione Obiettivi della tesi prevede la possibilità di gestire tali informazioni e di renderle accessibili via web, senza dover ricorrere a un database aggiuntivo. Nel Capitolo 6.5 verrà presentata una semplice applicazione web che permette la visualizzazione dell elenco dei servizi e delle componenti disponibili nel NRCR. L obiettivo meno intuitivo è sicuramente il primo e per questo merita un breve approfondimento. Analizzando le problematiche riguardanti la programmazione d oggetti remoti, si pone particolare attenzione agli aspetti legati ai servizi di naming, vale a dire quei meccanismi che permettono di ottenere un oggetto o il suo riferimento, a partire dal suo nome. Le tecnologie tenute in considerazione come RMI, CORBA, RMI/IIOP, offrono un proprio servizio di naming attraverso speciali database che permettono la localizzazione e l uso degli oggetti remoti. Tali archivi cambiano nome secondo la tecnologia scelta ma concettualmente sono la stessa cosa. In RMI, per esempio, si parla di rmiregistry, in Corba d implementation repository, in RMI/IIOP di tnameserv. In tutte queste tecnologie per accedere ad una componente bisogna conoscere: l indirizzo della macchina su cui è in esecuzione il database che fornisce il servizio di naming; il nome con cui tale componente è stata registrata nel database. 10

18 Introduzione Obiettivi della tesi In questa tesi si vogliono creare i presupposti affinché, un oggetto sia accessibile senza conoscere l indirizzo della macchina su cui è in esecuzione il database che fornisce il servizio di naming. In altre parole, il nome con cui una componente è stata registrata nel NRCR, deve essere sufficiente per ottenerne il riferimento. In questo modo più copie di uno stesso oggetto remoto in esecuzione su macchine diverse e, soprattutto, registrate in archivi distinti, sono potenzialmente accessibili attraverso lo stesso nome. Inoltre il sistema può scegliere quale copia far utilizzare. Facendo riferimento alla Figura 1.6, si consideri il seguente esempio. Si supponga d avere tre rmiregistry in esecuzione su tre macchine distinte ( , , ). Su ognuna di queste tre macchine viene lanciata un istanza di un oggetto remoto RMI che fornisce servizi di calcolo. Tali istanze si registrano sull rmiregistry della rispettiva macchina con il nome calcolatrice. In una situazione normale per accedere ad una delle tre componenti risulta indispensabile conoscerne l indirizzo completo, ad esempio rmi:// /calcolatrice. Utilizzando NRCR basta conoscere il nome calcolatrice. Infatti si può registrare nel NRCR una componente con tale nome e indicare gli indirizzi delle tre istanze viste prima come possibili locazioni della componente. Chi vuole utilizzare la componente calcolatrice può richiederla al sistema (Figura 1.6: punto 1), che sceglie quale istanza far utilizzare e ne restituisce l indirizzo (Figura 1.6: punto 2). A 11

19 Introduzione Obiettivi della tesi questo punto l utilizzatore può accedere alla componente nel modo usuale (Figura 1.6: punto 3). Figura Esempio di come Netlab Remote Components Repository permette l'accesso a una componente registrata E interessante evidenziare la differenza tra un sistema di naming normale (statico) e quello messo a disposizione da NRCR (dinamico). Nel primo tipo esiste un rapporto 1:1 tra il nome e l oggetto associato. Nel sistema proposto in questa tesi tale rapporto è, al momento della richiesta 1:n (Figura 1.6: punto 1) e torna ad essere 1:1 quando il sistema sceglie, tra gli n riferimenti disponibili, quale restituire (Figura 1.6: punto 2). Visto che il sistema deve fare una scelta, si è pensato di progettare un meccanismo che permetta al programmatore che utilizza NRCR, di implementare e utilizzare un proprio criterio di convenienza. In caso contrario, come si approfondirà nel capitolo della descrizione del progetto, il sistema permette di utilizzare un criterio di scelta di default. 12

20 Introduzione Obiettivi della tesi Infine è opportuno evidenziare che questa tesi è stata sviluppata all interno di un gruppo di lavoro del CNR. Per questo motivo si è posto un ulteriore obiettivo: individuare i possibili sviluppi futuri, per permettere di continuare, in successive tesi, questo lavoro di ricerca. 13

21 Introduzione 1.3 Struttura della tesi La tesi è suddivisa in due parti. La prima parte, composta di quattro capitoli, si pone come obiettivo la trattazione degli aspetti fondamentali delle tecnologie utilizzate, evidenziandone ciò che è ritenuto più inerente al lavoro affrontato. Nella seconda parte della tesi si descrive il progetto Netlab Remote Components Repository. Il codice sviluppato è contenuto nel CD-Rom allegato, insieme ai sorgenti, alla documentazione raccolta in questi mesi e alle applicazioni necessarie per la ricostruzione dell ambiente di sperimentazione. Di seguito è riportata una descrizione sintetica dei capitoli che compongono il lavoro della tesi. Parte I Le tecnologie utilizzate Cap. 2 Le architetture software nella programmazione distribuita In questo capitolo si presentano tre architetture software Java utili per progettare e implementare programmi distribuiti. Le tre architetture in questione sono RMI, JavaIDL, RMI/IIOP. Visto che, per poter spiegare JavaIDL e RMI/IIOP, è necessario conoscere alcuni aspetti dell architettura CORBA, è previsto un paragrafo che ne introdurrà i concetti di base. Il taglio che si è voluto dare a queste presentazioni, è 14

22 Introduzione Struttura della tesi di tipo teorico. Ciò significa che non si scenderà in dettagli implementativi, se non in caso di necessità. Cap. 3: Servizi di naming e directory In questa sede vengono introdotti i servizi di naming/directory e successivamente viene illustrato un protocollo standard di accesso a directory chiamato LDAP (Lightweight Directory Access Protocol), utilizzato nel progetto per accedere al directory server dove sono state memorizzate le informazioni utili al funzionamento del sistema. Infine è descritta la struttura del package JNDI (Java Naming and Directory Interface), un package java proposto da Sun, che fornisce un interfaccia che semplifica l interazione con i sistemi di naming/directory più importanti, tra cui LDAP. Cap. 4: La programmazione web Dopo una breve introduzione sull evoluzione della programmazione Internet viene presentata la piattaforma Java 2 Enterprise Edition (J2EE), evidenziandone le caratteristiche generali, i vantaggi e gli scenari applicativi tipici. In seguito vengono illustrate le tecnologie utilizzate per la scrittura di pagine web a contenuto dinamico, con particolare riguardo per le Servlet e JSP, utilizzate nella fase di implementazione. Cap. 5: Altre tecnologie utilizzate In questo capitolo è data una descrizione sommaria del funzionamento di SNMP (Simple Network Management Protocol), protocollo che permette la gestione di reti TCP/IP. SNMP è stato utilizzato per la preparazione di test di laboratorio finalizzati a 15

23 Introduzione Struttura della tesi dimostrare il funzionamento del sistema. In particolare SNMP è stato studiato per fornire un esempio di come implementare le funzioni di selezione di componenti, in precedenza accennate. Parte II Netlab Remote Components Repository Cap. 6: Netlab Remote Components Repository In questo capitolo viene spiegato il sistema NRCR. Dopo aver identificato i requisiti da rispettare, si motivano le scelte tecnologiche e si analizzano i tre obiettivi da raggiungere (già accennati in questo capitolo introduttivo). Successivamente vengono presentate le soluzioni proposte per i tre obiettivi in tre paragrafi distinti. Al termine di tale esposizione è riportato un esempio d interazione con il Sistema NRCR, utile per fissare le idee e per esplicitare il filo conduttore che mette in relazione i tre paragrafi precedenti. Il capitolo si conclude con la presentazione dell ambiente di sviluppo Netlab e la configurazione software utilizzata per verificare il funzionamento del sistema. Cap. 7: Conclusioni e sviluppi futuri In questo capitolo vengono riassunti i risultati raggiunti e gli sviluppi futuri. 16

24 Parte I Le tecnologie utilizzate

25 2 Le architetture software nella programmazione distribuita Per sistema distribuito s intende un insieme d elaboratori autonomi connessi tra loro attraverso una rete informatica ed equipaggiati da un software specializzato, che permette loro la condivisione di risorse a livello hardware, software e dati. Gli utenti di un sistema distribuito ben strutturato dovrebbero avere la sensazione di utilizzare un unico e potente elaboratore e quindi accedere a tali risorse senza sapere dove queste siano effettivamente localizzate. La Figura 2.1 mostra la struttura di un semplice sistema distribuito in cui personal computer e workstation condividono, attraverso una rete locale, le risorse messe a disposizione dal sistema per mezzo di server dedicati [1]. Figura Esempio di semplice sistema distribuito In questo decennio le potenzialità dei sistemi distribuiti hanno catturato l interesse dei maggiori produttori di tecnologie software, 18

26 Le architetture software nella programmazione distribuita grazie anche alla contemporanea consacrazione delle reti d elaboratori come strumento di lavoro per le piccole, medie e grandi aziende. I risultati delle ricerche che sono state effettuate hanno portato all affermazione di architetture software object-oriented distribuite come CORBA (Common Object Request Broker Architecture), proposta dall OMG (Object Management Group) nel 1990, DCOM (Distributed Component Object Model) proposta da Microsoft nel 1996, RMI (Remote Method Invocation) e successivamente RMI/IIOP (RMI/Internet Inter Orb Protocol) entrambe introdotte da Javasoft, rispettivamente nel 1995 e Prima di cominciare l analisi delle varie tecnologie software è opportuno evidenziare alcuni punti chiave che bisogna prendere in considerazione quando si affronta la realizzazione di un applicazione distribuita ad oggetti, cioè un applicazione in cui gli oggetti sono istanziati e risiedono in differenti spazi di indirizzamento, probabilmente su differenti computer. Infine sarà introdotto il concetto di ORB Problema del Tempo di Risposta (Latency) In un ambiente distribuito, le varie componenti software possono risiedere ed essere eseguite un po dovunque nella rete. Un oggetto che risiede altrove, rispetto allo spazio di indirizzamento da cui ne vengono invocate le funzionalità, può essere lento ad evadere le richieste. Questo dipende da vari fattori che sono indipendenti dall oggetto locale che esegue la richiesta. I fattori determinanti sono la velocità della rete che sta tra i due oggetti, la mole di dati da trasferire fra i due, il carico di processi attualmente eseguiti dalla macchina su cui l oggetto remoto invocato è istanziato e, 19

27 Le architetture software nella programmazione distribuita naturalmente le caratteristiche hardware della macchina stessa (Figura 2.2). Figura 2.2 I tempi di risposta di un oggetto remoto non dipendono dall oggetto locale. Quest aspetto non esiste quando i due oggetti sono eseguiti all interno di una stessa applicazione eseguita dal medesimo processo della stessa macchina, ma può presentarsi anche fra due oggetti eseguiti sulla medesima macchina ma in due processi differenti Partial Failure Il temine partial failure indica la situazione in cui un oggetto, utilizzato da un applicazione, smette di funzionare (crash), senza pregiudicare definitivamente l esecuzione di tale applicazione. In un sistema distribuito la gestione degli errori è molto delicata. Se si sta realizzando un applicazione monolitica locale, tutte gli oggetti che possono fallire stanno all interno della stessa applicazione. Questo significa che, nel caso un oggetto fallisca, l applicazione se ne può accorgere immediatamente. Il discorso si complica quando si parla d applicazioni distribuite, dove le varie componenti che possono fallire sono sparse per la rete. In questo caso l utilizzatore della componente remota fallita potrebbe accorgersene dopo un tempo molto lungo, o potrebbe non accorgersene per nulla (Figura 2.3). 20

28 Le architetture software nella programmazione distribuita Figura 2.3 Crash dell oggetto remoto Fortunatamente le tecnologie esposte più avanti nel capitolo, mettono a disposizione dei meccanismi per il riconoscimento del tipo di failure. In questo modo è possibile prevedere la reazione che il programma deve avere nel caso in cui una o più componenti da lui utilizzate falliscano Spazio d indirizzamento Oggetti istanziati in differenti spazi d indirizzamento hanno un indirizzo relativo allo spazio d indirizzamento in cui sono istanziati. In un applicazione distribuita, gli oggetti remoti non possono essere istanziati e puntati normalmente, ma si ha bisogno di un meccanismo per ottenere localmente un riferimento (reference) a tali istanze (Figura 2.4). Figura 2.4 Un riferimento (rappresentato dall asterisco) remoto non si può ottenere allo stesso modo di uno locale. 21

29 Le architetture software nella programmazione distribuita Le tecnologie ad oggetti distribuiti forniscono tutte almeno una maniera per ottenere un riferimento valido localmente ad un oggetto remoto, che diventa in questo modo accessibile e utilizzabile come un oggetto locale ORB Un concetto fondamentale quando si parla di programmazione di oggetti distribuiti è dato dall ORB. ORB in inglese significa globo e nel campo della programmazione distribuita rappresenta il mondo degli oggetti remoti. L acronimo di ORB è Object Request Broker, ovvero un agente di scambio di richieste fra oggetti e rappresenta l ossatura su cui si basa la comunicazione tra gli oggetti stessi. L Object Management Group (OMG), ha definito un architettura comune per tutti gli ORB, permettendo così la nascita della specifica Common Object Request Broker Architecture (CORBA). Di conseguenza, oggi esistono un insieme di ORB che rispettano le specifiche CORBA, come JavaIDL e RMI/IIOP della Javasoft, Visibroker dell Intrise ed Orbix della Iona, e altri ORB che non le rispettano, come RMI della Javasoft, DCOM della Microsoft. Nei prossimi paragrafi verranno illustrate le tecnologie RMI, CORBA, Java IDL e RMI/IIOP [5]. 22

30 Le architetture software nella programmazione distribuita 2.2 RMI La tecnologia Remote Method Invocation (RMI) [2], fu introdotta da Sun nella versione 1.1 del JDK con l obiettivo di facilitare la comunicazione fra applicazioni Java residenti su macchine remote, presupponendo un ambiente omogeneo Java Architettura di RMI La Figura 2.5 mostra la struttura tipica di un applicazione RMI. Figura 2.5 Architettura di RMI Si nota come essa sia organizzata, orizzontalmente, in strati sovrapposti ed in due moduli verticali che individuano il lato client ed il lato server dell applicazione. Lo strato più alto è costituito, su entrambi i lati, dall applicazione che viene eseguita sulla JVM. Nel caso del client, si tratta di un applicazione vera e propria che durante il suo ciclo di vita esegue 23

31 Le architetture software nella programmazione distribuita RMI delle chiamate a dei metodi d oggetti remoti. Per quanto riguarda, invece, l applicazione server, ha un suo ciclo di vita indipendente dal client e, di fatto, ignora la sua presenza. Subito sotto il livello applicazione, si trovano i due componenti fondamentali del meccanismo RMI, lo stub e lo skeleton. Per capire il motivo di questa doppia presenza, è bene fare un passo indietro, considerando il caso non distribuito. In tale circostanza, quando un oggetto desidera invocare un metodo di un altro oggetto, deve prima ricavarne un riferimento, istanziandolo direttamente o ricevendone l indirizzo dall esterno e, successivamente, eseguire un istruzione del tipo: nomeoggetto.nomemetodo(lista parametri) Nel caso distribuito, invece, si deve ricavare il riferimento all oggetto remoto ed invocarne i metodi a distanza. La soluzione proposta da RMI, consiste nello scaricare in locale un rappresentante dell oggetto remoto e di considerarlo come se si trattasse a tutti gli effetti di un elemento locale. E la tecnologia RMI che si occupa, in maniera del tutto trasparente, di inoltrare le richieste di esecuzione dei vari metodi all oggetto remoto residente sul server RMI. In tal modo, il client ha l impressione di utilizzare una risorsa locale, ma in realtà il codice viene eseguito dal processore residente sul server remoto. I due oggetti che implementano questo meccanismo, il rappresentante locale, ed il reale oggetto remoto ad esso collegato, sono appunto lo stub e lo skeleton. Grazie a questo meccanismo il codice necessario ad invocare un oggetto remoto è praticamente identico al caso precedente. Infatti basta scrivere: 24

32 Le architetture software nella programmazione distribuita RMI nomeoggettoremoto.nomemetodo(lista parametri) L equivalenza al caso non distribuito, in riferimento all invocazione dei metodi, vale anche per il passaggio dei parametri. Ad un metodo remoto, infatti, può essere passata una variabile, un istanza di un oggetto od una collezione d oggetti. Non esistono limiti da questo punto di vista, a patto che l oggetto in questione sia serializzabile, ossia possa essere trasformato in un flusso sequenziale d informazioni trasferibili tramite uno stream [7]. Si passi ora ad analizzare gli altri strati presenti nello schema della Figura 2.5. I lati server e client sono collegati con il sottostante Remote Reference Layer (RRL) che a sua volta si appoggia al Transport Layer (TL). Il primo dei due ha il compito di instaurare un collegamento logico fra i due lati, di codificare le richieste del client, inviarle al server, decodificare le richieste ed inoltrarle allo skeleton. Ovviamente nel caso in cui quest ultimo fornisca dei risultati per il particolare tipo di servizio richiesto, il meccanismo di restituzione di tali valori avviene in maniera del tutto analoga, ma in senso opposto. Al livello RRL viene instaurato un collegamento virtuale fra i due lati, client e server, mentre fisicamente la connessione avviene al livello sottostante, definito Transport Layer (TL). Dal momento che tale collegamento è di tipo sequenziale, è necessaria la serializzazione dei parametri da passare ai metodi. La gestione dei riferimenti ai vari oggetti e tutto quello che concerne le operazioni di basso livello avvengono, in parte, tramite l RRL, ma soprattutto tramite il TL, in cui i dati vengono semplicemente visti come sequenze di byte da scrivere o leggere in certe locazioni di 25

33 Le architetture software nella programmazione distribuita RMI memoria. Quando il TL riceve una richiesta di connessione da parte del client, localizza il server RMI relativo all oggetto remoto richiesto. Successivamente viene eseguita una connessione per mezzo di un socket appositamente creato per il servizio. Una volta che la connessione è stabilita, il TL passa la connessione al lato client di RRL ed aggiunge, in una tabella opportuna, un riferimento all oggetto remoto. Solo dopo questa operazione il client risulta effettivamente connesso al server e lo stub è utilizzabile dal client. Il TL è responsabile del controllo dello stato delle varie connessioni. Se un periodo di tempo significativo passa senza che venga effettuato nessun riferimento alla connessione remota, si assume che tale collegamento non sia più necessario e, quindi, viene disattivato. L ultimo livello che, però, non viene incluso nella struttura RMI è quello che riguarda la gestione della connessione attraverso i socket ed i protocolli TCP/IP. In realtà tutte le connessioni utilizzano la pila TCP/IP. Infatti, due Java Virtual Machine (JVM) comunicano attraverso la pila TCP/IP anche se sono in esecuzione sulla stessa macchina (Figura 2.6). 26

34 Le architetture software nella programmazione distribuita RMI Figura 2.6 Transport Layer di RMI Il protocollo utilizzato da RMI a livello trasporto è Java Remote Method Protocol (JRMP). Questo protocollo, specifica, tra l altro, le regole per lo scambio di messaggi fra gli oggetti senza rispettare le specifiche CORBA. Di conseguenza RMI è un architettura chiusa e come tale può essere conveniente quando si prevede di utilizzare solamente componenti remote sviluppate in Java [4] Le applicazioni RMI Le applicazioni RMI sono spesso composte da due programmi distinti: un server e un client. Ad esempio un applicazione server generica potrebbe creare un oggetto remoto, renderlo accessibile e attendere che un client invochi un metodo di tale oggetto. A questo punto un generico client dovrebbe recuperare un riferimento all oggetto remoto e invocarne i metodi messi a disposizione. Le applicazioni java ad oggetti distribuiti hanno bisogno di: 27

35 Le architetture software nella programmazione distribuita RMI Localizzare gli oggetti remoti. Le applicazioni possono usare due meccanismi per ottenere un riferimento a un oggetto remoto: 1. attraverso il sistema di naming messo a disposizione dall architettura RMI, ovvero rmiregistry; 2. attraverso una normale operazione come un passaggio di un oggetto remoto come parametro o un oggetto remoto restituito come risultato; Comunicare con gli oggetti remoti. I dettagli che regolano la comunicazione con gli oggetti remoti sono completamente gestiti dall architettura RMI e trasparenti al programmatore che utilizza l oggetto remoto come se fosse un oggetto locale; Caricamento dei bytecode di quelle classi che sono passate come parametro o che sono restituite come risultato. RMI fornisce degli automatismi che provvedono a caricare le classi non disponibili sulla Java Virtual Machine locale; Una delle maggiori caratteristiche di RMI è, quindi, la possibilità di scaricare automaticamente il bytecode delle classi che non sono disponibili sulla virtual machine del ricevente. Un'altra importante particolarità di RMI è data dalla possibilità di passare oggetti e ritornare valori durante una chiamata a metodo, oltre che a tipi di dati predefiniti. Questo significa che dati strutturati e complessi possono essere passati come un singolo argomento, senza dover decomporre l oggetto in tipi di dati primitivi. In altre parole 28

36 Le architetture software nella programmazione distribuita RMI RMI permette di trasportare oggetti attraverso le infrastrutture di un architettura enterprise senza necessitare di codice aggiuntivo. Infine, va rilevato l impegno profuso dagli ideatori di RMI nella realizzazione di un accurato insieme d eccezioni java che possono essere lanciate dagli oggetti remoti, catturate e interpretate dai client. Con tali eccezioni si risolvono brillantemente problematiche come latency e partial failure Rmiregistry L rmiregistry è un demone in esecuzione su una determinata macchina e, generalmente, in ascolto su una well-known port (1099), che offre un servizio di naming/directory (cfr. Capitolo 3). In poche parole rmiregistry permette di ottenere il riferimento ad un oggetto remoto a partire dal nome con cui lo stesso oggetto si è precedentemente registrato. L rmiregistry è gestibile attraverso una classe statica, Naming, che fornisce un metodi per la registrazione, bind(), la cancellazione, unbind(), e la ricerca, lookup() di componenti remote. In particolare, il metodo lookup() permette ai client di ottenere il riferimento a un oggetto remoto specificando, come parametro, una URL con la seguente forma: rmi://<host_name>[:<port>]/<service_name> Multithreading RMI non implementa esplicitamente politiche di multithreading per la gestione concorrente di connessioni client. Si ha la garanzia che 29

37 Le architetture software nella programmazione distribuita RMI quando un oggetto client acceder ad un oggetto server, le richieste vengono eseguite su un thread differente, solo se l oggetto client è eseguito su una macchina diversa da quella di un oggetto client precedentemente accettato. Ciò comporta che, se più client richiedono servizi ad un oggetto server, viene garantita per ciascuno di essi l esecuzione dei metodi invocati su un thread separato, solo se le richieste provengono da host differenti. E sottinteso che, se uno o più oggetti sullo stesso host, inviano più richieste concorrenti allo stesso oggetto server, l evasione delle richieste risulta sequenziale per l utilizzo di un unico thread. Per questo motivo lo schema di progettazione di tipo Factory o Dispenser possono risultare necessari quando si realizzano server RMI (per approfondimenti sui pattern Factory e Dispenser, si consulti l Appendice 8.1) RMI e i firewall Il Transport Layer (TL) di RMI di solito utilizza connessioni via socket con l host che fornisce servizi remoti. Purtroppo può accadere che tra un client e un server RMI sia posizionato un firewall, che non permette questo tipo di connessione. Il TL fornisce, al riguardo, due soluzioni alternative basate sul protocollo HTTP. Per permettere il passaggio attraverso un firewall, il TL impacchetta la richiesta utilizzando il protocollo HTTP, abilitato per il passaggio attraverso un firewall. La richiesta assume l aspetto di un POST HTTP, mentre la risposta del server viene impacchettata in una RESPONSE HTTP. I due metodi alternativi per inviare la richiesta tramite POST sono i seguenti: 30

38 Le architetture software nella programmazione distribuita RMI 1. Se il proxy del firewall indirizza la richiesta http direttamente ad una porta della macchina host ricevente, essa è reindirizzata alla porta alla porta su cui il server RMI è in ascolto. Il TL sulla macchina ricevente deve pertanto essere, e lo è, in ascolto tramite un socket che sia in grado di decodificare il POST verso una chiamata RMI standard; 2. Se il proxy del firewall indirizza la richiesta solo verso porte HTTP, allora la richiesta viene reindirizzata all httpd in ascolto, e deve essere innescata una CGI (Common Gateway Interface) che reindirizzi internamente la richiesta sulla porta su cui è in ascolto il server RMI. A questo punto il TL sulla macchina ricevente è in ascolto tramite un socket che sia in grado di decodificare il POST verso una chiamata RMI standard, come nel caso precedente. Quindi, i client RMI tentano automaticamente delle connessioni HTTP verso i server quando non è possibile una connessione diretta via socket. I server RMI automaticamente identificano la richiesta come una POST HTTP e formattano la risposta in una RESPONSE HTTP Attivazione di oggetti remoti Con la versione 1.2 del JDK è stata introdotta un estensione molto interessante di RMI. Quest estensione permette di tenere dormienti degli oggetti remoti fino a quando non ne venga fatta una richiesta esplicita da parte di un client. 31

39 Le architetture software nella programmazione distribuita RMI Nel caso di una normale registrazione di un oggetto remoto presso un rmiregistry, la macchina virtuale relativa all oggetto rimane attiva, perché ha innescato dei thread di comunicazione con l rmiregistry, il quale, a sua volta, ha una macchina virtuale separata. Con un approccio di questo genere, si verifica uno spreco di risorse ogniqualvolta si registri un oggetto utilizzato sporadicamente. Tale spreco può diventare inammissibile in situazioni in cui il numero d oggetti remoti è molto grande. Con la nuova versione di RMI, questo problema è risolvibile, potendo definire come dormienti certi servizi, che verranno istanziati e attivati solo a richiesta da parte di un client. Questa nuova funzionalità viene chiamata attivazione, e funziona come visualizzato nella Figura 2.7. Figura Attivazione di oggetti remoti Un client invia tramite l ORB di RMI una richiesta per un riferimento ad un oggetto remoto. La richiesta viene ricevuta sull rmiregistry e smistata al demone di attivazione rmid. L rmid possiede una descrizione dell oggetto da attivare: identificativo, gruppo di appartenenza e classe di implementazione (bytecode). L rmid 32

40 Le architetture software nella programmazione distribuita RMI controlla che non ci sia già una JVM in esecuzione per il gruppo di appartenenza dell oggetto richiesto, e in caso negativo ne esegue una. Ad essa passa un istanza dell oggetto ottenuta dal bytecode. Il riferimento a quest istanza è poi passato al client tramite l ORB. 33

41 Le architetture software nella programmazione distribuita 2.3 CORBA La presentazione di CORBA [9] che verrà fatta in questo paragrafo ha una duplice finalità. Da una parte, i concetti illustrati rendono semplice la comprensione di JavaIDL e RMI/IIOP, gli argomenti trattati nei paragrafi successivi. Dall altra, la simmetria che questo paragrafo ha rispetto al precedente, fornisce un implicito confronto tra alcuni aspetti e problematiche comuni di CORBA e RMI Architettura di CORBA Nell autunno del 1990 uscì dall OMG la guida all Object Management Architecture (OMA) che, attraverso varie vicissitudini, arrivò a gennaio del 1995 ad assumere la forma delle specifiche attuali Common Object Request Broker Architecture (CORBA). L architettura CORBA ha quattro elementi principali costituenti: L ORB, Object Request Broker, è il motore vero e proprio, che permette la comunicazione fra gli oggetti remoti; I CORBAServices sono servizi atti a completare ed aumentare le funzionalità di base di un ORB. Fanno parte di essi: o Life Cycle Service, per creare, copiare, rilocare e cancellare oggetti agganciati all ORB; o Persistence Service, per rendere persistenti gli oggetti agganciati all ORB su banche dati ad oggetti, relazionali, o semplici file; 34

42 Le architetture software nella programmazione distribuita CORBA o Naming Service, per localizzare gli oggetti agganciati all ORB; o Event Service, per far viaggiare gli eventi sull ORB; o Concurrency Control Service, per gestire i problemi di concorrenza per l accesso agli oggetti dell ORB; o Transaction Service, per gestire azioni di commit/rollback su oggetti dell ORB che prevedano una possibilità di recupero; o Relationship Service, per gestire relazioni fra gli oggetti dell ORB, associazioni dinamiche e di contenimento; o Externalization Service, per far viaggiare i dati con meccanismi di streaming; o Query Service, per operazioni di query sugli oggetti dell ORB, basatosulle specifiche dell ODMG (Object Database Management Group) per un sovrainsieme dell SQL chiamato OQL, Object Query Language; o Licensing Service, per misurare l utilizzo degli oggetti dell ORB e permettere una politica di si paga per quel che si usa o Properties Service, per associare dinamicamente delle proprietà allo stato di un oggetto dell ORB; 35

43 Le architetture software nella programmazione distribuita CORBA o Time Service, per la sincronizzazione di eventi che viaggiano sull ORB e che sono legati a tempi predefiniti; o Security Service, per la sicurezza degli oggetti dell ORB. Autenticazione e così via; o Trader Service, le pagine gialle dell ORB. Gli oggetti si registrano sulle pagine gialle specificando il tipo di servizio messo a disposizione, e le pagine gialle mettono a disposizione un meccanismo di ricerca a tutti gli oggetti che ne siano interessati; o Collection Service, per manipolare i tipi di collezione più comuni; o Startup Service, per operazioni predefinite d inizializzazione di un ORB; Le CORBAFacilities sono in continua evoluzione e mirano a formare due tipi di servizi, orizzontali e verticali. Gli orizzontali sono utili a tutti gli oggetti dell ORB, come, per esempio, servizi per la costruzione delle interfacce utente, per lo scambio documentale, agenti mobili; quelli verticali, invece, sono dedicati ad una tipologia ben precisa di applicazioni, per esempio finanziarie, telecomunicazioni, governative; I business objects, ovvero gli oggetti applicativi da agganciare all ORB, sono quelli che sviluppati dai programmatori; 36

44 Le architetture software nella programmazione distribuita CORBA Per finire, la versione delle specifiche CORBA 2.0, definisce anche come si devono parlare oggetti agganciati ad un ORB di implementatori differenti; in realtà definisce come questi ORB devono parlare tra di loro. Quest ultimo è il passo che permette una federazione d oggetti interoperanti, le implementazioni dei quali possono essere scritte in qualunque linguaggio supportato. Per esempio un ORB che permette l aggancio d oggetti implementati in C++ può parlare con un ORB che aggancia oggetti COBOL o Java. Il protocollo che permette questo scambio d informazioni è IIOP, Internet Inter Orb Protocol, su cui il GIOP, General Inter Orb Protocol, si basa per il trasporto su reti TCP/IP [8] IDL Come già accennato, CORBA permette l interazione tra oggetti scritti con differenti linguaggi di programmazione. Per rendere possibile ciò l OMG ha dovuto introdurre un livello d astrazione che permettesse di descrivere le funzionalità di un oggetto sull ORB senza scendere nei dettagli implementativi. L OMG ha così progettato la specifica per un linguaggio che permettesse di descrivere l aspetto esteriore di un oggetto sull ORB; questo linguaggio si chiama IDL, Internet Definition Language. Naturalmente, per poter descrivere e portare a massimo comune denominatore tutto quello che i vari linguaggi permettono si è dovuti scendere a compromessi e pertanto, un oggetto descritto con IDL potrebbe risultare più limitato di uno scritto, ad esempio, utilizzando RMI. [10] 37

45 Le architetture software nella programmazione distribuita CORBA E importante chiarire che per poter definire un interfaccia per l ORB di un oggetto scritto con un linguaggio ben preciso, è necessario che esista l esatta corrispondenza fra IDL e quel linguaggio. Linguaggi di cui esiste la specifica ufficiale di corrispondenza sono, ad esempio, il C, il C++, Java. Per Java si è giunti ad una specifica definitiva solo verso la metà del L architettura di un ORB CORBA Si prenda ora in esame com è fatto e funziona un ORB CORBA, e come gli oggetti possano parlarsi tra di loro tramite esso. Se si confronta la Figura 2.8 con Figura 2.5 si noterà un evidente somiglianza: in fondo anche RMI ha il suo ORB, solo più limitato. 38

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

RMI Remote Method Invocation

RMI Remote Method Invocation RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

SOLUZIONE Web.Orders online

SOLUZIONE Web.Orders online SOLUZIONE Web.Orders online Gennaio 2005 1 INDICE SOLUZIONE Web.Orders online Introduzione Pag. 3 Obiettivi generali Pag. 4 Modulo di gestione sistema Pag. 5 Modulo di navigazione prodotti Pag. 7 Modulo

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015 BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare

Dettagli

esales Forza Ordini per Abbigliamento

esales Forza Ordini per Abbigliamento esales Rel. 2012 Forza Ordini per Abbigliamento Scopo di questo documento è fornire la descrizione di una piattaforma di Raccolta Ordini via Web e la successiva loro elaborazione in ambiente ERP Aziendale.

Dettagli

Le fattispecie di riuso

Le fattispecie di riuso Le fattispecie di riuso Indice 1. PREMESSA...3 2. RIUSO IN CESSIONE SEMPLICE...4 3. RIUSO CON GESTIONE A CARICO DEL CEDENTE...5 4. RIUSO IN FACILITY MANAGEMENT...6 5. RIUSO IN ASP...7 1. Premessa Poiché

Dettagli

Scenario di Progettazione

Scenario di Progettazione Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client

Dettagli

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

Dettagli

Appunti di Sistemi Distribuiti

Appunti di Sistemi Distribuiti Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................

Dettagli

BANCHE DATI. Informatica e tutela giuridica

BANCHE DATI. Informatica e tutela giuridica BANCHE DATI Informatica e tutela giuridica Definizione La banca dati può essere definita come un archivio di informazioni omogenee e relative ad un campo concettuale ben identificato, le quali sono organizzate,

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Il modello di ottimizzazione SAM

Il modello di ottimizzazione SAM Il modello di ottimizzazione control, optimize, grow Il modello di ottimizzazione Il modello di ottimizzazione è allineato con il modello di ottimizzazione dell infrastruttura e fornisce un framework per

Dettagli

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Programmazione in Rete e Laboratorio Comunicazione distribuita Port1 Java VM1 Java VM2 Port 2 Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino

Dettagli

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

Sistemi centralizzati e distribuiti

Sistemi centralizzati e distribuiti Sistemi centralizzati e distribuiti In relazione al luogo dove è posta fisicamente la base di dati I sistemi informativi, sulla base del luogo dove il DB è realmente dislocato, si possono suddividere in:

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Calcolatori. Il Livello delle Applicazioni Reti di Calcolatori Il Livello delle Applicazioni Il DNS Gli indirizzi IP sono in formato numerico: sono difficili da ricordare; Ricordare delle stringhe di testo è sicuramente molto più semplice; Il Domain

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea AUTENTICAZIONE PER APPLICAZIONI WEB Relatore

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

Ingegneria del Software. Presentazione del pattern Proxy

Ingegneria del Software. Presentazione del pattern Proxy Ingegneria del Software Presentazione del pattern Proxy 1 Il pattern Proxy (1/6) Nome Proxy Synopsis Pattern molto generale che occorre in molti altri pattern, ma raramente nella sua forma pura. Il pattern

Dettagli

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

SDD System design document

SDD System design document UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs

Dettagli

Network Services Location Manager. Guida per amministratori di rete

Network Services Location Manager. Guida per amministratori di rete apple Network Services Location Manager Guida per amministratori di rete Questo documento illustra le caratteristiche di Network Services Location Manager e spiega le configurazioni di rete per sfruttarne

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Presentazione di Cedac Software

Presentazione di Cedac Software Agenda Presentazione di Cedac Software SOA ed ESB Analisi di un caso studio Esempi Q&A Presentazione di Cedac Software 1 2 Presentazione di Cedac Software S.r.l. Divisione Software Azienda nata nel 1994

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

INFORMATIVA SUL DIRITTO ALLA PRIVACY PER LA CONSULTAZIONE DEL SITO WEB www.arlatighislandi.it

INFORMATIVA SUL DIRITTO ALLA PRIVACY PER LA CONSULTAZIONE DEL SITO WEB www.arlatighislandi.it INFORMATIVA SUL DIRITTO ALLA PRIVACY PER LA CONSULTAZIONE DEL SITO WEB www.arlatighislandi.it redatto ai sensi del decreto legislativo n 196/2003 2 GENNAIO 2014 documento pubblico 1 PREMESSA 3 SEZIONE

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

PROXYMA Contrà San Silvestro, 14 36100 Vicenza Tel. 0444 544522 Fax 0444 234400 Email: proxyma@proxyma.it

PROXYMA Contrà San Silvestro, 14 36100 Vicenza Tel. 0444 544522 Fax 0444 234400 Email: proxyma@proxyma.it PROXYMA Contrà San Silvestro, 14 36100 Vicenza Tel. 0444 544522 Fax 0444 234400 Email: proxyma@proxyma.it igrafx Process Central è una soluzione che aiuta le organizzazioni a gestire, sviluppare, documentare

Dettagli

Allegato 3 Sistema per l interscambio dei dati (SID)

Allegato 3 Sistema per l interscambio dei dati (SID) Sistema per l interscambio dei dati (SID) Specifiche dell infrastruttura per la trasmissione delle Comunicazioni previste dall art. 11 comma 2 del decreto legge 6 dicembre 2011 n.201 Sommario Introduzione...

Dettagli

MyFRITZ!, Dynamic DNS e Accesso Remoto

MyFRITZ!, Dynamic DNS e Accesso Remoto MyFRITZ!, Dynamic DNS e Accesso Remoto 1 Introduzione In questa mini-guida illustreremo come accedere da Internet al vostro FRITZ!Box in ufficio o a casa, quando siete in mobilità o vi trovate in luogo

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Una minaccia dovuta all uso dell SNMP su WLAN

Una minaccia dovuta all uso dell SNMP su WLAN Una minaccia dovuta all uso dell SNMP su WLAN Gianluigi Me, gianluigi@wi-fiforum.com Traduzione a cura di Paolo Spagnoletti Introduzione Gli attacchi al protocollo WEP compromettono la confidenzialità

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 200, ore 1.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Analisi Giulio Destri Ing. del software: Analisi - 1 Scopo del modulo Definire

Dettagli

Installazione di GFI WebMonitor

Installazione di GFI WebMonitor Installazione di GFI WebMonitor Requisiti di sistema di GFI WebMonitor Server Microsoft Windows 2000 (SP 3) o 2003. Microsoft ISA 2000 Server (non in modalità solo firewall) OPPURE Server Microsoft ISA

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo. Pag. 1 di 5 6FRSR analizzare problemi complessi riguardanti la gestione di un sito interattivo proponendo soluzioni adeguate e facilmente utilizzabili da una utenza poco informatizzata. 2ELHWWLYL GD UDJJLXQJHUH

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Project Cycle Management

Project Cycle Management Project Cycle Management Tre momenti centrali della fase di analisi: analisi dei problemi, analisi degli obiettivi e identificazione degli ambiti di intervento Il presente materiale didattico costituisce

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Capitolo 3 Guida operativa del programma TQ Sistema

Capitolo 3 Guida operativa del programma TQ Sistema Capitolo 3 Guida operativa del programma TQ Sistema Panoramica delle funzionalità Questa guida contiene le informazioni necessarie per utilizzare il pacchetto TQ Sistema in modo veloce ed efficiente, mediante

Dettagli

1.2.1 - REALIZZAZIONE LAN

1.2.1 - REALIZZAZIONE LAN 1 - CODICE PROGETTO 1.2.1 - REALIZZAZIONE LAN 2 - TIPOLOGIA DI INTERVENTO/AREA FUNZIONALE DEL PPL Il progetto è riconducibile a quella che il Piano Provinciale del Lavoro definisce quale Area 1: organizzazione

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

JNDI. Massimo Merro Programmazione di Rete 214 / 229

JNDI. Massimo Merro Programmazione di Rete 214 / 229 JNDI Abbiamo già visto come i registri RMI espletino un servizio di Naming attraverso cui vengono associati nomi simbolici a referenze a server remoti. Esistono comunque altri servizi di naming: COS (Common

Dettagli