Come Programmare un Sistema Multiagente con JADE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Come Programmare un Sistema Multiagente con JADE"

Transcript

1 Nicola Gatti (JADE HOW-TO) p. 1/33 Come Programmare un Sistema Multiagente con JADE Una introduzione a JADE Nicola Gatti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE, POLITECNICO DI MILANO

2 Nicola Gatti (JADE HOW-TO) p. 2/33 Outline Introduzione: Cos è un sistema multiagente? Cos è JADE?

3 Nicola Gatti (JADE HOW-TO) p. 2/33 Outline Introduzione: Cos è un sistema multiagente? Cos è JADE? Uno sguardo su JADE

4 Nicola Gatti (JADE HOW-TO) p. 2/33 Outline Introduzione: Cos è un sistema multiagente? Cos è JADE? Uno sguardo su JADE Programmazione di un sistema multiagente Paradigma dell agente Paradigma di interazione Protocollo di comunicazione Protocollo di interazione

5 Cos è un sistema multiagente? Nicola Gatti (JADE HOW-TO) p. 3/33

6 Nicola Gatti (JADE HOW-TO) p. 4/33 Sistema multiagente (teoria) Collezione di entità chiamate agenti:

7 Nicola Gatti (JADE HOW-TO) p. 4/33 Sistema multiagente (teoria) Collezione di entità chiamate agenti: Autonomi

8 Nicola Gatti (JADE HOW-TO) p. 4/33 Sistema multiagente (teoria) Collezione di entità chiamate agenti: Autonomi Perseguono obiettivi

9 Nicola Gatti (JADE HOW-TO) p. 4/33 Sistema multiagente (teoria) Collezione di entità chiamate agenti: Autonomi Perseguono obiettivi Interagenti

10 Nicola Gatti (JADE HOW-TO) p. 4/33 Sistema multiagente (teoria) Collezione di entità chiamate agenti: Autonomi Perseguono obiettivi Interagenti Mobili

11 Nicola Gatti (JADE HOW-TO) p. 4/33 Sistema multiagente (teoria) Collezione di entità chiamate agenti: Autonomi Perseguono obiettivi Interagenti Mobili La collezione degli agenti può variare nel tempo

12 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza

13 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza Ragionamento Comportamenti

14 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza Ragionamento Comportamenti Multiagente :: Sistema software distribuito

15 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza Ragionamento Comportamenti Multiagente :: Sistema software distribuito Agenti su vari hosts

16 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza Ragionamento Comportamenti Multiagente :: Sistema software distribuito Agenti su vari hosts Agenti mobili

17 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza Ragionamento Comportamenti Multiagente :: Sistema software distribuito Agenti su vari hosts Agenti mobili Agenti interagenti

18 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza Ragionamento Comportamenti Multiagente :: Sistema software distribuito Agenti su vari hosts Agenti mobili Agenti interagenti Interazione in piccolo Chiamate a metodi remoti (RPC - Remote Procedure Calling) Scambio di messaggi (Message Dispatching)

19 Nicola Gatti (JADE HOW-TO) p. 5/33 Sistema multiagente (pratica) Agente :: Sistema software dotato di intelligenza Ragionamento Comportamenti Multiagente :: Sistema software distribuito Agenti su vari hosts Agenti mobili Agenti interagenti Interazione in piccolo Chiamate a metodi remoti (RPC - Remote Procedure Calling) Scambio di messaggi (Message Dispatching) Interazione in grande Protocollo di comunicazione Protocollo di interazione

20 Cos è JADE? Nicola Gatti (JADE HOW-TO) p. 6/33

21 Nicola Gatti (JADE HOW-TO) p. 7/33 JADE (1) Java Agent Development Environment (un ambiente di sviluppo Java per agenti)

22 Nicola Gatti (JADE HOW-TO) p. 7/33 JADE (1) Java Agent Development Environment (un ambiente di sviluppo Java per agenti) Middleware per sistemi multiagente Fornisce una infrastruttura software Lo sviluppatore deve sviluppare solo alcuni aspetti dell applicazione

23 Nicola Gatti (JADE HOW-TO) p. 7/33 JADE (1) Java Agent Development Environment (un ambiente di sviluppo Java per agenti) Middleware per sistemi multiagente Fornisce una infrastruttura software Lo sviluppatore deve sviluppare solo alcuni aspetti dell applicazione Cosa implementa autonomamente JADE:

24 Nicola Gatti (JADE HOW-TO) p. 7/33 JADE (1) Java Agent Development Environment (un ambiente di sviluppo Java per agenti) Middleware per sistemi multiagente Fornisce una infrastruttura software Lo sviluppatore deve sviluppare solo alcuni aspetti dell applicazione Cosa implementa autonomamente JADE: Gestione agente come unità remota Gestione di più hosts Mobilità tra hosts

25 Nicola Gatti (JADE HOW-TO) p. 7/33 JADE (1) Java Agent Development Environment (un ambiente di sviluppo Java per agenti) Middleware per sistemi multiagente Fornisce una infrastruttura software Lo sviluppatore deve sviluppare solo alcuni aspetti dell applicazione Cosa implementa autonomamente JADE: Gestione agente come unità remota Gestione di più hosts Mobilità tra hosts Dispatching di messaggi

26 Nicola Gatti (JADE HOW-TO) p. 7/33 JADE (1) Java Agent Development Environment (un ambiente di sviluppo Java per agenti) Middleware per sistemi multiagente Fornisce una infrastruttura software Lo sviluppatore deve sviluppare solo alcuni aspetti dell applicazione Cosa implementa autonomamente JADE: Gestione agente come unità remota Gestione di più hosts Mobilità tra hosts Dispatching di messaggi Libreria di comportamenti Libreria di protocolli di comunicazione Libreria di protocolli di interazione

27 Nicola Gatti (JADE HOW-TO) p. 8/33 JADE (2) Cosa non implementa autonomamente JADE:

28 Nicola Gatti (JADE HOW-TO) p. 8/33 JADE (2) Cosa non implementa autonomamente JADE: Motore inferenziale per l agente (JESS) Supporta ma non implementa le ontologie (RDF)

29 Nicola Gatti (JADE HOW-TO) p. 8/33 JADE (2) Cosa non implementa autonomamente JADE: Motore inferenziale per l agente (JESS) Supporta ma non implementa le ontologie (RDF) Scheduling real-time dei threads

30 Nicola Gatti (JADE HOW-TO) p. 8/33 JADE (2) Cosa non implementa autonomamente JADE: Motore inferenziale per l agente (JESS) Supporta ma non implementa le ontologie (RDF) Scheduling real-time dei threads Certezza di consegna del messaggio Dispatching real-time dei messaggi

31 Uno sguardo su JADE Nicola Gatti (JADE HOW-TO) p. 9/33

32 Nicola Gatti (JADE HOW-TO) p. 10/33 Due agenti su JADE java -classpath "./lib/ jade.jar :./lib/ jadetools.jar :./lib/ base64.jar :./lib/ iiop.jar :./" jade.boot -gui r1:nicola.robot1 r2:nicola.robot2

33 Nicola Gatti (JADE HOW-TO) p. 10/33 Due agenti su JADE java -classpath "./lib/ jade.jar :./lib/ jadetools.jar :./lib/ base64.jar :./lib/ iiop.jar :./" jade.boot -gui r1:nicola.robot1 r2:nicola.robot2 Librerie di JADE

34 Nicola Gatti (JADE HOW-TO) p. 10/33 Due agenti su JADE java -classpath "./lib/ jade.jar :./lib/ jadetools.jar :./lib/ base64.jar :./lib/ iiop.jar :./" jade.boot -gui r1:nicola.robot1 r2:nicola.robot2 Librerie di JADE Classe principale: jade.boot

35 Nicola Gatti (JADE HOW-TO) p. 10/33 Due agenti su JADE java -classpath "./lib/ jade.jar :./lib/ jadetools.jar :./lib/ base64.jar :./lib/ iiop.jar :./" jade.boot -gui r1:nicola.robot1 r2:nicola.robot2 Librerie di JADE Classe principale: jade.boot Interfaccia grafica -gui

36 Nicola Gatti (JADE HOW-TO) p. 10/33 Due agenti su JADE java -classpath "./lib/ jade.jar :./lib/ jadetools.jar :./lib/ base64.jar :./lib/ iiop.jar :./" jade.boot -gui r1:nicola.robot1 r2:nicola.robot2 Librerie di JADE Classe principale: jade.boot Interfaccia grafica -gui Agenti: r1 e r2

37 Nicola Gatti (JADE HOW-TO) p. 11/33 Componenti Principali RMA (Remote Management Agent) Interfaccia grafica DF (Directory Facilitator) Pagine gialle AMS (Agent Management System) Pagine bianche

38 Nicola Gatti (JADE HOW-TO) p. 11/33 Componenti Principali RMA (Remote Management Agent) Interfaccia grafica DF (Directory Facilitator) Pagine gialle AMS (Agent Management System) Pagine bianche SA (Sniffer Agent) Sniffer di messaggi IA (Introspector Agent) Monitoraggio delle attività dell agente

39 Nicola Gatti (JADE HOW-TO) p. 12/33 Infrastruttura di Rete (1) Host pricipale Main Container RMI Registry Directory Facilitator AMS Introspector Agent Sniffer Agent Agenti dello sviluppatore

40 Nicola Gatti (JADE HOW-TO) p. 12/33 Infrastruttura di Rete (1) Host pricipale Main Container RMI Registry Directory Facilitator AMS Introspector Agent Sniffer Agent Agenti dello sviluppatore Altri hosts Container Introspector Agent Sniffer Agent Agenti dello sviluppatore

41 Infrastruttura di Rete (2) Nicola Gatti (JADE HOW-TO) p. 13/33

42 Nicola Gatti (JADE HOW-TO) p. 14/33 Due Agenti su Più Hosts Host principale (ngatti.elet.polimi.it): java -classpath "./lib/jade.jar:./lib/jadetools.jar:./lib/base64.jar:./lib/iiop.jar:./" jade.boot -gui -host ngatti.elet.polimi.it r1:nicola.robot1

43 Nicola Gatti (JADE HOW-TO) p. 14/33 Due Agenti su Più Hosts Host principale (ngatti.elet.polimi.it): java -classpath "./lib/jade.jar:./lib/jadetools.jar:./lib/base64.jar:./lib/iiop.jar:./" jade.boot -gui -host ngatti.elet.polimi.it r1:nicola.robot1 Altro host (restelli.elet.polimi.it): java -classpath "./lib/jade.jar:./lib/jadetools.jar:./lib/base64.jar:./lib/iiop.jar:./" jade.boot -host ngatti.elet.polimi.it r2:nicola.robot2 -container

44 Paradigma dell agente Nicola Gatti (JADE HOW-TO) p. 15/33

45 Nicola Gatti (JADE HOW-TO) p. 16/33 La Classe dell Agente (1) Ogni agente estende AGENT.CLASS dal package JADE.CORE public class robot1 extends Agent {... }

46 Nicola Gatti (JADE HOW-TO) p. 16/33 La Classe dell Agente (1) Ogni agente estende AGENT.CLASS dal package JADE.CORE public class robot1 extends Agent {... } Un agente è un thread

47 Nicola Gatti (JADE HOW-TO) p. 16/33 La Classe dell Agente (1) Ogni agente estende AGENT.CLASS dal package JADE.CORE public class robot1 extends Agent {... } Un agente è un thread Registrazione automatica nell AMS

48 Nicola Gatti (JADE HOW-TO) p. 16/33 La Classe dell Agente (1) Ogni agente estende AGENT.CLASS dal package JADE.CORE public class robot1 extends Agent {... } Un agente è un thread Registrazione automatica nell AMS Metodo setup() inizializza l agente

49 Nicola Gatti (JADE HOW-TO) p. 17/33 La Classe dell Agente (2) Registrazione in DF (in setup()) protected void setup() { DFAgentDescription dfd = new DFAgentDescription(); dfd.setname(getaid()); ServiceDescription sd1 = new ServiceDescription(); sd1.settype("pickup"); sd1.setname("r1"); dfd.addservices(sd1);... try { DFService.register(this, dfd); } catch (FIPAException fe) { fe.printstacktrace(); }

50 Nicola Gatti (JADE HOW-TO) p. 18/33 La Classe dell Agente (3) dodelete: ammazza l agente dosuspend: sospende l agente dowait: mette in attesa l agente

51 Nicola Gatti (JADE HOW-TO) p. 19/33 Behaviours Le azioni degli agenti sono definite tramite comportamenti (behaviours) L agente ha una collezione di behaviours che vengono gestiti tramite round-robin dall agente: continua a ruotare il behaviour attivo sospendendo gli altri I behaviours non sono threads (ThreadedBehaviours, sono delle versioni threaderizzate dei behaviors)

52 Nicola Gatti (JADE HOW-TO) p. 19/33 Behaviours Le azioni degli agenti sono definite tramite comportamenti (behaviours) L agente ha una collezione di behaviours che vengono gestiti tramite round-robin dall agente: continua a ruotare il behaviour attivo sospendendo gli altri I behaviours non sono threads (ThreadedBehaviours, sono delle versioni threaderizzate dei behaviors) I behaviours sono implementati come classi che estondono BEHAVIOUR.CLASS Metodo action(): blocco di istruzioni Un agente non può essere sospeso all interno di un blocco action Variabile finished: indica lo stato del behaviour Metodo done(): ritorna lo stato del behaviour

53 Nicola Gatti (JADE HOW-TO) p. 20/33 Tipi di Behaviours Behaviour

54 Nicola Gatti (JADE HOW-TO) p. 20/33 Tipi di Behaviours Behaviour SimpleBehaviour OneShotBehaviour CyclicBehaviour

55 Nicola Gatti (JADE HOW-TO) p. 20/33 Tipi di Behaviours Behaviour SimpleBehaviour OneShotBehaviour CyclicBehaviour CompositeBehaviour FSMBehaviour ParallelBehaviour SequentialBehaviour

56 Nicola Gatti (JADE HOW-TO) p. 21/33 Creazione di un Behaviour Definizione di un behaviour class putdown extends CyclicBehaviour { public putdown(agent a) { super(a); } public void action() {... Aggiunta di un behaviour protected void setup() {... addbehaviour(new putdown(this));...

57 Protocollo di Comunicazione Nicola Gatti (JADE HOW-TO) p. 22/33

58 Nicola Gatti (JADE HOW-TO) p. 23/33 Invio di Messaggi (1) Messaggi FIPA ACL Costruzione del messaggio Atto performativo (INFORM, QUERY-REF, QUERY-IF, etc.) Mittente Ricevente Concenuto Linguaggio Ontologia

59 Nicola Gatti (JADE HOW-TO) p. 23/33 Invio di Messaggi (1) Messaggi FIPA ACL Costruzione del messaggio Atto performativo (INFORM, QUERY-REF, QUERY-IF, etc.) Mittente Ricevente Concenuto Linguaggio Ontologia (inform :sender agent1 :receiver agent2 :content (price good2 150) :language fipa-sl :ontology hpl-auction )

60 Nicola Gatti (JADE HOW-TO) p. 24/33 Invio di Messaggi (2) // lista di agenti AID r = agents[i]; // costruzione del messaggio ACLMessage msg = new ACLMessage(ACLMessage.REQUEST); msg.setsender(getaid()); msg.addreceiver(r); msg.setcontent("putdown BlockB"); // invio del messaggio send(msg);

61 Nicola Gatti (JADE HOW-TO) p. 25/33 Ricezione di Messaggi (1) Ogni agente ha una coda di messaggi

62 Nicola Gatti (JADE HOW-TO) p. 25/33 Ricezione di Messaggi (1) Ogni agente ha una coda di messaggi Generazione di un template di messaggio Atto performativo Mittente ID del messaggio etc.

63 Nicola Gatti (JADE HOW-TO) p. 25/33 Ricezione di Messaggi (1) Ogni agente ha una coda di messaggi Generazione di un template di messaggio Atto performativo Mittente ID del messaggio etc. Comando receive Estrae il primo messaggio dalla coda che corrisponde al template generato

64 Nicola Gatti (JADE HOW-TO) p. 25/33 Ricezione di Messaggi (1) Ogni agente ha una coda di messaggi Generazione di un template di messaggio Atto performativo Mittente ID del messaggio etc. Comando receive Estrae il primo messaggio dalla coda che corrisponde al template generato MessageTemplate m1 = MessageTemplate.MatchPerformative(ACLMessage.INFORM); ACLMessage received = receive(m1);

65 Nicola Gatti (JADE HOW-TO) p. 26/33 Ricezione di Messaggi (2) Problemi L unico modo per accedere alla coda è tramite il receive Una volta che un messaggio è stato estratto viene scartato Se più di un behaviour fa il receive di un certo template, un solo behaviour lo riceve Se nella coda di un agente arriva un messaggio a cui non è interessato, il messaggio rimane nella coda

66 Nicola Gatti (JADE HOW-TO) p. 26/33 Ricezione di Messaggi (2) Problemi L unico modo per accedere alla coda è tramite il receive Una volta che un messaggio è stato estratto viene scartato Se più di un behaviour fa il receive di un certo template, un solo behaviour lo riceve Se nella coda di un agente arriva un messaggio a cui non è interessato, il messaggio rimane nella coda Alcuni problemi vengono risulti tramite l utilizzo dei protocolli di interazione

67 Protocollo di Interazione Nicola Gatti (JADE HOW-TO) p. 27/33

68 Nicola Gatti (JADE HOW-TO) p. 28/33 FIPA Interaction Protocols Protocolli prestabiliti dalla FIPA Query Contract Net Etc.

69 Nicola Gatti (JADE HOW-TO) p. 28/33 FIPA Interaction Protocols Protocolli prestabiliti dalla FIPA Query Contract Net Etc. I protocolli stabiliscono: Ruolo degli agenti Initiator Participant Il tipo di messaggi da scambiare e la fase del protocollo in cui scambiarli

70 Nicola Gatti (JADE HOW-TO) p. 28/33 FIPA Interaction Protocols Protocolli prestabiliti dalla FIPA Query Contract Net Etc. I protocolli stabiliscono: Ruolo degli agenti Initiator Participant Il tipo di messaggi da scambiare e la fase del protocollo in cui scambiarli I protocolli non stabiliscono: La logica con cui attivare il protocollo La logica con cui rispondere ai messaggi

71 Esempi (Sequence Diagrams) Nicola Gatti (JADE HOW-TO) p. 29/33

72 Esempi (Sequence Diagrams) Nicola Gatti (JADE HOW-TO) p. 29/33

73 Nicola Gatti (JADE HOW-TO) p. 30/33 Protocolli in JADE Sono particolari behaviour JADE predispone la struttura di alcuni protocolli extends ContractNetInitiator

74 Nicola Gatti (JADE HOW-TO) p. 30/33 Protocolli in JADE Sono particolari behaviour JADE predispone la struttura di alcuni protocolli extends ContractNetInitiator E necessario operare l overriding di alcuni metodi protected void handlepropose(aclmessage propose, Vector acceptances); protected void handlerefuse(aclmessage refuse); protected void handlenotunderstood(aclmessage notunderstood); protected void handleinform(aclmessage inform); protected void handlefailure(aclmessage failure); protected void handleoutofsequence(aclmessage msg);

75 Nicola Gatti (JADE HOW-TO) p. 30/33 Protocolli in JADE Sono particolari behaviour JADE predispone la struttura di alcuni protocolli extends ContractNetInitiator E necessario operare l overriding di alcuni metodi protected void handlepropose(aclmessage propose, Vector acceptances); protected void handlerefuse(aclmessage refuse); protected void handlenotunderstood(aclmessage notunderstood); protected void handleinform(aclmessage inform); protected void handlefailure(aclmessage failure); protected void handleoutofsequence(aclmessage msg); Il protocollo deve essere aggiunto come un comune behaviour

76 Nicola Gatti (JADE HOW-TO) p. 31/33 Considerazioni sui Protocolli L Initiator è one-shot Il Participant può essere ciclico (macchina a stati finiti)

77 Nicola Gatti (JADE HOW-TO) p. 31/33 Considerazioni sui Protocolli L Initiator è one-shot Il Participant può essere ciclico (macchina a stati finiti) Più protocolli simili possono essere attivi Ogni protocollo ha un ID

78 Nicola Gatti (JADE HOW-TO) p. 31/33 Considerazioni sui Protocolli L Initiator è one-shot Il Participant può essere ciclico (macchina a stati finiti) Più protocolli simili possono essere attivi Ogni protocollo ha un ID L utilizzo dei protocolli rende efficace e sicura l interazione tra agenti concorrenti

79 Considerazioni su JADE Nicola Gatti (JADE HOW-TO) p. 32/33

80 Nicola Gatti (JADE HOW-TO) p. 33/33 Considerazioni Punti a favore JADE è la piattaorma per sistemi multiagente più supportata e sviluppata correntemente JADE è abbastanza stabile La corrente linea di sviluppo è diretta a un maggiore supporto per l intelligenza dell agente

81 Nicola Gatti (JADE HOW-TO) p. 33/33 Considerazioni Punti a favore JADE è la piattaorma per sistemi multiagente più supportata e sviluppata correntemente JADE è abbastanza stabile La corrente linea di sviluppo è diretta a un maggiore supporto per l intelligenza dell agente Punti a sfavore Non tutti i protocolli FIPA sono correntemente implementanti (ad esempio Iterated Contract Net) Non dà certezza di recapito del messaggio In applicazioni data-intensive JADE non è completamente affidabile Non ha alcun supporto di real-time

Introduzione a JADE. Francesco Di Giunta

Introduzione a JADE. Francesco Di Giunta Introduzione a JADE Francesco Di Giunta SOMMARIO Introduzione Architettura generale di un sistema multiagente (MAS) in JADE Architettura e implementazione di un agente JADE Comunicazione e interazione

Dettagli

Java Agent DEvelopment Framework. Jade è una piattaforma per la realizzazione di sistemi distribuiti multi-agente

Java Agent DEvelopment Framework. Jade è una piattaforma per la realizzazione di sistemi distribuiti multi-agente JADE Java Agent DEvelopment Framework Cos è JADE Jade è una piattaforma per la realizzazione di sistemi distribuiti multi-agente E interamente realizzato in Java da Telecom Italia Lab. Può essere scaricato

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

Processi, Threads e Agenti

Processi, Threads e Agenti Processi, Threads e Agenti Processi in Sistemi Distribuiti Un sistema software distribuito ècompostodaun insieme di processi in esecuzione su più nodi del sistema. Un algoritmo distribuito può essere definito

Dettagli

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class

Dettagli

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio LPR 2005/2006 Lezione 7 paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio PARADIGMA DI INTERAZIONE A DOMANDA/RISPOSTA Paradigma di interazione

Dettagli

Eccezioni e Thread (cenni)

Eccezioni e Thread (cenni) Eccezioni e Thread (cenni) Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 13 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 7 Maggio 2007 Outline Java e C# 1 Java

Dettagli

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

TECN.PROG.SIST.INF. I Socket Roberta Gerboni 2015 - Roberta Gerboni Socket e porte I sistemi operativi multitasking possono fare girare contemporaneamente più processi dove ogni processo può rendere disponibili anche più servizi. Questi devono essere

Dettagli

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Programmazione a Oggetti Lezione 11. Eccezioni e Packages Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli

Processi, Threads e Agenti

Processi, Threads e Agenti Processi, Threads e Agenti Processi in Sistemi Distribuiti Un sistema software distribuito è composto da un insieme di processi in esecuzione su più nodi del sistema. Un algoritmo distribuito può essere

Dettagli

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi 1 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria

Dettagli

STUDIO ED IMPLEMENTAZIONE DI UN SISTEMA DI INTERFACCIAMENTO PLUG & PLAY DI DISPOSITIVI AD UNA RETE DI SENSORI

STUDIO ED IMPLEMENTAZIONE DI UN SISTEMA DI INTERFACCIAMENTO PLUG & PLAY DI DISPOSITIVI AD UNA RETE DI SENSORI STUDIO ED IMPLEMENTAZIONE DI UN SISTEMA DI INTERFACCIAMENTO PLUG & PLAY DI DISPOSITIVI AD UNA RETE DI SENSORI Valerio PONTE matr. 700017 Relatore: Prof. Fabio A. Schreiber Correlatore: Ing. Romolo Camplani

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da

Dettagli

Esercizio Sincronizzazione Thread

Esercizio Sincronizzazione Thread Esercitazione di oratorio 17/10/2007 Esercizio Il laboratorio di Informatica del Polo Marzotto e utilizzato da tre tipi di utenti, studenti, tesisti e professori ed ogni utente deve fare una richiesta

Dettagli

24 - Possibili approfondimenti

24 - Possibili approfondimenti 24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Architetture client-server 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso

Dettagli

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 00-PRIME PAGINE 2-07-2003 10:04 Pagina V Indice Prefazione XI PARTE PRIMA INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 1 Capitolo 1 Le ragioni di tanto interesse 3 1.1 Enterprise in J2EE 3 Definizione

Dettagli

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi 1 JSP (Java Server Pages) È la tecnologia Java per lo sviluppo di applicazioni

Dettagli

Introduzione Sistemi ad agenti 1

Introduzione Sistemi ad agenti 1 Introduzione Sistemi ad agenti 1 1 Introduzione 6 1.1 Sistemi ad agenti 6 1.2 Problemi di sicurezza 7 2 FIPA 9 2.1 Modello di riferimento 9 2.1.1 Agent 10 2.1.2 Directory Facilitator (DF) 12 2.1.3 Agent

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019

Dettagli

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

Dettagli

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso

Dettagli

Esercitazione 3 Programmazione Concorrente nel linguaggio go. 13 Novembre 2017

Esercitazione 3 Programmazione Concorrente nel linguaggio go. 13 Novembre 2017 Esercitazione 3 Programmazione Concorrente nel linguaggio go 13 Novembre 2017 1 Concorrenza in go 2 creazione goroutine Sintassi : Esempio go func IsReady(what string, minutes int64)

Dettagli

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE Disciplina: Tecnologie e Progettazione di Sistemi Informatici e di Telecomunicazione Cognome e Nome:

Dettagli

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto

Dettagli

Architetture Applicative Altri Esempi

Architetture Applicative Altri Esempi Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni

Dettagli

Domain Specific Language per l Ingegneria dei Sistemi Distribuiti

Domain Specific Language per l Ingegneria dei Sistemi Distribuiti Artificial Intelligence Laboratory Domain Specific Language per l Ingegneria dei Sistemi Distribuiti Prof. Federico Bergenti federico.bergenti@unipr.it Domain-Specific Language I Domain Specific Language

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni

Dettagli

Java Remote Method Invocation

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

Dettagli

Agent#: un linguaggio di programmazione per lo sviluppo di agenti su piattaforma.net

Agent#: un linguaggio di programmazione per lo sviluppo di agenti su piattaforma.net Agent#: un linguaggio di agenti su piattaforma.net A. Boccalatte, C. Vecchiola, M. Coccoli (speaker: Alberto Grosso) l.i.d.o. - DIST- Università di Genova Sommario Tecnologia ad Agenti Un linguaggio orientato

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A DOMANDA1 Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { protected int value; public static boolean flag = false; public General() { value = 1; public

Dettagli

Linguaggi Object Oriented: Principi e Introduzione a Java

Linguaggi Object Oriented: Principi e Introduzione a Java Linguaggi Object Oriented: Principi e Introduzione a Java Sommario: 13 Aprile, 2015 Linguaggi OO: Rilevanza e Note Storiche Principi dei Linguaggi OO. Struttura dei programmi: Classi e Oggetti in Java

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 29 Giugno 2012 Versione I Esercizio 1 ( punti) 1 class Mammal { 2 S t r i n g name = f u r r y ; 3 S t r i n g makenoise ( ) { return g e n e

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Programmazione in Java (3) Le eccezioni Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di R o m a Anno

Dettagli

Progettazione e Realizzazione di una Library per Agenti Context-Aware

Progettazione e Realizzazione di una Library per Agenti Context-Aware UNIVERSITÀ DEGLI STUDI DI PARMA Dipartimento di Matematica e Informatica Corso di Laurea in Informatica Progettazione e Realizzazione di una Library per Agenti Context-Aware Design and Implementation of

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

Corso di Reti di Calcolatori LA

Corso di Reti di Calcolatori LA Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LA RMI: callback Silvia Vecchi Anno accademico 2003/2004 RMI: Callback 1 Callback (1) Molte applicazioni richiedono

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009 UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 manuel.comparetti@iet.unipi.it UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata

Dettagli

Esercizi su UDP. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 22/10/2008. Università di Pisa

Esercizi su UDP. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 22/10/2008. Università di Pisa Esercizi su UDP Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 22/10/2008 Un Tipico Client UDP Un client UDP invia datagrammi ad un server in attesa di essere

Dettagli

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità: 7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)

Dettagli

SMS Gateway - Specifiche WS. Specifica Tecnica

SMS Gateway - Specifiche WS. Specifica Tecnica Specifica Tecnica Revisione Data Elaborato da Verificato da Note 1 21/02/13 Stefano Peruzzi Gianni Antini Mod. ST-rev002_2013-02-21 Pag. 1/11 Indice 1 Oggetto...3 2 Scopo del documento...3 3 Riferimenti...3

Dettagli

Livello di trasporto:

Livello di trasporto: Livello di : Gaia Maselli maselli@di.uniroma1.it Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. All material copyright 1996-2007 J.F Kurose and

Dettagli

CLASS DIAGRAM PARTE 1

CLASS DIAGRAM PARTE 1 Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering Laboratory CLASS DIAGRAM PARTE 1 UML The Unified Modeling Language Guglielmo De Angelis guglielmo.deangelis@isti.cnr.it

Dettagli

I container della STL: all interno di

I container della STL: all interno di I container della STL: all interno di std::vector Valentino Picotti 27 maggio 2015 1 Introduzione 2 Standard Template Library Template Container e algoritmi standard Iteratori 3 Case study: std::vector

Dettagli

Alcuni diagrammi. OCL (Object Constraint Language)

Alcuni diagrammi. OCL (Object Constraint Language) UML e Java UML Alcune discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per

Dettagli

Sistemi Operativi. Processi e thread

Sistemi Operativi. Processi e thread Sistemi Operativi Processi e thread A.A. 2018-2019 Processi (e thread) Modello concettuale Creazione di processi 1. System initialization 2. Execution of a process-creation system call by a running process

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

UNIVERSITÀ POLITECNICA DELLE MARCHE

UNIVERSITÀ POLITECNICA DELLE MARCHE UNIVERSITÀ POLITECNICA DELLE MARCHE Facoltà di Ingegneria Corso di Laurea Magistrale in Ingegneria Informatica Progetto di un sistema di videosorveglianza basato su tecnologie multi-agente Relatore: Prof.

Dettagli

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind() Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

Corso di programmazione di sistemi mobile 1. Android. Google Cloud Messaging

Corso di programmazione di sistemi mobile 1. Android. Google Cloud Messaging Corso di programmazione di sistemi mobile 1 Android Google Cloud Messaging Corso di programmazione di sistemi mobile 2 Cos è Il Google Cloud Messaging o GCM è un servizio di Google che permette di inviare

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e Polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

L infrastruttura STIL. Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena

L infrastruttura STIL. Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena L infrastruttura STIL Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena Ruolo Infrastruttura ICT Fornire modelli, architetture e tecnologie informatiche

Dettagli

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 3

Reti di Calcolatori. Master Bio Info Reti e Basi di Dati Lezione 3 Reti di Calcolatori Sommario Software di rete Livello Trasporto (TCP) Livello Rete (IP, Routing, ICMP) Livello di Collegamento (Data-Link) Livello Trasporto (TCP) I protocolli di trasporto sono eseguiti

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

Dettagli

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Prefazione. Capitolo 1 Sistemi di elaborazione 1 Prefazione XI Capitolo 1 Sistemi di elaborazione 1 1.1 Algoritmo 1 1.2 Esecuzione 3 1.3 Memoria 4 1.4 Calcolo meccanico 5 1.5 Capacità di calcolo 7 1.6 Computer 8 Domande di verifica 11 Esercizi 11 Capitolo

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 1 (proposta) Socket Java senza connessione Luca Foschini Anno accademico 2016/2017 Esercitazione 1 1

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 22 Marzo 2012 Versione K Esercizio 1 (5 punti) Si consideri il codice seguente. 1 public c l a s s Redwood extends Tree { 2 public s t a t i c

Dettagli

JAM: Java Agent Middleware

JAM: Java Agent Middleware JAM: Java Agent Middleware Progetto di Laboratorio per il corso di Programmazione in Rete e Laboratorio Anno Accademico 2003/2004 Matteo Baldoni Attenzione! Questo documento non è definitivo ma sarà aggiornato

Dettagli

Introduzione ai. Sistemi Distribuiti

Introduzione ai. Sistemi Distribuiti Introduzione ai Sistemi Distribuiti Definizione di Sistema Distribuito (1) Un sistema distribuito è: Una collezione di computer indipendenti che appaiono agli utente come un sistema singolo coerente. 1

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Python Start. Docente: M. Chiara Debernardi. Lingua del corso. Descrizione del corso e obiettivi. Destinatari. Italiano

Python Start. Docente: M. Chiara Debernardi. Lingua del corso. Descrizione del corso e obiettivi. Destinatari. Italiano Python Start Docente: M. Chiara Debernardi Lingua del corso Italiano Descrizione del corso e obiettivi Il corso mira a far conoscere i fondamenti di Python i cui ambiti di utilizzo sono molteplici: intelligenza

Dettagli

Docenti Prof.ssa Biagini Barbara Prof. Sollitto Carlo INDIRIZZO DI STUDI SISTEMI INFORMATIVI AZIENDALI

Docenti Prof.ssa Biagini Barbara Prof. Sollitto Carlo INDIRIZZO DI STUDI SISTEMI INFORMATIVI AZIENDALI IIS ARGENTIA GORGONZOLA Programma svolto a.s.2016/17 Materia INFORMATICA Classe IV BSIA Docenti Prof.ssa Biagini Barbara Prof. Sollitto Carlo INDIRIZZO DI STUDI SISTEMI INFORMATIVI AZIENDALI Prerequisiti:

Dettagli

Corso Programmazione Java Standard

Corso Programmazione Java Standard Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

Dettagli

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Introduzione versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

Realizzazione di un sistema a supporto del testing automatico di Rich Internet Applications

Realizzazione di un sistema a supporto del testing automatico di Rich Internet Applications tesi di laurea Realizzazione di un sistema a supporto del testing automatico di Rich Anno Accademico 2007/2008 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Domenico Amalfitano candidato

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Cosa è importante: pom.xml Goal Plug-in Repository

Cosa è importante: pom.xml Goal Plug-in Repository Cos è Maven? Maven è un software usato principalmente per la gestione di progetti Java e build automation, ma è utile anche per gestire documentazione, report, dipendenze... Cosa è importante: pom.xml

Dettagli

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1 Università Ca Foscari DAIS Programmazione ad Oggetti Esame del modulo 1 Nome: Matricola: Samuel Rota Bulò, a.a. 2012/2013 Programmazione ad Oggetti a.a. 2012/2013 Esame del modulo 1 Nome: Samuel Rota Bulò

Dettagli

Micaela Caserza Magro Università degli Studi di Genova

Micaela Caserza Magro Università degli Studi di Genova Micaela Caserza Magro Università degli Studi di Genova La SAFETY è la protezione contro i malfunzionamenti di componenti e sistemi in un impianto E necessario considerare i rischi in modo globale in modo

Dettagli

Introduzione al multithreading

Introduzione al multithreading Introduzione al multithreading Il Multithreading consiste nella possibilità di scomporre le attività di elaborazione di un programma applicativo in più parti, dette Thread, in modo che esse possano essere

Dettagli

MPI. MPI e' il risultato di un notevole sforzo di numerosi individui e gruppi in un periodo di 2 anni, tra il 1992 ed il 1994

MPI. MPI e' il risultato di un notevole sforzo di numerosi individui e gruppi in un periodo di 2 anni, tra il 1992 ed il 1994 MPI e' acronimo di Message Passing Interface Rigorosamente MPI non è una libreria ma uno standard per gli sviluppatori e gli utenti, che dovrebbe essere seguito da una libreria per lo scambio di messaggi

Dettagli

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;

Dettagli

Multithreading in Java I parte. Lorenzo Gallucci

Multithreading in Java I parte. Lorenzo Gallucci Multithreading in Java I parte Lorenzo Gallucci Java: un linguaggio ed un sistema predisposti per il multitasking È possibile creare e gestire Thread nativamente (senza dover ricorrere a librerie esterne)

Dettagli

LOAD BALANCING PER SERVIZI DI

LOAD BALANCING PER SERVIZI DI LOAD BALANCING PER SERVIZI DI PRESENZA Carella Giuseppe Antonio Matricola 0000348431 Docente: Prof. Ing. Antonio Corradi Relatore: Ing. Luca Nardelli Attività progettuale di Reti di Calcolatori M Anno

Dettagli

Comunicazione tra agenti. Sistemi distribuiti LS Prof. Andrea Omicini A.A

Comunicazione tra agenti. Sistemi distribuiti LS Prof. Andrea Omicini A.A Comunicazione tra agenti Sistemi distribuiti LS Prof. Andrea Omicini A.A. 2003-2004 1 Intelligenza e comunicazione Gli agenti non sono onnipotenti nè onniscenti la loro conoscenza, intelligenza e capacità

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10 SISS SUITE Sommario 1 Introduzione... 3 2 progetto... 3 3 Soluzione... 3 4 Integrazione... 10 5 Conclusioni... 10 2 1 INTRODUZIONE L OMNICOM SISS Suite è una libreria DLL espressamente concepita per facilitare

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 27 Agosto 2012 Versione AA Esercizio 1 (5 punti) 1 class A{ 2 S t r i n g s ; 3 4 A( S t r i n g s ){ 5 this. s = s ; 6 System. out. p r i n t

Dettagli