DATI IDENTIFICATIVI DEL PROGETTO



Documenti analoghi
Esercitazione n 4. Obiettivi

Programmazione in Java Parte I: Fondamenti

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

Le command line di Java

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Servers Activatable. Massimo Merro Programmazione di Rete 166 / 193

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Programmazione ad oggetti

Oggetti Lezione 3. aspetti generali e definizione di classi I

Esercizi della lezione 5 di Java

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

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

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

dall argomento argomento della malloc()

Appunti di Informatica 1

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

SERVIZIO TELEMATICO ENTRATEL. Applicazione Autentica-Apri Multifile

Esempi di esercizi d esame

Strumenti per la programmazione

DOCFINDERWEB SERVICE E CLIENT

Programmazione a Oggetti Lezione 10. Ereditarieta

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

Java Remote Method Invocation

Object Oriented Programming

costruttori e distruttori

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

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

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

Volumi di riferimento

Java: Compilatore e Interprete

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Approccio stratificato

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Introduzione a Classi e Oggetti

Librerie. Laboratorio di Informatica Antonio Monteleone 28

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

Client e Server comunicano tramite il protocollo SOAP.

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

Inizializzazione, Assegnamento e Distruzione di Classi

Scrivere un programma in Java

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

Installazione dell'adattatore di IBM SPSS Modeler Server

Telematica II 17. Esercitazione/Laboratorio 6

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

Test di unità con JUnit4

Panoramica: che cosa è necessario

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

SERVIZIO TELEMATICO ENTRATEL. Applicazione Invia Multifile

Modello per la compilazione della scheda progetto SK_2.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Algoritmi di Ricerca. Esempi di programmi Java

SAPIENZA Università di Roma, Facoltà di Ingegneria

I file di dati. Unità didattica D1 1

IB Connector. Architettura

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Josef Vitanostra INFORMATICA PARTHENOPE

Realizzazione di una classe con un associazione

Java SOAP Client. Manuale per l installazione. WebEDI Scambio elettronico documenti. ManualeInstallazioneSoapCli ent

Ambienti di Sviluppo

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...)

Esercitazione di Sistemi Distribuiti: Java RMI

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Generalizzazione di funzioni e di classi. Macro come funzioni generiche

Tale attività non è descritta in questa dispensa

Scheda 15 Accedere ai DataBase con JDBC

Sottoprogrammi: astrazione procedurale

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Eclipse. Avviare un progetto e compilare un semplice programma

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

1 JSPDynPage, componenti portale e Java Server Pages

Visibilità dei Membri di una Classe

Socket & RMI Ingegneria del Software - San Pietro

Manuale utente Volta Control

Java? Sì, grazie. Scopo del corso

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

INTRASTAT TELEMATICO

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Corso di Informatica

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

Parola chiave extends

RMI. Java RMI RMI. G. Prencipe

Programmazione Orientata agli Oggetti in Linguaggio Java

Analisi e sviluppo di un componente per un ESB open source

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop

Per accedere alle nuove funzioni è necessario assegnare ai soggetti interessati i seguenti accessi:

Proff. Fabio Ciao e Raffaele Bortone

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop

20 - Input/Output su File

Moduli di Fatturazione Elettronica

Transcript:

DATI IDENTIFICATIVI DEL PROGETTO N. VERSIONE 1.0 ITEM Integrazione con Java DATA DI USCITA PREVISTA DESCRIZIONE Creazione di DLL per integrazioni con Java Pag. 1 di 9

Descrizione dei requisiti Sezione Macro Analisi ELEMENTI IN INGRESSO PROVENIENZA OBIETTIVI SOLUZIONE Integrazione per l Abruzzo Realizzazione di un modulo per chiamare classi Java Pag. 2 di 9

Pianificazione RISORSE FASE DESCRIZIONE FASE INIZIO PREVISTO FINE PREVISTA COINVOLTE 1 Analisi JNI Riccardo Nobili 01-01-2008 10-01-2008 2 Realizzazione della DLL Riccardo Nobili 11-01-2008 31-01-2008 Pag. 3 di 9

Sezione Progettazione Si realizza una DLL che consenta di istanziare una Java Virtual Machine e da questa creare oggetti e chiamare metodi. Il wrapper deve esporre una interfaccia di tipo winapi C. Architettura del SoftWare La DLL si chiama MilleJava.dll e implementa i seguenti metodi: Metodo Init_JavaVM Init_JavaVM_File Free_JavaVM New_Java Call_Java_SS_S Call_SJava_V_O Call_Java_V_B Call_Java_SS_B Call_Java_S_B Call_Java I Call_Java_SSS_S Call_Java S Descrizione Lancia la JVM Init_JavaVM_File prendendo il classpath da file Libera la memoria dalla JVM Chiama il costruttore di una classe Chiama il metodo di una classe di tipo func(string, string) as string Chiama un metodo statico di una classe di tipo func() as object Chiama il metodo di una classe di tipo func() as bool Chiama il metodo di una classe di tipo func(string, string) as bool Chiama il metodo di una classe di tipo func(string) as bool Chiama il metodo di una classe di tipo func() as int Chiama il metodo di una classe di tipo func(string, string,string) as string Chiama il metodo di una classe di tipo func() as string Specifiche di dettaglio Funzione: Init_JavaVM Descrizione: Lancia la JVM (Java Virtual Machine) bool Init_JavaVM(String szclasspath) szclasspath := Classpath Boolean := Esito dell operazione Note: Questo metodo inizializza un JVM passandogli un classpath come stringa. La JVM viene individuata automaticamente nel registry dalla chiave: HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment Che indica la versione di default del Java Runtime installato. Pag. 4 di 9

Funzione: Init_JavaVM_File Descrizione: Lancia la JVM bool Init_JavaVM(String szclasspathfile) szclasspathfile := Path di un file di testo che contiene il classpath Boolean := Esito dell operazione Note: Questo metodo inizializza un JVM passandogli un classpath in un file di testo La JVM viene individuata automaticamente nel registry dalla chiave: HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment Funzione: Free_JavaVM Descrizione: Libera la memoria della JVM void Free_JavaVM() Nessuno Nessuno Note: Una volta liberata la JVM non può essere più chiamata la Init_JavaVM perché un processo non può lanciare più di una JVM. Questo è un Bug della implementazione di Java, quindi questa funzione non andrebbe mai chiamata se non alla fine del processo. Funzione: New_Java Descrizione: Chiama il costruttore di una classe jobject New_Java(String szclass) szclass := Nome della classe da istanziare Valore di ritorno := Handle dell oggetto istanziato Pag. 5 di 9

Note: il tipo jobject deve essere memorizzato in un tipo long integer Funzione: Call_Java_SS_S Descrizione: Chiama il metodo di una classe di tipo func(string, string) as string String Call_Java_SS_S(jobject jo, String lpfunc, String lppar1, String lppar2) lppar1 := valore parametro 1 lppar2 := valore parametro 2 string := ritorno del metodo Note: il tipo jobject deve essere memorizzato in un tipo long integer,il tipo string è un char *. Call_SJava_V_O Descrizione: Chiama un metodo statico di una classe di tipo func() as object jobject Call_SJava_V_O(String szclass, String lpfunc) szclass := Nome della classe iobject := Handle dell oggetto Note: il tipo jobject è un long integer,il tipo string è un char *. Call_Java_V_B Descrizione: Chiama il metodo di una classe di tipo func() as bool bool Call_Java_V_B(jobject jo, String lpfunc) bool := ritorno del metodo Pag. 6 di 9

Call_Java_SS_B Descrizione: Chiama il metodo di una classe di tipo func(string, string) as bool bool Call_Java_SS_B(jobject jo, Striing lpfunc, String lppar1, String lppar2) lppar1 := valore parametro 1 lppar2 := valore parametro 2 bool := ritorno del metodo Call_Java_S_B Descrizione: Chiama il metodo di una classe di tipo func(string) as bool bool Call_Java_SS_B(jobject jo, Striing lpfunc, String lppar) lppar := valore parametro bool := ritorno del metodo Call_Java I Descrizione: Chiama il metodo di una classe di tipo func() as integer Integer Call_Java_V_B(jobject jo, String lpfunc) integer := ritorno del metodo Pag. 7 di 9

Funzione: Call_Java_SSS_S Descrizione: Chiama il metodo di una classe di tipo func(string, string, string) as string String Call_Java_SSS_S(jobject jo, String lpfunc, String lppar1, String lppar2, String lppar3) lppar1 := valore parametro 1 lppar2 := valore parametro 2 lppar3 := valore parametro 3 string := ritorno del metodo Note: il tipo jobject deve essere memorizzato in un tipo long integer,il tipo string è un char *. Funzione: Call_Java S Descrizione: Chiama il metodo di una classe di tipo func() as string String Call_Java S(jobject jo, String lpfunc) string := ritorno del metodo Note: il tipo jobject deve essere memorizzato in un tipo long integer,il tipo string è un char *. Esempi Un esempio per chiamare un messaggio dell abruzzo char * szfileconf; LPCSTR pstr; szfileconf = "AritServices.conf"; if(!init_javavm_file(szfileconf)) { printf("java NON è partito!\n"); } printf("java VM partito!\n"); jobject jo=null; jo = Call_SJava_V_O("com/deda/arit/client/AritServices", "getinstance"); if(!jo ) { Pag. 8 di 9

printf("metodo non trovato!\n"); Free_JavaVM(); return -1; } Call_Java_SS_B(jo,"login","user1","pwd1"); pstr = Call_Java_SSS_S(jo,"sendMsg","DocumentRepository_ProvideAndRegisterDocumentSetB", "<?xml version=\"1.0\" \"?>< documento principale >","<?xml version=\"1.0\" \"?>< documento allegato >"; if( pstr ) printf("sendmsg ret-->%s\n",pstr); if( Call_Java_V_B(jo,"stop") ) printf("stop!\n"); Free_JavaVM(); printf("free Java VM!\n"); Richiedente Data Firma Approvato da Data Firma Pag. 9 di 9