la migrazione di codice COBOL AS/400 verso il mondo .NET 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
agenda introduzione la migrazione delle applicazioni le applicazioni COBOL la “roadmap” le principali tecnologie a supporto del processo di migrazione conclusioni
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
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
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
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
le scelte possibili rischio: medio/alto costo: alto tempo: lungo valore: elevato sostituzione delle applicazioni e dei sistemi esistenti con soluzioni di mercato (es. sistemi ERP) sostituzione rischio: basso costo: contenuto tempo: breve valore: basso modernizzazione di tipo “tattico”, con il supporto di layer software di emulazione emulazione rischio: alto costo: alto tempo: lungo valore: elevato conversione e/o riscrittura delle applicazioni in linguaggi/ambienti moderni (J2EE, .NET) rifacimento rischio: basso costo: medio tempo: medio valore: elevato migrazione delle applicazioni (o di parti di esse) verso un ambiente moderno (.NET) mantenendo i linguaggi esistenti (COBOL e RPG) migrazione
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
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
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 …
modalità di migrazione documentazione sistema applicativo legacy re-learning modello funzionale 1° classificazione modello dati prototipo presentation logica dati individuazione e separazione logica dei layer intervista utente analisi dati knowledge mining decisione decisione analisi risultati progetto fattibilità mappa generale, elenco dei sottosistemi sistema mappa, elenco dei moduli, job batch, database, schermate, ... sottosistema programmi lanciati, database acceduti, frequenza, ... batch job scopo, programmi chiamati, database letti o scritti, chiamato da, parametri, ... programma funzionalità, chiamate esterne, section performed, condizioni verificate, variabili utilizzate... section tipo di documentazione livello
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 .NET Framework AVR class AVR class IIS Web Server COBOL component
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
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 AVR class COBOL component COBOL component COBOL component AVR class MS SQL Server AVR class
una visione d’insieme .NET Framework Web Services VS.NET Project Built Data Layer DDS File (display file, Print file ecc..) RPG template ASNA Monarch VS.NET Project AVR Class COBOL File Business Rules Extraction Cobol component Built application ASNA Visual RPG.NET .NET Framework ASNA DataGate Web Services Fujitsu NetCOBOL.NET DB AS/400 MS SQL Server
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
rinnovo (refactoring) - COBOL razionalizzazione / refactoring documentazione partizionamento applicazioni analisi degli impatti eliminazione di codice morto/decaduto aree di attenzione BR 1 2 3 4 5 6 Data Access Code User Interface Programma COBOL monolitico BR 1 2 3 4 5 6 Data Access Code User Interface Layer Business Presentation Programma COBOL destrutturato Separazione logica (fisica?)
i test che si effettuano il codice sorgente viene caricato nel tool RMW Files COBOL Files COPYBOOK Files PF, LF, DSPF, PRTF con l’ausilio del tool, vengono generate le copybook COBOL per i files, gli screens e i printer files si procede al parsing ed all’inventario vengono effettuati dei passaggi di COBOL Dialect Converters e vengonofatte delle prove di compilazione
i test che si effettuano prove di compilazione con Fujitsu NetCOBOL mancanza di programmi (entry point) costrutti non supportati: warning su MOVE (es. campi troncati) che sono da verificare con attenzione 01 DTA-DATI LIKE REC-AZIENDA. ……………… 01 INDICATORI VALUE ALL B"0". 02 INDICATORE-NN PIC 1 OCCURS 99 INDICATOR 01.
gli ambienti target di riferimento: esempi di configurazione per l’integrazione con servizi centrali .NET Framework Web Services OLEDB/ODBC Service Data Application SQL Server .NET Components Business Components Host Integration Layer MOM Adapter SQL Native Mid. Messages ADO.NET Data Transformation & Replication Environment (HIS) MQSeries DRDA AS400 iSeries AS400 Procedures (i.e. COBOL/400) File Transfer DB2/400 AS/400 Files
le tecnologie
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
la migrazione delle applicazioni AS/400 – per componenti CL source VRPG .NET CL transformation Source RPG/400 RPG ILE RPG generation Display file DDS ASPx pages dispaly file migration Printer file DDS printer file text print file physical files logical files data area Source COBOL/400 ILE COBOL NetCOBOL for .NET COBOL Dialect Converters Piano di lavoro inventory analysis assessment re-learning RMW parsing data & schema
Relativity Technologies: Modernization Workbench
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
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
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”
il CLR (Common Language Runtime) in .NET Framework Ambiente di Sviluppo: MS Visual Studio COBOL for .NET C#.NET VRPG.NET Common Language Runtime (CLR) Just-inTime Compiler .NET Framework Win32 OS (Windows)
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
ASNA Monarch iSeries to .NET il risultato è un’applicazione .NET-hosted scritta in AVRpg per .NET RPG source Display files CL Menus Printer files 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 browser-based, pronta all’utilizzo si collega a iSeries oppure a SQL Server oppure..ad entrambi in un’unica sessione! iSeries to .NET
conclusioni
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
La “roadmap” verifica Proof of Concept (progetto pilota) progetto 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
documentazione presentazioni white paper prove su campioni di codice processi metodologia esempi di codice Web Services prove su campioni di codice referenze storie di successo www.bizlogica.it e info@bizlogica.it
la migrazione di codice COBOL AS/400 verso il mondo .NET 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