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

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

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

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

[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

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

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

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

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

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

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

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

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

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

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

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

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

Il linguaggio di programmazione JAVA

Il linguaggio di programmazione JAVA Introduzione a JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

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

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

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

BIMPublisher Manuale Tecnico

BIMPublisher Manuale Tecnico Manuale Tecnico Sommario 1 Cos è BIMPublisher...3 2 BIM Services Console...4 3 Installazione e prima configurazione...5 3.1 Configurazione...5 3.2 File di amministrazione...7 3.3 Database...7 3.4 Altre

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

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

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

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

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

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

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

Dettagli

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

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

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

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

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

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

MANUALE UTENTE INTERNET - ISTRUZIONI TECNICHE PER L UTILIZZO DEL SERVIZIO

MANUALE UTENTE INTERNET - ISTRUZIONI TECNICHE PER L UTILIZZO DEL SERVIZIO Rev. n 02 Pag. 1 di 25 SERVIZIO DI CERTIFICAZIONE TERNA L UTILIZZO DEL SERVIZIO Storia delle revisioni Rev. n Data Descrizione 01 23/08/2010 Prima emissione del documento. 02 24/09/2010 Aggiornamento printscreen

Dettagli

Creazione di un database per VSFTPD

Creazione di un database per VSFTPD VSFTPD non ha un supporto built-in per MySQL, per cui le libpam-mysql sono fondamentali per permettere a vsftpd di leggere gli utenti presenti su mysql. Aggiungiamo anche un utente di sistema per VSFTPD,

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

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java APPENDICE Appendice Strumenti per lo sviluppo dei programmi Java Per imparare a programmare non è sufficiente leggere gli esempi del testo, ma è necessario scrivere ed eseguire realmente i programmi. Tutti

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

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

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

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

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

RuparPiemonte Manuale di installazione certificato digitale per la sicurezza Certification Authority di SistemaPiemonte

RuparPiemonte Manuale di installazione certificato digitale per la sicurezza Certification Authority di SistemaPiemonte RuparPiemonte Manuale di installazione certificato digitale per la sicurezza Certification Authority di SistemaPiemonte Pag. 1 di 17 SOMMARIO 1. PREMESSE...2 2. IL...2 3. VERIFICA DELLA VERSIONE CORRETTA

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

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

Perchè utilizzare un'autorità di certificazione

Perchè utilizzare un'autorità di certificazione Una generica autorità di certificazione (Certification Authority o più brevemente CA) è costituita principalmente attorno ad un pacchetto software che memorizza i certificati, contenenti le chiavi pubbliche

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

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

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

Sophos Virtualization Scan Controller guida per utenti. Versione prodotto: 2.0 Sophos Virtualization Scan Controller guida per utenti Versione prodotto: 2.0 Data documento: maggio 2013 Sommario 1 Informazioni sulla guida...3 2 Virtualization Scan Controller...4 3 Dove installare...5

Dettagli

DB2 Universal Database (UDB) DB2 Universal Database (UDB)

DB2 Universal Database (UDB) DB2 Universal Database (UDB) DB2 Universal Database (UDB) Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DB2Presentazione2009.pdf Sistemi Informativi L-A DB2 Universal

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

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

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

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

Linguaggi 2 e laboratorio

Linguaggi 2 e laboratorio Linguaggi 2 e laboratorio Docente: Leonardo Badia Contatti: leonardo.badia@gmail.com Pagina web del corso: www.unife.it/scienze/informatica/ insegnamenti/linguaggi-2-laboratorio Argomenti del corso: Java

Dettagli

MYSQL. Avviare MySQL Per avviare il server MySQL basta lanciare il Servizio Mysql presente (aggiunto) tra i servizi di sistema.

MYSQL. Avviare MySQL Per avviare il server MySQL basta lanciare il Servizio Mysql presente (aggiunto) tra i servizi di sistema. Documento creato da Andrea www.ceccherini.net Per informazioni : andrea@ceccherini.net MYSQL MySQL è un database piuttosto popolare, reso ancor più interessante da almeno due fattori: primo, la sua gratuità;

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

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

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli 4 Un primo programma Java Introduzione alla programmazione in Java class Program1 { System.out.println("Benvenuti al corso"); 1 5 Programmi e mondo reale Programmare ad oggetti Il codice di un programma

Dettagli

Laboratorio di Amministrazione di Sistema (CT0157) parte A : domande a risposta multipla

Laboratorio di Amministrazione di Sistema (CT0157) parte A : domande a risposta multipla Laboratorio di Amministrazione di Sistema (CT0157) parte A : domande a risposta multipla 1. Which are three reasons a company may choose Linux over Windows as an operating system? (Choose three.)? a) It

Dettagli

Introduzione alla programmazione in Java

Introduzione alla programmazione in Java Introduzione alla programmazione in Java 1 Programmare ad oggetti La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma

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

maildocpro Manuale Installazione

maildocpro Manuale Installazione maildocpro Manuale Installazione versione 3.4 maildocpro Manuale Installazione - Versione 3.4 1 Indice Indice... 2 Creazione database... 3 Database: MAILDOCPRO... 3 Database: SILOGONWEB... 5 Configurazione

Dettagli

Setup Tomcat. Installare Java SDK * (http://java.sun.com/j2se/1.4.2/download.html) ad es. in c:\programmi\j2sdk1.4.2_08

Setup Tomcat. Installare Java SDK * (http://java.sun.com/j2se/1.4.2/download.html) ad es. in c:\programmi\j2sdk1.4.2_08 Setup Tomcat Installare Java SDK * (http://java.sun.com/j2se/1.4.2/download.html) ad es. in c:\programmi\j2sdk1.4.2_08 Impostare la variabile d'ambiente JAVA_HOME (e.g. JAVA_HOME=c:\programmi\j2sdk1.4.2_08)

Dettagli

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI Nicoletta Barbaro 4C Mercurio TRACCIA DEL PROBLEMA: RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI Un'azienda che distribuisce film in formato dvd chiede ad una software house(4c mercurio)

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

Apache MySQL PHP - FTP

Apache MySQL PHP - FTP Apache MySQL PHP - FTP Scelta del software, Installazione e configurazione Ivan Grimaldi grimaldi.ivan@gmail.com HcssLug GNU/LINUX USERS GROUP Outline Cenni sul funzionamento di un WebServer Apache, PHP,

Dettagli

ATM. Compatibile con diversi Canali di Comunicazione. Call Center / Interactive Voice Response

ATM. Compatibile con diversi Canali di Comunicazione. Call Center / Interactive Voice Response Compatibile con diversi Canali di Comunicazione Call Center / Interactive Voice Response ATM PLUS + Certificato digitale Dispositivi Portatili Mutua Autenticazione per E-mail/documenti 46 ,classico richiamo

Dettagli

Laboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC

Laboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC Fondamenti di JDBC Concetto di driver Il dialogo fra applicazione e DBMS non è mai gestito direttamente ma passa in genere per un opportuno modulo software chiamato driver che agisce da interfaccia fra

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

CMDBuild. Open Source Configuration and Management Database. Technical Manual

CMDBuild. Open Source Configuration and Management Database. Technical Manual CMDBuild Open Source Configuration and Management Database Technical Manual Versione 0.4.0 Maggio 2006 No part of this document may be reproduced, in whole or in part, without the express written permission

Dettagli

IN PROGRESS MAJOR: 1 of 6 11/25/2008 09:29 AM. Indice dei progetti:

IN PROGRESS MAJOR: 1 of 6 11/25/2008 09:29 AM. Indice dei progetti: Indice dei progetti: server chat di Roberto Foglietta Ultima versione disponibile: libsocket-052.tar.gz Server LibSocket r0.52 Il pacchetto contiene i sorgenti e anche l eseguibile che puo essere avviato

Dettagli

Consulenza Informatica ======================================================================= Introduzione. Documentazione tecnica

Consulenza Informatica ======================================================================= Introduzione. Documentazione tecnica Introduzione Le novità che sono state introdotte nei terminal services di Windows Server 2008 sono davvero tante ed interessanti, sotto tutti i punti di vista. Chi già utilizza i Terminal Services di Windows

Dettagli

Ambiente Virtuale Inclusivo per la Persona Autistica MANUALE OPERATORE. Release 1.0-13/10/09. Copyright Lynx 2009 http://www.lynxlab.

Ambiente Virtuale Inclusivo per la Persona Autistica MANUALE OPERATORE. Release 1.0-13/10/09. Copyright Lynx 2009 http://www.lynxlab. MANUALE OPERATORE Release 1.0-13/10/09 Copyright Lynx 2009 http://www.lynxlab.com Indice generale MANUALE OPERATORE...1 1.1 Definizioni...3 1.2 Ambienti...3 1.3 Release e copyright...3 2. Utenti...4 2.1

Dettagli

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE Programmare in Php con Xampp e NetBeans IDE NetBeans è un IDE ben noto ai programmatori Java. Con esso si possono infatti costruire applicazioni desktop professionali dotate di interfaccia grafica, applicazioni

Dettagli

SVN server, per Florim, è installato su server di test, anche se la sua configurazione può avvenire in qualsiasi ambiente.

SVN server, per Florim, è installato su server di test, anche se la sua configurazione può avvenire in qualsiasi ambiente. Siti FLORIM SVN Subversion Il sistema di versioning viene illustrato nell immagine seguente: Sistema locale dello sviluppatore, si parla di working copy ( copia dei file dal server in produzione) SVN server,

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

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

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

CONFIGURATION MANUAL

CONFIGURATION MANUAL RELAY PROTOCOL CONFIGURATION TYPE CONFIGURATION MANUAL Copyright 2010 Data 18.06.2013 Rev. 1 Pag. 1 of 15 1. ENG General connection information for the IEC 61850 board 3 2. ENG Steps to retrieve and connect

Dettagli

Procedura di accreditamento ai servizi di Interoperabilità

Procedura di accreditamento ai servizi di Interoperabilità Procedura di accreditamento ai servizi di Interoperabilità 25/11/2010 Cod. SISTRI-MOF_ACC_INT-001 Sommario - Limitazioni di responsabilità e uso del manuale...3 1. Glossario...3 2. Presentazione...4 2.1

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB.

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Web Server TOMCAT Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

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

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit versione beta by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit è un programma che permette di elaborare i dati prodotti da DataStudio. I dati devono essere salvati da DataStudio

Dettagli

sdforexcontest2009 Tool

sdforexcontest2009 Tool sdforexcontest2009 Tool Guida all istallazione e rimozione. Per scaricare il tool del campionato occorre visitare il sito dell organizzatore http://www.sdstudiodainesi.com e selezionare il link ForexContest

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

LIBPF Guida per l'attivazione

LIBPF Guida per l'attivazione This document is part of LIBPF Paolo Greppi libpf.com Copyright 2009-2013 Credits: Daniele Bernocco 2012 All rights reserved; do not distribute without permission. LIBPF Guida per l'attivazione 1 di 20

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

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