Indice. Introduzione. Wrapper OpenSSL. Installazione di EJBCA. Conclusioni. Appendice A Procedure di installazione di EJBCA. Appendice B Codice C/Java

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Indice. Introduzione. Wrapper OpenSSL. Installazione di EJBCA. Conclusioni. Appendice A Procedure di installazione di EJBCA. Appendice B Codice C/Java"

Transcript

1 Indice Introduzione Wrapper OpenSSL Installazione di EJBCA Conclusioni Appendice A Procedure di installazione di EJBCA Appendice B Codice C/Java Bibliografia

2 Introduzione Sistemi complessi richiedono accorgimenti altrettanto complessi; uno di questi è quello della sicurezza del sistema stesso. E' quasi impossibile realizzare un sistema intrinsecamente sicuro nella sua totalità in particolar modo se lo vogliamo anche flessibile e facile da utilizzare, specie se abbiamo a che fare con sistemi informatici. Essi sono quanto di più complesso ha creato l'uomo ed è facile quindi intuire quanto siano delicati. Strutture complesse richiedono soluzioni complesse ed il tema di questa tesi è proprio una di queste soluzioni. Durante il periodo del tirocinio da me frequentato all'asl (Azienda Sanitaria Locale) di Ancona sono stati posti due obiettivi: realizzare un wrapper in Java della libreria OpenSSL (scritta in C) mediante l'uso della JNI (Java Native Interface) ed installare e configurare un software che applica una certification authority (EJBCA Enterprise Java Bean Certification Authority). E' ovvio quindi che abbiamo a che fare con un tipo di sicurezza molto specifico: quello contro attacchi di tipo informatico eseguito mediante la rete Internet e che è stata utilizzata la crittografia come strumento di difesa. Questa tesi può essere quindi divisa in due parti piuttosto indipendenti. Riguardo alle scelte effettuate (riguardo ai software) non posso fare a meno di far notare che le soluzioni scelte sono tutte open source (o perlomeno gratuite) inoltre, per lo sviluppo dei progetti è stato utilizzato un pc con installata una particolare versione di linux (Knoppix). Durante quaste attività ho riscontrato problemi al di là della mia portata che non mi hanno consentito di raggiungere entrambi gli obiettivi prefissati è di questo ne discuterò nel corso di questa tesi. Prima di proseguire vorrei fare alcuni ringraziamenti: primo fra tutti l'ingegniere Giuseppe Giampieri, il mio tutore aziendale, per tutti i preziosi consigli ed aiuti forniti nei momenti di necessità, sono molto grato anche al professore Aldo Dragoni per la continua disponibilità e chiarezza nelle sue utili spiegazioni inoltre non voglio escludere i miei amici e la mia famiglia per il loro appoggio morale senza il quale non sarei mai giunto a questo punto. Vorrei inoltre ringraziare coloro che mi hanno aiutato tramite in particolar modo Thomas Gustavsson uno degli sviluppatori di EJBCA.

3 Wrapper OpenSSL Come già accennato in precedenza uno degli obiettivi posti nel tirocinio è stato quello di dover realizzare un wrapper (una libreria che funge da involucro ) utilizzando il linguaggio Java della libreria OpenSSL. Prima di motivare questa scelta e le conclusioni alle quali sono arrivato vorrei accennare alcuni concetti base che potrebbero non essere noti a tutti. Concetti base Cos'è una CA e una PKI Il concetto di PKI (Public Key Infrastructure) e CA (Certification Authority) è pressoche impossibile da descrivere in poche parole, per questo motivo verrà fornito solo un accenno. Una certification authority (autorità di certificazione) è un'entità che permette la realizzazione di infrastrutture a chiave pubblica (PKI Public Key Infrastructure) la quale, mediante l'utilizzo della crittografia simmetrica ed asimmetrica e di opportuni protocolli, consente di far transitare dati in una rete in modo tale da garantire l'identificazione di colui con il quale si scambia dati e garantire l'integrità e la confidenzialità dei dati stessi. Le CA hanno varie funzioni da svolgere come quella di distribuire certificati o di verificarne l'autenticità. Nella PKI ci sono anche altre entità che entrano in gioco; l'illustrazione seguente è stata tratta dal RFC (Request For Comment) 2510 [pagina 6]:

4 Questo schema riassume in maniera molto chiara la PKI. Una CA in realtà è composta da una certification authority ed una registration authority (RA) ma questa distinzione è andata persa con il tempo e con CA si indica normalmente sia la CA che la RA come fossero un tutt'uno. L'infrastruttura si basa sull'utilizzo dei certificati che possono essere definiti come sequenze di bit che seguono un determinato protocollo (o una determinata struttura se si preferisce). La End Entity rappresenta l'utente che chiede servizi offerto dalla CA (registrazione iniziale, aggiornamento certificati, ecc..). La CA ha la necessità di essere a sua volta certificata da un'altra CA (nel diagramma viene chiamata CA-2). Una trattazione esauriente della PKI e del ruolo delle CA non è tema di questa tesi e questi concetti base verranno dati per acquisiti. Per una trattazione completa consultare l'rfc 2510.

5 La libreria OpenSSL La OpenSSL (Open Secure Socket Layer) è una libreria scritta in C che svolge molteplici funzioni: la principale è sicuramente quella di applicare il protocollo SSL e le routine di base della crittografia simmetrica e asimmetrica (MD5, RSA, Blowfish, DES, ecc..), inoltre permette di realizzare e manipolare certificati X.509. Il principale aspetto positivo è sicuramente quello di essere considerato lo standard de facto, infatti con questa libreria viene utilizzata come riferimento per molti software che devono svolgere compiti per il quale è nata questa libreria. E' inoltre una libreria molto completa ed il fatto che sia stata scritta in C la rende anche molto efficiente in termini di prestazioni. Tuttavia non è una libreria facile da utilizzare e questa complicazione è amplificata dal fatto che non possiede una buona documentazione (a dire la verità non ha una sua documentazione se escludiamo quella della sua versione precedente chiamata SSLeay). JNI (L'interfaccia nativa di Java) L'interfaccia nativa di Java è una componente del JDK (Java Development Kit) che consente di chiamate funzioni compilate in codice nativo come quello generato da linguaggi come il C/C++ e Pascal. Per realizzare quest'interfaccia è necessario eseguire alcuni procedimenti che verranno illustrati mediante un esempio. Sarà data per scontata una sufficiente conoscenza dalla JNI. Prima di tutto scriviamo la nostra interfaccia Java: testing.java package test; public class testing public testing()

6 // Dichiara la funzione nativa stampa() private native void stampa(); static // Carica la libreria Runtime.getRuntime().load("/usr/lib/libtesting.so"); public static void main(string[] args) // Utilizza la funzione nativa stampa() new testing().stampa(); Scritto questo codice dobbiamo eseguire da console: javac testing.java javah -jni testing Quest'ultimo passaggio genererà una firma (signature) che consiste in un file con estensione.h che in questo caso si chiamerà testing.h. Ora dobbiamo realizzare la nostra libreria in C (o qualsiasi altro linguaggio compilato): testing.c #include "testing.h" #include <stdio.h> JNIEXPORT void JNICALL Java_testing_stampa (JNIEnv *env, jobject obj) printf("ciao"); dove la firma:

7 JNIEXPORT void JNICALL Java_testing_stampa (JNIEnv *env, jobject obj) è stata copiata dal file.h. Compiliamo il file testing.c affinche otteniamo una libreria. A questo punto non ci rimane altro da fare che eseguire il programma in Java da console: java testing per veder apparire la scritta ciao. Questo procedimento va bene nel caso in cui non abbiamo ancora scritto la libreria in codice nativo quindi nel nostro caso dobbiamo aggiungere alcuni passaggi dato che dobbiamo scrivere un wrapper di una libreria già esistente e che quindi le funzioni ad essa appartenenti non hanno la signature appropriata. La soluzione a questo problema verrà descritta in seguito [vedi paragrafo Struttura del wrapper]. La JNI è sicuramente un utile strumento ma presenta alcuni aspetti negativi intrinseci e progettuali: i primi sono dati dal fatto che per realizzare un'interfaccia sono necessari molti passaggi, i problemi progettuali sono dati dal fatto che è possibile realizzare interfacce delle sole librerie alle quali è stata eseguita una fase di link statico, non è quindi possibile realizzare interfacce di librerie che utilizzano funzioni di altre librerie a meno che non sia stato utilizzato un link statico. A mio avviso quest'ultimo problema si sarebbe potuto evitare progettando il sistema JNI in maniera diversa. Scelte progettuali e obiettivi Prima di proseguire con la spiegazione è necessario fare qualche passo indietro. All'inizio del tirocinio era stato stabilito un obiettivo che poi a causa delle circostanze verificatesi è mutato. Si era deciso infatti di realizzare una certification authority pertendo da quello che avevano svolto altri studenti tirocinanti in precedenza.

8 Perchè era stato deciso di realizzare una nuova CA anzichè utilizzarne una già esistente open source? Il motivo è semplice: tra le varie CA non ce n'è nessuna che soddisfi in pieno le necessità dell'asl cioè fornire un'infrastruttura PKI che svolga i servizi necessari all'azienda. Sono stati presi in considerazione diversi software di CA prima di eseguire questa scelta: primo fra tutti l'ejbca ma oltre che ad essere difficile da installare, non utilizza la libreria OpenSSL che come abbiamo detto in precedenza è considerato come uno standard ed è segno di massima affidabilità; il secondo software preso in considerazione è l'openca ma il problema più grave è che il programma è scritto in Perl e quindi particolarmente difficile da modificare secondo le proprie necessità. E' stato quindi necessario partire dalle basi: una libreria multifunzionale come l'openssl. E' stato scelto il linguaggio Java per le sue proprietà intrinseche (prima fra tutti la sicurezza del codice) e per la disponibilità di strumenti specifici come librerie e applicativi Svolgimento Struttura del wrapper Il procedimento descritto in precedenza non è di per se sufficiente a raggiungere l'obiettivo da noi imposto è necessario frapporre un ulteriore strato (interfaccia) tra l'interfaccia in Java e la libreria OpenSSL: creiamo una libreria in C che invoca funzioni della libreria OpenSSL e che a sua volta viene invocata dall'inerfaccia Java. Tra le varie funzioni è stato deciso di iniziare con delle funzioni di generica utilità e di controllo degli errori. Prima di tutto riportiamo il primo file scritto contenete l'interfaccia JNI che permette di richiamare le funzioni di gestione di errore della OpenSSL con opportuni commenti (alcune parti sono state omesse per semplicità): Errors.java package it.asl7.wopenssl;

9 public class Errors //----- Costruttore public Errors() LoadCryptoStrings(); LoadERRStrings(); //----- Metodi // Cancella tutti gli errori dalla lista statica public void ClearAll() // Chiamata a una funzione della libreria che verrà // frapposta tra questa e la OpenSSL. Questa funzione // cancella tutti gli errori dalla lista statica. ERR_clear_error(); //... public void FreeStrings() // Libera tutte le stringhe d'errore caricate nella // tabella statica degli errori che mappa codici di // librerie e funzioni in stringhe di testo ERR_free_strings(); //... public long GetError() // Ottiene il codice dell'errore e rimuove questa // voce dalla coda degli errori return ERR_get_error(); //...

10 public String LibErrorString(long e) // Restituisce il nome della libreria corrispondente // al codice di errore numerico return ERR_lib_error_string(e); public void LoadCryptoStrings() // Carica in memoria l'insieme crypto delle stringhe d'errore ERR_load_crypto_strings(); //... // Caricamento stringhe di errore public void LoadStrings(ErrStringData[] str) int[] error = new int[str.length]; String[] message = new String[str.length]; for (int i = 0; i < str.length; i++) error[i] = str[i].geterror(); message[i] = str[i].getstring(); ERR_load_strings(error, message); //... // Dichiarazioni di funzioni native. Come è facile notare è // sufficiente l'utilizzo della parola chiave native oltre // che al prototipo della funzione private native long ERR_get_error(); private native int ERR_get_next_error_library(); private native long ERR_peek_error(); private native String ERR_error_string(long num);

11 private native void ERR_error_string_n(long num); private native void ERR_clear_error(); private native void ERR_put_error(int lib, int func, int reason, String file, int line); private native void ERR_set_error_data(String data, int flags); private native String ERR_lib_error_string(long e); private native String ERR_func_error_string(long e); private native String ERR_reason_error_string(long e); //... static // Ci sono vari metodi per caricare una libreria. Tra quelli // disponibili, quello utilizzato ci permette di avere più // informazioni in caso di errore. In alternativa è possibile // utilizzare System.loadLibrary("errors"); come mostrato // tra gli esempi presenti nella documentazione. Runtime.getRuntime().load("/usr/lib/liberrors.so"); // Un piccolo test.. public static void main(string []args) Errors err = new Errors(); err.clearall(); for (int i = 0; i < 50; i++) System.out.println(err.ErrorString(i)); Il file completo (come tutti quelli che seguiranno) sono disponibili nell'appendice A e nel CD- ROM allegato. Eseguendo i comandi javac e javah otteniamo il file class e la signature seguente:

12 Errors.h /* DO NOT EDIT THIS FILE - it is machine generated */ #ifndef it_asl7_wopenssl_errors #define it_asl7_wopenssl_errors #include <jni.h> #ifdef cplusplus extern "C" #endif extern jlong Java_it_asl7_wOpenSSL_Errors_ERR_1get_1error (JNIEnv *env, jobject); extern jlong Java_it_asl7_wOpenSSL_Errors_ERR_1get_1error_1line (JNIEnv *env, jobject); //... #ifdef cplusplus #endif #endif /* it_asl7_wopenssl_errors */ E' facile notare che la signature segue delle regole ben precise infatti il prototipo di ogni funzione ha la seguente struttura: Java_ + percorso della classe + nome funzione. Se nell'interfaccia Java, un nome di funzione contiene un carattere di underscore, nella signature verrà sostituito con _1. Ora dobbiamo dare corpo a queste funzioni scrivendo il file Errors.c : Errors.c // Includiamo la parte della libreria OpenSSL inerente la gestione degli errori #include <openssl/err.h> // Includiamo la signature

13 #include "Errors.h" // Includiamo funzioni che verranno descritte in seguito #include "Utils.h" char error[256]; JNIEXPORT jlong JNICALL Java_it_asl7_wOpenSSL_Errors_ERR_1get_1error (JNIEnv *env, jobject obj) return ERR_get_error(); //... JNIEXPORT jstring JNICALL Java_it_asl7_wOpenSSL_Errors_ERR_1reason_1error_1string (JNIEnv *env, jobject obj, jlong e) return CharpToJstr( env, ERR_reason_error_string(e) ); //... JNIEXPORT jstring JNICALL Java_it_asl7_wOpenSSL_Errors_val_1error (JNIEnv *env, jobject obj) return CharpToJstr( env, error ); Scrivere questa parte di codice è piuttosto semplice infatti è sufficiente copiare i vari prototipi dalla signature e nella maggior parte dei casi il corpo della funzione è composto dalla sola chiamata alla funzione delle OpenSSL. E' fondamentale ora notare l'utilizzo della funzione CharpToJstr. Il prototipo di questa funzione è presente nel file Utils.h e definita nel file Utils.c. Il file Utils.h dichiara anche altre funzioni: Utils.h

14 #ifndef Utils #define Utils #include <jni.h> JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved); JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved); void JNU_ThrowByName(JNIEnv *env, const char *name, const char *msg); char * JstrToCharp(JNIEnv *env, jstring str); jstring CharpToJstr(JNIEnv *env, const char *str); #endif Queste funzioni sono di varia utilità: ad esempio JNI_OnLoad è una funzione che viene invocata all'avvio dalla Java Virtual Machine da parte di una funzione JNI. La funzione CharToJstr richiede una particolare spiegazione. Nonostante le similitudini, tra il Java ed il C ci sono delle incompatibilità tra i tipi di dato esistenti, primo fra tutti la rappresentazione delle stringhe infatti nel C abbiamo a disposizione i puntatori a carattere mentre il Java ha un tipo di dato astratto che si occupa di questo. Le funzioni CharToJstr e JstrToCharp si occupano di eseguire questa conversione in entrambe le direzioni. La definizione (il corpo) di queste cinque funzioni sono state tratte da un documento presente nel sito della Sun: The Java Native Interface, il codice è il seguente: Utils.c #include "Utils.h" jclass Class_java_lang_String = NULL; jmethodid MID_String_getBytes = NULL; jmethodid MID_String_init = NULL; JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) JNIEnv *env; if ((*jvm)->getenv(jvm, (void **)&env, JNI_VERSION_1_4))

15 return JNI_ERR; // Crea un riferimento globale if (Class_java_lang_String == NULL) jclass localrefcls = (*env)->findclass(env, "java/lang/string"); if (localrefcls == NULL) return JNI_ERR; // Lancio eccezione Class_java_lang_String = (*env)->newglobalref(env, localrefcls); (*env)->deletelocalref(env, localrefcls); if (Class_java_lang_String == NULL) return JNI_ERR; // Lancio eccezione OutOfMemory // Inizializazione Method ID MID_String_getBytes = (*env)->getmethodid(env, Class_java_lang_String, "getbytes", "()[B"); MID_String_init = (*env)->getmethodid(env, Class_java_lang_String, "<init>", "([C)V"); if ( (MID_String_getBytes == NULL) (MID_String_init == NULL) ) return JNI_ERR; return JNI_VERSION_1_4; JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved) JNIEnv *env;

16 if ((*jvm)->getenv(jvm, (void **)&env, JNI_VERSION_1_4)) return; void JNU_ThrowByName(JNIEnv *env, const char *name, const char *msg) jclass cls = (*env)->findclass(env, name); if (cls!= NULL) (*env)->thrownew(env, cls, msg); (*env)->deletelocalref(env, cls); char * JstrToCharp(JNIEnv *env, jstring str) jbytearray bytes = 0; jthrowable exc; char *result = 0; if ( (*env)->ensurelocalcapacity(env, 2) < 0 ) return 0; bytes = (*env)->callobjectmethod(env, str, MID_String_getBytes); return NULL; exc = (*env)->exceptionoccurred(env); if (!exc) jint len = (*env)->getarraylength(env, bytes); result = (char *)malloc(len + 1); if (result == 0) JNU_ThrowByName(env, "java/lang/outofmemoryerror", 0);

17 (*env)->deletelocalref(env, bytes); return 0; (*env)->getbytearrayregion(env, bytes, 0, len, (jbyte *)result); result[len] = 0; else (*env)->deletelocalref(env, exc); (*env)->deletelocalref(env, bytes); return result; jstring CharpToJstr(JNIEnv *env, const char *str) jstring result; jbytearray bytes = 0; int len; if ( (*env)->ensurelocalcapacity(env, 2) < 0 ) return NULL; len = strlen(str); bytes = (*env)->newbytearray(env, len); if (bytes!= NULL) (*env)->setbytearrayregion(env, bytes, 0, len, (jbyte *)str); result = (*env)->newobject(env, Class_java_lang_String, MID_String_init, bytes); return result; return NULL;

18 Durante la fase di compilazione non si verifica alcun problema ma eseguendo il comando java Errors otteniamo il seguente messaggio da parte della Java Virtul Machine: Unexpected Signal : 11 occurred at PC=0x401B53A7 Function=(null)+0x401B53A7 Library=/usr/j2sdk1.4.2_04/jre/lib/i386/client/libjvm.so NOTE: We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible reason and solutions. Current Java thread: Dynamic libraries: r-xp : /usr/source/openssl_c/a.out a000 rw-p : /usr/source/openssl_c/a.out r-xp : /lib/ld so rw-p : /lib/ld so r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/libverify.so rw-p 0000f000 03: / usr/j2sdk1.4.2_04/jre/lib/i386/libverify.so r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/client/libjvm.so d000 rw-p 003fb000 03: / usr/j2sdk1.4.2_04/jre/lib/i386/client/libjvm.so 4044f f000 r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/libjava.so 4046f rw-p 0001f000 03: / usr/j2sdk1.4.2_04/jre/lib/i386/libjava.so a000 r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/native_threads/libhpi.so 4047a b000 rw-p : / usr/j2sdk1.4.2_04/jre/lib/i386/native_threads/libhpi.so 4047b f000 rw-s : /tmp/hsperfdata_root/ f r-xp : /usr/lib/liberrors.so

19 rw-p : /usr/lib/liberrors.so r-xp : /lib/libc so a000 rw-p : /lib/libc so 4059d r-xp : / usr/lib/i686/cmov/libcrypto.so a000 rw-p 000db000 03: / usr/lib/i686/cmov/libcrypto.so e e000 r-xp : /lib/libnsl so 4069e f000 rw-p : /lib/libnsl so 406a c2000 r-xp : /lib/libm so 406c c3000 rw-p : /lib/libm so 406c c5000 r-xp : /lib/libdl so 406c c6000 rw-p : /lib/libdl so 406c d2000 r-xp : /lib/libpthread-0.10.so 406d d3000 rw-p 0000c000 03: /lib/libpthread-0.10.so r-xp : / usr/lib/i686/cmov/libssl.so rw-p 0002b000 03: / usr/lib/i686/cmov/libssl.so r-xp : /lib/libnss_compat so a000 rw-p : /lib/libnss_compat so 4075a r-xp : /lib/libnss_nis so rw-p : /lib/libnss_nis so a000 r-xp : /lib/libnss_files so 4076a b000 rw-p : /lib/libnss_files so 4076b f000 r-xp : / usr/j2sdk1.4.2_04/jre/lib/i386/libzip.so 4077f rw-p : / usr/j2sdk1.4.2_04/jre/lib/i386/libzip.so r--s : / usr/j2sdk1.4.2_04/jre/lib/rt.jar r--s : / usr/j2sdk1.4.2_04/jre/lib/sunrsasign.jar r--s : / usr/j2sdk1.4.2_04/jre/lib/jsse.jar r--s : / usr/j2sdk1.4.2_04/jre/lib/jce.jar

20 cd000 r--s : / usr/j2sdk1.4.2_04/jre/lib/charsets.jar Heap at VM Abort: Heap def new generation total 576K, used 97K [0x , 0x , 0x44d60000) eden space 512K, 19% used [0x , 0x , 0x ) from space 64K, 0% used [0x , 0x , 0x ) to space 64K, 0% used [0x , 0x , 0x ) tenured generation total 1408K, used 0K [0x44d60000, 0x44ec0000, 0x ) the space 1408K, 0% used [0x44d60000, 0x44d60000, 0x44d60200, 0x44ec0000) compacting perm gen total 4096K, used 827K [0x , 0x48c80000, 0x4c880000) the space 4096K, 20% used [0x , 0x4894ecd8, 0x4894ee00, 0x48c80000) Local Time = Wed Aug 25 08:58: Elapsed Time = 0 # # HotSpot Virtual Machine Error : 11 # Error ID : 4F530E EF # Please report this error at # # # Java VM: Java HotSpot(TM) Client VM (1.4.2_05-b04 mixed mode) # E' un messaggio che rivela un bug della JVM. Per risolvere questo problema sono state cercate informazioni su questo tipo di problema ed eventuali soluzioni ma non è stato trovato nulla che possa soddisfare le nostre necessità. Vorrei evidenziare il fatto che nel codice di queste funzioni di utilità non ci sono errori di sintassi ne di semantica. Il problema di conversione da char * a jstring (e viceversa) non è raggirabile. Dopo vari tentativi (eseguendo semplici esempi) è stato deciso di abbandonare la realizzazione del wrapper. Avremmo potuto tentare di rieseguire il codice in altri sistemi operativi come ad esempio MS Windows o altre versioni della JVM ma questa scelta sarebbe andata contro uno degli obiettivi preposti: realizzare una CA utilizzabile nella maggior parte dei sistemi. Non a caso è stato scelto il

21 Java come linguaggio di programmazione.

22 Installazione di EJBCA Il secondo obiettivo preposto è stato quello di installare il software EJBCA e descrivere in maniera abbastanza dettagliata la procedura di installazione. EJBCA (Enterprise Java Bean Certification Authority) è un software per la certification authority scritto in Java. Per l'esecuzione è necessiario che sia avviato un application server (per ulteriori dettagli sugli application server consultare la documentazione del JDK). La procedura di installazione qui descritta è valida per sistemi operativi linux ma con determinati accorgimenti è facilmente adattabile per altri ambienti. Per una sua versione più schematica consultare l'appendice B. Descrizione dei software da installare JDK Il primo software da installare è il JDK. Si consiglia di installare l'ultima versione stabile disponibile nel sito ufficiale La versione da me utilizzata è la 1.4.2_05. Copiare il contenuto dell'archivio scaricato in una directory a scelta. Per i passaggi successivi (e per convenienza) andiamo a modificare uno dei file di avvio dove possiamo andare a definire variabili di ambiente come il file profile inserendo le variabili JDK_HOME, JAVA_HOME e CLASSPATH a seconda della directory in cui è stato installato il JDK. Ad esempio nel mio caso ho inserito le seguenti righe: export PATH=/usr/lib/java:... export JDK_HOME="/usr/lib/java/bin" export JAVA_HOME=/usr/j2sdk1.4.2_05 export CLASSPATH=/usr/j2sdk1.4.2_05/jre/lib/ext/... :$CLASSPATH

23 Verificare quindi che sia installato il package JCE (Java Cryptography Extension). Questo package è già presente nella versione 1.4 e probabilmente lo sarà anche nelle successive. E' inoltre necessario installare l'unlimited Strength Java Cryptography Extension per poter utilizzare crittografia forte e illimitata. Il pacchetto è disponibile nel sito della sun nella stessa pagina dove è possibile scaricare il JDK e consiste in due file *.jar (local_policy.jar e US_export_policy.jar) che devono essere copiati nelle directory $JAVA_HOME/jre/lib e $JAVA_HOME/lib/security (questa directory è da creare). Questo pacchetto è necessario fondamentalmente per scopi legali infatti nel file README.txt che si trova insieme ai file jar è possibile leggere: JCE for J2SDK, v has been through the U.S. export review process. The JCE framework, along with the SunJCE provider that comes standard with it, is exportable. The JCE architecture allows flexible cryptographic strength to be configured via jurisdiction policy files. Due to the import restrictions of some countries, the jurisdiction policy files distributed with the J2SDK, v software have built-in restrictions on available cryptographic strength. The jurisdiction policy files in this download bundle (the bundle including this README file) contain no restrictions on cryptographic strengths. This is appropriate for most countries. Framework vendors can create download bundles that include jurisdiction policy files that specify cryptographic restrictions appropriate for countries whose governments mandate restrictions. Users in those countries can download an appropriate bundle, and the JCE framework will enforce the specified restrictions. MySQL EJBCA richiede l'utilizzo di un database per immagazzinare ogni tipo di informazione necessaria e ci da la possibilità di scegliere tra varie opzioni e tra le quali abbiamo scelto il MySQL disponibile all'indirizzo E' stato scelto questo DBMS perchè possiede molte qualità che vengono incontro alle nostre necessità infatti il MySQL è multipiattaforma, open source, efficiente, dispone di una buona documentazione e in caso di problemi non si hanno grosse difficoltà nel

24 trovare una soluzione. La versione che è stata installata è la C'è da fare attenzione con la scelta della versione da scegliere perchè si possono riscontrare anomalie: installando la versione ci sono stati dei problemi alla tabella UserData del database ejbca, tale tabella veniva danneggiata durante l'installazione di EJBCA. Una volta scaricato il pacchetto dal sito ufficiale, creare il gruppo e l'utente mysql : shell> groupadd mysql shell> useradd -g mysql mysql Possiamo quindi proseguire iniziando l'installazione: shell> cd /usr/local shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz tar xvf - shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql shell> cd mysql Copiamo il file /directory-di-installazione-mysql/support-file/my-medium.cnf nella directory /etc e rinominarlo in my.cnf e verificare che all'interno di tale file la voce skip-networkin sia posta sotto commento (anteponendo il carattere # ) o cancellata; questa operazione è necessaria perchè il linguaggio Java accede al MySQL come se si trovasse in un altro pc utilizzando un indirizzo IP. Dalla directory /usr/local/mysql eseguire: scripts/mysql_install_db --user=mysql Acquisiamo i privilegi necessari: shell> chown -R root. shell> chown -R mysql data

25 shell> chgrp -R mysql. L'installazione è completata. Per poter utilizzare MySQL è necessario che il demone mysqld sia attivo, quindi sarebbe è necessario avviarlo all'avvio del sistema operativo o perlomeno prima di utilizzare il DBMS: shell> /usr/local/mysql/bin/mysqld_safe --user=mysql & Per terminare il demone in qualsiasi momento: shell> killall mysqld Il MySQL mette a disposizione una particolare console che ci consente di creare e manipolare database digitiamo quindi: shell> /usr/local/mysql/bin/mysql Inviamo i comandi: > use mysql > create database ejbca; > grant all privileges on *.* to identified by 'ejbca' with grant option; > grant all privileges on *.* to identified by 'ejbca' with grant option; > quit Il primo comando ci permette di accedere al database mysql, successivamente creiamo il database ejbca, con le due operazioni successive forniamo privilegi illimitati a tutti coloro che accedono dall'esterno ( % ) e dall'interno ( linux alias di ) per tutte le tabelle di tutti i database. Sarebbe bene modificare le tabelle (e i relativi utenti) alle quali si vogliono fornire i privilegi (per

Guida all Installazione della Binary Release di OpenSPCoop2. Guida all Installazione della Binary Release di OpenSPCoop2

Guida all Installazione della Binary Release di OpenSPCoop2. Guida all Installazione della Binary Release di OpenSPCoop2 Guida all Installazione della Binary Release di OpenSPCoop2 i Guida all Installazione della Binary Release di OpenSPCoop2 Guida all Installazione della Binary Release di OpenSPCoop2 ii Copyright 2005-2015

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

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A.

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A. Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Apache Ant Michele Tomaiuolo Progetto Apache Open source, community

Dettagli

Primi passi con Apache Tomcat. L application server dell Apache group

Primi passi con Apache Tomcat. L application server dell Apache group Primi passi con Apache Tomcat L application server dell Apache group 2 J2EE Direttive Sun Microsystem Che cos è un application server EJB Maggiori application server open source 3 Tomcat Open Source e

Dettagli

Corso di Laurea in Informatica Reti e Sicurezza Informatica

Corso di Laurea in Informatica Reti e Sicurezza Informatica Corso di Laurea in Informatica Reti e Sicurezza Informatica Esercitazione 6 Autenticazione in Tomcat per lo sviluppo di Web Service. In questo documento si presentano i meccanismi fondamentali che consentono

Dettagli

Guida all Installazione del ProxyFatturaPA

Guida all Installazione del ProxyFatturaPA i Guida all Installazione del ii Copyright 2005-2014 Link.it srl iii Indice 1 Introduzione 1 2 Fase Preliminare 1 3 Esecuzione dell Installer 1 4 Fase di Dispiegamento 5 4.1 JBoss 5.x e 6.x....................................................

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

PC/CSA. Manuale di utilizzo del PC/CSA Specifiche tecniche per lo scarico automatico dei dati dei pagamenti delle violazioni al Codice della Strada

PC/CSA. Manuale di utilizzo del PC/CSA Specifiche tecniche per lo scarico automatico dei dati dei pagamenti delle violazioni al Codice della Strada PC/CSA Manuale di utilizzo del PC/CSA Specifiche tecniche per lo scarico automatico dei dati dei pagamenti delle violazioni al Codice della Strada PC/CSA-SPF-1.0 Versione del 18.04.2001 SOMMARIO 1 INTRODUZIONE

Dettagli

GovPay 2.0. Manuale Installazione

GovPay 2.0. Manuale Installazione SERVIZI DI INTERMEDIAZIONE AL NODO DEI PAGAMENTI GovPay-ManualeInstallazione del 16/12/2015 - vers. 1 STATO DEL DOCUMENTO REV. DESCRIZIONE DATA 1 Prima versione 16/12/2015 ATTORI DEL DOCUMENTO Redatto

Dettagli

Utilizzo del server LDAP locale per la sincronizzazione della base utenti e della GAL

Utilizzo del server LDAP locale per la sincronizzazione della base utenti e della GAL Utilizzo del server LDAP locale per la sincronizzazione della base utenti e della GAL IceWarp Server supporta il protocollo LDAP v3 (Lightweight Directory Access Protocol) che rappresenta oramai uno standard

Dettagli

MySQL Controllare gli accessi alla base di dati A cura di Silvio Bonechi per http://www.pctrio.com

MySQL Controllare gli accessi alla base di dati A cura di Silvio Bonechi per http://www.pctrio.com MySQL Controllare gli accessi alla base di dati A cura di Silvio Bonechi per http://www.pctrio.com 15.03.2006 Ver. 1.0 Scarica la versione pdf ( MBytes) Nessuno si spaventi! Non voglio fare né un manuale

Dettagli

Josef Vitanostra INFORMATICA PARTHENOPE

Josef Vitanostra INFORMATICA PARTHENOPE Josef Vitanostra INFORMATICA PARTHENOPE Introduzione Java Native Interface o brevemente JNI è un framework di programmazione che ha lo scopo di permettere ad applicazioni Java di interfacciarsi con funzioni

Dettagli

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

Dettagli

Panoramica: che cosa è necessario

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

Dettagli

Introduzione ai servizi di Linux

Introduzione ai servizi di Linux Introduzione ai servizi di Linux Premessa Adios è un interessante sistema operativo Linux basato sulla distribuzione Fedora Core 6 (ex Red Hat) distribuito come Live CD (con la possibilità di essere anche

Dettagli

Application Server per sviluppare applicazioni Java Enterprise

Application Server per sviluppare applicazioni Java Enterprise Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente

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

DNNCenter. Installazione standard di DotNetNuke 5. per Windows Vista. Installazione Standard DotNetNuke 5 per Windows Vista

DNNCenter. Installazione standard di DotNetNuke 5. per Windows Vista. Installazione Standard DotNetNuke 5 per Windows Vista DNNCenter Installazione standard di DotNetNuke 5 per Windows Vista Copyright OPSI Srl www.opsi.it Pag. 1 of 28 INDICE 1. INTRODUZIONE... 3 1.1. Pre-requisiti... 3 2. DOWNLOAD DOTNETNUKE... 4 2.1. Download

Dettagli

Progetto di Ingegneria del Software 2. SWIMv2

Progetto di Ingegneria del Software 2. SWIMv2 Progetto di Ingegneria del Software 2 2012/2013 SWIMv2 Guida di installazione Docente: Prof. Luca Mottola Davide Brambilla Antonio Caputo Paolo Caputo 1 Introduzione La piattaforma è stata sviluppata come

Dettagli

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e

Dettagli

Come creare un certificato SSL per IIS utilizzando la CA Privata di W indow s 2 0 0 3 Server

Come creare un certificato SSL per IIS utilizzando la CA Privata di W indow s 2 0 0 3 Server Come creare un certificato SSL per IIS utilizzando la CA Privata di W indow s 2 0 0 3 Server Di Massimiliano Brolli, Roma 24/10/2004 SSL permette di eseguire una connessione criptata tra un Server WEB

Dettagli

Guida all'installazione di Jug4Tenda

Guida all'installazione di Jug4Tenda Indice generale Guida all'installazione di Jug4Tenda WORK IN PROGRESS di Andrea Del Bene Guida all'installazione di Jug4Tenda...1 Nota...2 1Prerequisiti software...3 1.1Installazione Java JDK...3 1.2Installazione

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Overview su Online Certificate Status Protocol (OCSP)

Overview su Online Certificate Status Protocol (OCSP) Overview su Online Certificate Status Protocol (OCSP) Introduzione di Nicola Ferrini MCT MCSA MCSE MCTS MCITP La revoca dei certificati digitali consiste nel rendere non più valido un certificato prima

Dettagli

Caratteristiche generali

Caratteristiche generali Caratteristiche generali Tecnologie utilizzate Requisiti software/hardware Modalità di installazione del database del PSDR INSTALLAZIONE PSDR Installazione on-line Installazione off-line Primo avvio Riservatezza

Dettagli

Installazione del Software. per lo Sviluppo di Applicazioni Java

Installazione del Software. per lo Sviluppo di Applicazioni Java Installazione del Software per lo Sviluppo di Applicazioni Java Ing. Luca Ferrari ferrari.luca@unimore.it Tel. 0592056142 Installazione del Software per lo Sviluppo di Applicazioni Java 1 Il Compilatore

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

Apache 2, PHP5, MySQL 5

Apache 2, PHP5, MySQL 5 Installazione di Apache 2, PHP5, MySQL 5 Corso Interazione Uomo Macchina AA 2005/2006 Installazione e Versioni Considerazione le versioni più recenti dei vari software così da poterne sperimentare le caratteristiche

Dettagli

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

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

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio

Dettagli

Guida installazione Winasped 4 Data ultima revisione della guida: 12-05-2014

Guida installazione Winasped 4 Data ultima revisione della guida: 12-05-2014 Guida installazione Winasped 4 Data ultima revisione della guida: 12-05-2014 Winasped è un'applicazione di tipo client - server pertando è composta da due parti: un programma client e uno server. Di seguito

Dettagli

[HOW-TO] Installazione e configurazione DBMS

[HOW-TO] Installazione e configurazione DBMS [HOW-TO] Installazione e configurazione DBMS Ai fini del corso sarà fondamentale possedere le capacità di installare e configurare correttamente almeno un DBMS sul proprio calcolatore. Vedremo in dettaglio

Dettagli

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Web service Hello world con Visual Studio 2012 Si tratta di un semplice esempio di web service, infatti come tutti I programmi

Dettagli

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

Dettagli

LABORATORIO DI Tecnologie di Sviluppo per il Web. Guida all installazione del Software

LABORATORIO DI Tecnologie di Sviluppo per il Web. Guida all installazione del Software LABORATORIO DI Tecnologie di Sviluppo per il Web Guida all installazione del Software Il Software da installare: 1) Ambiente di programmazione Java 2 Software Developement Kit v. 1.4 2) Server HTTP Apache

Dettagli

Come ottenere un certificato per IIS 5.0 per Windows 2000 e IIS 5.0 dalla CA INFN

Come ottenere un certificato per IIS 5.0 per Windows 2000 e IIS 5.0 dalla CA INFN Come ottenere un certificato per IIS 5.0 per Windows 2000 e IIS 5.0 dalla CA INFN Paolo Pierini, INFN Sezione di Milano (Paolo.Pierini@mi.infn.it) Il meccanismo di generazione di richieste di certificati

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Introduzione all ambiente di sviluppo

Introduzione all ambiente di sviluppo Laboratorio II Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2006-07 CdL Operatore Informatico Giuridico. Introduzione all ambiente di sviluppo Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio

Dettagli

XAMPP (a cura di Michele Acierno a.a. 2012/2013)

XAMPP (a cura di Michele Acierno a.a. 2012/2013) XAMPP (a cura di Michele Acierno a.a. 2012/2013) Sommario 1. Introduzione 2.Installazione Xampp 3.Avviare Xampp 4.Configurazione Xampp 4.1 DocumentRoot e standard Directory 4.2 Forbidden Access e accesso

Dettagli

NAL DI STAGING. Versione 1.0

NAL DI STAGING. Versione 1.0 NAL DI STAGING Versione 1.0 14/10/2008 Indice dei Contenuti 1. Introduzione... 3 2. Installazione NAL di staging... 3 VMWare Server... 3 Preistallazione su server linux... 6 Preinstallazione su server

Dettagli

Implementazione. 2.1 Template grafico

Implementazione. 2.1 Template grafico Implementazione 1 Introduzione Questo docunento spiega sinteticamente i punti principali che caratterizzano la realizzazione dell applicazione. Le informazioni che riguardano più da vicino il codice sono

Dettagli

Nautilus Installazione Aggiornato a versione 2.4.1092

Nautilus Installazione Aggiornato a versione 2.4.1092 Nautilus Installazione Aggiornato a versione 2.4.1092 IMPORTANTE: NON INSERIRE LA CHIAVE USB DI LICENZA FINO A QUANDO RICHIESTO NOTA: se sul vostro computer è già installato Nautilus 2.4, è consigliabile

Dettagli

PHI-RE. Configurazione infrastrutturale SOA. Version 1.0 Marzo, 2011. Page 1 of 17

PHI-RE. Configurazione infrastrutturale SOA. Version 1.0 Marzo, 2011. Page 1 of 17 PHI-RE Configurazione infrastrutturale SOA Version 1.0 Marzo, 2011 Page 1 of 17 Versione Marzo 2011 Marzo 2011 Descrizione della variazione Versione iniziale Inserimento capitoli descrizione script installativi

Dettagli

Console di Amministrazione Centralizzata Guida Rapida

Console di Amministrazione Centralizzata Guida Rapida Console di Amministrazione Centralizzata Contenuti 1. Panoramica... 2 Licensing... 2 Panoramica... 2 2. Configurazione... 3 3. Utilizzo... 4 Gestione dei computer... 4 Visualizzazione dei computer... 4

Dettagli

PHP, MySQL e Linux con RedHat 7.2

PHP, MySQL e Linux con RedHat 7.2 PHP, MySQL e Linux con RedHat 7.2 Loris Tissino copyright Loris Tissino, 2002 Table of Contents 1 Introduzione...1 1.1 Il necessario...1 2 Installazione e configurazione iniziale...2 2.1 Installazione

Dettagli

Registro elettronico scuola ospedaliera rel. 7.0

Registro elettronico scuola ospedaliera rel. 7.0 Registro elettronico scuola ospedaliera rel. 7.0 MANUALE DI INSTALLAZIONE 1/12 MANUALE DI INSTALLAZIONE Informazione per gli utenti Il registro elettronico è un applicazione software sviluppata con licenza

Dettagli

JOOMLA & I PROJECT BUILD AUTOMATION

JOOMLA & I PROJECT BUILD AUTOMATION JOOMLA & I PROJECT BUILD AUTOMATION by www.isapp.it Luglio 2013 Autori Giampaolo Losito Antonio Di Girolamo 1 SOMMARIO Prefazione... 3 Requisiti... 3 Un Project Build Automation... 3 Glossario dei termini...

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

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

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

Guida rapida all installazione di NX7 per Windows

Guida rapida all installazione di NX7 per Windows Guida rapida all installazione di NX7 per Windows Lo scopo di questo documento é di fornire una guida sintetica all installazione della versione NX7 di Unigraphics. Alla fine di questo documento, potete

Dettagli

Archiviare messaggi da Microsoft Office 365

Archiviare messaggi da Microsoft Office 365 Archiviare messaggi da Microsoft Office 365 Nota: Questo tutorial si riferisce specificamente all'archiviazione da Microsoft Office 365. Si dà come presupposto che il lettore abbia già installato MailStore

Dettagli

Guida dell'amministratore di JMP 9 alle versioni con licenza annuale per Windows e Macintosh

Guida dell'amministratore di JMP 9 alle versioni con licenza annuale per Windows e Macintosh Guida dell'amministratore di JMP 9 alle versioni con licenza annuale per Windows e Macintosh Gli estremi corretti per la citazione bibliografica di questo manuale sono i seguenti: SAS Institute Inc. 2010.

Dettagli

Come portare la vostra intranet su IBM i con Drupal e Zend Server

Come portare la vostra intranet su IBM i con Drupal e Zend Server Come portare la vostra intranet su IBM i con Drupal e Zend Server by Enrico Zimuel Senior Consultant & Architect Zend Technologies Email: enrico.z@zend.com Copyright 2007, Zend Technologies Inc. Sommario

Dettagli

OwnCloud 8 su rete lan aziendale (una specie di Gdrive privato)

OwnCloud 8 su rete lan aziendale (una specie di Gdrive privato) Augusto Scatolini (webmaster@comunecampagnano.it) (a.scatolini@linux4campagnano.net) (campagnanorap@gmail.com) Miniguida n. 216 Ver. febbraio 2015 OwnCloud 8 su rete lan aziendale (una specie di Gdrive

Dettagli

Strumenti per la programmazione

Strumenti per la programmazione Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un

Dettagli

Sophos Virtualization Scan Controller guida per utenti. Versione prodotto: 1.0

Sophos Virtualization Scan Controller guida per utenti. Versione prodotto: 1.0 Sophos Virtualization Scan Controller guida per utenti Versione prodotto: 1.0 Data documento: luglio 2011 (rivista) Sommario 1 Informazioni sulla guida...3 2 Virtualization Scan Controller...3 3 Dove installare...3

Dettagli

Installazione Alfresco Avanzata

Installazione Alfresco Avanzata QBR Novembre 2011 Installazione Alfresco Avanzata www.qbreng.it I Passi da compiere Installare Java SE Development Kit (JDK) 6.0 (http://it.sun.com/) Installare Database - RDBMS Open Source MySQL (http://dev.mysql.com/downloads)

Dettagli

Eclipse. Avviare un progetto e compilare un semplice programma

Eclipse. Avviare un progetto e compilare un semplice programma Eclipse Avviare un progetto e compilare un semplice programma Descrizione di Eclipse Eclipse è un ambiente di sviluppo che facilita la scrittura ed il debug di programmi java Permette di: Scrivere il codice

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

Come installare Apache 2.2, PHP 5.2 e MySQL 5 su Windows 2000/XP (di Andrea Turso)

Come installare Apache 2.2, PHP 5.2 e MySQL 5 su Windows 2000/XP (di Andrea Turso) Come installare Apache 2.2, PHP 5.2 e MySQL 5 su Windows 2000/XP (di Andrea Turso) Introduzione Il nostro scopo principale è quello di ottenere una piattaforma di sviluppo per poter realizzare e testare

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

Tutorial web Application

Tutorial web Application Tutorial web Application Installazione della JDK: Java viene distribuito con la jdk e il jre acronimi di Java Development Kit e Java Runtime Environment rispettivamente. La jdk è l'ambiente di sviluppo

Dettagli

Fondamenti di programmazione in Java. Lezione III

Fondamenti di programmazione in Java. Lezione III Fondamenti di programmazione in Java Lezione III Scopo della lezione Descrivere gli strumenti che utilizzeremo nel resto del corso per sviluppare programmi in java UltraEdit Java SDK Imparare a scrivere

Dettagli

Compilazione rapporto di Audit in remoto

Compilazione rapporto di Audit in remoto Compilazione rapporto di Audit in remoto Installazione e manuale utente CSI S.p.A. V.le Lombardia 20-20021 Bollate (MI) Tel. 02.383301 Fax 02.3503940 E-mail: info@csi-spa.com Rev. 1.1 23/07/09 Indice Indice...

Dettagli

Guida al Controllo Remoto del proprio PC con VNC e Fastweb (Versione SSL)

Guida al Controllo Remoto del proprio PC con VNC e Fastweb (Versione SSL) Guida al Controllo Remoto del proprio PC con VNC e Fastweb (Versione SSL) Ver. 1.0 rev.1.1 del 14/12/2003 By EnergyDrink emailto:energydrink@fastwebnet.it Questa che segue, e una delle possibili soluzioni

Dettagli

DEL SENDER GUIDA INTEGRATIVA ALL INSTALLAZIONE. Versione N.1.0. Data 11/05/2009. Sender - Guida integrativa alla installazione

DEL SENDER GUIDA INTEGRATIVA ALL INSTALLAZIONE. Versione N.1.0. Data 11/05/2009. Sender - Guida integrativa alla installazione GUIDA INTEGRATIVA ALL INSTALLAZIONE DEL SENDER Versione N.1.0 Data 11/05/2009 Versione 1.0, Data emissione 11/05/2009 Pag. 1 di 15 Revisione Capitolo Modifica Data 1.0 Prima Emissione 11/05/2009 Versione

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

CIT.00.IST.M.MT.02.#7.4.0# CRS-FORM-MES#142

CIT.00.IST.M.MT.02.#7.4.0# CRS-FORM-MES#142 Carta Regionale dei Servizi Carta Nazionale dei Servizi Installazione e configurazione PDL cittadino CRS-FORM-MES#142 INDICE DEI CONTENUTI 1 INTRODUZIONE... 2 1.1 SCOPO E CAMPO DI APPLICAZIONE... 2 1.2

Dettagli

Appunti di Informatica www.mimmocorrado.it 1

Appunti di Informatica www.mimmocorrado.it 1 Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il

Dettagli

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Sommario Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Introduzione.................................................................................. 1 SOAP........................................................................................

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

Dettagli

ISTRUZIONI PASSO PASSO PER CREARE UN SITO CON JOOMLA SU ALTERVISTA

ISTRUZIONI PASSO PASSO PER CREARE UN SITO CON JOOMLA SU ALTERVISTA ISTRUZIONI PASSO PASSO PER CREARE UN SITO CON JOOMLA SU ALTERVISTA REGISTRARSI AL SITO ALTERVISTA, PER OTTENERE SPAZIO WEB GRATUITO o Andare sul sito it.altervista.org o Nel riquadro al centro, scrivere

Dettagli

Bozza Guida ufficiale vs 1.0

Bozza Guida ufficiale vs 1.0 Bozza Guida ufficiale vs 1.0 Caratteristiche del software Videocopen è un software open source di videoconferenza. Sviluppato in php per la parte web e macromedia flash per la videoconferenza, sfrutta

Dettagli

Università degli Studi di Messina MAP Mobile Agent Platform

Università degli Studi di Messina MAP Mobile Agent Platform Università degli Studi di Messina MAP Mobile Agent Platform a cura di MAP Mobile Agent Platform La MAP è la piattaforma per agenti mobili realizzata presso l Istituto di Informatica e Telecomunicazioni

Dettagli

C:\Users\claudio\Desktop\zabbix.txt lunedì 22 ottobre 2012 20:57

C:\Users\claudio\Desktop\zabbix.txt lunedì 22 ottobre 2012 20:57 ZABBIX HOW TO, INSTALLAZIONE ED USO SOMMARIO Disclaimer: come al solito non ho nessuna pretesa ci completezza. Quanto scrivo e' solo per poter rifare "in fretta e furia" quanto gia' trattato, senza dover

Dettagli

Xerox SMart esolutions. White Paper sulla protezione

Xerox SMart esolutions. White Paper sulla protezione Xerox SMart esolutions White Paper sulla protezione White Paper su Xerox SMart esolutions La protezione della rete e dei dati è una delle tante sfide che le aziende devono affrontare ogni giorno. Tenendo

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Acronis License Server. Manuale utente

Acronis License Server. Manuale utente Acronis License Server Manuale utente INDICE 1. INTRODUZIONE... 3 1.1 Panoramica... 3 1.2 Politica della licenza... 3 2. SISTEMI OPERATIVI SUPPORTATI... 4 3. INSTALLAZIONE DI ACRONIS LICENSE SERVER...

Dettagli

License Management. Installazione del Programma di licenza

License Management. Installazione del Programma di licenza License Management Installazione del Programma di licenza Nur für den internen Gebrauch CLA_InstallTOC.fm Indice Indice 0 1 Informazioni di base................................................... 1-1

Dettagli

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Costruzione di Sit Web con PHP e MySQL Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Esercitazione In questa lezione si farà insieme una seconda esercitazione che

Dettagli

Posta Elettronica Certificata elettronica per il servizio PEC di TI Trust Documento ad uso pubblico Pag. 1 di 33 Indice degli argomenti 1 Scopo del documento... 3 2 Primo accesso e cambio password... 4

Dettagli

FAQ RISPOSTE A DOMANDE FREQUENTI

FAQ RISPOSTE A DOMANDE FREQUENTI FAQ RISPOSTE A DOMANDE FREQUENTI FAQ Su sistemi RedHat ho riscontrato problemi in STSCALCxx, nell esecuzione della runtime Java. In RedHat è necessario installare il pacchetto: compat-libstdc++-6.2-2.9.0.16.rpm

Dettagli

Installazione & Manuale di Utilizzo

Installazione & Manuale di Utilizzo Meet O Matic Installazione & Manuale di Utilizzo Autori: Matteo Maggioni Luca Mantovani Matricola: 721923 721014 1 Indice 1 Requisiti di installazione 4 2 Installazione 4 3 Manuale di utilizzo 4 3.1 Registrazione

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

La parte client è invece un programma che si chiama mysql. Gli altri eseguibili (client) fondamentali sono mysqladmin, mysqldump.

La parte client è invece un programma che si chiama mysql. Gli altri eseguibili (client) fondamentali sono mysqladmin, mysqldump. Panoramica MySQL MySQL è un RDBMS free ed open source, nativo dell ambiente Linux ma disponibile anche su piattaforme Windows e MAC OS. E stato pensato come prodotto leggero come contenitore di dati a

Dettagli

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

Dettagli

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica PHP: Interfacce; Gestione errori ed eccezioni i Pasqualetti Veronica Interfacce In PHP non si possono ereditare proprietà da più classi. 2 Per ovviare al problema si possono creare delle interfacce che

Dettagli

Questo punto richiederebbe uno sviluppo molto articolato che però a mio avviso va al di là delle possibilità fornite al candidato dal tempo a disposizione. Mi limiterò quindi ad indicare dei criteri di

Dettagli

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Dettagli

Jeronimo Mobile (JEMO) Gestione Assistenza Tecnica Mobile GUIDA UTENTE. (solo prime 8 pagine) Revisione B, Luglio 2011. a cura di Vinicio Montagnoli

Jeronimo Mobile (JEMO) Gestione Assistenza Tecnica Mobile GUIDA UTENTE. (solo prime 8 pagine) Revisione B, Luglio 2011. a cura di Vinicio Montagnoli Jeronimo Mobile (JEMO) Gestione Assistenza Tecnica Mobile GUIDA UTENTE (solo prime 8 pagine) Revisione B, Luglio 2011 a cura di Vinicio Montagnoli www.assistinformatica.com 2011 by Assist Informatica Srl

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