INTERNAZIONALIZZAZIONE E LOCALIZZAZIONE DEL SOFTWARE 23 luglio 2009 Esame di laurea in Informatica di Diego Benna SOMMARIO Sede dello stage e problema affrontato Strumenti Soluzioni Valutazione Sede dello stage e problema affrontato DOVE HO SVOLTO LO STAGE Inizio stage: 7 gennaio 2008 Durata iniziale prevista: 300 ore Fine stage: 15 marzo 2008 Sede: azienda SanMarco Informatica di Grisignano di Zocco Attività dell'azienda: sviluppo di un software gestionale chiamato Galileo Ambiente utilizzato: AS/400 1/14 Sede dello stage e problema affrontato PROBLEMATICA (1) Area esteri: gestione dei dati di clienti di nazionalità diversa Condivisione dei dati di lingue diverse con la codifica EBCDIC (8 bit) dell'AS/400 Esempio: 2 utenti di nazionalità diversa inseriscono dati in AS/400 usando EBCDIC utente greco: CCSID 875 utente inglese: CCSID 37 DATABASE: CCSID 37 2/14 Sede dello stage e problema affrontato PROBLEMATICA (2) Dati inseriti dall'utente inglese Åalson Glenski Dati inseriti dall'utente greco Mένπ Ωριμα I caratteri greci sono immagazzinati correttamente soltanto se lo stesso carattere esiste all'interno di CCSID 37. Å G M Ω 67 C7 53 67 Il carattere Ω non esiste nella code page inglese (37). Si ha una conversione automatica al carattere Å Supponiamo l'utente greco voglia cercare le parole che iniziano per Ω Select from DATABASE1 where name LIKE 'Ω%' Risultato: Ωalson, Ωριμα. 3/14 Strumenti CORSO E DOCUMENTAZIONE 300 ore di corso prima dell'inizio dello stage Tecniche di sviluppo software e consulenza applicativa in ambiente AS/400 Documenti consultati: International application development Globalization solution design guide 4/14 Soluzioni UTILIZZO DI UCS-2 UCS-2 (Universal Character Set, definito da ISO 10646 nel 1989): i primi 65.536 caratteri di Unicode (definito e aggiornato da Unicode Consortium nel 1991) Utilizzo di UCS-2 nell'esempio precedente Åalson Glenski Mένπ Ωριμα Å G M Ω 00C5 0047 03A9 039C 5/14 Soluzioni PROBLEMA INTERFACCIA UTENTE Strumento utilizzato per le interfacce grafiche di Galileo: VisualAge RPG Problematica VisualAge RPG: non supporta codifica UCS-2 ma solo codifica EBCDIC NON SUPPORTA UCS-2 → conversione a EBCDIC DB2 con campi UCS-2 6/14 Soluzioni POSSIBILI SOLUZIONI Riprogettazione dell'applicazione: usare specifiche architetture per l'internazionalizzazione usare strumenti offerti dal linguaggio Java Compromesso: aggiungere tabelle con campi UCS-2 nel DB mantenendo la parte logica (programmi RPG su AS/400) sviluppare interfacce grafiche in Java (supporto di Unicode) 7/14 Soluzioni ARCHITETTURA SOFTWARE Un singolo eseguibile e una singola libreria di risorse per ogni lingua meno test sviluppo più semplice Architettura SMI Architettura proposta 8/14 Valutazione TEMPI (1) Motivi per cui è stato necessario più tempo ( 300 ore di corso SMI + circa 320 ore contro le 300 previste di stage): prerequisito dello stage: necessità di partecipare al corso della SanMarco Informatica mancanza di conoscenze su internazionalizzazione e ambiente AS/400 carenza di documentazione sull'argomento all'interno dell'azienda 9/14 Valutazione TEMPI (2) Ripartizione delle ore di lavoro: Tempi complessivi (620 ore) Ripartizione delle ore di stage (320 ore) 10/14 Valutazione TEMPI (3) Diagramma di Gantt relativo alle attività: 11/14 Valutazione RISULTATI (1) Il lavoro presentato nella mia tesi fornisce all'azienda: la conoscenza delle codifiche supportate da AS/400 e i loro limiti la definizione delle cause dei problemi riscontrati in area esteri la progettazione di architetture che considerano l'internazionalizzazione lo studio di una soluzione alternativa che non richiede la riprogettazione dei programmi RPG 12/14 Valutazione RISULTATI (2) Documentazione fornita all'azienda: Rapporto tecnico sulla codifica usata fino a quel momento e sulla codifica UCS-2 supportata dall'AS/400 Documenti di IBM riguardanti l'importanza dell'internazionalizzazione Manuale su come introdurre la codifica UCS-2 nelle tabelle di DB2 Programmi che erano soggetti alle problematiche trattate, riprogettati applicando le 2 soluzioni 13/14 Valutazione CONCLUSIONI consapevolezza da parte dell'azienda che i problemi non possono più essere trascurati e valutazione delle soluzioni proposte considerazioni sulle soluzioni: interessante la prima soluzione proposta (riprogettazione) ma di difficile attuazione per i costi. possibile applicazione della seconda soluzione (compromesso interfacce grafiche in Java) decisione di applicare la seconda soluzione nella prossima versione del programma 14/14