professionisti del software life cycle Midrange Modernization Conference modernizzare le applicazioni sviluppate per AS/400: la proposta Microsoft per i Partner la migrazione di codice COBOL AS/400 verso il mondo .NET professionisti del software life cycle agenda • • • • • introduzione la migrazione delle applicazioni le applicazioni COBOL la “roadmap” le principali tecnologie a supporto del processo di migrazione • conclusioni -2- professionisti del software life cycle chi è bizlogica • un’azienda focalizzata su processi e tecnologie attinenti il software lifecycle • partner italiano di aziende come Relativity Technologies, Fujitsu Computer Systems (ex Fujitsu Software), Borland (Segue Software: soluzioni di test) • esperienze in progetti di trasformazione di applicazioni legacy -3- professionisti del software life cycle la migrazione delle applicazioni • a chi si rivolge: tutte quelle situazioni in cui sono presenti piattaforme applicative e/o architetturali in produzione da tempo, e per le quali esista una esigenza (generica) di miglioramento di risultati, performance, funzioni, utilizzo da parte dell’utente, meccanismi e cicli di manutenzione, fino a ipotesi di ammodernamento di basi dati, interfacce, environment o ambienti applicativi -4- professionisti del software life cycle legacy migration • la soluzione si basa sul recupero della conoscenza dell’applicazione, e la conseguente creazione di componenti • tali componenti, una volta creati, possono avere diverse destinazioni, secondo le diverse scelte architetturali, adeguandosi di fatto alle piattaforme tecnologiche target • la soluzione può avere diverse articolazioni con vantaggi che, secondo le scelte effettuate, sono di tipo economico, di efficace impiego delle risorse, e di minor rischio -5- professionisti del software life cycle rifare, emulare, o migrare? • nella necessità di sviluppare da zero una nuova applicazione, oggi quasi nessuno orienta la propria scelta su COBOL o RPG • anche se esistono da tempo versioni object oriented dei compilatori, tutti gli environment più evoluti e attuali contemplano l’utilizzo di linguaggi diversi • nel caso della piattaforma .NET di Microsoft, è possibile la convivenza tra linguaggi diversi, come C#, J# e VB, e, soprattutto, COBOL e RPG, rendendo possibile e vantaggioso il recupero del codice -6- professionisti del software life cycle le scelte possibili sostituzione sostituzione delle applicazioni e dei sistemi esistenti con soluzioni di mercato (es. sistemi ERP) rischio: costo: tempo: valore: medio/alto alto lungo elevato emulazione modernizzazione di tipo “tattico”, con il supporto di layer software di emulazione rischio: costo: tempo: valore: basso contenuto breve basso rifacimento conversione e/o riscrittura delle applicazioni in linguaggi/ambienti moderni (J2EE, .NET) rischio: costo: tempo: valore: alto alto lungo elevato rischio: costo: tempo: valore: basso medio medio elevato migrazione migrazione delle applicazioni (o di parti di esse) verso un ambiente moderno (.NET) mantenendo i linguaggi esistenti (COBOL e RPG) -7- professionisti del software life cycle la migrazione • l’esperienza dimostra che l’obiettivo è raggiungibile, senza necessariamente rischiare una rivoluzione – – – – il percorso è configurabile con obiettivi intermedi l’investimento è configurabile secondo le capacità l’impatto sull’utente è modulabile l’acculturamento delle risorse di sviluppo e manutenzione è graduale – è possibile far convivere le nuove applicazioni con le vecchie – la configurazione target la decide il Cliente -8- professionisti del software life cycle la migrazione: vantaggi e benefici • se sono validi i presupposti, i vantaggi sono: – – – – – – minor tempo migliore razionalizzazione migliore qualità migliore corrispondenza ai requisiti utente minori rischi riutilizzo degli skill -9- professionisti del software life cycle a quali piattaforme e linguaggi legacy è applicabile? • sistemi mainframe (IBM, Unisys, Bull, …) • sistemi centrali (AS/400–iSeries, Unix) • applicazioni CICS, IMS, AS/400, Adabas, ADW, APS, ADS-Online, … • organizzazioni dati VSAM, DL/I, DB2, DB2/400, files AS/400, Adabas, IDMS, … • linguaggi COBOL, RPG, PL/I, Natural, … • JCL, ECL, CL/400 • … -10- professionisti del software life cycle modalità di migrazione sistema applicativo legacy modello funzionale documentazione prototipo decisione presentation intervista utente 1° classificazione logica knowledge mining fattibilità re-learning sistema sottosistema batch job programma section decisione dati individuazione e separazione logica dei layer livello modello dati analisi dati analisi risultati progetto tipo di documentazione mappa generale, elenco dei sottosistemi mappa, elenco dei moduli, job batch, database, schermate, ... programmi lanciati, database acceduti, frequenza, ... scopo, programmi chiamati, database letti o scritti, chiamato da, parametri, ... funzionalità, chiamate esterne, section performed, condizioni verificate, variabili utilizzate... -11- professionisti del software life cycle la migrazione delle DDS Descrizione: La soluzione proposta prevede l'adozione del tool Fujitsu NetCOBOL for .NET unito alle suite Monarch e Visual RPG.NET di ASNA I Wizard forniti da Monarch consentono di importare le DDS (Display file, Printer file) e di convertirle automaticamente in form ASP.NET o in classi AVR per la gestione delle stampe, nonché di generare, partendo da file Template RPG, il codebehind associato alla Form DDS (Print File ) DDS (Display File ) RPG Template File ASNA Monarch VS.NET Project AVR class .NET Framework AVR class IIS Web Server COBOL component ASP.NET Page -12- professionisti del software life cycle slicing logica COBOL COBOL programs Descrizione: La logica business in COBOL, sottoposta ad un processo di slicing può essere estrapolata in componenti (Object Oriented) COBOL.NET, e richiamata dai programmi RPG (codebehind) generati Business Rules Extraction .NET Framework VS.NET Project NetCOBOL .NET COBOL component COBOL component COBOL component -13- professionisti del software life cycle migrazione struttura dati e Data layer Descrizione: Il tool DataGate di ASNA consente la migrazione automatica della struttura dati da AS/400 a MS SQL Server, mentre l'isolamento degli accessi alla base dati in un unico componente di data layer consente l'integrazione con le classi COBOL I-O DB statements DB AS/400 ASNA Monarch ASNA DataGate Data Layer NetCOBOL .NET COBOL component AVR class COBOL component COBOL component AVR class MS SQL Server AVR class -14- professionisti del software life cycle una visione d’insieme DDS File (display file, Print file ecc..) RPG template ASNA Visual RPG.NET AVR Class AVR Class Business Rules Extraction Web Services Built application VS.NET Project ASNA Monarch COBOL File .NET Framework Fujitsu NetCOBOL.NET Cobol component Cobol component Data Layer DB AS/400 ASNA DataGate ASP.NET Page MS SQL Server -15- professionisti del software life cycle il processo che interviene sul codice COBOL • esame del codice sorgente per l’individuazione dei diversi layer: – – – – – Files READ & WRITE Printer READ & WRITE Video READ & WRITE CALL Using (Linkage Section) – COMPUTE FIELD-A = … Data Layer Presentation Layer Communication Layer Business Layer -16- aree di attenzione BR 1 BR 2 User Interface Code Data Data Access Code BR 6 BR 5 User Interface Code BR 3 Data BR 4 Data Access Code Programma COBOL monolitico analisi degli impatti razionalizzazione / refactoring eliminazione di codice morto/decaduto documentazione partizionamento applicazioni Separazione logica (fisica?) professionisti del software life cycle rinnovo (refactoring) - COBOL User Presentation Interface Layer Code Business Layer Data Layer BR 1 BR 2 BR 3 BR 4 BR 5 BR 6 Data Access Code Data Programma COBOL destrutturato -17- professionisti del software life cycle gli ambienti target di riferimento: esempi di configurazione per l’integrazione con servizi centrali .NET Framework Web Services OLEDB/ODBC SQL Server Service Data .NET Components Business Components Application Data Host Integration Layer MOM Adapter Messages ADO.NET MQSeries DRDA AS400 iSeries AS400 Procedures (i.e. COBOL/400) DB2/400 SQL Native Mid. Data Transformation & Replication Environment (HIS) File Transfer AS/400 Files -20- le tecnologie professionisti del software life cycle professionisti del software life cycle le principali tecnologie a supporto dei processi di migrazione • Relativity Technologies: Modernization Workbench • Fujitsu Software Corp.: Dialect Converters • Fujitsu Software Corp.: NetCOBOL for .NET • ASNA: Monarch • ASNA: Visual RPG .NET • ASNA: Datagate -22- professionisti del software life cycle la migrazione delle applicazioni AS/400 – per componenti Piano di lavoro RMW parsing inventory analysis assessment re-learning Source COBOL/400 ILE COBOL CL source Source RPG/400 RPG ILE CL RPG COBOL transformation generation Dialect Converters NetCOBOL for .NET VRPG .NET VRPG .NET Printer file DDS printer file migration text print file Display file DDS dispaly file migration ASPx pages physical files logical files data area data & schema migration physical files logical files -23- professionisti del software life cycle Relativity Technologies: Modernization Workbench -24- professionisti del software life cycle Modernization Workbench: le caratteristiche principali • esecuzione di analisi d’impatto tramite viste a diagramma di data flow, call map, e screen flow per ridurre il tempo di analisi • al cambiamento del codice sorgente corrisponde un aggiornamento della documentazione, che così è sempre aggiornata • inventario degli asset disponibili • slicing delle business rules • componentizzazione del codice COBOL -25- professionisti del software life cycle Fujitsu: Dialect Converters • i Dialect Converters sono strumenti che aiutano nei processi di conversione dei programmi sorgente sviluppati in altri dialetti COBOL: – IBM®, Micro Focus®, Microsoft®, e altri • i Dialect Converters caricano il sorgente scritto in un altro dialetto per costruire una mappa del programma, trasformare questa mappa e generare un sorgente in output che risulti logicamente equivalente all'originale ma che sia compatibile con il compilatore NetCOBOL -26- professionisti del software life cycle Fujitsu: NetCOBOL for .NET • Fujitsu NetCOBOL for .NET è un compilatore COBOL appositamente progettato per il Framework Microsoft .NET – è in grado di generare moduli in Microsoft Intermediate Language (MSIL), che possono essere eseguiti sotto il controllo del Common Language Runtime (CLR) – tale environment permette di “mescolare” il codice COBOL con qualsiasi altro linguaggio supportato in .NET (C#.NET, VB.NET, VRPG.NET, ecc.) – l’adozione della sintassi OO COBOL, così come il supporto delle estensioni specifiche di .NET, consente di sviluppare programmi in grado di sfruttare al meglio le classi del framework – il COBOL è definibile come script language per ASP.NET – è “runtime free” -27- professionisti del software life cycle il CLR (Common Language Runtime) in .NET Framework COBOL for .NET VRPG.NET C#.NET Ambiente di Sviluppo: MS Visual Studio Just-inTime Compiler Common Language Runtime (CLR) .NET Framework Win32 OS (Windows) -28- professionisti del software life cycle ASNA Monarch • Monarch – trasforma le applicazioni iSeries ILE RPG ed RPG/400 in applicazioni native Microsoft .NET – facilita l’utilizzo di programmi RPG per Web Services – aiuta ad identificare gli elementi per generare applicazioni complesse – genera oggetti MSIL per altri linguaggi .NET -29- professionisti del software life cycle ASNA Monarch • • • • il risultato è un’applicazione .NEThosted scritta in AVRpg per .NET – – – – – RPG source Display files CL Menus Printer files – – – si collega a iSeries oppure a SQL Server oppure..ad entrambi in un’unica sessione! iSeries to .NET l’unica soluzione che converte da RPG ad……..RPG! produce applicazioni .NET che possono dialogare con i processi batch OS/400 con interscambio parametri. genera un’applicazione browserbased, pronta all’utilizzo -30- conclusioni professionisti del software life cycle professionisti del software life cycle conclusioni • deve esistere una forte motivazione • le applicazioni legacy devono essere soddisfacenti • occorre avere deciso la configurazione target • esiste la necessità di salvaguardare gli skill interni • l’obiettivo è una nuova applicazione con le regole e i pregi di quella esistente e con l’opportunità di una reale modernizzazione • totale integrazione nel Framework .NET -32- professionisti del software life cycle La “roadmap” • verifica – – – – analisi di un campione ridotto ma qualitativamente significativo di codice intervista sui requisiti di base verifica di applicabilità di tools e metodologie produzione di una “pre-fattibilità” che consenta al cliente di decidere se proseguire o meno con una stima: • ordine di grandezza dell’impegno (tempi/costi) • valutazione dei rischi principali • Proof of Concept (progetto pilota) – – – – definizione di limiti e obiettivi pianificazione dei tempi verifica dei requisiti Il PoC produce: • un test “reale” di intervento, in grado di consentire un esame tecnicamente accurato dei risultati ottenibili • una documentazione che riporta le esperienze fatte, le decisioni prese, i problemi incontrati • gli elementi utili alla redazione di una offerta finale per l’intero progetto • la pianificazione del progetto complessivo • una offerta economica per il progetto • progetto -33- professionisti del software life cycle documentazione • presentazioni • white paper – – – – • • • • processi metodologia esempi di codice Web Services prove su campioni di codice referenze storie di successo www.bizlogica.it e [email protected] -34- professionisti del software life cycle Midrange Modernization Conference modernizzare le applicazioni sviluppate per AS/400: la proposta Microsoft per i Partner la migrazione di codice COBOL AS/400 verso il mondo .NET