I sistemi operativi si susseguirono, fino alla comparsa di Windows NT, il primo s.o. in cui ci son già implementati dei concetti significativi.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I sistemi operativi si susseguirono, fino alla comparsa di Windows NT, il primo s.o. in cui ci son già implementati dei concetti significativi."

Transcript

1 DCOM, COM,.NET 2 Quando si parla di architetture proprietarie, si intendono tutta una serie di cose, in particolare si pensa alla storia dei sistemi operativi, in questo caso del S.O. di Microsoft. Mentre con gli altri s.o. si lavorava con le linee di comando, dietro al s.o. di Microsoft c'era l'idea di lavorare con le finestre, modo che ovviamente ha ampliato la fascia di utenza. Si ricordi che tale idea nasce quando ancora l'architettura dei calcolatori era molto limitata, in sostanza tale idea nasce indipendentemente dai supporti di gestione a cui noi siamo abituati. I sistemi operativi si susseguirono, fino alla comparsa di Windows NT, il primo s.o. in cui ci son già implementati dei concetti significativi. Si susseguirono altre architetture, fino all'architettura.net che non rappresenta un s.o. ma un modo di poter supportare di sotto anche s.o. diversi: rappresenta un momento di forte soluzione di continuità a livello architetturale, ed è propria questa continuità all'indietro uno dei principi fondamentali e di maggiore impatto da mantenere sempre quando si lavora. 3 i sistemi operativi ci interessano abbastanza poco, difatti quello di cui vogliamo, in questo capitolo, discutere è che il tutto deve funzionare qualunque sia il s.o. sottostante: non vogliamo avere una visione di sistema. 4 Le DLL, l'acronimo per Dynamic Linked Libraries, creazione di Microsoft, sono delle librerie ad aggancio dinamico. Avere un sistema che deve caricare tutto il programma all'inizio vuol dire avere un sistema che sta usando molto male le risorse; Pertanto Microsoft procede con un idea (non sua di proprietà) che il programma sia costituito da componenti che possono essere caricati dinamicamente: le DLL. Quindi il programma nella fase iniziale carica solo una parte, poi, solo su bisogno, durante l'esecuzione, con conseguenti tempi allungati di ritardo, carica le parti che gli servono. Allo stesso livello di importanza vi è l'idea delle finestre di s.o. per l'interazione grafica vicina all'utente. Tale idea non nasce in casa Microsoft. Resta comunque un idea pervasiva nelle architetture. 5 Quando si parla di DLL, si dice quindi che il programma può essere spezzato in parti, le quali possono essere caricate dinamicamente. Si noti che parlando di DLL, si parla sì di componenti che vengono caricati dinamicamente, ma ci si può chiedere se tale caricamento dinamico sia un caricamento per sempre o no. Evidentemente, quello che succede è che se un programma non ha più bisogno della DLL appena caricata, tale DLL verrà quindi scaricata. Un architettura fatta in questo modo è molto efficiente perché consente di risparmiare risorse. 200 Stefano Di Monte

2 Caso di studio: Si pensi alla presenza di due programmi che hanno bisogno della stesa DLL, questi due programmi <<useranno la stessa DLL?>>, se è già stata caricata da uno dei due, <<l'altro dovrà ricaricarla?>> Per applicare il principio di riuso, le DLL possono essere condivise. Tutto ciò si scontra, ovviamente, con l'esecuzione contemporanea da parte di più programmi che potrebbe dare dei problemi se fosse presente uno stato...quindi o si lavora senza stato o si effettuano delle operazioni potenzialmente pericolose in mutua esclusione: tipicamente le DLL non hanno stato, il che non vuol dire che lo stato è completamente assente, bensì che c'è ma che non si può cambiare! (lo stato è nel cliente!). Il non avere stato consente un caricamento delle stesse dll facile ed inoltre il fatto che quest' ultime eseguono nello spazio del programma che le invoca. <<Come si fa a capire se un modulo deve rimanere in memoria? E se fosse così, fino a quando ci deve rimanere?>> La soluzione Java prevede un Garbage Collector...qui invece non si lavora con questo strumento, ma si lavora con i componenti, quindi in modo esplicito: chi ha bisogno di una cosa lo deve dire magari implementando un contatore che verrà incrementato ogni qual volta quel determinato componente carica quella dll e verrà decrementato ogni qual volta quella stessa dll viene scaricata ; quando il contatore ha valore 0 la dll viene riportata in memoria. Questo modo di lavorare si chiama Reference Counting. 6 In realtà, gli stessi s.o. sono delle dll: sono composti da componenti che sono caricati dinamicamente, ed è evidente comunque però, che in un sistema operativo le cose che sono caricate rimangono caricate perché ovviamente una macchina lavora affinché il s.o. sia tutto presente... Questo modo di lavorare risale fino alle prime versioni di Windows. 7 I s.o. di Microsoft hanno adottato gli stessi principi quando ancora non c'era un architettura a 32 bit in cui si riuscisse ad implementare in modo ben fatto il multi-tasking. In sostanza questo modo di lavorare, caricando dinamicamente librerie, riusciva a produrre un buon sistema di interfaccia finestre-utente anche senza alcun supporto per i thread, in particolare anche se dal punto di vista di principio, il s.o. consentiva di avere un unico processo, si riusciva a lavorare bene con una specie di multi-thread finto, dando l'illusione di avere a che fare con un sistema multithread (dato che non c'era un kernel ben fatto...). Ovviamente, queste cose funzionano bene quando di sotto c'è un kernel ben fatto (Win32). Reti di Calcolatori LM 201

3 8 Windows NT viene considerato un evento significativo in termini di s.o. non tanto in termini di supporto, di middleware o di entità supportate perché, in questo s.o. cominciano a comparire dei processi leggeri ben fatti e si implementa abbastanza facilmente l'idea di un processo pesante che racchiuda altri processi più leggeri. In generale, Microsoft quando può, cerca di unificare una serie di meccanismi in modo che siano standard per le sue architetture: in particolare si comincia ad avere un idea molto precisa del fatto che tutte le entità che sono disponibili, siano oggetti. Tipicamente sono oggetti sia le entità applicative (ad esempio i thread comandati da un utente finale) e sia le entità a livello di kernel. In sostanza l'idea è quella di avere una molteplicità di componenti e di avere dei punti di vista comuni. Le architetture di Microsoft arrivano a determinare uno scenario di interazione sicuramente molto flessibile e molto vario; questo perché man mano i s.o. cambiano, aggiungono componenti e modalità, cercando di avere un unico modello di interazione. Altra cosa che è tipica delle architetture Microsoft è l'idea degli eventi: in particolare, a basso livello, gli eventi sono un concetto assolutamente pervasivo nell'architettura. Per Microsoft gli eventi hanno una implementazione locale (modello ad eventi locale) e non c/s! 9 Quando si parla di modello ad eventi, in Microsoft si tende a ricordare lo slogan: Don't call me I call you ossia il modello Hollywood. In sostanza non si lavora c/s, in cui vi è un qualcosa (ad esempio un cliente) che si mette in attesa di qualcos'altro, bensì si ha un modello in cui qualcuno si registra su qualcun' altro e quest'ultimo gli dirà di lui, in particolare quando si avrà una risposta. Il sistema ad eventi è molto importante perché in Microsoft le finestre sono basate per l'appunto su questo modello: io ho una finestra nel sistema, e questa finestra tipicamente rappresenta un area associata ad un processo di gestione; quando il mouse va su questa finestra, solo in questo momento, in generale si vuole attivare e mandare una informazione al processo di gestione che c'è dietro. Quindi tipicamente, in architetture tipo windows NT, i processi sono fortemente dipendenti dagli eventi che arrivano dalla tastiera. Si usa un modello ad eventi, perché se ad esempio ci troviamo in una situazione di schermo, in tale situazione, sullo schermo potrebbero esserci più finestre: quindi quando in realtà tocchiamo il mouse in una posizione si manda un evento a tutti i gestori delle finestre che si trovano in quella posizione: è un modello uno-a-molti, pertanto si mandano gli eventi in modo pervasivo! In generale una delle cose sempre presenti nelle architetture Microsoft: se una entità è in grado di eseguire, ha tipicamente una coda di eventi, ossia una coda di messaggi che deve processare (se attivato) diretti verso di lui e che vengono generati per varie ragioni (per IN/OUT, dall'utente, ecc), coda che deve gestire bene. NOTA: nelle prime architetture le cose erano un po' più complicate perché c'era un unica coda per tutti i processi Stefano Di Monte

4 10 In realtà Microsoft non ha inventato gli eventi, ma gli ha usati in modo originale, ossia in maniera molto pervasiva SOLO a livello locale (si ricordi che il modello ad eventi è in generale un modello che può essere implementato su molti nodi). In particolare le prime architetture implementavano gli eventi con i DDE, ossia le code degli eventi per le varie attività, e funzionavano malissimo: il comportamento, ad esempio, non era fail-safe. 11 Per quanto riguarda i messaggi ne abbiam già parlato... <<Cosa sono le Windows procedure?>> Poniamoci a livello applicativo... A questo punto supponiamo di essere un processo che deve gestire una finestra: l'utente ha scritto dei dati su questa finestra ed io devo andarli a leggere. A basso livello, quando qualcuno focalizza tale finestra io vengo attivato, ovvero un messaggio arriva sulla mia coda. C'è però anche un problema di gestione di più alto livello: cioè quando vengo attivato devo aver prima specificato a qualcuno cosa fare quando qualcuno ha scritto certi dati che io devo trattare. Chiaramente il trattamento di questi dati è a vari livelli, ad esempio, il ridimensionamento delle finestre vien fatto dal s.o. non dall'utente (ed è bene che tutte le finestre ereditano questa funzione), mentre alcune situazioni devono essere gestite esplicitamente dall'applicazione. <<Come fa a dividere la parte di s.o. da quella gestita dall'applicazione?>> Tipicamente, Microsoft suggeriva all'utente di scrivere dei componenti, ossia delle funzioncine, che chiamava callback, che rappresentavano il codice da eseguire quando la finestra era stimolata da un qualche comportamento applicativo. A questo punto, quindi, la funzione di callback veniva automaticamente messa in esecuzione dal s.o. così come fosse una funzione di sistema (ad esempio, una funzione di ridimensionamento di una finestra, ecc). L'utente quindi inseriva, con l'aiuto di qualche wizard, delle sue parti di logica per gestire certe situazioni specifiche. Pertanto, la Windows Procedure, era in realtà un insieme di funzioni di gestione, specificate una volta per tutte dall'utente che poi in seguito avrebbe potuto disinteressarsi del tutto, e che il sistema operativo poteva chiamare, dal basso, su bisogno! NOTA: una windows procedure eventualmente, per ogni programma corrispondente. Pertanto, qui la cosa è molto più flessibile di un c/s ma più complessa. 12 La figura qui presente, dice semplicemente, che io mi mettevo in attesa di un evento, e quando questo arrivava, venivo così segnalato da qualcuno che stava di sotto, per tale motivo upcall (push del framework), che si era verificato l'evento corrispondente tramite messaggio. Reti di Calcolatori LM 203

5 13 Microsoft è, non solo sul mercato dei s.o. per piccoli sistemi con un modello architetturale, ma anche sul mercato applicativo, quindi tende a fornire una serie di applicazioni (come office, ) integrati più o meno tra di loro. Sicuramente, Microsoft tende a fornire un modello molto preciso per componenti, e con questi si intende degli aggregati capaci di eseguire cose che tipicamente tendono a dipendere in maniera molto forte da un container, quindi un gestore che gli contiene e che li descrive OLE Questa definizione, è volutamente fumosa, perché quando si parla di Microsoft si parla di un modello di interazione (spesso invisibile all'occhio dell'utente finale) che è sicuramente originale. Stiamo parlando di Object Linking Embedding (OLE)! IMPORTANTE: in Microsoft si parla spesso di Object, in realtà l'architettura Microsoft non è un architettura ad oggetti perché non c'è un idea di oggetti e classi! Sicuramente però c'è l'idea di dire che si è ad oggetti... Le OLE sono un idea molto precisa di avere (almeno inizialmente) dei documenti che possono essere letti e capiti da contenitori diversi; per contenitori diversi si intende, ad esempio un documento potrebbe essere il contenuto di un word processor che ne fa quindi da contenitore; a sua volta però, nel documento in questione ci potrebbe essere del contenuto che invece serve per fare delle presentazioni, quindi che in parte è powerpoint, e tale parte deve afferire ad un contenitore powerpoint (esempio nella figura seguente) (e si può continuare dicendo che all'interno di questa ci potrebbe essere un altra sotto-parte che deve afferire ad un contenitore diverso ecc ecc): c'è un idea molto forte di interoperabilità! 204 Stefano Di Monte

6 Ognuna delle parti di un documento, se diverse in termini di contenitore al quale ascrivono, deve pertanto essere gestita dal rispettivo contenitore di afferenza: integrazione dinamica di una serie di contenitori! In particolare, però, e lo si capisce dal nome stesso delle Object Linking Embedding, ciò che è all'interno del documento e che ascrive ad un contenitore esterno: può puntare a questo contenitore esterno (linking) oppure è contenuto (embedded) all'interno del contenitore di appartenenza (ad esempio un documento powerpoint che ha al suo interno, quindi privato e non visibile all'esterno, la parte di word). 16 Le OLE sono un ottima soluzione, ma sicuramente ce ne sono state altre di implementazioni... Assomiglia un po' ad una specie di dll, perché vista da più programmi GUID Quando lavoriamo con un architettura Microsoft lavoriamo con una serie di entità, in particolare: -) entità di kernel -) processi -) spazi condivisi -) code -) entità applicative L'idea è molto adatta per fare della distribuzione; tipicamente, tutti gli oggetti interessati hanno un nome unico, e la scelta va verso quello che viene chiamata Globally Unique IDentifier (GUID), che è un nome da 16 byte (128 bit) in cui mettiamo una serie di configurazioni assolutamente uniche per identificare quel componente. La scelta dei GUID è una scelta dei primi anni '80, e tipicamente l'unicità viene ottenuta con il nome di una certa macchina e poi un timestamp relativo a quella macchina (per macchina si intende la macchina di creazione di quell'oggetto), e lavorare con questi GUID garantisce che si è in grado di dare dei nomi unici a tutte le entità di cui si ha bisogno, ad esempio classi ed interfacce. La scelta dei nomi unici non è interna a Microsoft, ma usa uno standard della OSF (Open Software Foundation), ossia usa lo stesso standard pensato da quest'ultimo per RPC di DCE (le UUID -Universally Unique ID-). 18 Su ciò, comincia quindi a farsi strada un esigenza molto forte di standardizzazione, in particolare quando i processi cominciano ad essere presenti e facili da manovrare all'interno di un sistema operativo, nasce un problema molto forte di interazione e ovviamente, di integrazione tra i processi stessi. Reti di Calcolatori LM 205

7 In casa Microsoft, tutto ciò prende il nome di Component Object Model (COM) (che poi diventerà abbastanza aperta come standard e non come implementazione). L'idea di COM è di avere dei componenti diversi, che si possono offrirsi reciprocamente dei servizi; lo standard COM definisce quindi, come questi servizi possono essere offerti tra i componenti, e lo fa organizzando una relazione cliente/servitore. Quindi di sotto ci sono gli eventi e ci sono le dll, ma di sopra si mostra un meccanismo di comunicazione c/s sincrono bloccante indipendentemente dal linguaggio in cui è scritto il cliente e dal linguaggio con cui è scritto il servitore. COM è un architettura proprietaria ma non legata ad un linguaggio, pertanto è multi-linguaggio! NOTA: così facendo siamo molto più vicini ai middleware. 19 Di base, COM utilizza nel distribuito le RPC standard (molto simili a quelle di SUN): meccanismo c/s standard. Tale affermazione potrebbe assomigliare all'idea di CORBA che dice che in qualunque istante ed in qualunque linguaggio, un cliente può invocare qualsiasi servitore, usando stub e skeleton, indipendentemente dal nodo sul quale essi si trovino; in realtà CORBA finisce qua...in Microsoft invece si dice che le cose vengono, se possibile, ottimizzate per dove sono al momento residenti, ossia, se la comunicazione è: realmente distribuita allora si useranno delle RPC vere sullo stesso nodo, quindi tra processi che sono sullo stesso nodo, allora la performance della comunicazione viene ottimizzata (modello ad eventi). Punto di vista più ottimizzato ma sicuramente più complesso! 20 In realtà dietro a COM, c'è, come si suol dire, il modello di COM. Quest'ultimo è un modello che è, in sostanza il modello di Microsoft per come sono fatte le applicazioni. Il modello di COM viene usato da tutte le cose che mettiamo in gioco, in modo molto pervasivo, ed è anche assolutamente compatibile con il meccanismo delle dll: Microsoft cerca di integrare in COM tutta la sua filosofia e tutti i suoi modi di lavoro. 21 In generale in Microsoft ci sono sicuramente delle interfacce: e qualunque servizio che può essere richiesto da qualcuno deve avere un interfaccia, che avrà un suo nome UNICO, e che per poter essere richiesta deve essere disponibile, e per far ciò deve essere presente un qualche server che la metta a disposizione. L'interfaccia più famosa è l'interfaccia che si chiama IUnknow: è l'interfaccia delle interfacce! Quest'ultima è fondamentale perché tutte le interfacce derivano da questa. In generale un oggetto di Microsoft non è un oggetto ma è un componente, nel senso che non ha una classe ma è inteso come un prototipo, è inteso nel senso che ha delle possibilità da offrire ad altri, e 206 Stefano Di Monte

8 tipicamente le sue offerte sono realizzate tramite interfacce. Le sue interfacce normalmente sono organizzate in una serie di interfacce diverse associate al componente tramite una tabella che le mette insieme. In sostanza quando si fa un componente di Microsoft, vuol dire che posso produrre un qualche cosa da mettere in esecuzione, e quando metto in esecuzione, le interfacce di tale componente sono tutte messe insieme in una Virtual Method Table (VMT). La VMT rappresenta quindi l'insieme delle interfacce di servizio di un certo oggetto che è quindi qualificato in termini delle cose che può offrire attraverso le sue interfacce. Un interfaccia per Microsoft, è una sequenza di slot, è standardizzata e capita da tutti, con il suo ID a 128 bit, con dei metodi che hanno un certo nome, e che in realtà sono dei puntatori al codice dei metodi stessi. Pertanto, se quest'interfaccia è IUnknow, questa sarà fatta di tre slot: il primo slot è il puntatore che dice dove sta il codice della QueryInterface il secondo slot è un puntatore che dice dove sta il codice della AddRef il terzo slot dice dove sta il codice della Release. Se avessi un interfaccia con 10 metodi fatta da noi, avrei da qualche parte nella VMT del mio componente, un interfaccia che ha 10 slot, numerati da 0 a 9 e con il primo slot come puntatore al primo metodo, il secondo slot come puntatore al secondo metodo e così via... In realtà il componente ha un suo front-end che è la VMT, che è un insieme di interfacce, tutte identificate da degli ID assolutamente unici; conoscendo le interfacce è possibile conoscere come sono fatti i metodi e sappiamo che se volessi, per esempio nel caso di IUnknow, chiedere AddRef dovrei fare un +1 rispetto all'indirizzo iniziale (+2 per la Release). Si raccontano tutti questi dettagli implementativi perché l'utente è fortemente coinvolto in quest'ultimi: spesso sono visibili e quindi bisogna conoscerli! Difatti quando otteniamo un riferimento all'oggetto, il riferimento all'oggetto non è un entità opaca ma in realtà è un entità visibile, che va a finire sulla VMT: l'equivalente dell' Obj Ref di CORBA, qui in Microsoft è un puntatore alla VMT, e se io volessi riferire uno specifico metodo bisogna che io vada a riferirlo nella sua specifica posizione. La causa di tutto questo eccesso è data dal fatto che questa è una struttura astratta modellata sulle tabelle dinamiche di C++: deriva conseguentemente dal supporto di questa architettura. Il vantaggio di questa indirettezza è che è possibile cambiare il codice dei metodi semplicemente cambiando i puntatori, e quindi non c'è un legame statico con il codice. 22 Reti di Calcolatori LM 207

9 In generale i componenti COM implementano molte interfacce e non una sola come in CORBA! Piccola considerazione di dettaglio: Supponiamo due componenti diversi con eventualmente due VMT differenti, e supponiamo che entrambi abbiano l'interfaccia I4, però è evidente che, dato che i componenti sono diversi e che ogni componente decide le sue interfacce, quello che succede in questo caso è che la posizione nelle VMT dell'oggetto A dell'interfaccia I4 potrebbe essere diversa dell'interfaccia I4 di un altro componente (vedi figura seguente). Non possiamo quindi pensare di derivare staticamente una conoscenza della posizione dell'interfaccia perché ogni singolo componente ha il suo modo di dichiarare le interfacce, in un ordine diverso, e quindi a questo punto ogni VMT ha una storia a sé, e l'ordine, quindi, con cui le interfacce si susseguono in queste è assolutamente dipendente dal componente. Devo cercare di preparare un qualche cosa che mi consenta di recuperare, indipendentemente dalla posizione, ad esempio, il secondo metodo dell' interfaccia I4... RICORDA: c'è ereditarietà tra le interfacce! 23 Registry E' un piccolo database di configurazione presente su tutte le macchine Microsoft; è quell'entità locale in cui vengono spalmate una serie di informazioni sulla configurazione delle installazioni correnti. Tipicamente il registry, un main system locale molto primitivo (definito primi anni '80), contiene tutte le UUID dei componenti windows attraverso le quali è possibile sapere la posizione corrente di questi all'interno del file system corrente. Le architetture COM hanno bisogno di un registry, perché tutte le volte che un server o un componente dev'essere attivato, tipicamente si va sul registry tramite l' UUID, quel numerino unico, per trovare la posizione nel file system del componente corrispondente. Ovviamente, quando si cerca un qualunque componente, ci si aspetta di trovarlo sempre nel registry che normalmente è solo un repository assolutamente locale, non ha quindi nessuna capacità, a livello di principio, di trovare le cose in altre macchine. Tornando al discorso delle interfacce: L'interfaccia fondamentale è l'interfaccia IUnknow, che è fatta di tre metodi: QueryInterafce, AddRef, Release. In generale ogni singolo componente ha la IUnknow come prima interfaccia: i componenti COM sono assolutamente forzati nella prima interfaccia disponibile che deve essere quella fondamentale, ossia la IUnknow. 208 Stefano Di Monte

10 24 Il primo metodo dell'interfaccia IUnknow si chiama QueryInterface, il quale è espresso in un linguaggio che è l' IDL di Microsoft, ed il funzionamento è il seguente: io entro con un UUID che rappresenta l'interfaccia che mi interessa (il mio input); dopodiché attraverso la QueryInterface si chiede per l'appunto se un componente implementa un interfaccia o meno (utilizzando l' UUID prima citato): se l'implementa il risultato sarà un successo, ed in particolare mi viene dato come parametro d'uscita un puntatore al codice che mi interessa, ossia l'indirizzo di inizio dell'interfaccia di interesse, attraverso il quale posso finalmente richiederne il metodo avendo la posizione di base (quindi se mi dovesse interessare il metodo 2 spiazzerò di due rispetto all'indirizzo di base). NOTA: non solo in questo ambiente si lavora in questo modo, l'unica differenza è che qui l'utente è al corrente di come funziona il tutto: l'utente vede questi riferimenti, vede l'invocazione della QueryInterface. Gli altri due metodi (AddRef e Release) sono metodi relativi al reference counting, in particolar modo: -) AddRef consente di aggiungere un riferimento ad un oggetto: viene incrementato il contatore di reference counting -) Release consente di togliere un riferimento ad un oggetto: decrementa il contatore di reference counting. Queste tre sono viste come funzioni fondamentali! 25 Tutti gli oggetti COM devono, ad alto livello, avere questo tipo di cosa! La scelta di Microsoft è una scelta molto esplicita, in quanto lascia tutta la gestione dinamica sotto la responsabilità dell'applicazione: in sostanza, quando l'utente ha bisogno di un componente, deve, come prima cosa, andare ad incrementare il suo reference count, in modo tale che quel componente sia segnalato in memoria come acceduto, e naturalmente, è compito dell'utente stesso, successivamente, nel momento in cui non ne abbia più bisogno, fare una Release (decrementando il contatore prima citato). Si noti che questo modo di lavorare non è semplicissimo: se io passo un riferimento ad un altro oggetto, io prima di passarlo, o quando lui lo riceve, devo incrementare il reference count! Tutto è lasciato al piano di sopra, quindi all'utenza, non in modo automatico come succede con un garbage collector (il quale automaticamente butta via gli oggetti non più riferiti). Lo svantaggio di un garbage collector è che quando esegue in contemporanea con l'esecuzione normale, appesantisce di molto il tutto con probabile conseguente blocco di quest'ultima e presenza di tempi di risposta elevati, aumento della latenza ecc ecc. Col reference counting tutto questo non esiste, perché è l'utente stesso che dice in ogni momento se un componente gli serve o meno, e la liberazione della memoria avviene solamente quando egli fa un'azione (Release): se Release e poi count=0 allora l'oggetto viene eliminato. Reti di Calcolatori LM 209

11 Naturalmente se l'utente non fa le release gli oggetti rimangono lì inutilizzati impegnando risorse inutilmente. 26 C'è ereditarietà tra le interfacce di Microsoft (e non delle implementazioni), e queste sono tutte interfacce che, in termini di terminologia, hanno tutte come lettera iniziale una I e poi il nome dell'interfaccia. Come già detto, l'interfaccia di base è l'interfaccia IUnknow e da questa derivano tutte le interfacce successive dei componenti. 27 Il punto di vista di Microsoft va nel senso opposto delle classi: per l'appunto non classi, ma oggetti che sono prototipi a sé stanti; quindi, in COM non si hanno le descrizioni uniche di ogni componente perché ogni singolo componente ha un suo comportamento diverso: non c'è l'idea di una classe a cui spediamo tutta una serie di componenti ma c'è maggior libertà. Gli ambienti che adottavano questo stesso punto di vista, non vedevano di buon occhio l'ereditarietà delle classi perché sostenevano che quest'ultima, è una sorta di deroga al principio di astrazione: quando creo una classe e da questa creo degli oggetti, se poi in seguito faccio ereditare da questa classe un'altra classe, è come se mostrassi il comportamento della classe precedente alla classe successiva perché effettivamente incorpora tutta la struttura delle precedenti. Questo modo di lavorare era visto un grosso problema in termini di rompere il principio di astrazione: in sostanza una classe derivata incorporava il comportamento della classe per così dire madre; c'era quindi tutto un filone di proposte che andava nel senso di non avere ereditarietà fra classi. Sicuramente però COM è un ottimo esempio di una strutturazione di ambiente a componenti (quindi più su di un linguaggio) che si basa su questo: ci sono delle interfacce, le quali sono in ereditarietà, ma non si parla di ereditarietà di codice! Si parla di ereditarietà di interfaccia! Ogni singolo componente poi dovrà dire quali sono i pezzi di codice per i suoi metodi: riempire la VMT mettendo per ogni entry il puntatore al codice corrispondente è un compito tipico del singolo componente, non c'è quindi una classe che guida questo mappaggio! Pertanto se avessimo due componenti con la stessa struttura di VMT, uno dei due potrebbe puntatore al codice Pippo, per l'interfaccia I4, e l'altro potrebbe puntare al codice Pluto, proprio perché ogni componente ha la responsabilità di scegliere il codice di gestione dei propri metodi: ogni componente è un prototipo a sé stante. Tutto ciò lascia molta libertà, ma ovviamente rende difficile questo settaggio e soprattutto ha un ventaglio di decisioni... In contemporanea, accanto all'idea di ereditarietà, nei sistemi che venivano chiamati delegati, in cui cioè si lavorava a prototipi c'erano due forme di supporto per il riuso, assolutamente non pensate per l'ereditarietà Pertanto, COM è basato su due modelli: Contenimento/Delegazione prescrive e rende possibile che, un componente COM possa avere al suo interno altri componenti, i quali sono suoi privati. Tali componenti sono al suo interno perché l'oggetto che fa da front-end ha una certa tabella VMT, e siccome non vuole implementare alcune interfacce ma le vuole delegare, 210 Stefano Di Monte

12 queste interfacce (che potrebbero essere due come raffigurato nella figura seguente) sono pertanto delegate a due oggetti interni, i quali quindi, sono contenuti nell'oggetto esterno e a questo punto sono un insieme unico che costituisce l'oggetto e fornisce i metodi di quell'oggetto. NOTA: nei sistemi ad oggetti (ad esempio Java) non c'è mai quest'idea di contenimento di oggetti: avere un modello del genere renderebbe complessa la struttura. Aggregazione un oggetto implementa al proprio interno non tutti i metodi di cui ha bisogno, e lascia alcune interfacce, quindi alcuni metodi, che saranno implementati da altri componenti esterni che sono considerati aggregati con lui. In questo caso, l'oggetto esterno non fa neanche da passacarte, ma delega in modo forte una parte della sua interfaccia a più oggetti; quindi potrebbe succedere che quando si crea un oggetto esterno, non creo anche gli altri oggetti che potrei invece creare su bisogno o addirittura potrebbe essere che una parte dell'interfaccia dell'oggetto esterno venga gestita dagli oggetti I1 e I2 (vedi figura seguente) senza attivare tutto il resto. Quindi l'aggregazione è una strutturazione un po' più dinamica (sottolineata maggiormente nelle architettura di seconda generazione). Riassumendo, stiamo trattando modelli in cui non vi è ereditarietà ma in cui vi sono tutta una serie di meccanismi che sono visibili direttamente dall'utente. NOTA: COM è un modello senza classi! 31 COM comincia a far vedere una serie di altre entità in gioco: non abbiamo classi ma abbiamo qualcuno che deve occuparsi di gestire gli oggetti, di attivarli, di garantire che siano visibili ecc ecc. In sostanza si devono avere delle factory! In generale, quello che succede è che se c'è un esigenza di creazione, c'è un interfaccia che si chiama FACTORY che consente di avere e determinare in modo standard una serie di funzionalità che sono necessarie per lavorare in modo corretto ed avere qualcuno che sia in grado di creare, ma soprattutto gestire, tutti gli oggetti di cui ce n'è bisogno e i cui servizi possono essere richiesti. Pertanto esiste un interfaccia che si chiama IclassFactory che stabilisce per l'appunto come si devono comportare le factory. NOTA: Le factory non sono oggetti che consentono di generare solo oggetti di un certo tipo, ma consentono di gestire una molteplicità di oggetti (il concetto di classe qui non è proposto per niente). Quindi ci potrebbero essere un po' di factory (ma anche una), in un nodo, in un sistema, per garantire di gestire gli oggetti di cui abbiamo bisogno. Inoltre la gestione non è a carico del cliente, quindi se un cliente chiede ad una factory una certa Reti di Calcolatori LM 211

13 interfaccia, se esiste già un oggetto per quell'interfaccia, non avviene nessuna creazione; si nota quindi che una factory non deve sempre creare degli oggetti se gli oggetti esistano già (c'è una forte idea di condivisione). Ovviamente, la factory può lavorare solamente con ciò che conosce! 32 Per quanto riguarda l'interfaccia IClassFctory, il suo metodo fondamentale è la CreateInstance, che come già detto non è una create vera e propria, in quanto se gli venisse chiesto di creare un oggetto già esistente non andrebbe a crearlo realmente ma passerebbe al cliente che ha fatto la richiesta, il puntatore a tale oggetto; se invece l'oggetto richiesto non esistesse verrebbe creato ex-novo. Pertanto la IClassFctory è composta da due metodi: CreateInstance: che prende in ingresso un indicazione di una GUID che è il riferimento all'interfaccia che ci interessa dice un po' di specificità circa il poutercomponent, nel caso in cui l'oggetto fosse nell'ambito di un altro oggetto un parametro di output che rappresenta un puntatore all'oggetto che ci interessa Pertanto se le cose vanno bene otteniamo in quest'ultimo il riferimento alla VMT, in quanto gli oggetti sono ottenuti tramite proprio il riferimento alla VMT, ed in particolare in quest'ultimo l'interfaccia che stiamo chiedendo in un certo istante. LookServer: è una specificità dell'interfaccia delle factory che consente alle factory stesse di stare in memoria anche se non fossero riferite, quindi anche se il reference counting arrivasse a zero. In particolare: 33 Con IClassFctory2, Microsoft, prevede che, prima di creare un oggetto e metterlo a disposizione del cliente, bisogna che quest'ultimo sia possessore della licenza corretta per l'oggetto; pertanto in questa versione denominata IClassFctory2 vi è un metodo che si chiama RequestLicKey. 34 Dato che le cose sono abbastanza complicate, tipicamente vengono racchiuse in una serie di API, 212 Stefano Di Monte

14 quindi chi vuole partecipare ad una sessione COM deve all'inizio fare una BUILD per ottenere effettivamente i servizi, deve fare una INITIALIZE del COMObj con la quale si inizializza il sistema per entrare nel sistema stesso (d'altra parte farà una UNIINITIALIZE per scaricarmi dal supporto COM e rilasciare tutte le risorse), e poi, in generale, per evitare di dover conoscere tutti i dettagli (andare dalla factory, chiedere il riferimento ad un interfaccia e poi usarlo), esiste un unica funzione utilizzata tipicamente per quei clienti che vogliono attivare un oggetto, ossia la CoCreateInstance, con la quale si nasconde quindi il passaggio esplicito attraverso la factory. Quest'ultima è stata sempre molto usata! <<Come si fa a capire se l'oggetto che stiamo richiedendo è già attivo o meno?>> Tipicamente, questa funzione va, se lavoriamo a livello locale, sul registry in cui sono registrate tutte le UUID dei servitori disponibili, nel caso in cui il servitore sia da attivare allora ritroviamo il path attraverso il quale attivare il programma corrispondente: tutto ciò fortunatamente è nascosto da un po' di funzioni. IMPORTANTE: In realtà, le cose dette non sono tutte vere: la CoCreateInstance funziona in modo generale: può lavorare sia in locale che in remoto, usando, in particolare, l'informazione di contesto presente nei suoi parametri, per cercare l'informazione richiesta su un altro nodo diverso da quello locale! RICORDA: La gestione COM è una gestione complicata! 35 L'ObjRef, il riferimento all'oggetto, è in Microsoft un entità assolutamente non persistente e non permanente: è un' entità che ha senso solo per l'esecuzione corrente, non si può salvare perché in effetti è un riferimento assolutamente a run-time e non è fatto per essere salvato ed essere eventualmente riutilizzato in altre sessioni. La differenza con CORBA quindi sta nel fatto che se abbiamo un riferimento ad un oggetto e lo abbiamo salvato in una stringa, ciò vuol dire che il contratto c'è ed è un contratto permanente, in COM no: se un applicazione ha bisogno di riferimenti ad oggetti se li deve creare tutti. Tutto ciò è abbastanza pervasivo: tutti i riferimenti, ObjRef per CORBA, o come si chiamano in Microsoft, ObjectPtr non sono persistenti! In sostanza ogni applicazione, quando è il caso, deve creare i propri oggetti, e su questi creare gli ObjRef ossia gli ObjectPtr. Tutto ciò è piuttosto pesante e limitante dal punto di vista dell'operatività: molto spesso gli oggetti di Microsoft richiedono tutta una serie di altri oggetti delegati, contenuti, insomma abbastanza complessi; pertanto avere un ObjPtr da solo potrebbe non essere sufficiente perché potrebbe essere collegato ad una serie di altri ObjPtr che fanno parte, magari, di una grafo di oggetti delegati ed aggregati e dei quali ne ho bisogno per far funzionare bene le cose! Quindi per un povero gestore il tutto diventa abbastanza complesso perché deve avere conoscenza di tutte queste catene, grafi degli oggetti corrispondenti Reti di Calcolatori LM 213

15 Microsoft comincia quindi ad introdurre degli oggetti che dovrebbero nascondere alcuni problemi, ad esempio definisce delle nuove entità: i Moniker. Supponiamo di dover avere un grafo di oggetti complesso, ovviamente ciò che dovrebbe fare il bravo programmatore/gestore è attivare gli oggetti uno dopo l'altro, magari partendo da quelli contenuti (se ci sono); ovviamente quindi, chiunque deve attivare ed usare un oggetto di questo tipo, deve attivare tutto il grafo: cosa piuttosto complessa! Ed è qui che entrano in gioco i Moniker: se si riuscisse difatti, a far entrare le specifiche del grafo di oggetti in uno di questi moniker, e se fosse possibile che sia proprio il moniker a pensare all'attivazione dell'intero grafo di oggetti, il tutto si semplificherebbe di tanto, perché nasconderebbe la natura degli oggetti! Ed è proprio ciò che avviene! Difatti i moniker sono degli oggetti che possono diventare persistenti, quindi salvabili su disco, e che quando invocati sono capaci di attivare tutti gli oggetti complessi che possono portare all'esistenza necessaria di un entità che stiamo riferendo. Ad esempio, si potrebbe avere un Item Moniker, ossia un moniker capace di attivare tutti gli oggetti che hanno l'interfaccia di cui ce n'è bisogno per avere un grafo complesso, oppure File Moniker, o anche un URL Moniker ecc ecc (vedi tabella sottostante). NOTA: i moniker rappresentano una parte importante del sistema di nomi, e vennero introdotti perché altrimenti la programmazione in COM sarebbe diventata ingestibile e la fascia di competenza si sarebbe ristretta (difatti vengono un po' dopo...). 38 Tornando al filone principale, ossia alla parte di comunicazione... Come già detto: COM è un standard multi-linguaggio che consente ad un oggetto-cliente di richiedere funzionalità che un oggetto-servitore può fornire, tramite un riferimento all'oggetto. Ciò che consente di fare COM, è usare il servitore più adatto per l'interfaccia e quindi il servizio che sto chiedendo, e naturalmente voglio avere la stessa interfaccia in qualsiasi modo stia lavorando, sia se lavoro in remoto piuttosto che in locale, sia in modo non ottimizzato che ottimizzato. In sostanza quindi, il meccanismo di accesso con un ObjPtr ad un oggetto remoto o no, è lo stesso e mi nasconde il tipo di server utilizzato. In particolare esistono tre modelli di server differenti: 214 Stefano Di Monte

16 1. In-process server é uno schema in cui, in generale, l'obiettivo finale è quello di lavorare con le DLL. Si lavora in-process, quindi nell'ambito del processo stesso, proprio perché è il processo del cliente che incorpora la DLL. Out-of-process server: 2. Local server in tal caso, si ha un processo servitore sulla stessa macchina del richiedente, al quale si effettuano le richieste. Lavorare in tal modo, ovviamente si assume che l'architettura sia la stessa, quindi alcune funzionalità che, tipicamente in remoto dovrebbe implementare, ad esempio in modo molto separato, in questo contesto possono essere chiaramente abbreviate (ad esempio, se avessi dei parametri, questi potrebbero esser messi in memoria e così, sia il cliente che il servitore potrebbero vederli). 3. Remote server il servitore è situato su di un altra macchina, pertanto vi è un nodo cliente ed un nodo servitore. In generale, COM nasconde tutto ciò! Resta comunque che COM ottimizza la comunicazione in base a quale dei tre contesti si stia facendo riferimento (in CORBA questa ottimizzazione non c'è). In generale, e ciò vale per tutti e tre i casi, se l'oggetto servitore (DLL o remoto che sia) non fosse attivo, starebbe alla factory attivare il server corrispondente per ottenere l'effetto di richiesta e ottenimento del risultato della richiesta. 39 Per quanto riguarda la modalità in-process server: Ovviamente le DLL sono tutte descritte da un interfaccia che consente di gestire le DLL al meglio. In sostanza ogni qual volta che si dovrà lavorare con una DLL, la factory attiverà la DLL corrispondente se non c'è già attivata, altrimenti avremo direttamente il puntatore al suo codice. IMPORTANTE: imparare a memoria le funzioni standard delle DLL!!!!! (vedi slide). Reti di Calcolatori LM 215

17 40 In generale chi nasconde le DLL è una specie di contenitore che si chiama COMOBJ, una specie di oggetto che realizza COM, il quale si prende quindi la CoCreateInstance per le cose locali, va sulla factory, crea la DLL se non c'è, altrimenti se c'è già mi dirige sulla DLL che c'è già, ed a questo punto mi nasconde il riferimento che poi andrò a prendere. Tutte queste funzioni di supporto sono fondamentali, pertanto l'utente doveva conoscere bene la CoCreateInstance e le funzionalità di COMOBJ che sono simili in sostanza alla CoCreateInstance, per ottenere l'effetto voluto. 41 La figura qui presente dice ciò che abbiamo appena detto, circa le DLL, quindi quando si lavora in locale: io voglio ottenere una certa interfaccia, e tale interfaccia viene trovata localmente nel registry, in cui è registrata ed è associata ad una DLL, a questo punto, capito che è una DLL, vi è in sostanza una factory per le DLL, quindi viene attivata o cercata (se già attiva) tale DLL, che infine verrà riferita. 42 Per quanto riguarda le chiamate local e remote server: Quando si lavora tra processi invece, si avrà pertanto un processo cliente ed un processo servitore. Supponendo che il servitore esista, tralasciando quindi chi lo ha attivato, lavorando a questo modo, l'interazione tra i due non è diretta ma è mediata da due entità, una dalla parte del cliente (proxy) e l'altra dalla parte del servitore (stub). Quindi dalla parte del cliente ogni qual volta che vogliamo effettuare un'interazione che non è inprocess abbiam bisogno di un proxy, così come dalla parte del servitore Abbiamo bisogno di uno stub; queste due entità intermedie sono generate staticamente! Chiaramente, se un server ha 100 interfacce ha anche 100 stub, così come se un cliente deve 216 Stefano Di Monte

18 richiedere 100 interfacce dovrà avere anche 100 proxy! E dato che i componenti di COM sono multi-interfaccia, tipicamente devono gestire molte richieste e generare molti servizi. Naturalmente si parla sempre di sistema multi-linguaggio pertanto il proxy del cliente e lo stub del servitore possono essere stati prodotti in linguaggi differenti. 43 Microsoft definisce un linguaggio IDL che prende il nome di Microsoft IDL (MIDL). In realtà, quello che è stato scelto da Microsoft è usare un IDL già esistente, che rappresenta un architettura molto vicina a Microsoft, ma standard aperta ed è la DCE della OSF, e che definisce come si possono descrivere i servizi (solo questi!, quindi in realtà è un IDL che consente di definire solo delle firme di metodi). Il vantaggio di MIDL è che è compatibile con tutti i processi OLE di Microsoft perché incorpora un meccanismo precedente, ossia ODL (Object Definition Lenguage)! 44 La generazione dei proxy e degli stub rappresentava un collo di bottiglia, in quanto il sistema, con la generazione di molti proxy/stub diventava sempre più stretto in termini di memoria, di occupazione della memoria e sua gestione, ecc ecc. 45 Microsoft ha un processo molto virtuoso nella comunicazione. In sostanza, se ci fosse un servizio locale, quindi una DLL, useremmo questo, altrimenti in seconda battuta andiamo a cercare un processo locale che richiede una comunicazione locale, infine se neanche questo fosse presente, ricorreremmo a qualcosa situato su di una altro nodo. In generale, quando lavoriamo con un altro processo, tipicamente la comunicazione è mediata non solo da un proxy e da uno stub, bensì, in mezzo a questi due, anche da dei canali con RPC. Quindi la comunicazione è gestita in modo sincrono con RPC! A tal punto, quando siamo in situazioni molto remote, l' RPC appena menzionato è un reale RPC, quando invece ci troviamo a comunicare sullo stesso nodo, ciò che è stato scelto è utilizzare delle RPC ottimizzate. 46 In generale, lavorando con processi diversi locali e remoti, quindi lavorando out-of-process, abbiamo sicuramente dei proxy e degli stub ma abbiamo altresì uno strumento opportuno che garantisce che tutta la disomogeneità venga gestita bene. Per ogni singolo nodo, esiste un entità che si chiama Service Control Manager (SCM) che si occupa di capire com'è il servitore, ed in base a questo di dirigere opportunamente i meccanismi di comunicazione verso le entità correte. Si noti bene che tale SCM fa in sostanza da middleware! Reti di Calcolatori LM 217

19 L'SCM è lui stesso che capisce se ci troviamo a comunicare sullo stesso nodo con un altro processo, oppure se ci troviamo a comunicare con un server residente su di un altro nodo. 47 Se lavoriamo in remoto lavoriamo a tutti gli effetti con delle RPC assolutamente standard, difatti si tratta delle RPC di DCE. Il vantaggio nell' avere un architettura standard stava nel fatto di essere in grado di gestire la sicurezza (come si vede nella figura della slide presente), effettivamente già integrata, In questo caso il proxy e lo stub dovevano essere ben presenti perché consentivano di passare dalla rappresentazione del cliente, che era in un certo ambiente di linguaggio e in una certa architettura, alla rappresentazione del server magari in un altro ambiente di linguaggio e con un altra architettura, con un conseguente trasferimento dei parametri tipicamente per valore. Riassumendo: Quindi di sotto v' è un architettura molto molto primitiva, complessa, flessibile... mentre verso l'applicazione, quindi nella comunicazione si è molto molto disciplinati: il cliente è sincrono bloccante: fa la richiesta ed ottiene una risposta. 48 Se si lavora in locale, ma sempre out-of-process, abbiam detto che si lavora con delle RPC ottimizzate, e tale meccanismo viene chiamato light RPC che sono per l'appunto in grado di fare dei trasferimenti in modo ottimizzato: in sostanza queste costano un ordine di grandezza di meno 218 Stefano Di Monte

20 rispetto alle RPC. 49 Siamo nei primi anni '90-'95, ed un grosso problema di Microsoft è il registry, che rappresenta il repository locale delle interfacce. <<Se io volessi pertanto, lavorare in remoto, come può essere possibile attivare, con la CoCreateInstance, un qualche cosa che è dall'altra parte?>> Anche perché non saprei tanto meno a che nodo rivolgermi per andare ad attivare un oggetto di cui ne ho bisogno ed eventualmente trovare l'entità corrispondente... Il sistema di nomi, il registry, è un sistema di nomi solo locale...in cui i cammini presenti sono solo dei path locali... Ed anche se i meccanismi li ho, perché i vari SCM possono tra loro coordinarsi, <<come fa un utente a dire che non vuole qualcosa di locale? O nel caso in cui non ci sia in locale, come può attivarlo da qualche altra parte?>> Microsoft, tradizionalmente introduce una sua soluzione di sistema di nomi globale che si chiama ActiveDirectory (AD, uno strumento indipendente da COM). L'AD è un sistema di nomi globale quindi, che consente di registrare una serie di entità, la loro locazione, ed eventualmente di trovare gli oggetti corrispondenti. Un' altro grosso problema per Microsoft è che l'architettura COM prevede la presenza di un sacco di proxy e stub generati staticamente prima di attivare un componente specifico! NOTA:Pertanto COM risulta essere ambientato in uno scenario estremamente complesso da capire, con un impedenza d'accesso molto elevata, ma anche uno strumento complesso da gestire perché contenente un sacco di entità!! NOTA: Non si dice la stessa cosa di CORBA, perché: 1. le interfacce sono a grana più grossa e quindi un oggetto ne implementa solo una (o poco di più) pertanto il numero di stub e skeleton è molto limitato. Reti di Calcolatori LM 219

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Pagina 1 di 10 Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Nel corso della lezione precedente abbiamo analizzato le caratteristiche dell'architettura CGI.

Dettagli

Modulo 12. Cliente di posta elettronica Di cosa abbiamo bisogno per usare la posta elettronica?

Modulo 12. Cliente di posta elettronica Di cosa abbiamo bisogno per usare la posta elettronica? Pagina 1 di 14 Cliente di posta elettronica Di cosa abbiamo bisogno per usare la posta elettronica? L'obiettivo di questo approfondimento è imparare a configurare un cliente di posta elettronica. Come

Dettagli

IMSV 0.8. (In Media Stat Virtus) Manuale Utente

IMSV 0.8. (In Media Stat Virtus) Manuale Utente Introduzione IMSV 0.8 (In Media Stat Virtus) Manuale Utente IMSV è una applicazione che calcola che voti può'prendere uno studente negli esami che gli mancano per ottenere la media che desidera. Importante:

Dettagli

Come fare a leggere questi dati generati da un programma windows?

Come fare a leggere questi dati generati da un programma windows? Come fare a leggere questi dati generati da un programma windows? A questo punto siamo in possesso di tutti gli elementi per sfruttare appieno le potenzialità di Linux: sappiamo destreggiarci (mai abbastanza)

Dettagli

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Tecnologie per lo sviluppo di applicazioni La tendenza attuale dell'ingegneria è quella dell'integrazione di componenti

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

Visual basic base Lezione 01. L'ambiente di sviluppo

Visual basic base Lezione 01. L'ambiente di sviluppo L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft

Dettagli

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE APPROFONDIMENTO ICT Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Approfondimento SOFTWARE PER L ARCHIVIAZIONE ORGANISMO BILATERALE PER LA FORMAZIONE IN CAMPANIA INDICE SOFTWARE PER

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

GEODROP APPLICATIONS. Developer. Public. Private. Reseller

GEODROP APPLICATIONS. Developer. Public. Private. Reseller GEODROP APPLICATIONS Public Developer Reseller Private Le Applicazioni di Geodrop Guida per Developer alle Applicazioni Guida alle applicazioni v1.1-it, 21 Dicembre 2012 Indice Indice...2 Cronologia delle

Dettagli

FAQ AZIENDE: Quali sono le parti della domanda da compilare per prime? (v. istruzioni iscrizione pagg. 5-6)

FAQ AZIENDE: Quali sono le parti della domanda da compilare per prime? (v. istruzioni iscrizione pagg. 5-6) FAQ AZIENDE: (I numeri riportati a fianco di alcune FAQ fanno riferimento rispettivamente alle Istruzioni per i Fornitori, iscrizione e inserimento prodotti e a quelle per processi di vendita, presenti

Dettagli

Centro Iniziative Sociali Municipio III

Centro Iniziative Sociali Municipio III Centro Iniziative Sociali Municipio III C.I.S Municipio III Corso di informatca Roberto Borgheresi C ORSO BASE DI I NFORMATICA Centro Iniziative Sociali Municipio III Coordinatore: Roberto Borgheresi Insegnanti:

Dettagli

Sistemi Operativi (modulo di Informatica II)

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

Dettagli

Guida alla composizione di modelli OpenOffice

Guida alla composizione di modelli OpenOffice Tekne Informatica & Comunicazione Guida alla composizione di modelli OpenOffice guida rapida per creare e modificare modelli OpenOffice per XDent 01 aprile 2011 Sommario Premessa... 2 Ottenere ed Installare

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

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

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

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

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Come Lavorare in Rugbystories.it

Come Lavorare in Rugbystories.it Come Lavorare in Rugbystories.it Una guida per i nuovi arrivati IL PUNTO DI PARTENZA PER I NUOVI ARRIVATI E UN PUNTO DI RITORNO PER CHI NON RICORDA DA DOVE E ARRIVATO. 1 Come Lavorare in Rugbystories.it

Dettagli

Office 2007 Lezione 02. Le operazioni più

Office 2007 Lezione 02. Le operazioni più Le operazioni più comuni Le operazioni più comuni Personalizzare l interfaccia Creare un nuovo file Ieri ci siamo occupati di descrivere l interfaccia del nuovo Office, ma non abbiamo ancora spiegato come

Dettagli

Questionario Web Based per la Valutazione dello Stress Lavoro Correlato Guida Operativa e Istruzioni per l Uso

Questionario Web Based per la Valutazione dello Stress Lavoro Correlato Guida Operativa e Istruzioni per l Uso Questionario Web Based per la Valutazione dello Stress Lavoro Correlato Guida Operativa e Istruzioni per l Uso 2011 QUAERO People Management & Development Questionario Web Based per la Valutazione dello

Dettagli

GUIDA SISTEMA OPERATIVO WINDOWS

GUIDA SISTEMA OPERATIVO WINDOWS GUIDA SISTEMA OPERATIVO WINDOWS Windows 1 Il sistema operativo Windows Il sistema operativo Windows...1 Nota introduttiva...3 Il mouse...3 Lo schermo come scrivania...3 Barra delle applicazioni...4 Icone

Dettagli

SMARTBOARD. Cosa si può fare con una smartboard?

SMARTBOARD. Cosa si può fare con una smartboard? SMARTBOARD Cosa si può fare con una smartboard? si può scrivere come si farebbe su una lavagna, con il vantaggio di poter poi salvare quanto scritto; si può andare ad interagire con una presentazione PowerPoint

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

App-V Dynamic Suite Composition

App-V Dynamic Suite Composition App-V Dynamic Suite Composition di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione Con Microsoft Application Virtualization 4.5 è possibile utilizzare la Dynamic Suite Composition, cioè definire un

Dettagli

MANUALE PER LA PRODUZIONE DI TESTI PER IL WEB

MANUALE PER LA PRODUZIONE DI TESTI PER IL WEB MANUALE PER LA PRODUZIONE DI TESTI PER IL WEB Questo manuale fornisce una guida tecnica per scrivere testi da copiare all interno di siti web minimizzando il lavoro necessario per adattare tali testi affinché

Dettagli

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito LEZIONE 3 Il pannello di amministrazione di Drupal, configurazione del sito Figura 12 pannello di controllo di Drupal il back-end Come già descritto nella lezione precedente il pannello di amministrazione

Dettagli

INDICE PROGRAMMA CORSO

INDICE PROGRAMMA CORSO INDICE PROGRAMMA CORSO PRIMA LEZIONE: Componenti di un computer: Hardware, Software e caratteristiche delle periferiche. SECONDA LEZIONE: Elementi principali dello schermo di Windows: Desktop, Icone, Mouse,

Dettagli

Configurare una rete con PC Window s 98

Configurare una rete con PC Window s 98 Configurare una rete con PC Window s 98 In estrema sintesi, creare una rete di computer significa: realizzare un sistema di connessione tra i PC condividere qualcosa con gli altri utenti della rete. Anche

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

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

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

Informatica. Il software (S.O.) e ancora sulle basi numeriche

Informatica. Il software (S.O.) e ancora sulle basi numeriche (S.O.) e ancora sulle basi numeriche http://159.149.98.238/lanzavecchia/docum enti/sscta.htm 1 Il sistema operativo Un insieme di programmi che gestiscono le risorse (cpu, memoria, dischi, periferiche)

Dettagli

Aspetti applicativi e tecnologia

Aspetti applicativi e tecnologia Aspetti applicativi e tecnologia Premessa Architetture usate per i database Le prime applicazioni erano definite monolitiche, cioè un unico computer (mainframe) gestiva sia le applicazioni che i dati,

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Sistema Informativo Alice

Sistema Informativo Alice Sistema Informativo Alice Urbanistica MANUALE UTENTE MODULO PROFESSIONISTI WEB settembre 2007 INDICE 1. INTRODUZIONE...2 1.1. Cos è MPWEB?... 2 1.2. Conoscenze richieste... 2 1.3. Modalità di utilizzo...

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS 1 Tecnologia delle BD: perché studiarla? File e indici I DBMS offrono i loro servizi in modo "trasparente": per questo abbiamo potuto finora ignorare molti aspetti realizzativi abbiamo considerato il DBMS

Dettagli

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

Componenti di un sistema operativo

Componenti di un sistema operativo Componenti di un sistema operativo di Daniele Margutti CONTATTI Mail: daniele@malcombsd.com AIM/iChat: malcombsd Web: http://www.malcombsd.com INDICE: 1. Nota introduttiva 2. La gestione dei processi di

Dettagli

CdL MAGISTRALE in INFORMATICA

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

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

UBUNTU: gli strumenti di condivisione risorse

UBUNTU: gli strumenti di condivisione risorse UBUNTU: gli strumenti di condivisione risorse condivisione 1o1 a cura di Danio Campolunghi La condivisione di risorse Verranno qui proposti gli strumenti grafici di serie messi a disposizione da Ubuntu

Dettagli

Il Software... A.A. 2013-14 Informatica 96

Il Software... A.A. 2013-14 Informatica 96 Il Software... A.A. 2013-14 Informatica 96 Il software L hardware non è direttamente utilizzabile Sono necessari dei programmi per far svolgere delle funzioni all insieme di circuiti Informatica 97 Il

Dettagli

Modulo 8. Strumenti di produzione Strumenti. Gli strumenti più utilizzati per produrre pagine Web sono essenzialmente due:

Modulo 8. Strumenti di produzione Strumenti. Gli strumenti più utilizzati per produrre pagine Web sono essenzialmente due: Pagina 1 di 6 Strumenti di produzione Strumenti Gli strumenti più utilizzati per produrre pagine Web sono essenzialmente due: 1. Netscape Composer, gratuito e scaricabile da netscape.org assieme al browser

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

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

Dettagli

MANUALE DI INSTALLAZIONE

MANUALE DI INSTALLAZIONE MANUALE DI INSTALLAZIONE Pagina 1 Indice SPECIFICHE TECNICHE...3 TIPOLOGIE DI INSTALLAZIONE...4 INSTALLAZIONE MONO UTENZA (INSTALLAZIONE SEMPLICE)...5 INSTALLAZIONE DI RETE...17 Installazione lato SERVER...17

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

I parte Disegnare ed elaborare le informazioni con il CAD

I parte Disegnare ed elaborare le informazioni con il CAD I parte Disegnare ed elaborare le informazioni con il CAD Jacopo Russo - SISTEMI di ELABORAZIONE delle INFORMAZIONI Creare ed utilizzare un computer virtuale Per rendere più agevole il nostro lavoro insieme,

Dettagli

Scritto da Administrator Martedì 02 Settembre 2008 06:30 - Ultimo aggiornamento Martedì 10 Maggio 2011 17:15

Scritto da Administrator Martedì 02 Settembre 2008 06:30 - Ultimo aggiornamento Martedì 10 Maggio 2011 17:15 Entrare in un pc è una espressione un po generica...può infatti significare più cose: - Disporre di risorse, quali files o stampanti, condivise, rese fruibili liberamente o tramite password con i ripettivi

Dettagli

Progetto di Applicazioni Software

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

Dettagli

IL MIO PRIMO SITO: NEWS

IL MIO PRIMO SITO: NEWS Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un

Dettagli

V 1.00b. by ReBunk. per suggerimenti e critiche mi trovate nell hub locarno.no-ip.org. Guida di base IDC ++1.072

V 1.00b. by ReBunk. per suggerimenti e critiche mi trovate nell hub locarno.no-ip.org. Guida di base IDC ++1.072 V 1.00b by ReBunk per suggerimenti e critiche mi trovate nell hub locarno.no-ip.org Guida di base IDC ++1.072 Thanks To SicKb0y (autore del idc++) staff (per sopportarmi tutti i giorni) Versione definitiva

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Internet, così come ogni altra rete di calcolatori possiamo vederla suddivisa nei seguenti componenti:

Internet, così come ogni altra rete di calcolatori possiamo vederla suddivisa nei seguenti componenti: Pagina 1 di 8 Struttura di Internet ed il livello rete Indice Struttura delle reti Estremità della rete Il nucleo della rete Reti a commutazione di pacchetto e reti a commutazione di circuito Funzionalità

Dettagli

PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Come viene associato un insegnate alla scuola? Cos è il Codice scuola?

PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Come viene associato un insegnate alla scuola? Cos è il Codice scuola? PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Quando si compila il modulo di registrazione, selezionare l opzione scuola.una volta effettuata la registrazione, si può accedere a un ambiente molto

Dettagli

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it Crotone, maggio 2005 Windows Ing. Luigi Labonia E-mail luigi.lab@libero.it Sistema Operativo Le funzioni software di base che permettono al computer di funzionare formano il sistema operativo. Esso consente

Dettagli

1.2.1.1 DEFINIZIONE DI SOFTWARE

1.2.1.1 DEFINIZIONE DI SOFTWARE Software 1.2 1.2.1.1 DEFINIZIONE DI SOFTWARE Il computer non è in grado di svolgere alcun compito autonomamente Esso può eseguire svariati compiti soltanto se viene opportunamente istruito Ciò avviene

Dettagli

saralando I LIVELLI DI REGOLAZINE

saralando I LIVELLI DI REGOLAZINE saralando www.saralando.com info@saralando.com I LIVELLI DI REGOLAZINE Partiamo dal ritocco tradizionale, quello in cui si prende un immagine e ci si fanno sopra delle modifiche. Prendiamo una foto (minilucertola

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015]

Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Panoramica... 2 Menù principale... 2 Link Licenza... 3 Link Dati del tecnico... 3 Link

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Pagina 29 di 47 3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Come abbiamo già detto in precedenza, l informatica si divide in due grandi mondi : l hardware

Dettagli

Capitolo 5: I thread

Capitolo 5: I thread Capitolo 5: I thread Generalità. Modelli multithread. Problematiche relative ai thread. Pthread. 5.1 I thread Il thread è un flusso di controllo relativo ad un dato processo. Molti sistemi operativi moderni

Dettagli

Clicca sul link Gmail in alto nella pagina. Arriverai ad una pagina simile alla seguente: G. Pettarin ECDL Modulo 7: Internet 68

Clicca sul link Gmail in alto nella pagina. Arriverai ad una pagina simile alla seguente: G. Pettarin ECDL Modulo 7: Internet 68 G. Pettarin ECDL Modulo 7: Internet 68 Usiamo Gmail In questo capitolo vedremo come creare un proprio accesso alla posta elettronica (account) ad uno dei servizi di mail on line più diffusi: Gmail, la

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

5. Traduzione degli indirizzi di rete in indirizzi fisici: ARP

5. Traduzione degli indirizzi di rete in indirizzi fisici: ARP 5. Traduzione degli indirizzi di rete in indirizzi fisici: ARP 5.1. Introduzione Due macchine si parlano solo se conoscono l'indirizzo fisico di sottorete Due applicazioni si parlano solo se conoscono

Dettagli

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

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

Dettagli

Parte II: Reti di calcolatori Lezione 9

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

Dettagli

Architetture Applicative

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

Dettagli

Manuale di Outlook Express

Manuale di Outlook Express 1. Introduzione 2. Aprire Outlook Express 3. L'account 4. Spedire un messaggio 5. Opzione invia ricevi 6. La rubrica 7. Aggiungere contatto alla rubrica 8. Consultare la rubrica 9. Le cartelle 10. Come

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

La programmazione DCC con JMRI

La programmazione DCC con JMRI La programmazione DCC con JMRI La personalizzazione del funzionamento del nostro plastico di ing. Raneri Epifanio www.dccworld.com ALLA PORTATA DI TUTI Il Digitale e l elettronica L utilizzo del digitale

Dettagli

2 - Introduzione al linguaggio Java

2 - Introduzione al linguaggio Java 2 - Introduzione al linguaggio Java 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

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI Buona lezione a tutti!! SISTEMI OPERATIVI Gli appunti sono disponibili per tutti gratis sul sito personale del Prof M. Simone al link: www.ascuoladi.135.it nella pagina web programmazione, sezione classi

Dettagli

Il bus PCI. Piccinetti Stefano

Il bus PCI. Piccinetti Stefano Il bus PCI Piccinetti Stefano Prima del bus PCI: il bus ISA Il bus più diffuso prima del 1992 era il bus ISA (quello sostanzialmente trattato a Reti Logiche). Il primo bus ISA era ad 8 bit e garantiva

Dettagli

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione al sistema operativo Il file system: file, directory,... ,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore

Dettagli

CREARE UNA TAB DI FACEBOOK SULLA PAGINA AZIENDALE

CREARE UNA TAB DI FACEBOOK SULLA PAGINA AZIENDALE CREARE UNA TAB DI FACEBOOK SULLA PAGINA AZIENDALE Autore: KATIA D ORTA (@katiatrew) in collaborazione con MARISA FAUSONE (@Mfausone) 1 Questa guida è liberamente scaricabile sul sito cowinning.it 2 Questa

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

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

Dettagli

Progetto di Applicazioni Software

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

Dettagli

BREVE MANUALE DI SOPRAVVIVENZA A WINDOWS 8

BREVE MANUALE DI SOPRAVVIVENZA A WINDOWS 8 BREVE MANUALE DI SOPRAVVIVENZA A WINDOWS 8 Sui nuovi computer della sala insegnanti è stato installato Windows 8 professional, il nuovo sistema operativo di Microsoft. Questo sistema operativo appare subito

Dettagli

'LVSHQVD :LQGRZV GL0&ULVWLQD&LSULDQL

'LVSHQVD :LQGRZV GL0&ULVWLQD&LSULDQL 'LVSHQVD 'L :LQGRZV GL0&ULVWLQD&LSULDQL ',63(16$',:,1'2:6,QWURGX]LRQH Windows 95/98 è un sistema operativo con interfaccia grafica GUI (Graphics User Interface), a 32 bit, multitasking preempitive. Sistema

Dettagli

NOMENCLATURA INTERFACCIA DI INTERNET EXPLORER PRINCIPALI PULSANTI DELLA BARRA DEGLI STREUMENTI

NOMENCLATURA INTERFACCIA DI INTERNET EXPLORER PRINCIPALI PULSANTI DELLA BARRA DEGLI STREUMENTI NOMENCLATURA INTERFACCIA DI INTERNET EXPLORER Pagina 6 PRINCIPALI PULSANTI DELLA BARRA DEGLI STREUMENTI Richiama la pagina visualizzata in precedenza Richiama la pagina visualizzata dopo quella attualmente

Dettagli

www.filoweb.it STAMPA UNIONE DI WORD

www.filoweb.it STAMPA UNIONE DI WORD STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere

Dettagli

Centro Iniziative Sociali Municipio III

Centro Iniziative Sociali Municipio III Centro Iniziative Sociali Municipio III C.I.S Municipio III Corso di informatca Roberto Borgheresi C ORSO BASE DI I NFORMATICA Centro Iniziative Sociali Municipio III Coordinatore: Roberto Borgheresi Insegnanti:

Dettagli

Scritto da Administrator Martedì 09 Settembre 2008 12:57 - Ultimo aggiornamento Domenica 12 Giugno 2011 00:48

Scritto da Administrator Martedì 09 Settembre 2008 12:57 - Ultimo aggiornamento Domenica 12 Giugno 2011 00:48 Sommario - Introduzione - Un modo migliore... - Tunnel auto-terminante - Ulteriori accorgimenti - Note Introduzione Il seguente articolo dovrebbe aiutare chiunque fosse interessato alla sicurezza nelle

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Componenti Web: client-side e server-side

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

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Librerie fondamentali Ing. Giuseppe D'Aquì Testi Consigliati Eclipse in Action (David Gallardo, Ed Burnette and Robert McGovern), Manning (2003) JUnit Cookbook [http://junit.sourceforge.net/doc/cookbook/cookbook.htm]

Dettagli

IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD

IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD WORD 2000 IMPORTAZIONE DI TABELLE E GRAFICI IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD Introduzione Il sistema operativo Windows supporta una particolare tecnologia, detta OLE (Object Linking and

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Server web e protocollo HTTP

Server web e protocollo HTTP Server web e protocollo HTTP Dott. Emiliano Bruni (info@ebruni.it) Argomenti del corso Cenni generali sul web IIS e Apache Il server web Micsosoft Internet Information Server 5.0 Il server web Apache 2.0

Dettagli