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

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

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

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

INTRODUZIONE A RETI E PROTOCOLLI

INTRODUZIONE A RETI E PROTOCOLLI PARTE 1 INTRODUZIONE A RETI E PROTOCOLLI Parte 1 Modulo 1: Introduzione alle reti Perché le reti tra computer? Collegamenti remoti a mainframe (< anni 70) Informatica distribuita vs informatica monolitica

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

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

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

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

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

Dettagli

Il Cloud Computing: uno strumento per migliorare il business

Il Cloud Computing: uno strumento per migliorare il business Il Cloud Computing: uno strumento per migliorare il business Luca Zanetta Uniontrasporti I venti dell'innovazione - Imprese a banda larga Varese, 9 luglio 2014 1 / 22 Sommario Cos è il cloud computing

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

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

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 UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

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

Sistemi Distribuiti. Informatica B. Informatica B

Sistemi Distribuiti. Informatica B. Informatica B Sistemi Distribuiti Introduzione Che cos è un sistema distribuito? Un sistema distribuito è una collezione di computer indipendenti che appare all utente come un solo sistema coerente Da notare: le macchine

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 Distribuiti. Il corso: informazioni utili AA 2006/2007. Riferimenti del docente: Ricevimento: Materiale Didattico:

Sistemi Distribuiti. Il corso: informazioni utili AA 2006/2007. Riferimenti del docente: Ricevimento: Materiale Didattico: Sistemi Distribuiti Corso di Laurea Specialistica in Telecomunicazioni AA 2006/2007 Slides del corso Sara Tucci Piergiovanni Il corso: informazioni utili Riferimenti del docente: - sito web: www.dis.uniroma1.it/

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

Architettura Tecnica i. Architettura Tecnica

Architettura Tecnica i. Architettura Tecnica i Architettura Tecnica ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Scopo del documento 1 1.1 Abbreviazioni..................................................... 1 2 Overview 1 2.1 La PdD........................................................

Dettagli

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

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

CeBAS. Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009)

CeBAS. Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009) CeBAS Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009) Introduzione Il progetto CEBAS: la finalità è di migliorare l efficienza operativa interna dell Ente rispondere alle aspettative

Dettagli

Video Comunicazione su Rete Internet

Video Comunicazione su Rete Internet Video Comunicazione su Rete Internet 1 Introduzione alla comunicazione video su rete Internet. La rapida evoluzione dell Information Technology negli ultimi anni ha contribuito in maniera preponderante

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

Sistemi Distribuiti Introduzione al corso

Sistemi Distribuiti Introduzione al corso Altri testi di consultazione Sistemi Distribuiti Introduzione al corso Testo di riferimento G.Coulouris, J.Dollimore and T.Kindberg Distributed Systems: Concepts and Design IV Ed., Addison-Wesley 2005

Dettagli

Registro SPICCA Architettura del Software

Registro SPICCA Architettura del Software Registro SPICCA Architettura del Software Versione 1.0 del 25/08/2009 Sommario 1 Introduzione... 4 1.1 Scopo... 4 1.2 Obiettivo... 4 1.3 Riferimenti... 4 1.4 Panoramica del documento... 4 2 Rappresentazione

Dettagli

Applicazione: Piattaforma di Comunicazione Unificata

Applicazione: Piattaforma di Comunicazione Unificata Riusabilità del software - Catalogo delle applicazioni: Amministrativi/Contabile Applicazione: Piattaforma di Comunicazione Unificata Amministrazione: Regione Piemonte - Direzione Innovazione, Ricerca

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

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

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

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

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

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

Architetture dei Sistemi Distribuiti

Architetture dei Sistemi Distribuiti Università degli tudi di Roma Tor Vergata Facoltà di Ingegneria Architetture dei istemi Distribuiti Corso di istemi Distribuiti Valeria Cardellini Anno accademico 2008/09 Architettura sw di sistemi distribuito

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

componenti, dei servizi e delle tecnologie di comunicazione che costituiscono l architettura di un sistema Web, fornendo le motivazioni principali

componenti, dei servizi e delle tecnologie di comunicazione che costituiscono l architettura di un sistema Web, fornendo le motivazioni principali 1 Premessa I sistemi informativi basati su Web sono usati per gestire grandi quantità di informazioni su Internet e per gestire la collaborazione tra siti distribuiti che cooperano agli stessi scopi aziendali.

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

Parte II: Reti di calcolatori Lezione 11

Parte II: Reti di calcolatori Lezione 11 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 11 Martedì 14-04-2015 1 Esempio di uso di proxy Consideriamo

Dettagli

Un Sistema Operativo di Rete nasconde all utente finale la struttura del calcolatore locale e la struttura della rete stessa

Un Sistema Operativo di Rete nasconde all utente finale la struttura del calcolatore locale e la struttura della rete stessa LE RETI INFORMATICHE Un calcolatore singolo, isolato dagli altri anche se multiutente può avere accesso ed utilizzare solo le risorse locali interne al Computer o ad esso direttamente collegate ed elaborare

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

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

Programmazione Client-Server

Programmazione Client-Server Programmazione Client-Server Davide Taibi davide.taibi@uninsubria.it The Java Platform Java Technology Enabled Devices Java Technology Enabled Desktop Workgroup Server High-End Server The Java Platform

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

8. Sistemi Distribuiti e Middleware

8. Sistemi Distribuiti e Middleware 8. Sistemi Distribuiti e Middleware Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 8. Sistemi distribuiti e Middleware 1 / 32 Sommario 1 Sistemi distribuiti

Dettagli

Il Provvedimento del Garante

Il Provvedimento del Garante Il Provvedimento del Garante Il provvedimento del Garante per la Protezione dei dati personali relativo agli Amministratori di Sistema (AdS) Misure e accorgimenti prescritti ai titolari dei trattamenti

Dettagli

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO Standard tecnici Gli standard tecnici di riferimento adottati sono conformi alle specifiche e alle raccomandazioni emanate dai principali

Dettagli

Enterprise @pplication Integration Software S.r.l.

Enterprise @pplication Integration Software S.r.l. SAP rel.1.0 : SAP State: Final Date: 03-27-200 Enterprise @pplication Integration Software S.r.l. Sede legale: Via Cola di Rienzo 212-00192 Rome - Italy Tel. +39.06.6864226 Sede operativa: viale Regina

Dettagli

Alcatel-Lucent Office Communication Soluzioni per le piccole e medie imprese. Comunicazione semplificata per aziende in movimento

Alcatel-Lucent Office Communication Soluzioni per le piccole e medie imprese. Comunicazione semplificata per aziende in movimento Alcatel-Lucent Office Communication Soluzioni per le piccole e medie imprese Comunicazione semplificata per aziende in movimento Il successo di una piccola o media impresa (PMI) dipende sostanzialmente

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

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 White paper Novembre 2007 Per informazioni aggiornate, visitare l indirizzo www.microsoft.com/italy/vstudio È possibile che a questo

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

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica. Sistemi e tecnologie per la multimedialità e telematica Fabio Burroni Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena burronif@unisi unisi.itit La Sicurezza delle Reti La presentazione

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

JSIS JSIS L architettura JSIS

JSIS JSIS L architettura JSIS JSIS JSIS L architettura JSIS La piattaforma JSIS Java Solution Integrated Suites, interamente realizzata dai nostri laboratori di sviluppo software, è una soluzione che integra la gestione di diverse

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET 18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso ai database

Dettagli

Enterprise Social Network. Creare community aziendali

Enterprise Social Network. Creare community aziendali Enterprise Social Network Creare community aziendali COLLABORATION 2.0 CHE COSA È NU+ è la soluzione Yooplus di collaboration finalizzata a creare le condizioni per sviluppare una elevata capacità di team

Dettagli

Framework Rich Client Application

Framework Rich Client Application Framework Rich Client Application RELATORE: Paolo Giardiello Savona, 30 settembre 2010 Agenda La Sogei Le applicazioni client Sogei Le caratteristiche Le soluzioni possibili Java Web Start Eclipse La scelta:

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

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4 Obiettivi Principali di un S.D. - 7 Tipi di Sistemi

Dettagli

FileMaker 12. Guida ODBC e JDBC

FileMaker 12. Guida ODBC e JDBC FileMaker 12 Guida ODBC e JDBC 2004 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker, Inc.

Dettagli

VoipNet. La soluzione per la comunicazione aziendale

VoipNet. La soluzione per la comunicazione aziendale VoipNet La soluzione per la comunicazione aziendale grave crisi economica fase recessiva mercati instabili terremoto finanziario difficoltà di crescita per le aziende Il mercato La nuova sfida per le aziende:

Dettagli

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

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

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

Dettagli

Sistemi Di Elaborazione Dell informazione

Sistemi Di Elaborazione Dell informazione Sistemi Di Elaborazione Dell informazione Dott. Antonio Calanducci Lezione III: Reti di calcolatori Corso di Laurea in Scienze della Comunicazione Anno accademico 2009/2010 Reti di calcolatori Una rete

Dettagli

Symantec Backup Exec.cloud

Symantec Backup Exec.cloud Protezione automatica, continua e sicura con il backup dei dati nel cloud o tramite un approccio ibrido che combina il backup on-premise e basato sul cloud. Data-sheet: Symantec.cloud Solo il 21% delle

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

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

Table of Contents. Definizione di Sistema Distribuito 15/03/2013

Table of Contents. Definizione di Sistema Distribuito 15/03/2013 Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4-7 - 13 Definizioni e Principali Caratteristiche

Dettagli

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA IBM System i5 La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA Massimo Marasco System i Technical Sales Support massimo_marasco@it.ibm.com Oriented Architecture (SOA) Servizio

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

Alcuni elementi di sicurezza sulle reti

Alcuni elementi di sicurezza sulle reti Alcuni elementi di sicurezza sulle reti La sicurezza è un aspetto centrale per le attuali reti dati. Come tutti sanno le minacce provenienti da Internet aumentano di continuo, e le possibilità di attacco

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Appendice D. D. Web Services

Appendice D. D. Web Services D. D.1 : cosa sono I cosiddetti sono diventati uno degli argomenti più attuali nel panorama dello sviluppo in ambiente Internet. Posti al centro delle più recenti strategie di aziende del calibro di IBM,

Dettagli

Internet: Tecnologia o community?

Internet: Tecnologia o community? e la banca 2004 Roma, 5 ottobre 2004 : o community? Massimiliano Magi Spinetti Responsabile Settore e Sicurezza ABI IL RUOLO DI INTERNET 2 settembre 1969 1973 1986 1990 Nasce Arpanet Nasce l e-mail arriva

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

giovedì 3 luglio 2003 ore 11.00

giovedì 3 luglio 2003 ore 11.00 Presentazioni dei progetti di master Unit e-service Technologies giovedì 3 luglio 2003 ore 11.00 CEFRIEL - Aula Bellisario Agenda ore 11.00: Maurizio Brioschi Presentazione Unit e-service Technologies

Dettagli

Architetture Software Milano

Architetture Software Milano Architetture Software Approccio tradizionale allo sviluppo I limiti del modello requisiti, progetto, implementazione Il concetto di architettura software Il concetto di stile architetturale I principali

Dettagli

LAN MAN WAN. Una internet è l'insieme di più reti reti distinte collegate tramite gateway/router

LAN MAN WAN. Una internet è l'insieme di più reti reti distinte collegate tramite gateway/router Rete di reti (interrete, internet) 2 Prof. Roberto De Prisco TEORIA - Lezione 8 Rete di reti e Internet Università degli studi di Salerno Laurea e Diploma in Informatica Una rete di comunicazione è un

Dettagli

Backup e ripristino per ambienti VMware con Avamar 6.0

Backup e ripristino per ambienti VMware con Avamar 6.0 White paper Backup e ripristino per ambienti VMware con Avamar 6.0 Analisi dettagliata Abstract Con l aumento incalzante degli ambienti virtuali implementati nel cloud delle aziende, è facile notare come

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

Corso di Sistemi di elaborazione delle informazioni

Corso di Sistemi di elaborazione delle informazioni Corso di Sistemi di elaborazione delle informazioni Biacco Sabrina ENTERPRISE RESOURCE PLANNING Gli ERP sono delle soluzioni applicative in grado di coordinare l'insieme delle attività aziendali automatizzando

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

Di seguito ci accingiamo ad analizzare le possibili configurazioni di architettura: Server singolo

Di seguito ci accingiamo ad analizzare le possibili configurazioni di architettura: Server singolo La progettazione dell architettura si concentra sulla scelta dell hardware, dell infrastruttura di rete, e dei componenti software che andranno a costituire il sistema. Gli obbiettivi tecnologici che il

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Soluzione di videosorveglianza Guida di installazione

Soluzione di videosorveglianza Guida di installazione Guida di installazione Introduzione Considerando che i video vengono registrati e archiviati per riferimento ormai da diverso tempo, non è più possibile considerare quella di sorveglianza una tecnologia

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

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 1: Le Architetture Distribuite Vittorio Scarano Algoritmi e Strutture Dati: Algoritmi Distribuiti Corso di Laurea in Informatica Università di Salerno Le architetture distribuite

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

Applicazioni delle reti. Dalla posta elettronica al telelavoro

Applicazioni delle reti. Dalla posta elettronica al telelavoro Applicazioni delle reti Dalla posta elettronica al telelavoro Servizi su Internet La presenza di una infrastruttura tecnologica che permette la comunicazione tra computer a distanze geografiche, ha fatto

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

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

Connettività e Comunicazione

Connettività e Comunicazione Griglie e Sistemi di Elaborazione Ubiqui Connettività e Comunicazione Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Connettività di Sistemi Ubiqui Protocolli Wireless WAP/WML i-mode Infrarossi Bluetooth

Dettagli