Programmazione CORBA in Java

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione CORBA in Java"

Transcript

1 Programmazione CORBA in Java Trasparenze dalle lezioni del corso di Reti di Calcolatori A.A. 2002/2003 Prof. Roberto Baldoni - Ing. Antonino Virgillito

2 CORBA Specifica standard di middleware RPC ad oggetti Gestita dall Object Management Group (OMG) Consorzio a cui afferiscono tutti i maggiori produttori mondiali di HW/SW Standard implementato da numerosi prodotti commerciali e open source

3 CORBA: Caratteristiche Modello ad oggetti Trasparenza di comunicazione Trasparenza di linguaggio Trasparenza di locazione Trasparenza di piattaforma

4 Oggetti CORBA Un oggetto CORBA è un entità astratta che incapsula entità programmative. Un oggetto si manifesta attraverso la sua interfaccia (definizione di attributi e operazioni)

5 Architettura CORBA base Client OBJECT Implementation 1 IDL Client Stub Object Adapter IDL Static skeleton 3 4 ORB 2

6 Trasparenza in CORBA ORB IDL Trasparenza di comunicazione Trasparenza di linguaggio IOR Trasparenza di locazione

7 Object Request Broker Componente che gestisce la comunicazione tra applicazione client e oggetto server Idealmente un Bus software, in realtà è presente su entrambi i lati della comunicazione Due ORB su piattaforme diverse comunicano attraverso un protocollo comune definito nello standard CORBA = Architettura a ORB Comune

8 Interface Definition Language Linguaggio dichiarativo per la definizione delle interfacce degli oggetti CORBA Con l IDL si dichiara cosa fa un oggetto, non come lo fa Definisce tipi di dato standard che vengono mappati nei tipi del linguaggio usato per l implementazione Le interfacce IDL vengono compilate per generare i componenti che instaurano la comunicazione attraverso l ORB (stub e skeleton)

9 Interoperable Object Reference Object Reference Repository ID Endpoint Info Object Key... Ad ogni oggetto server è associato un IOR. Lo IOR contiene informazioni di indirizzamento dell oggetto. Per invocare operazioni su un oggetto, il client deve ottenere il suo IOR. Al momento dell invocazione, l ORB legge le informazioni nell IOR e instaura la connessione con l oggetto

10 Object Adapter Si occupa dell associazione tra gli oggetti e le loro implementazioni Basic Object Adapter (BOA) da CORBA 2.2 sostituito dal... Portable Object Adapter (POA) Permette di definire diversi stili di implementazione attraverso cui ottimizzare l applicazione

11 Sviluppo di un applicazione 2.Compilazione da IDL a Java CORBA in Java 3.Scrittura dell implementazione implementazione oggetto classi skeleton 4.Scrittura del server server 1.Definizione IDL dell oggetto idl2java classi di supporto classi stub client 5.Scrittura del client

12 Sviluppo di una applicazione CORBA in Java e C++ File IDL Compilatore IDL-Java Compilatore IDL-C++ applicazione (JAVA) stub (JAVA) stub (C++) skeleton (C++) implementazione (C++) Applicazione Client ORB Java ORB C++ Implementazione oggetto

13 Sviluppo di un applicazione CORBA in Java: 1. Definizione IDL dell interfaccia dell oggetto conto.idl interface Conto { attribute string numero_conto; }; void deposito(in long amount); long prelievo(in long amount); long saldo();

14 Sviluppo di un applicazione CORBA in Java : 2. Compilazione IDL-Java conto.idl idl2java Conto.java _ContoStub.java ContoOperations.java ContoPOA.java ContoPOATie.java ContoHelper.java ContoHolder.java classi lato client classi lato server classi di supporto

15 Sviluppo di un applicazione CORBA in Java : 3. Implementazione dell oggetto public class ContoImpl extends ContoPOA { private int _saldo; private String _numeroconto; L implementazione eredita lo skeleton public ContoImpl(String nc) { _saldo = 0; _numeroconto = nc; } public void deposito(int amount) { _saldo += amount; } public int prelievo(int amount) { _saldo -= amount; return _saldo; } public int saldo() { return _saldo; } Ogni metodo definito nell interfaccia viene implementato } Gli attributi vengono implementati come una coppia di metodi String numeroconto() { return _numeroconto; } void numeroconto(string nc) { _numeroconto = nc; }

16 Sviluppo di un applicazione CORBA in Java : 4. Scrittura del server public class Server { public static void main( String[] args ) { org.omg.corba.orb orb = org.omg.corba.orb.init(args, null); Inizializzazione ORB try { org.omg.portableserver.poa poa = org.omg.portableserver.poahelper.narrow(orb.resolve_initial_references("rootpoa")); Creazione del riferimento al POA org.omg.corba.object o = poa.servant_to_reference(new ContoImpl("0393")); Attivazione oggetto nel POA PrintWriter ps = new PrintWriter(new FileOutputStream(new File( args[0] ))); ps.println( orb.object_to_string( o ) ); ps.close(); Scrittura dell OR in un file } catch ( Exception e ) { e.printstacktrace(); } } } orb.run(); Attivazione ORB

17 Sviluppo di un applicazione CORBA in Java : 5. Scrittura del client public class Client { public static void main(string args[]) { try { Conto contobancario; Dichiarazione variabile per l oggetto org.omg.corba.orb orb = org.omg.corba.orb.init(args,null); Inizializzazione ORB String IORString; // legge l'ior dal file specificato in args[0] // e lo memorizza in IORString [...] Lettura OR da file contobancario = ContoHelper.narrow(orb.string_to_object(IORString)); Creazione riferimento remoto all oggetto contobancario.deposito(2000); contobancario.prelievo(200); Chiamata operazioni sull oggetto System.out.println("Il saldo del conto" + contobancario.numeroconto() + "è: " + contobancario.saldo()); } catch (Exception e) { e.printstacktrace(); } }

18 Architettura CORBA completa Interface Repository Applicazione Client Implementazione Server Implementation Repository DSI Skeleton Stub DII POA Interceptor Interceptor CORBAservices ORB

19 CORBAServices Insieme di specifiche di servizi utilizzabili da applicazioni CORBA I servizi sono generalmente forniti attraverso oggetti CORBA Un implementazione CORBA non è vincolata a fornire dei servizi

20 CORBAServices Naming Service localizzazione di oggetti attraverso nomi Event Service comunicazione asincrona per notifiche di eventi Notification Service evoluzione dell event che include tipizzazione dei messaggi, filtraggio e supporto QoS

21 CORBAServices Security Service funzioni di autenticazione, certificazione, protezione Trading Service localizzazione oggetti attraverso query su metadati Transaction Service gestione del comportamento transazionale degli oggetti Time Service fornisce il tempo corrente e altre funzioni relative al tempo (generazione timer, calcolo intervalli tra eventi, etc.)

22 Naming Service Associa stringhe (nomi) a object references Vantaggi: I client identificano i server semplicemente attraverso il loro nome Indipendente dalla locazione del servizio

23 Naming service: struttura a grafo = Naming Context = Oggetto Naming Context iniziale = Object Reference

24 Naming Service: l interfaccia Naming Context module CosNaming { interface NamingContext { //... void bind(in Name n, in Object obj) raises (NotFound, CannotProceed, InvalidName, AlreadyBound); Object resolve(in Name n) raises... void bind_context(in Name n, in Object obj) raises... NamingContext bind_new_context(in Name n); NamingContext new_context(); }; }; void unbind(in name n) raises... void rebind(in Name n, Object obj) raises... void destroy();

25 Naming Service: lato server import org.omg.cosnaming.*; org.omg.corba.object o = poa.servant_to_reference(new ContoImpl()); NamingContextExt nc = NamingContextExtHelper.narrow( orb.resolve_initial_references("nameservice")); nc.bind( nc.to_name( contobancario"), o);

26 Naming Service: lato client import org.omg.cosnaming.*; Conto conto; NamingContextExt nc = NamingContextExtHelper.narrow( orb.resolve_initial_references("nameservice")); conto = ContoHelper.narrow(nc.resolve(nc.to_name( contobancario")));

27 Naming Service: gestire il Naming Graph import org.omg.cosnaming.*; org.omg.corba.object o = poa.servant_to_reference(new ContoImpl()); NamingContextExt rootctx = NamingContextExtHelper.narrow( orb.resolve_initial_references("nameservice")); NamingContextExt contictx = rootctx.bind_new_context( rootctx.to_name( conti )); contictx.bind(contictx.to_name( virgi ),o); conti virgi

28 Event Service Consumatore Consumatore push push Modello push Event Channel push push Produttore Produttore direzione del flusso degli eventi Consumatore Consumatore pull pull Event Channel Modello pull pull pull Produttore Produttore

29 Utilizzo dell Event Service (modello Push) L event channel è un oggetto server CORBA Il produttore ottiene l IOR dell event channel e si registra presso di esso Il consumatore implementa una opportuna interfaccia (PushConsumer), in cui un metodo (push) specifica il comportamento in caso di ricezione di un evento Il consumatore si registra presso l event channel Produttore e consumatore ottengono dal canale dei proxy, che sono la rappresentazione locale dell altro lato della comunicazione: Il produttore invia gli eventi al proxy Il consumatore si connette al proxy per ricevere gli eventi Nel modello push, il produttore è il client e il consumatore è il server. Nel modello pull la situazione è speculare

30 CORBA: aspetti dinamici Il tipo Any Type Codes Dynamic Invocation Interface Dynamic Skeleton Interface

31 Any e TypeCode Un oggetto di tipo Any contiene un valore di tipo IDL qualunque. Per inserire ed estrarre il valore, sono definite una serie di operazioni dipendenti dal tipo del valore stesso: insert_<tipo> e extract_<tipo> Un oggetto di tipo TypeCode è la descrizione di un tipo IDL. A ogni tipo IDL è associata una costante definita nell enumerazione TCKind, restituita dall operazione kind()di TypeCode. Inoltre, in TypeCode sono anche definite operazioni per confrontare l uguaglianza di due tipi.

32 Any e TypeCode: esempio // create a new any Any a = org.omg.corba.orb.init().create_any(); // char char ch = 'c'; System.out.print("Passing a char..."); a.insert_char( (char)ch ); System.out.println( s.generic( a ) ); public java.lang.string generic(any a) { String result = "<empty>"; try { switch( a.type().kind().value() ) { case TCKind._tk_char: result = "char: " + a.extract_char(); break; case TCKind._tk_float: result = "Float: " + a.extract_float(); break;...

33 Dynamic Invocation Interface Permette di invocare un metodo su un oggetto senza che sia presente il suo stub. necessario lo stub Static vs. Dynamic stub non necessario l invocazione va definita a tempo di compilazione solo invocazioni sincrone sintassi procedurale l invocazione può essere definita a runtime supporto anche per invocazioni asincrone sintassi piuttosto scomoda

34 DII: l interfaccia Request module CORBA { interface Request { readonly attribute Object target; readonly attribute string operation; readonly attribute NVList arguments; readonly attribute NamedValue result; readonly attribute Environment env; // PIDL //... any add_in_arg(); //... void set_return_type(in ::CORBA::TypeCode tc); any return_value(); void invoke(); void send_oneway(); void send_deferred(); void poll_response(); }; };

35 DII: Richiesta semplice org.omg.corba.object s = nc.resolve( nc.to_name("dii.example")); org.omg.corba.request r = s._request("_get_long_number"); r.set_return_type( orb.get_primitive_tc(org.omg.corba.tckind.tk_long)); r.invoke(); if( r.env().exception()!= null ) throw r.env().exception(); else System.out.println("0: " + r.return_value() );

36 DII: Richiesta con parametri org.omg.corba.request r2 = s._request("add"); r2.add_in_arg().insert_long( 3 );

37 DII: Richieste asincrone org.omg.corba.request r3 = s._request("writenumber"); r3.add_in_arg().insert_long( 5 ); r3.set_return_type( ); r3.send_oneway(); r3.send_deferred(); r3.get_response(); r3.send_deferred(); while(! r3.poll_response() ) { try { Thread.currentThread().sleep(10); } catch ( InterruptedException i){} System.out.print("."); }

38 Portable Interceptors Oggetti che intervengono nel flusso della comunicazione tra client e server Catturano richieste e risposte permettendo di leggerne i dati Diversi punti di intercettazione Ci soffermeremo sui RequestInterceptors

39 RequestInterceptors Due tipi: Client-side Server-side Permettono di Leggere i dati di richieste/risposte Trasferire informazioni di contesto tra client e server Redirezionare le richieste a diversi server Ogni punto di intercettazione corrisponde ad un metodo dell interceptor che viene automaticamente chiamato dall ORB Il comportamento degli interceptor viene definito implementando i metodi

40 RequestInterceptors: punti di intercettazione

41 Interface Repository Contiene descrizione di interfacce di oggetti CORBA. Le interfacce sono descritte in termini di una gerarchia di oggetti CORBA corrispondenti a strutture IDL. ModuleDef InterfaceDef OperationDef InterfaceDef

42 Implementation Repository Contiene informazioni che permettono all ORB di localizzare e attivare implementazioni di oggetti Viene usato per gestire gli oggetti persistenti, quelli che cioè vivono anche dopo che il processo in cui sono attivi è terminato. Gli oggetti persistenti sono registrati presso un ImR che attiva il loro processo quando il client invia una richiesta.

43 Argomenti Avanzati Portable Object Adapter Protocolli GIOP e IIOP Mapping IDL-Java

44 Il Portable Object Adapter Il POA è responsabile dell associazione tra gli oggetti CORBA e le loro implementazioni in un linguaggio di programmazione (servants) In pratica, le funzioni del POA sono: creare gli Object Reference gestire il ciclo di vita degli oggetti inviare le richieste effettuate su un oggetto al rispettivo servant

45 Object References Entità del POA Il POA crea gli OR. Una applicazione può creare un oggetto, e quindi un OR, anche senza incarnarlo attraverso un servant Object Identifiers Identificano un oggetto all interno di un POA. L OID di un oggetto viene inserito all interno del suo OR. Possono essere decisi dal POA o forniti dall applicazione Servants Un applicazione può creare e registrare un servant presso un POA per incarnare un oggetto. In alternativa, può fornire un particolare oggetto (servant manager) che può creare servant quando necessario oppure un servant di default (default servant) che serve tutte le richieste di tutti gli oggetti di un POA. Un servant può incarnare allo stesso tempo uno o più oggetti

46 Relazione tra oggetti e servant oggetto esistente oggetto attivo oggetto non esistente creazione attivazione servant incarnato disattivazione distruzione oggetto non esistente oggetto non attivo servant eterealizzato

47 POA Manager Entità del POA (2) Oggetto che mantiene lo stato di elaborazione dei POA in un ORB. Attraverso di esso è possibile disattivare i POA oppure bloccare o scartare tutte le richieste dirette ad essi. Active Object Map Tabella che mantiene le associazioni tra OID e servant per gli oggetti attivi in un POA

48 Gerarchia di POA Un applicazione server può mantenere POA multipli, per assegnare diversi stili di implementazione agli oggetti I POA vengono organizzati in una gerarchia Il POA di default è la radice della gerarchia (RootPOA) e viene creato dall ORB Ogni POA ha il proprio stile di implementazione, definito da specifiche proprietà (policies)

49 Gerarchia dei POA ORB RootPOA Il POAManager può assumere uno tra 4 stati: active, holding, discarding, inactive POA Manager POA a POA b POA x POA y

50 POA Policies Proprietà che definiscono lo stile di implementazione di un POA Le politiche specificano il comportamento di tutti gli oggetti registrati in uno stesso POA Le politiche possono essere stabilite solo alla creazione del POA

51 POA Policies: Casi d uso Oggetti Persistenti Alcuni oggetti devono mantenere identità e stato tra diverse esecuzioni del loro server Attivazione oggetti su richiesta Per ottimizzare l utilizzo della memoria, un oggetto può essere attivato solamente al primo utilizzo (ed eventualmente disattivato in seguito) Wrapping di Database Ad ogni tabella di un DB può essere fatto corrispondere un oggetto CORBA. Per aumentare la scalabilità rispetto all utilizzo della memoria, tutti gli oggetti possono essere implementati da uno stesso servant

52 POA Policies Modello di Threading ORB_CTRL_MODEL SINGLE_THREAD_MODEL Assegnazione OID USER_ID SYSTEM_ID Esecuzione richieste USE_ACTIVE_OBJECT_MAP_ONLY USE_DEFAULT_SERVANT USE_SERVANT_MANAGER Conservazione Servant RETAIN NON_RETAIN

53 Servant Manager Oggetto registrato in un POA, attivato da esso in callback Fornisce la possibilità di attivare oggetti quando il POA riceve una richiesta per un oggetto non attivo Deve ereditare una interfaccia che contiene due metodi che vengono invocati in callback dal POA durante il ciclo di vita dell oggetto Lo sviluppatore implementa questi metodi per gestire la creazione dei servant Un servant manager può essere di due tipi, in base al valore della politica di conservazione servant

54 Default Servant Oggetto a cui, con la politica USE_DEFAULT_SERVANT, vengono redirette dal POA tutte le richieste per cui non viene trovato un servant nella AOM Deve ereditare la classe Servant Va registrato nel POA con il metodo set_servant In genere, implementato in DSI per non essere vincolato ad un tipo di oggetto

55 Esempio POA: Oggetti Persistenti Necessario mantenere l identità dell oggetto tra diverse esecuzioni del server Politica USER_ID L oggetto viene attivato con il metodo activate_object_with_id Lo sviluppatore deve gestire il salvataggio e il recupero dello stato dell oggetto

56 Esempio Servant Manager: Attivazione oggetti su richiesta Politica USE_SERVANT_MANAGER Se un oggetto non è attivo, il POA invoca il servant manager Lo sviluppatore deve implementare il servant manager e registrarlo nel POA Politica RETAIN Il servant manager implementa l interfaccia ServantActivator Lo sviluppatore deve implementare l operazione incarnate, nella quale deve essere creato un servant, che viene poi ritornato

57 Esempio Default Servant/DSI: Wrapping Database Politica USE_DEFAULT_SERVANT Il DB viene rappresentato con una interfaccia per tabella, un oggetto per record Tutti gli oggetti vengono incarnati dal default servant, implementato in DSI per gestire tutte le interfacce Benefici: accesso tipizzato lato client, mantenendo scalabilità lato server

58 Interoperabilità in CORBA: il protocollo GIOP La specifica del protocollo GIOP è composta dai seguenti elementi: Assunzioni sul trasporto Orientato alla connessione Affidabile Notifica le perdite di connessione Fornisce l astrazione di flusso di bytes Common Data Representation (CDR) Definisce una codifica binaria di tutti i tipi IDL per la trasmissione Formati di messaggi

59 Messaggi GIOP 1.1 Tipo messaggio Request Reply CancelRequest LocateRequest LocateReply CloseConnection MessageError Fragment Origine Server Client Client Client Server Server Client o Server Client o Server

60 Struttura di un messaggio GIOP 12-byte GIOP Message Header Variable-length GIOP Message Body G I O P Byte Message Size module GIOP { struct Version { octet major; octet minor; }; // PIDL struct MessageHeader_1_1 { char magic[4]; // The string GIOP Version GIOP_version; octet flags; octet message_type; unsigned long message_size; };

61 Formato del messaggio Request 12-byte GIOP Header Variable-length GIOP Request Header Variable-length GIOP Request Body module GIOP { //PIDL //... struct RequestHeader_1_1 { IOP::ServiceContextList unsigned long boolean octet sequence<octet> string Principal }; request_id; response_expected; reserved[3]; object_key; operation; requesting_principal; //... };

62 Il protocollo IIOP Mapping del protocollo GIOP sul TCP/IP. Consiste nella specifica degli IOR e in particolare nella codifica delle informazioni di indirizzamento TCP/IP Object Reference Repository ID Endpoint Info Object Key... module IIOP { struct Version { octet major; octet minor; }; //PIDL struct ProfileBody_1_1 { Version string unsigned short sequence<octet> sequence<iop::taggedcomponent> }; }; iiop_version; host; port; object_key; components;

63 Struttura di un IOR IOR type_id profile... profile TaggedProfile profile_id profile_data ProfileBody version host port object_key TaggedComponent... TaggedComponent tag component_data

64 Mapping IDL-Java Documento OMG che definisce le regole necessarie per la portabilità delle applicazioni tra ORB Java. In particolare: La corrispondenza tra tipi IDL e tipi Java Le classi Java generate dal compilatore IDL e le relazioni che intercorrono tra esse e altre classi CORBA.

65 Classi Holder Permettono il passaggio dei parametri di uscita in Java DoubleHolder doh = new DoubleHolder(); s.addnums( (double)5, (double)6, doh); System.out.println("addNums 5 and 6 gives: " + doh.value);

66 Stub e Skeleton: gerarchia delle classi interface org.omg.corba.object org.omg.portableserver.servant org.omg.corba.objectimpl interface TestOperations interface Test TestPOA TestPOATie _TestStub TestOperationsImpl TestImpl

67 Stub: meccanismo di invocazione richiesta public int foo(java.lang.string arg1, org.omg.corba.floatholder argout) { //... org.omg.corba.portable.inputstream _is = null; try { org.omg.corba.portable.outputstream _os = _request( "foo", true); _os.write_string(arg1); _is = _invoke(_os); int _result = _is.read_long(); argout._read(_is); return _result; } //... }

68 Skeleton: meccanismo di servizio richiesa public org.omg.corba.portable.outputstream _invoke(string method, org.omg.corba.portable.inputstream _input, org.omg.corba.portable.responsehandler handler) throws org.omg.corba.systemexception //... switch ( opsindex.intvalue() ) { case 0: // foo { java.lang.string _arg0=_input.read_string(); org.omg.corba.floatholder _arg1= new org.omg.corba.floatholder(); _out = handler.createreply(); _out.write_long(foo(_arg0,_arg1)); _arg1._write(_out); break; } } //... }

Programmazione CORBA in Java

Programmazione CORBA in Java Programmazione CORBA in Java Ing. Andrea Santoro http://www.dis.uniroma1.it/~santoroa santoro@dis.uniroma1.it (codice preparato dall ing. Alessandro Termini) Overview Naming Service Motivazioni Name Service

Dettagli

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA CORBA ( Common Object Request Broker Architecture ) consiste in un insieme di specifiche promosse e curate da OMG (Object Management Group). L OMG è un consorzio internazionale no-profit di industrie nel

Dettagli

Corso di Reti di Calcolatori LS

Corso di Reti di Calcolatori LS Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LS CORBA - Implementazione Naming Service e Interface Repository Luca Foschini Anno accademico 2008/2009 Agenda CORBA

Dettagli

CORBA. CORBA facilita lo sviluppo di sistemi distribuiti fornendo

CORBA. CORBA facilita lo sviluppo di sistemi distribuiti fornendo CORBA CORBA facilita lo sviluppo di sistemi distribuiti fornendo Una infrastruttura per far comunicare oggetti in un sistema distribuito Un set di servizi utili Un supporto che permette ad applicazioni

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

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

Dettagli

Corso di Reti di Calcolatori M

Corso di Reti di Calcolatori M Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori M CORBA - Implementazione Invocazione Dinamica e Invocazioni Asincrone Luca Foschini Anno accademico 2014/2015 Agenda

Dettagli

Distributed Object Computing

Distributed Object Computing Evoluzione Architetturale Distributed omputing entralizzata Monolitica anni 60-70 Reti locali di P anni 80 Reti lient Server anni 80-90 Internet The network is the computer Paolo Falcarin Sistemi Informativi

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

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Corso di Reti di Calcolatori M

Corso di Reti di Calcolatori M Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori M CORBA - Implementazione Politiche di Attivazione Lato Server Luca Foschini Anno accademico 2014/2015 Portable Object

Dettagli

Corso di Reti di Calcolatori M

Corso di Reti di Calcolatori M Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori M CORBA - Implementazione Politiche di Attivazione Lato Server Luca Foschini Anno accademico 2013/2014 Portable Object

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

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

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

Dettagli

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247 Registri RMI Per poter interagire con un server remoto, un client deve essere in possesso di una sua referenza remota (ovvero un oggetto stub). Un servizio di Naming è una risorsa centralizzata che può

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

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

Dettagli

Sommario (1) Object Request Broker

Sommario (1) Object Request Broker Università di Roma RomaTre Sommario (1) Sommario (2) Introduzione a CORBA Claudio Morgia 1999 Architetture distribuite Object Request Broker Contratti IDL IR + DSI + DII Strutture Client, Object Implementation

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

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

SCD. Il modello CORBA. Sistemi distribuiti: il modello CORBA. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1

SCD. Il modello CORBA. Sistemi distribuiti: il modello CORBA. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1 Architettura del modello 2 Il modello CA Anno accademico 2017/18 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Modello cliente-servente a oggetti distribuiti La

Dettagli

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

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

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

CORBA & DCOM. Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola. La Object Management Architecture

CORBA & DCOM. Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola. La Object Management Architecture CORBA & DCOM Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Sommario La Object Management Architecture CORBA La programmazione di applicazioni CORBA in Java CORBA vs. RMI DCOM

Dettagli

Programmazione dei socket con TCP #2

Programmazione dei socket con TCP #2 I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

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

RMI Remote Method Invocation

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

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Progettazione ed implementazione di un tool per lo sviluppo di applicazioni in Esperanto

Progettazione ed implementazione di un tool per lo sviluppo di applicazioni in Esperanto Università degli studi di Napoli Federico II Facoltà di Ingegneria Corso di laurea in Ingegneria Informatica Capri Feb. 2004 Progettazione ed implementazione di un tool per lo sviluppo di applicazioni

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Main System Monitor Keyboard

Main System Monitor Keyboard Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

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

Dettagli

Programmazione di sistemi distribuiti

Programmazione di sistemi distribuiti Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti

Dettagli

13. Chain of Responsibility

13. Chain of Responsibility Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Scuola Superiore Sant Anna. Progetto parte Unix. AA 2008-2009: Distributed File Repository

Scuola Superiore Sant Anna. Progetto parte Unix. AA 2008-2009: Distributed File Repository Scuola Superiore Sant Anna Progetto parte Unix AA 2008-2009: Distributed File Repository Distributed File Repository Descrizione del sistema da realizzare Progettare e implementare un server che mantiene

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

Creare client statici

Creare client statici Client statico Creare client statici Un client statico crea, a partire dal WSDL di un servizio, un insieme di classi di supporto client-side (stub) Sono necessari solo 2 passi: 1. parsing del WSDL pubblicato

Dettagli

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili 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 di

Dettagli

URI. Introduzione. Pag. 1

URI. Introduzione. Pag. 1 URI Introduzione Gli URI (Universal Resource Indentifier) sono una sintassi usata in WWW per definire i nomi e gli indirizzi di oggetti (risorse) su Internet. Questi oggetti sono considerati accessibili

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Architetture software

Architetture software Corso di Laurea Magistrale in Ingegneria Informatica Corso di Ingegneria del A. A. 2013-2014 Architettura software 1 Architetture software Sommario Definizioni 2 Architettura Definizione. L architettura

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.2. 2 Novembre 2005 Laura Ricci IL DOMAIN NAME SYSTEM (DNS) Indirizzi IP poco adatti per essere memorizzati da utenti umani è prevista la possibiltà di associare nomi simbolici

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Basi di Dati Claudio Marrocco I report I Report sono lo strumento più adatto per ottenere una copia stampata dei dati e delle informazioni ricavate dalle

Dettagli

Java e CORBA. Introduzione

Java e CORBA. Introduzione 2001 proprietà di MokaByte s.r.l. tutti i diritti riservati è vietata la riproduzione non autorizzata anche parziale Java e CORBA DI GIANLUCA MORELLO Introduzione Nell era di Internet e delle grandi Intranet

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

Introduzione a CORBA

Introduzione a CORBA Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Progetto ID 24063 Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari

Dettagli

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal Data Access (UDA). Mette a disposizione una serie di componenti per l accesso a svariate

Dettagli

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Esercizio 1 Considerate la seguente gerarchia di classi: class A { public void print(string s) { System.out.println(s); public void m1() { print("a.m1");

Dettagli

Programmazione distribuita

Programmazione distribuita Programmazione distribuita 1 Architettura client-server È il modo classico di progettare applicazioni distribuite su rete Server offre un servizio "centralizzato" attende che altri (client) lo contattino

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

appunti delle lezioni Architetture client/server: applicazioni server

appunti delle lezioni Architetture client/server: applicazioni server Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il primo

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 15 - Packages 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 di

Dettagli

Introduzione a Java Remote Method Invocation (RMI)

Introduzione a Java Remote Method Invocation (RMI) Introduzione a Java Remote Method Invocation (RMI) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi E risuona il mio barbarico yawp sopra i tetti del mondo ( I sound my barbaric

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Parola chiave extends

Parola chiave extends Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi

Dettagli

Strumenti per la gestione della configurazione del software

Strumenti per la gestione della configurazione del software tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Luigi Suarato candidato Pasquale Palumbo Matr. 534/000021 MANUTENZIONE DEL SOFTWARE Il Configuration

Dettagli

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

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

Dettagli

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

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

P2-11: BOOTP e DHCP (Capitolo 23)

P2-11: BOOTP e DHCP (Capitolo 23) Autunno 2002 Prof. Roberto De Prisco -11: BOOTP e DHCP (Capitolo 23) Università degli studi di Salerno Laurea e Diploma in Informatica Indirizzi IP dinamici 11.2 Un indirizzo IP statico è assegnato ad

Dettagli

Il Web-Service SDMX dell ISTAT

Il Web-Service SDMX dell ISTAT Il Web-Service SDMX dell ISTAT Versione: 1.0.0 Data: 26/06/2014 Autore: Approvato da: Modifiche Versione Modifiche Autore Data Indice dei contenuti 1 Introduzione... 4 2 Esempio d uso... 5 2.1 Riferimento

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Organizzazione degli archivi

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

Dettagli