JADE White Paper. Executive summary. Versione: 1.0 Data: Riservatezza: Pubblico Numero di pagine: 14

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "JADE White Paper. Executive summary. Versione: 1.0 Data: 27.03.2003 Riservatezza: Pubblico Numero di pagine: 14"

Transcript

1 B [Tipo Documento] Cod. Doc. DPC 2002.XYZ Versione: 1.0 Data: Riservatezza: Pubblico Numero di pagine: 14 AUTORE: REVISIONE: APPROVAZIONE: Giovanni CAIRE (RO/SI/D) Laura CONTIN (RO/SI/D) Fabio BELLIFEMINE (RO/SI/D) Fabio BELLIFEMINE (RO/SI/D) Executive summary Il presente documento presenta le principali funzionalità e caratteristiche della piattaforma JADE per lo sviluppo di applicazioni peer-to-peer ad agenti. Viene inizialmente fornita una panoramica sulle tecnologie di riferimento. Ci si focalizza quindi su JADE e si descrive il modello funzionale e architetturale della piattaforma, soffermandosi sulle caratteristiche di maggiore rilievo. Infine vengono presentate varie considerazioni e individuati alcuni tra gli ambiti applicativi che potrebbero trarre maggior vantaggio dal suo utilizzo.

2 Indice 1 Introduzione Le tecnologie di riferimento Il modello peer-to-peer Modelli architetturali di reti peer-to-peer Il paradigma ad agenti Lo standard di riferimento Il concetto di middleware La tecnologia Java Che cos è JADE? Modello architetturale Modello funzionale JADE in ambiente mobile Dettagli tecnici La comunità di JADE Il progetto open source Il Board di controllo Perché usare JADE? Realizzazione di task complessi Pro-attività Efficienza delle applicazioni multi-party Interoperabilità Efficienza nello sviluppo delle applicazioni Riduzione dei costi Riferimenti RISERVATEZZA: Pubblico Pagina 2 di 14

3 1 Introduzione Il presente documento descrive le principali funzionalità e caratteristiche della piattaforma JADE sviluppata da TILAB in questi anni e attualmente distribuita in Open Source secondo la licenza LGPL. JADE è un middleware basato su Java per lo sviluppo di applicazioni peer-to-peer ad agenti in ambiente fisso e mobile. Per meglio comprendere il significato di questa definizione il capitolo 2 fornisce una panoramica sulle tecnologie di riferimento ed in particolare il modello di comunicazione peer-to-peer e le differenze con il modello client-server. il paradigma degli agenti intelligenti e gli standard di riferimento. il concetto di middleware e i vantaggi di un approccio orizzontale nello sviluppo di applicazioni la tecnologia Java Nel capitolo 3 ci si focalizza su JADE, vengono descritte le principali funzionalità, il modello architetturale e sono presentati alcuni dettagli tecnici. Il capitolo 4 fornisce i dati più significativi relativamente alla comunità che si è radunata in questi anni attorno a JADE e presenta il progetto open source e il board di controllo. Infine nel capitolo 5 sono presentate alcune considerazioni mirate ad evidenziare i vantaggi derivanti dall uso di JADE nello sviluppo di applicazioni distribuite. 2 Le tecnologie di riferimento 2.1 Il modello peer-to-peer Il modello di comunicazione dominante nel panorama odierno delle applicazioni distribuite è senza dubbio quello client-server. Tale modello è basato su una rigida distinzione di ruoli fra i nodi client ed i nodi server: l intelligenza, la logica applicativa e le informazioni risiedono interamente sui server, mentre ogni client è solo uno strumento per gestire l interfaccia grafica con l utente e, in particolare, presentare (render) l informazione. I nodi server forniscono i servizi, offrono cioè le capabilities, ma non hanno alcuna capacità di iniziativa, sono reattivi ed attendono di essere invocati dai nodi client; questi ultimi, di contro, concentrano tutta l iniziativa e, tipicamente dietro richiesta dell utente, richiedono il servizio, lo utilizzano, ma non forniscono alcuna capability. I client possono comparire e scomparire nel tempo, mentre i server devono tipicamente fornire garanzie di stabilità e generalmente rispondono ad un indirizzo fisso e pre-definito. I client comunicano con i server, ma non possono comunicare tra loro. Un tipico esempio di applicazioni basate sul modello client-server sono le applicazioni web dove i client sono i browser (il cui unico compito è quello di reperire, su esplicita richiesta dell utente, informazioni residenti su siti internet e di presentarle in modo opportuno) e i server sono i siti/portali e contengono tutte le informazioni e la logica applicativa. Esistono peraltro varie classi di applicazioni distribuite che non si adattano bene ad un modello di comunicazione client-server. Se consideriamo ad esempio una chat, dove un messaggio scritto dall utente X deve essere ricevuto dall utente Y e viceversa, osserviamo che i nodi attivi sui terminali degli utenti devono essere in grado di comunicare tra loro. Altre applicazioni di questo genere sono ad esempio sistemi di file sharing (come Napster o Gnutella) e giochi multiplayer. Realizzare applicazioni che appartengono a questa classe con un modello client-server è ovviamente possibile (nel caso della chat per esempio il messaggio scritto dall utente X potrebbe essere inviato ad un server centrale dal quale il client dell utente Y lo può reperire), ma costituisce sicuramente una forzatura. Infatti il server non è un elemento necessario da un punto di vista logico, ma solo un artefatto implementativo. Un modello di comunicazione cosiddetto peer-to-peer in cui tutti i nodi possono comunicare tra loro, ogni nodo può giocare sia il ruolo di iniziatore che quello di risponditore nella comunicazione e dove le risorse e l intelligenza applicativa sono distribuite sui vari nodi, risulta decisamente più adatto. In un modello peer-to-peer scompare completamente la distinzione di ruoli fra client e server, lasciando il RISERVATEZZA: Pubblico Pagina 3 di 14

4 posto unicamente a nodi peer, dotati di una combinazione di iniziativa e di capabilities. La logica della applicazione non è più concentrata nel server, ma viene distribuita tra i peer Modelli architetturali di reti peer-to-peer Un altra importante differenza tra i modelli client-server e peer-to-peer riguarda le modalità di discovery dei nodi con cui interagire. Nei sistemi client-server ogni client deve conoscere il server e, per contro, non ha mai necessità di conoscere gli altri client (in quanto non comunicherà mai con loro). Nei sistemi peer-to-peer al contrario chi conosce chi al tempo 0 è del tutto arbitrario. In generale un peer dovrà scoprire quali sono gli altri peer con cui comunicare (ad esempio perché offrono i servizi di cui ha bisogno) prima di interagire effettivamente con essi. Di conseguenza i sistemi peer-topeer supportano in generale opportuni meccanismi di discovery (pagine gialle e pagine bianche) che consentono ai vari peer di pubblicare le proprie caratteristiche (ad esempio i servizi offerti) e di identificare altri peer con determinate caratteristiche. Sulla base di questi meccanismi è possibile individuare due fondamentali modelli di rete [3] (Figure 1): reti P2P pure o decentralizzate reti P2P ibride o a indice centralizzato Figure 1. Client/Server (a sinistra), P2P puro (a destra), P2P ibrido (a centro) Una rete peer-to-peer pura è completamente decentralizzata e i peer hanno una completa autonomia locale. Nelle architetture peer-to-peer pure, i singoli peer devono saper sfruttare i protocolli messi a disposizione dalla rete per rintracciare altri potenziali partner (ad esempio mediante messaggi di discovery) e comunicare a ciascuno di essi l elenco delle risorse che sono disposti a condividere. La ricerca della risorsa o servizio di interesse avviene mediante messaggi di query. La comunicazione avviene su canali bidirezionali senza l intervento di nessun elemento di coordinazione e gestione. Si tratta di reti difficili da gestire e mantenere coerenti per l assenza di nodi di riferimento. All aumentare dei nodi aumenta la capacità complessiva del sistema, ma il traffico cresce in maniera esponenziale. Si tratta inoltre di reti non sicure poiché chiunque può entrare nella rete senza alcun meccanismo di controllo. Nelle architetture ad indice centralizzato (peer-to-peer ibrido), invece, sono presenti uno o più nodi speciali (detti nodi indice) che hanno lo scopo di agevolare la ricerca dei peer attivi, mediante servizi di discovery, e la ricerca delle risorse di interesse mediante servizi di content look up. Le reti a indice centralizzato generano tipicamente meno traffico e sono più sicure in quanto richiedono la registrazione dei peer. Tali reti dipendono però dalla disponibilità del nodo indice. Se tale nodo non è disponibile il meccanismo di discovery fallisce. 2.2 Il paradigma ad agenti Sebbene la comunità scientifica ne discuta ormai da tempo, è solo in questi ultimi anni che sta cominciando a trovare riscontri applicativi pratici un nuovo paradigma di sviluppo software denominato Agent Oriented Programming. Tale paradigma nasce dalla fusione di alcuni concetti derivanti dagli RISERVATEZZA: Pubblico Pagina 4 di 14

5 studi sull intelligenza artificiale con la tecnologia degli oggetti distribuiti. Per quanto non esista una definizione universalmente accettata, il paradigma ad agenti prevede la realizzazione di un applicazione software come collezione di componenti (dette appunto agenti) autonome, in grado cioè di svolgere task lunghi e complessi senza la necessità di ricevere istruzioni dall utente su cosa fare ad ogni passo proattive, in grado cioè di prendere iniziative anche senza uno stimolo esplicito da parte di un utente comunicative, in grado cioè di interagire tra loro al fine di raggiungere l obiettivo globale del sistema. Il modello architetturale di una applicazione realizzata con tecnologia ad agenti è intrinsecamente peer-to-peer in quanto ogni agente è potenzialmente in grado di iniziare una comunicazione con ogni altro agente nel sistema, ogni agente ha una sua logica e delle sue risorse interne, ogni agente è in grado sia di offrire che di utilizzare servizi e gli agenti necessitano di opportuni meccanismi di discovery per identificare con quali altri agenti interagire; in ottica peer-to-peer ogni agente è quindi un peer. In particolare, inoltre, il paradigma degli agenti pone l accento sugli aspetti di comunicazione asincrona preserva l autonomia degli agenti che possono gestire in base alla loro logica interna come e quando gestire i messaggi che gli arrivano loosely coupled non è necessaria alcuna conoscenza delle caratteristiche interne dell interlocutore per poter interagire con esso semanticamente comprensibile ricevendo un messaggio, un agente può attribuirgli il corretto significato e dedurre l intenzione in base alla quale quel messaggio è stato inviato Lo standard di riferimento Per sfruttare appieno le potenzialità della tecnologia ad agenti, nel 1996 varie aziende (tra cui TILAB) nel mondo dell ICT hanno dato vita a FIPA (Foundation for Intelligent Physical Agents) [2], una iniziativa internazionale non-profit con l obbiettivo di produrre specifiche per l interoperabilità tra agenti realizzati da produttori diversi e con tecnologie diverse. Essendo focalizzate sugli aspetti di interoperabilità, le specifiche FIPA non trattano la struttura interna di un agente, ma definiscono un linguaggio di comunicazione tra gli agenti detto ACL (Agent Communication Language) e delle modalità di interazione con i servizi di pagine bianche e pagine gialle mediante i quali un agente può trovare gli altri agenti con cui deve interagire per raggiungere i propri obiettivi. In particolare il linguaggio ACL è derivato dalla teoria degli atti comunicativi: la comunicazione avviene attraverso lo scambio di messaggi asincroni corrispondenti all esecuzione di ben precise azioni (al pari delle azioni fisiche quali la scrittura su un file o la computazione di un valore) dette comunicative quali INFORM, PROPOSE, REQUEST Oltre all intenzione comunicativa, che esprime in modo esplicito che cosa un agente si aspetta dal suo interlocutore, un messaggio ACL contiene le indicazioni sul mittente e i destinatari, alcuni campi (ad esempio un identificatore di conversazione) che supportano l implementazione di interazioni lunghe e complesse quali aste, negoziazioni e deleghe di task, il contenuto vero e proprio del messaggio ovvero ad esempio il fatto del quale si informa il destinatario (se l intenzione comunicativa è INFORM) o l azione richiesta al destinatario (se l intenzione comunicativa è REQUEST), le indicazioni sul content language (ovvero la sintassi con cui è espresso il contenuto) e sulla ontologia (ovvero il vocabolario dei termini utilizzati nel contenuto e il loro significato) utilizzati. Gli agenti che prendono parte ad una conversazione dovranno chiaramente parlare lo stesso content-language e conoscere la stessa ontologia per capirsi effettivamente. RISERVATEZZA: Pubblico Pagina 5 di 14

6 2.3 Il concetto di middleware Il termine middleware sta ad indicare l insieme del software (librerie, framework, toolkit) che semplifica e rende più veloce lo sviluppo di applicazioni fornendo dei servizi generici, utili per una molteplicità di applicazioni. Se consideriamo ad esempio un applicazione distribuita, quando due nodi attivi su host diversi devono comunicare, dovranno aprire una connessione di rete, trasferire i dati opportunamente formattati e infine chiudere la connessione. L implementazione di queste operazioni è tipicamente complessa e alle volte può anche richiedere più tempo rispetto all implementazione della logica applicativa vera e propria. Peraltro tali operazioni sono sostanzialmente indipendenti dall applicazione che le attiva e possono quindi essere implementate da un middleware riutilizzabile da tutte le applicazioni che hanno l esigenza di trasferire dati. Ossia ogni applicazione non deve realizzare ex-novo la propria soluzione di comunicazione ma può riusare la soluzione fornita dal middleware, che sta appunto nel middle fra applicazione e strati di basso livello (sistema operativo, driver di rete, hardware). La genericità e la trasversalità rispetto a vari domini applicativi suggeriscono il nome di approccio orizzontale in contrapposizione allo sviluppo verticale di una soluzione ad-hoc per uno specifico dominio applicativo come evidenziato in Figure 2. Applicazioni Middleware OS / HW Figure 2. Approccio "verticale" (a sinistra) e "orizzontale" (a destra) Da un middleware per applicazioni basate sul modello peer-to-peer ci si può aspettare ad esempio il supporto alla comunicazione simmetrica tra i peer, al discovery dei peer e alla sicurezza (autenticazione dei peer, comunicazioni sicure). Da un middleware per applicazioni basate sul paradigma degli agenti in aggiunta ci si può aspettare ad esempio il supporto alla gestione del ciclo di vita (attivazione/terminazione degli agenti), all esecuzione di interazioni complesse come aste e negoziazioni e alla gestione della semantica e del significato dei messaggi. 2.4 La tecnologia Java La tecnologia Java ha rappresentato in questi anni una vera e propria rivoluzione nel mondo dell Information Technology grazie alle feature avanzate e altamente orientate alla programmazione ad oggetti del suo linguaggio di programmazione, ma soprattutto alle sue caratteristiche di portabilità su hardware e sistemi operativi diversi. Considerate le differenze tra i device esistenti, la tecnologia Java è oggi suddivisa in quattro edizioni con diversi livelli di funzionalità supportate e requirements sulle risorse del device (Figure 3). Java 2 Enterprise Edition (J2EE) per ambienti server e applicazioni business Java 2 Standard Edition (J2SE) per ambienti desktop computer Java 2 Micro Edition (J2ME) per device portatili e suddivisa a sua volta in due configurazioni CDC (profilo Personal Java) per PDA, set top boxes CLDC (profilo MIDP) per telefoni cellulari Java card per ambiente SIM/smart-card. RISERVATEZZA: Pubblico Pagina 6 di 14

7 Figure 3. La tecnologia Java 3 Che cos è JADE? JADE [1] è un middleware sviluppato da TILAB per la realizzazione di applicazioni distribuite ad agenti con architettura di comunicazione peer-to-peer. L intelligenza, l iniziativa, l informazione, le risorse ed il controllo possono essere completamente distribuiti sia su terminali mobili sia sulla rete fissa e l ambiente può evolvere dinamicamente nel tempo con peer, che in JADE sono denominati appunto agenti, che nascono, appaiono e scompaiono nel sistema secondo le possibilità e necessità del contesto applicativo ed in modo pressoché trasparente al programmatore di applicazioni. La comunicazione fra peer, siano essi sulla rete mobile o su quella fissa, è completamente simmetrica ed attivabile con iniziativa di qualunque parte. JADE è interamente realizzato in linguaggio Java e alla base del suo sviluppo sono i seguenti principi fondamentali: Interoperabilità JADE è conforme alle specifiche dello standard FIPA (2.2.1). Di conseguenza un agente JADE può interoperare anche con peer che non usano il run-time di JADE. Uniformità e portabilità - JADE fornisce alle applicazioni un insieme di API indipendente sia dallo strato di rete sia dalla versione di JVM. In particolare, l ambiente run-time fornisce le stesse API sia per ambiente J2EE, per J2SE, e J2ME. In linea teorica, il programmatore potrebbe decidere al deployment-time l ambiente Java di esecuzione. Semplicità d uso - La complessità del middle-ware viene nascosta al programmatore fornendo alle applicazioni API molto semplici da usare. RISERVATEZZA: Pubblico Pagina 7 di 14

8 Filosofia pay-as-you-go -. Il programmatore non è obbligato ad usare tutte le funzionalità offerte da JADE e queste, se non usate, non aggiungono overhead computazionale, né complessità di utilizzo. 3.1 Modello architetturale JADE include sia le librerie di classi Java per la realizzazione degli agenti sia l ambiente runtime che fornisce i servizi di base descritti in 3.2 e che deve essere attivo su un device affinché sia possibile eseguire uno o più agenti su quel device. Ogni istanza del run-time di JADE è detta container ( contenitore di agenti) e l insieme di tutti i container è detto piattaforma e costituisce uno strato omogeneo che nasconde completamente agli agenti (ovvero alle applicazioni) la complessità e l eterogeneità degli strati sottostanti (hardware, sistemi operativi, tipi di rete, JVM). Come evidenziato in Figure 4, JADE è compatibile con l ambiente J2ME CLDC/MIDP1.0, ed è già stato testato con prove in campo eseguite su rete GPRS per diversi terminali commerciali, tra cui: Nokia 3650, Motorola Accompli008, Siemens SX45, PalmVx, Compaq ipaq, Psion5MX, HP Jornada 560. L occupazione in memoria della libreria JADE in ambiente MIDP è di circa 100 KB, ma può ridursi fino all ordine di 50 KB utilizzando la tecnica del ROMizing, ossia compilando JADE con la Java Virtual Machine stessa. La ridotta occupazione in termini di memoria ne consente l installazione su praticamente tutti i telefoni cellulari purchè java-enabled. La versatilità di JADE è tale che non solo esso è stato integrato in ambienti con risorse limitate come i terminali mobili, ma anche in architetture complesse come.net o J2EE [4] dove JADE diventa un servizio per eseguire applicazioni multiparty e pro-attive. Applicazione distribuita costituita da un insieme di agenti JADE LAYER Container J2S E Container Container Container JA D E JAV A V M LAYER J2EE PersonalJava C L D C I n t e r n e t W i r e l e s s e n v i r o n m e n t Figure 4. L architettura di JADE 3.2 Modello funzionale Dal punto di vista funzionale, JADE fornisce i servizi di base necessari alle applicazioni distribuite peer-to-peer in ambiente fisso e mobile. JADE permette ad ogni agente di scoprire (discover) dinamicamente altri agenti e comunicare con essi in modalità peer-to-peer. Dal punto di RISERVATEZZA: Pubblico Pagina 8 di 14

9 vista dell applicazione, ogni agente è identificato da un nome e fornisce un insieme di servizi. Esso può registrare e modificare i propri servizi e/o cercare agenti che ne forniscano altri, gestire il proprio ciclo di vita e, soprattutto, comunicare con tutti gli altri peer. La comunicazione tra gli agenti si basa sullo scambio asincrono di messaggi, un modello di comunicazione ormai universalmente accettato per comunicazioni distribuite e loosely-coupled 1, ossia fra entità eterogenee e non accoppiate. Per comunicare, un agente invia semplicemente un messaggio ad una destinazione. Non c è alcuna dipendenza temporale fra i due in quanto mittente e destinatario potrebbero anche non essere disponibili nello stesso istante; addirittura il destinatario potrebbe anche non esistere, o non esistere ancora, o potrebbe essere non direttamente noto al mittente (es. questo messaggio è per tutti gli agenti interessati al tema calcio ). Il destinatario può quindi non saper nulla circa il mittente né il mittente circa il destinatario. Questa modalità non va a discapito della sicurezza in quanto, per le applicazioni che lo richiedono, JADE fornisce strumenti di autenticazione e verifica dei diritti dei singoli agenti. Quando necessario, l applicazione ha quindi la possibilità di verificare l identità del mittente di un messaggio e inibire le azioni per cui esso non è abilitato (es. un agente può essere abilitato a ricevere messaggi dall agente del capo ma non a trasmetterne). Tutti i messaggi scambiati fra gli agenti sono incapsulati in un envelope che contiene solo le informazioni necessarie al livello di trasporto e che permette, ad esempio, di cifrare separatamente il contenuto del messaggio. La struttura dati del messaggio è conforme al linguaggio ACL definito da FIPA [2] e permette di rappresentare informazioni di supporto all interazione, quali timeout per le risposte, variabili di contesto e, soprattutto, permette di riferire a conversazioni parallele in corso. Il supporto alla conversazione è una funzionalità importante di JADE che fornisce alle applicazioni scheletri di pattern tipici di interazione, associati a task specifici, quali la negoziazione, le aste e la delega di task. Usando questi scheletri (ossia classi astratte Java), il programmatore viene esulato dal gestire sincronizzazioni, timeout, condizioni di eccezione e, in generale, tutto quanto non strettamente connesso alla normale logica applicativa. Per aumentare la scalabilità o per ambienti a risorse vincolate, JADE offre l opportunità di parallelizzare diversi task, eseguendoli all interno di uno stesso thread. Diversi task elementari, quali ad esempio la comunicazione tra agenti, possono poi essere combinati tra loro per realizzare task più complessi, che vengono così strutturati come macchine a stati finiti concorrenti. In ambiente J2SE e PersonalJava, JADE fornisce inoltre la capacità di mobilità del codice e dello stato di esecuzione. Un agente può cioè interrompere la propria esecuzione su un host, migrare su un host remoto e riprendere l esecuzione dallo stesso punto dal quale era stata interrotta. Questa funzionalità consente ad esempio di distribuire al runtime il carico computazionale movendo agenti su macchine più scariche in modo del tutto trasparente alle applicazioni. La piattaforma include anche un servizio di naming e di pagine gialle distribuite e federabili in modo, ad esempio, da poter gestire domini di servizi di agenti. Un altra feature molto importante è costituita dalla disponibilità di una ricca suite di strumenti grafici di supporto alle fasi di debugging e di gestione/monitoring delle applicazioni. Utilizzando tali strumenti è possibile ad esempio simulare delle conversazioni remote, sniffare conversazioni fra agenti, monitorare i task eseguiti da uno specifico agente e il suo stato nel ciclo di vita. Per quanto riguarda la gestione ed il monitoring delle applicazioni messe in campo è inoltre possibile controllare gli agenti presenti nel sistema, attivare, sospendere, terminare agenti anche su macchine remote, controllare i servizi pubblicati nelle pagine gialle e generare opportuni log. 1 Una nota tecnica di Gartner [3] prevede che il MOM ( Message-Oriented-Middleware) entro il 2004 sarà la forma dominante di middleware di comunicazione per applicazioni mobili il mercato business. RISERVATEZZA: Pubblico Pagina 9 di 14

10 Queste funzionalità e, soprattutto, la possibilità di attivare (sia da codice che tramite console) in modo remoto, anche su terminali mobili J2ME, dei task, delle conversazioni, ed anche dei peer, rende JADE particolarmente adatto alla esecuzione di applicazioni distribuite, machine-to-machine, multiparty, ad agenti intelligenti pro-attivi. 3.3 JADE in ambiente mobile Come già anticipato, il run-time di JADE può essere eseguito su una vasta gamma di device variabile dai server ai telefoni cellulari con l unico requisito di supportare Java MIDP1.0. Per far fronte alle limitazioni di memoria e processing power dei device mobili e alle caratteristiche delle reti wireless (GPRS in particolare) in termini di banda, latenza, connettività intermittente e variabilità degli indirizzi IP, ed al contempo per essere efficiente quando eseguito su host nella rete fissa, JADE è configurabile in modo da adattarsi alle caratteristiche dell ambiente di deployment. L architettura di JADE infatti è completamente modulare e attivando alcuni moduli piuttosto che altri è possibile di volta in volta far fronte a requisiti diversi in termini di connettività, capacità di memoria e capacità elaborativa. In particolare, un modulo denominato LEAP consente di ottimizzare i meccanismi di comunicazione per device con risorse limitate su reti wireless. Attivando tale modulo un container JADE viene splittato come rappresentato in Figure 5: un front-end effettivamente attivo sul terminale mobile e un back-end attivo nella rete fissa. Un elemento architetturale, detto mediator, deve essere preventivamente attivato ed ha il compito di istanziare e mantenere i back-end (che sono sostanzialmente delle entry nel mediator stesso). Per far fronte a problemi di carico è possibile mettere in campo vari mediator ciascuno dei quali può contenere vari back-end. Ogni front-end è collegato al relativo back-end mediante una connessione permanente. È importante far notare che il fatto che un agente sia in esecuzione su un container normale o sul front-end di un container splittato è del tutto trasparente per l agente stesso in quanto le funzionalità offerte e le API per accedervi non cambiano. L approccio descritto presenta numerosi vantaggi: Parte delle funzionalità del container sono delegate al back-end e ciò consente di rendere il frontend estremamente lightweight in termini di memoria e capacià di processing richieste. Il back-end maschera agli altri container (siano essi normali o splittati ) l effettivo indirizzo IP assegnato al device wireless. Ciò consente di nascondere al resto della piattaforma un eventuale cambio di indirizzo. Il front-end è in grado di riconoscere una caduta della connessione col back-end (dovuta ad esempio all assenza di campo) e di riattivarla automaticamente. Sia il front-end sia il back-end implementano un meccanismo di store-and-forward per cui i messaggi che non possono essere trasmessi a causa di una temporanea disconnessione vengono bufferizzati e consegnati non appena la connessione viene ristabilita. Alcune informazioni che i container si scambiano (ad esempio per reperire il container sul quale si trova l agente destinatario di un messaggio) sono gestite unicamente dal back-end. Questo approccio, unitamente all utilizzo di una codifica bit-efficient delle comunicazioni tra front-end e back-end, consente di ottimizzare l uso della risorsa radio. RISERVATEZZA: Pubblico Pagina 10 di 14

11 M FrontEnd J A D E A P I s S p l i t c onta i ne r B a c k End B a c k End C onta i ne r J A D E A P I s e di a tor FrontEnd c o n n e s s i o n e b i d i r e z i o n a l e p e r m a n e n t e Figure 5. Architettura di JADE per l'ambiente mobile 3.4 Dettagli tecnici La tabella seguente riassume le principali caratteristiche tecniche di JADE. Nome Produttore Sito Web Linguaggio Disponibilità Caratteristiche tecnico-funzionali JADE Java Agent Development Framework TILAB Java, piattaforme J2EE, J2SE, J2ME CLDC/MIDP1.0 Open Source con licenza LGPL. TILAB può rilasciare licenze commerciali per scopi specifici. Applicazioni distribuite multi-party con comunicazione peer-to-peer. Gestione ciclo di vita degli agent. Pagine bianche e pagine gialle con possibilità di creare grafi di federazione al run-time. Strumenti grafici di supporto alle fasi di debugging, monitoring e gestione Supporto alla migrazione del codice e dello stato dell agente Supporto per protocolli di interazione complessi (es. contract-net) Supporto per gestione del contenuto dei messaggi, incluso XML e RDF Supporto all integrazione in pagine JSP attraverso una tag library Conforme allo standard FIPA RISERVATEZZA: Pubblico Pagina 11 di 14

12 Ambienti di rete Terminali Supporto alla sicurezza a livello di applicazione (attualmente solo in ambiente J2SE) Protocolli di trasporto selezionabili anche al run-time, attualmente disponibili Java-RMI, protocollo proprietario JICP, HTTP, IIOP. È già stato utilizzato in ambiente di rete BlueTooth, WLAN, GPRS, Internet Tutti i terminali con pjava o J2ME-MIDP1.0, in particolare già testato su Nokia 3650, Motorola Accompli008, Siemens SX45, PalmVx, Compaq ipaq, Psion5MX, HP Jornada 560. Tabella 1 - Sommario caratteristiche di JADE 4 La comunità di JADE Sebbene il copyright di JADE sia oggi interamente posseduto da TILAB, al suo sviluppo contribuisce una comunità in continua crescita imperniata su due componenti principali: il progetto open source e il board di controllo Il progetto open source Tutti i sorgenti di JADE sono distribuiti in open source con licenza LGPL [5]. La licenza LGPL permette il pieno sfruttamento di JADE, anche in ambito di business, con il vincolo che ogni modifica ed ogni lavoro derivativo di JADE deve essere restituita alla comunità con la stessa licenza. Non esistono invece vincoli restrittivi sulle applicazioni e/o ogni altro tipo di software che usa JADE. TILAB, in quanto originatore del progetto, ha il diritto esclusivo di rilasciare licenze commerciali su JADE. Intorno a questo progetto si è formata una comunità di utilizzatori molto numerosa, che conta più di mille iscritti (molti dei quali sono contact point di gruppi interni ad un azienda o ad un università) e ha fatto registrare picchi di centinaia di download giornalieri. Gli iscritti provengono in parte dall ambiente accademico (JADE è infatti largamente utilizzato a scopi didattici), da centri R&D di leader mondiali come Motorola, HP, Siemens e Rockwell Automation o da piccole start-up, quali Mobile Tribe e Acklin, che puntano su JADE come tecnologia abilitante per lo sviluppo del loro business. In particolare Motorola e Siemens hanno contribuito, nell ambito di un progetto europeo IST denominato Leap [6], agli sviluppi che hanno consentito il porting di JADE in ambiente J2ME/MIDP. Il progetto è supportato da un sito web dal quale è possibile downloadare il codice, reperire la documentazione segnalare eventuali problemi e trovare link utili oltre che da due mailing-list per gli sviluppatori che fungono da forum di discussione Il Board di controllo Allo scopo di diffonderne l uso il più possibile in particolare in ambiente telco, lo sviluppo di JADE (inizialmente gestito privatamente da TILAB) è recentemente passato sotto il controllo di un board aperto. Il board è oggi costituito da TILAB (presidente) e da Motorola, ma altri key players del settore e principalmente manifatturiere e operatori hanno manifestato il proprio interesse ad entrare. 5 Perché usare JADE? Nel seguito vengono analizzati i punti di forza di JADE. Alcuni di questi, quali la realizzazione di task complessi o la pro-attività degli agenti, possono riflettersi in un vantaggio importante per alcuni ambiti applicativi particolari; altri, quali l efficienza nello sviluppo di applicazioni, sono invece di validità più generale. RISERVATEZZA: Pubblico Pagina 12 di 14

13 5.1 Realizzazione di task complessi La comunicazione peer-to-peer abilita lo sviluppo di applicazioni in cui sia richiesta la realizzazione di compiti lunghi e complessi, quali la contrattazione, il coordinamento tra numerosi agenti e il reperimento di informazioni distribuite. L utente di un applicazione sviluppata su JADE può fornire all agente i criteri secondo cui svolgere un determinato task e quindi delegarlo completamente o in parte. Molti ambiti applicativi possono trarre vantaggio da questa potenzialità, includendo i settori più disparati, come ad esempio: l approvvigionamento delle aziende (supply chain management), pronto intervento (per la gestione di un emergenza), trasporti (fleet management), aste, turismo (realizzazione di pacchetti personalizzati), solo per citarne alcuni. 5.2 Pro-attività Gli agenti di JADE sono in grado di comunicare con altri agenti, senza che questo comporti alcun intervento umano. Questa capacità, che viene generalmente identificata come proattività, rende JADE l ambiente naturale per lo sviluppo di applicazioni machine-to-machine (m2m). Gli esempi di applicazioni che si potrebbero portare al riguardo sono numerosissimi, includendo ad esempio l automazione industriale, il controllo del traffico e la gestione di reti di comunicazioni. 5.3 Efficienza delle applicazioni multi-party La applicazioni multi-party realizzate in architettura peer-to-peer sono intrinsecamente più efficienti di quelle realizzate in architettura client-server, in quanto i server possono rappresentare un collo di bottiglia e un punto critico per l erogazione del servizio: un crash del server o l attacco di un virus possono infatti bloccare anche per giorni un servizio. Inoltre JADE è particolarmente efficiente per quanto riguarda i tempi di comunicazione tra agenti. Inoltre il fatto che l intelligenza, l informazione e l iniziativa siano distribuite consente la realizzazione di processi in cui l ownership sia distribuita tra i peer, distribuendo in modo opportuno le azioni a cui ciascun agente è abilitato. Infine JADE consente di introdurre elementi di personalizzazione per cui il comportamento di ciascun agente può essere basato su un modello utente che risiede sul terminale e che può essere aggiornato dinamicamente sulla base delle indicazioni fornite dall utente o grazie alla capacità di apprendimento automatico degli agenti. Gli ambiti applicativi in cui possono essere utilizzati servizi multi-party sono molteplici, tra cui: giochi multiplayer persistenti, car pooling, taxi collettivo, knowledge management, coordinamento della forza lavoro e vari tipi di organizer (es. meeting organizer, per concordare data e luogo di una riunione, evening organizer per accordarsi con gli amici per le attività della serata). 5.4 Interoperabilità JADE è disponibile per tutte le versioni di JAVA, da J2EE a J2ME, abilitando il porting di applicazioni tra i vari ambienti e la comunicazione bidirezionale tra agenti che risiedono su reti di tipo diverso, siano essi fisse o mobili. Questo consente, ad esempio, all agente che risiede su un server di rete (inteso in questo contesto come uno dei peer ) di reperire informazioni su un cellulare. JADE non solo garantisce l interoperabilità tra reti e terminali eterogenei, ma anche tra piattaforme ad agenti diverse, purchè conformi allo standard FIPA. A questo proposito, TILAB ha partecipato a bake-off organizzati da FIPA in cui è stata verificata l interoperabilità con altri middleware. 5.5 Efficienza nello sviluppo delle applicazioni Il middleware è stato progettato in modo da semplificare tutti gli aspetti di comunicazione e trasporto messaggi, rendendo trasparenti allo sviluppatore i dettagli di più basso livello e RISERVATEZZA: Pubblico Pagina 13 di 14

14 consentendogli di concentrarsi solo sulla logica dell applicazione. Questo si riflette in una maggiore efficienza nello sviluppo delle applicazioni: Siemens ha stimato che l utilizzo di JADE riduce mediamente i tempi del 30% rispetto allo sviluppo in ambiente JAVA. 5.6 Riduzione dei costi La riduzione dei tempi di sviluppo delle applicazioni potrebbe determinare una riduzione dei costi delle applicazioni stesse. Il risparmio maggiore è però relativo all acquisto e manutenzione dei server: il loro utilizzo potrebbe essere infatti limitato a qualche funzione specifica (es. mediator e localizzazione), delegando i peer allo svolgimento di molte delle funzioni tradizionalmente assegnate a server potenti e costosi. In alcuni casi si può addirittura ipotizzare la realizzazione di servizi in architetture serverless. 6 Riferimenti [1] JADE Web Site, [2] FIPA Web Site, [3] M. Pezzini - Do MOM, ORBs and Data Access Middleware Suit Mobile? Gartner Research Note Number: T , 20 September 2001 [4] BlueJADE, [5] Licenza LGPL, [6] LEAP Web Site, RISERVATEZZA: Pubblico Pagina 14 di 14

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

Dettagli

Parte II: Reti di calcolatori Lezione 9

Parte II: Reti di calcolatori Lezione 9 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 9 Martedì 1-04-2014 1 Applicazioni P2P

Dettagli

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1 Introduzione Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio Livello applicativo Principi delle applicazioni di rete 2-1 Pila di protocolli Internet Software applicazione: di

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Modelli e Sistemi di Elaborazione Peer-to-Peer

Modelli e Sistemi di Elaborazione Peer-to-Peer Università degli Studi della Calabria Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Matematica Modelli e Sistemi di Elaborazione Peer-to-Peer Concetti di base sul Peer-to-Peer: -

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

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

Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB

Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB Brochure prodotto Infrastrutture di ricarica per veicoli elettrici Servizi di connessione ABB Servizi di connessione Prodotti a supporto del business Per sfruttare al meglio una rete di ricarica per veicoli

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

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

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

USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000

USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000 VERITAS StorageCentral 1 USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000 1. Panoramica di StorageCentral...3 2. StorageCentral riduce il costo totale di proprietà per lo storage di Windows...3 3. Panoramica

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Introduzione alla famiglia di soluzioni Windows Small Business Server

Introduzione alla famiglia di soluzioni Windows Small Business Server Introduzione alla famiglia di soluzioni Windows Small Business Server La nuova generazione di soluzioni per le piccole imprese Vantaggi per le piccole imprese Progettato per le piccole imprese e commercializzato

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA Obiettivo Richiamare quello che non si può non sapere Fare alcune precisazioni terminologiche IL COMPUTER La struttura, i componenti

Dettagli

Cluster per architetture a componenti

Cluster per architetture a componenti Luca Cabibbo Architetture Software Cluster per architetture a componenti Dispensa ASW 442 ottobre 2014 Un buon progetto produce benefici in più aree. Trudy Benjamin 1 -Fonti [IBM] Clustering Solutions

Dettagli

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

Dettagli

Una architettura peer-topeer per la visualizzazione 3D distribuita

Una architettura peer-topeer per la visualizzazione 3D distribuita Una architettura peer-topeer per la visualizzazione 3D distribuita Claudio Zunino claudio.zunino@polito.it Andrea Sanna andrea.sanna@polito.it Dipartimento di Automatica e Informatica Politecnico di Torino

Dettagli

Algoritmi per protocolli peer-to-peer

Algoritmi per protocolli peer-to-peer Algoritmi per protocolli peer-to-peer Introduzione Livio Torrero (livio.torrero@polito.it) 09/2009 Approccio client-server (1/2) Client 1 Client 3 Server Client 2 Client 4 Paradigma molto comune Un client

Dettagli

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati.

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati. LA RETE INFORMATICA NELL AZIENDA Capire i benefici di una rete informatica nella propria attività. I componenti di una rete I dispositivi utilizzati I servizi offerti LA RETE INFORMATICA NELL AZIENDA Copyright

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

Sistemi Informativi Distribuiti

Sistemi Informativi Distribuiti Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 SISTEMI INFORMATIVI MODULO II Sistemi Informativi Distribuiti 1 Sistemi informativi distribuiti

Dettagli

Protocolli di rete. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 02 Protocolli - 2/30

Protocolli di rete. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 02 Protocolli - 2/30 Protocolli di rete Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 02 Protocolli - 1/30 Strati di protocolli (Protocol Layers) Le reti sono complesse Molti elementi: host

Dettagli

Allegato 1 CIG 58703795FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO

Allegato 1 CIG 58703795FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO SOMMARIO 1 Oggetto della Fornitura... 3 2 Composizione della Fornitura... 3 2.1 Piattaforma

Dettagli

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13 FileMaker Pro 13 Utilizzo di una Connessione Desktop Remota con FileMaker Pro13 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Panoramica: che cosa è necessario

Panoramica: che cosa è necessario Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo

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

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 Livelli di rete e architettura Client-Server Lez 12 architettura client-server 1 Scorsa lezione: comunicazione Gli utenti chiedono comunicazione

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

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

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE

Dettagli

CdL MAGISTRALE in INFORMATICA A.A. 2014-15 corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo

CdL MAGISTRALE in INFORMATICA A.A. 2014-15 corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo CdL MAGISTRALE in INFORMATICA A.A. 2014-15 corso di Sistemi Distribuiti 8. Le architetture (prima parte) Prof. S.Pizzutilo I Sistemi Distribuiti Un Sistema Distribuito è un insieme di processori indipendenti

Dettagli

Ministero del Lavoro e delle Politiche Sociali

Ministero del Lavoro e delle Politiche Sociali Ministero del Lavoro e delle Politiche Sociali Prospetto Informativo on-line Standard tecnici del sistema informativo per l invio telematico del Prospetto Informativo Documento: UNIPI.StandardTecnici Revisione

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

ALLEGATO AL CONTRATTO DI FORNITURA DEL SERVIZIO LEGALMAIL

ALLEGATO AL CONTRATTO DI FORNITURA DEL SERVIZIO LEGALMAIL ALLEGATO AL CONTRATTO DI FORNITURA DEL SERVIZIO LEGALMAIL.1. Introduzione Legalmail è un servizio di posta elettronica che garantisce un elevato grado di affidabilità e sicurezza. Esso consente al Cliente

Dettagli

ACCESSNET -T IP NMS. Network Management System. www.hytera.de

ACCESSNET -T IP NMS. Network Management System. www.hytera.de ACCESSNET -T IP NMS Network System Con il sistema di gestione della rete (NMS) è possibile controllare e gestire l infrastruttura e diversi servizi di una rete ACCESSNET -T IP. NMS è un sistema distribuito

Dettagli

1 IL SISTEMA DI AUTOMAZIONE E TELECONTROLLO

1 IL SISTEMA DI AUTOMAZIONE E TELECONTROLLO 1 IL SISTEMA DI AUTOMAZIONE E TELECONTROLLO Quello che generalmente viene chiamato sistema di automazione d edificio si compone di diverse parti molto eterogenee tra loro che concorrono, su diversi livelli

Dettagli

Contesto: Peer to Peer

Contesto: Peer to Peer Contesto: Peer to Peer Un architettura di rete P2P è caratterizzata da: Connessioni dirette tra i suoi componenti. Tutti i nodi sono entità paritarie (peer). Risorse di calcolo, contenuti, applicazioni

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

QoS e Traffic Shaping. QoS e Traffic Shaping

QoS e Traffic Shaping. QoS e Traffic Shaping QoS e Traffic Shaping 1 Introduzione In questa mini-guida illustreremo come configurare il FRITZ!Box per sfruttare al massimo la banda di Internet, privilegiando tutte quelle applicazioni (o quei dispositivi)

Dettagli

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Il File System È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Le operazioni supportate da un file system sono: eliminazione di dati modifica

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology Virtualization Strutturare per semplificare la gestione Communication Technology Ottimizzare e consolidare Le organizzazioni tipicamente si sviluppano in maniera non strutturata e ciò può comportare la

Dettagli

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete Sistemi Operativi di Rete Estensione dei Sistemi Operativi standard con servizi per la gestione di risorse in rete locale Risorse gestite: uno o più server di rete più stampanti di rete una o più reti

Dettagli

SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows

SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows i SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows Per ulteriori informazioni sui prodotti software SPSS Inc., visitare il sito Web all indirizzo http://www.spss.it o contattare: SPSS

Dettagli

Progetto interregionale ICAR Interoperabilità e Cooperazione Applicativa tra le Regioni.

Progetto interregionale ICAR Interoperabilità e Cooperazione Applicativa tra le Regioni. <Task AP3> Progetto interregionale ICAR Interoperabilità e Cooperazione Applicativa tra le Regioni AP3-Documento Descrittivo degli Accordi di Servizio Versione AP3-specificaADSv1.2.1.doc Pag. 1

Dettagli

Internet e protocollo TCP/IP

Internet e protocollo TCP/IP Internet e protocollo TCP/IP Internet Nata dalla fusione di reti di agenzie governative americane (ARPANET) e reti di università E una rete di reti, di scala planetaria, pubblica, a commutazione di pacchetto

Dettagli

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Mattia Gentilini Relatore: Renzo Davoli Laurea Specialistica in Informatica I Sessione A.A. 2005/2006

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Symantec Network Access Control Starter Edition

Symantec Network Access Control Starter Edition Symantec Network Access Control Starter Edition Conformità degli endpoint semplificata Panoramica Con è facile iniziare a implementare una soluzione di controllo dell accesso alla rete. Questa edizione

Dettagli

LBINT. http://www.liveboxcloud.com

LBINT. http://www.liveboxcloud.com 2014 LBINT http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di commerciabilità

Dettagli

Virtualizzazione e Macchine Virtuali

Virtualizzazione e Macchine Virtuali Virtualizzazione e Macchine Virtuali Gabriele D Angelo, Ludovico Gardenghi {gda, garden}@cs.unibo.it http://www.cs.unibo.it/~gdangelo/ http://www.cs.unibo.it/~gardengl/ Università di Bologna Corso di Laurea

Dettagli

Manuale d uso. Applicazione client Postecert Firma Digitale per Postemailbox

Manuale d uso. Applicazione client Postecert Firma Digitale per Postemailbox per Postemailbox Documento pubblico Pagina 1 di 22 Indice INTRODUZIONE... 3 REQUISITI... 3 SOFTWARE... 3 HARDWARE... 3 INSTALLAZIONE... 3 AGGIORNAMENTI... 4 AVVIO DELL APPLICAZIONE... 4 UTILIZZO DELL APPLICAZIONE...

Dettagli

Analisi dei Requisiti

Analisi dei Requisiti Analisi dei Requisiti Pagina 1 di 16 Analisi dei Requisiti Indice 1 - INTRODUZIONE... 4 1.1 - OBIETTIVO DEL DOCUMENTO...4 1.2 - STRUTTURA DEL DOCUMENTO...4 1.3 - RIFERIMENTI...4 1.4 - STORIA DEL DOCUMENTO...4

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

Introduzione. Laurea magistrale in ingegneria informatica A.A. 2011-2012. Leonardo Querzoni. Versioni al tratto. Versione 3D

Introduzione. Laurea magistrale in ingegneria informatica A.A. 2011-2012. Leonardo Querzoni. Versioni al tratto. Versione 3D Introduzione Versioni al tratto Versione 3D Sistemi La versione negativa Distribuiti 3D prevede l utilizzo dell ombra esclusivamente sul fondo colore Rosso Sapienza. Laurea magistrale in ingegneria informatica

Dettagli

Conoscere Dittaweb per:

Conoscere Dittaweb per: IL GESTIONALE DI OGGI E DEL FUTURO Conoscere Dittaweb per: migliorare la gestione della tua azienda ottimizzare le risorse risparmiare denaro vivere meglio il proprio tempo IL MERCATO TRA OGGI E DOMANI

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Desktop Sharing 7 3.1 Gestione degli inviti di Desktop Sharing.........................

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI.

MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI. MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI. MOTOROLA RHOELEMENTS BROCHURE COSÌ TANTI DISPOSITIVI MOBILE. VOLETE SVILUPPARE UNA

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Rete Internet Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Che cos è Internet? Il punto

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Allegato 2: Prospetto informativo generale

Allegato 2: Prospetto informativo generale Gara a procedura ristretta accelerata per l affidamento, mediante l utilizzo dell Accordo Quadro di cui all art. 59 del D.Lgs. n. 163/2006, di Servizi di Supporto in ambito ICT a InnovaPuglia S.p.A. Allegato

Dettagli

Addition, tutto in un unica soluzione

Addition, tutto in un unica soluzione Addition, tutto in un unica soluzione Addition è un applicativo Web progettato e costruito per adattarsi alle esigenze delle imprese. Non prevede un organizzazione in moduli, mette a disposizione delle

Dettagli

Corso Web programming

Corso Web programming Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1 Introduzione Un particolare ambito della programmazione

Dettagli

Partner nell Organizzazione della Tua Azienda

Partner nell Organizzazione della Tua Azienda Partner nell Organizzazione della Tua Azienda la potenza della rete, la competenza Spider 4 Web: molto più di un software web-based, un vero e proprio partner nell organizzazione aziendale, che segue il

Dettagli

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS Il modello SaaS Architettura 3D Cloud Il protocollo DCV Benefici Il portale Web EnginFrame EnginFrame

Dettagli

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri.

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri. Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri. Roma, 25 ottobre 2010 Ing. Antonio Salomè Ing. Luca Lezzerini

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

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

Teleassistenza mediante PCHelpware

Teleassistenza mediante PCHelpware Teleassistenza mediante PCHelpware Specifiche tecniche Autore: G.Rondelli Versione: 1.3 Data: 26/8/2008 File: H:\Softech\Tools\PCH\doc\Teleassistenza PCHelpware - Specifiche tecniche 1.3.doc Modifiche

Dettagli

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

Dettagli

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

FTP. Appunti a cura del prof. ing. Mario Catalano

FTP. Appunti a cura del prof. ing. Mario Catalano FTP Appunti a cura del prof. ing. Mario Catalano Il protocollo FTP 1/2 Attraverso il protocollo FTP (File Transfer Protocol) è possibile trasferire uno o più files di qualsiasi tipo tra due macchine Tale

Dettagli

Web Service Architecture

Web Service Architecture Giuseppe Della Penna Università degli Studi di L Aquila dellapenna@di.univaq.it http://dellapenna.univaq.it Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica

Dettagli

CdL MAGISTRALE in INFORMATICA

CdL MAGISTRALE in INFORMATICA 05/11/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI 7. I processi : il naming Prof. S.Pizzutilo Il naming dei processi Nome = stringa di bit o di caratteri utilizzata per

Dettagli

Installazione SQL Server 2005 Express Edition

Installazione SQL Server 2005 Express Edition Supporto On Line Allegato FAQ FAQ n.ro MAN-6S4ALG7637 Data ultima modifica 25/08/2010 Prodotto Tutti Modulo Tutti Oggetto Installazione SQL Server 2005 Express Edition In giallo sono evidenziate le modifiche/integrazioni

Dettagli

Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Architettura. Carmine Spagnuolo

Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Architettura. Carmine Spagnuolo Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Architettura Carmine Spagnuolo 1 Simulazione Multi-Agente Una simulazione multi-agente è un sistema in cui entità (agenti) intelligenti

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

FileMaker 8. Installazione dei driver client FileMaker 8 ODBC e JDBC

FileMaker 8. Installazione dei driver client FileMaker 8 ODBC e JDBC FileMaker 8 Installazione dei driver client FileMaker 8 ODBC e JDBC 2004-2005 Filemaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker

Dettagli

Architetture dei WIS. Definizione di WIS. Benefici dei WIS. Prof.ssa E. Gentile a.a. 2011-2012

Architetture dei WIS. Definizione di WIS. Benefici dei WIS. Prof.ssa E. Gentile a.a. 2011-2012 Architetture dei WIS Prof.ssa E. Gentile a.a. 2011-2012 Definizione di WIS Un WIS può essere definito come un insieme di applicazioni in grado di reperire, cooperare e fornire informazioni utilizzando

Dettagli

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Corso di Applicazioni Telematiche Lezione n.1 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Obiettivi del corso Supporti didattici Modalità d esame Panoramica

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

Introduzione a Internet e al World Wide Web

Introduzione a Internet e al World Wide Web Introduzione a Internet e al World Wide Web Una rete è costituita da due o più computer, o altri dispositivi, collegati tra loro per comunicare l uno con l altro. La più grande rete esistente al mondo,

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli