Professionisti del software life cycle Midrange Modernization Conference modernizzare le...
-
Upload
nicolo-galli -
Category
Documents
-
view
220 -
download
3
Transcript of Professionisti del software life cycle Midrange Modernization Conference modernizzare le...
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
Midrange Modernization ConferenceMidrange Modernization Conference
modernizzare le applicazioni sviluppate per AS/400:modernizzare le applicazioni sviluppate per AS/400: la proposta Microsoft per i Partnerla proposta Microsoft per i Partner
la migrazione di codice COBOL la migrazione di codice COBOL AS/400 verso il mondo .NETAS/400 verso il mondo .NET
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-2-
agendaagenda
• introduzioneintroduzione• la migrazione delle applicazionila migrazione delle applicazioni• le applicazioni COBOLle applicazioni COBOL• la “roadmap”la “roadmap”• le principali tecnologie a supporto del le principali tecnologie a supporto del
processo di migrazioneprocesso di migrazione• conclusioniconclusioni
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-3-
chi è chi è bizlogicabizlogica
• un’azienda focalizzata su processi e un’azienda focalizzata su processi e tecnologie attinenti il software lifecycletecnologie attinenti il software lifecycle
• partner italiano di aziende come partner italiano di aziende come Relativity Technologies, Fujitsu Relativity Technologies, Fujitsu Computer Systems (ex Fujitsu Computer Systems (ex Fujitsu Software), Borland (Segue Software: Software), Borland (Segue Software: soluzioni di test)soluzioni di test)
• esperienze in progetti di trasformazione esperienze in progetti di trasformazione di applicazioni legacydi applicazioni legacy
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-4-
la migrazione delle applicazionila migrazione delle applicazioni
• a chi si rivolge: a chi si rivolge:
tutte quelle situazioni in cui sono presenti tutte quelle situazioni in cui sono presenti piattaforme applicative e/o architetturali in piattaforme applicative e/o architetturali in produzione da tempo, e per le quali esista una produzione da tempo, e per le quali esista una esigenza (generica) di esigenza (generica) di miglioramento di risultatimiglioramento di risultati, , performanceperformance, , funzionifunzioni, , utilizzo da parte utilizzo da parte dell’utentedell’utente, , meccanismi e cicli di manutenzionemeccanismi e cicli di manutenzione, , fino a ipotesi di fino a ipotesi di ammodernamento di basi datiammodernamento di basi dati, , interfacceinterfacce, , environmentenvironment o o ambienti applicativiambienti applicativi
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-5-
legacy migrationlegacy migration
• la soluzione si basa sul recupero della la soluzione si basa sul recupero della conoscenzaconoscenza dell’applicazione, e la dell’applicazione, e la conseguente creazione di componenticonseguente creazione di componenti
• tali componenti, una volta creati, possono tali componenti, una volta creati, possono avere diverse destinazioni, secondo le diverse avere diverse destinazioni, secondo le diverse scelte architetturali, scelte architetturali, adeguandosi di fatto alle adeguandosi di fatto alle piattaforme tecnologiche targetpiattaforme tecnologiche target
• la soluzione può avere diverse articolazioni la soluzione può avere diverse articolazioni con vantaggi che, secondo le scelte effettuate, con vantaggi che, secondo le scelte effettuate, sono di tipo sono di tipo economicoeconomico, di , di efficace impiego efficace impiego delle risorsedelle risorse, e di , e di minor rischiominor rischio
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-6-
rifare, emulare, o migrare?rifare, emulare, o migrare?
• nella necessità di sviluppare da zero una nella necessità di sviluppare da zero una nuova applicazione, oggi quasi nessuno nuova applicazione, oggi quasi nessuno orienta la propria scelta su COBOL o RPGorienta la propria scelta su COBOL o RPG
• anche se esistono da tempo versioni object anche se esistono da tempo versioni object oriented dei compilatori, tutti gli environment oriented dei compilatori, tutti gli environment più evoluti e attuali contemplano l’utilizzo di più evoluti e attuali contemplano l’utilizzo di linguaggi diversilinguaggi diversi
• nel caso della piattaforma .NET di Microsoft, è nel caso della piattaforma .NET di Microsoft, è possibile la convivenza tra linguaggi diversi, possibile la convivenza tra linguaggi diversi, come C#, J# e VB, e, soprattutto, come C#, J# e VB, e, soprattutto, COBOLCOBOL e e RPGRPG, , rendendo possibile e vantaggioso il rendendo possibile e vantaggioso il recupero del codicerecupero del codice
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-7-
le scelte possibilile scelte possibili
sostituzionesostituzione
emulazioneemulazione
rifacimentorifacimento
migrazionemigrazione
sostituzione delle applicazioni e dei sistemi esistenti con soluzioni di mercato (es. sistemi ERP)
sostituzione delle applicazioni e dei sistemi esistenti con soluzioni di mercato (es. sistemi ERP)
modernizzazione di tipo “tattico”, con il supporto di layer software di emulazione
modernizzazione di tipo “tattico”, con il supporto di layer software di emulazione
conversione e/o riscrittura delle applicazioni in linguaggi/ambienti moderni (J2EE, .NET)
conversione e/o riscrittura delle applicazioni in linguaggi/ambienti moderni (J2EE, .NET)
migrazione delle applicazioni (o di parti di esse) verso un ambiente moderno (.NET) mantenendo i linguaggi esistenti (COBOL e RPG)
migrazione delle applicazioni (o di parti di esse) verso un ambiente moderno (.NET) mantenendo i linguaggi esistenti (COBOL e RPG)
rischio: medio/altocosto: altotempo: lungovalore: elevato
rischio: medio/altocosto: altotempo: lungovalore: elevato
rischio: basso costo: contenuto tempo: breve valore: basso
rischio: basso costo: contenuto tempo: breve valore: basso
rischio: altocosto: altotempo: lungovalore: elevato
rischio: altocosto: altotempo: lungovalore: elevato
rischio: basso costo: medio tempo: medio valore: elevato
rischio: basso costo: medio tempo: medio valore: elevato
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-8-
la migrazionela migrazione
• l’esperienza dimostra che l’obiettivo è l’esperienza dimostra che l’obiettivo è raggiungibile, senza necessariamente raggiungibile, senza necessariamente rischiare una rivoluzionerischiare una rivoluzione– il percorso è configurabile con obiettivi intermediil percorso è configurabile con obiettivi intermedi– l’investimento è configurabile secondo le capacitàl’investimento è configurabile secondo le capacità– l’impatto sull’utente è modulabilel’impatto sull’utente è modulabile– l’acculturamento delle risorse di sviluppo e l’acculturamento delle risorse di sviluppo e
manutenzione è gradualemanutenzione è graduale– è possibile far convivere le nuove applicazioni con le è possibile far convivere le nuove applicazioni con le
vecchievecchie– la configurazione target la decide il Clientela configurazione target la decide il Cliente
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-9-
la migrazione: vantaggi e la migrazione: vantaggi e beneficibenefici
• se sono validi i presupposti, i vantaggi se sono validi i presupposti, i vantaggi sono:sono:– minor tempominor tempo– migliore razionalizzazionemigliore razionalizzazione– migliore qualitàmigliore qualità– migliore corrispondenza ai requisiti utentemigliore corrispondenza ai requisiti utente– minori rischiminori rischi– riutilizzo degli skillriutilizzo degli skill
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-10-
a quali piattaforme e linguaggi a quali piattaforme e linguaggi legacy è applicabile?legacy è applicabile?
• sistemi mainframe (IBM, Unisys, Bull, …)sistemi mainframe (IBM, Unisys, Bull, …)• sistemi centrali (AS/400–iSeries, Unix)sistemi centrali (AS/400–iSeries, Unix)• applicazioni CICS, IMS, AS/400, Adabas, ADW, applicazioni CICS, IMS, AS/400, Adabas, ADW,
APS, ADS-Online, …APS, ADS-Online, …• organizzazioni dati VSAM, DL/I, DB2, DB2/400, organizzazioni dati VSAM, DL/I, DB2, DB2/400,
files AS/400, Adabas, IDMS, …files AS/400, Adabas, IDMS, …• linguaggi COBOL, RPG, PL/I, Natural, …linguaggi COBOL, RPG, PL/I, Natural, …• JCL, ECL, CL/400JCL, ECL, CL/400• ……
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-11-
modalità di migrazionemodalità di migrazione
mappa generale, elenco dei sottosistemisistema
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 documentazionelivello
documentazione
intervista utente
analisi dati
knowledge miningfattibilità
sistemaapplicativo
legacy
re-learning
presentation
logica
dati
individuazione e separazione logica
dei layer
modello
funzionale
1° classificazione
modello datidecisione
prototipo
analisi risultati
decisione
progetto
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-12-
.NET Framework
DDS (Print File )
la migrazione delle DDSla migrazione delle DDS
ASNA Monarch
RPG TemplateFile
DDS (Display File )
VS.NET Project
ASP.NET Page
IIS Web Server
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
COBOL compone
nt
AVR class AVR
class
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-13-
.NET Framework
slicing logica COBOLslicing logica COBOL
BusinessRules Extraction
COBOL programs
VS.NET Project
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
NetCOBOL .NET
COBOL compone
ntCOBOL
component
COBOL compone
nt
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-14-
I-O DBstatements
migrazione struttura dati e Data migrazione struttura dati e Data layerlayer
ASNA DataGate
ASNA Monarch
NetCOBOL .NET
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
Data Layer
MS SQL Server
DB AS/400
AVR class
AVR class
AVR class
COBOL compone
ntCOBOL
component
COBOL compone
nt
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-15-
Data Layer
DDS File(display
file,Print file
ecc..)
RPG template
ASNAMonarch
VS.NETProject
AVRClassAVR
Class
COBOLFile Business
Rules Extraction
Cobolcomponent
Cobolcomponent
Builtapplication
ASNA VisualRPG.NET
.NET Framework
ASNA DataGate
WebServices
Fujitsu NetCOBOL.NET
DB AS/400
MS SQL Server
ASP.NET Page
una visione d’insiemeuna visione d’insieme
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-16-
il processo che interviene sul codice il processo che interviene sul codice COBOLCOBOL
• esame del codice sorgente per esame del codice sorgente per l’individuazione dei diversi l’individuazione dei diversi layerlayer::
– Files READ & WRITEFiles READ & WRITE– Printer READ & WRITEPrinter READ & WRITE– Video READ & WRITEVideo READ & WRITE– CALLCALL– Using (Linkage Section)Using (Linkage Section)
– COMPUTE FIELD-A = …COMPUTE FIELD-A = …
Data Layer
Presentation Layer
Communication Layer
Business Layer
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-17-
rinnovo (refactoring) - COBOLrinnovo (refactoring) - COBOL
BR1
BR2
BR3
BR4
BR5
BR6
DataAccessCode
Data
UserInterface
Code
UserInterface
Code
DataAccessCode
Data
Programma COBOL monolitico
razionalizzazione / refactoring
documentazione
partizionamentoapplicazioni
analisi degliimpatti
eliminazione di codice
morto/decaduto
aree di attenzione
BR1
BR2
BR3
BR4
BR5
BR6
DataAccessCode
Data
UserInterface
Code
DataLayer
BusinessLayer
PresentationLayer
Programma COBOL destrutturato
Separa
zione logic
a
(fisi
ca?)
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-20-
Host IntegrationLayer
ServiceData Application
Data
SQL Server
AS400iSeries
gli ambienti target di riferimento: gli ambienti target di riferimento: esempi di configurazione per l’integrazione con servizi centraliesempi di configurazione per l’integrazione con servizi centrali
.NET Framework
MOM Adapter
ADO.NET
OLEDB/ODBC
Data Transformation& Replication
Environment (HIS)
SQLNativeMid.
MQSeries
DB2/400
AS/400Files
DRDA
Web Services
AS400 Procedures(i.e. COBOL/400)
Messages
FileTransfer
.NET ComponentsBusiness Components
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
le tecnologiele tecnologie
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-22-
le principali tecnologie a supporto le principali tecnologie a supporto dei processi di migrazionedei processi di migrazione
• Relativity Technologies: Modernization Relativity Technologies: Modernization WorkbenchWorkbench
• Fujitsu Software Corp.: Dialect Fujitsu Software Corp.: Dialect ConvertersConverters
• Fujitsu Software Corp.: NetCOBOL Fujitsu Software Corp.: NetCOBOL for .NETfor .NET
• ASNA: MonarchASNA: Monarch• ASNA: Visual RPG .NETASNA: Visual RPG .NET• ASNA: DatagateASNA: Datagate
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-23-
la migrazione delle applicazioni la migrazione delle applicazioni AS/400 – per componentiAS/400 – per componenti
CL source
VRPG .NET
CLtransformation
Source RPG/400RPG ILE
VRPG .NET
RPGgeneration
Display file DDS
ASPx pages
dispaly filemigration
Printer file DDS
printer filemigration
text print file
physical files
physical files
logical files
logical files
data area
Source COBOL/400ILE COBOL
NetCOBOL for .NET
COBOLDialect
Converters
Piano di lavoro
inventoryanalysis
assessmentre-learning
RMWparsing
data & schemamigration
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-24-
Relativity Technologies: Relativity Technologies: Modernization WorkbenchModernization Workbench
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-25-
Modernization Workbench: le Modernization Workbench: le caratteristiche principali caratteristiche principali
• esecuzione di analisi d’impatto tramite viste a esecuzione di analisi d’impatto tramite viste a diagramma di data flow, call map, e screen diagramma di data flow, call map, e screen flow per ridurre il tempo di analisiflow per ridurre il tempo di analisi
• al cambiamento del codice sorgente al cambiamento del codice sorgente corrisponde un aggiornamento della corrisponde un aggiornamento della documentazione, che così è sempre documentazione, che così è sempre aggiornataaggiornata
• inventario degli asset disponibiliinventario degli asset disponibili• slicing delle business rulesslicing delle business rules• componentizzazione del codice COBOLcomponentizzazione del codice COBOL
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-26-
Fujitsu: Dialect ConvertersFujitsu: Dialect Converters
• i Dialect Converters sono strumenti che i Dialect Converters sono strumenti che aiutano nei processi di conversione dei aiutano nei processi di conversione dei programmi sorgente sviluppati in altri dialetti programmi sorgente sviluppati in altri dialetti COBOL:COBOL:– IBM®, Micro Focus®, Microsoft®, e altriIBM®, Micro Focus®, Microsoft®, e altri
• i Dialect Converters caricano il sorgente i Dialect Converters caricano il sorgente scritto in un altro dialetto per costruire una scritto in un altro dialetto per costruire una mappa del programma, trasformare questa mappa del programma, trasformare questa mappa e generare un sorgente in output che mappa e generare un sorgente in output che risulti logicamente equivalente all'originale ma risulti logicamente equivalente all'originale ma che sia compatibile con il compilatore che sia compatibile con il compilatore NetCOBOL NetCOBOL
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-27-
Fujitsu: NetCOBOL for .NETFujitsu: NetCOBOL for .NET
• Fujitsu NetCOBOL for .NET è un compilatore COBOL Fujitsu NetCOBOL for .NET è un compilatore COBOL appositamente progettato per il Framework appositamente progettato per il Framework Microsoft .NETMicrosoft .NET– è in grado di generare moduli in Microsoft Intermediate è in grado di generare moduli in Microsoft Intermediate
Language (MSIL), che possono essere eseguiti sotto il Language (MSIL), che possono essere eseguiti sotto il controllo del Common Language Runtime (CLR)controllo del Common Language Runtime (CLR)
– tale environment permette di “mescolare” il codice COBOL tale environment permette di “mescolare” il codice COBOL con qualsiasi altro linguaggio supportato in .NET (C#.NET, con qualsiasi altro linguaggio supportato in .NET (C#.NET, VB.NET, VRPG.NET, ecc.)VB.NET, VRPG.NET, ecc.)
– l’adozione della sintassi OO COBOL, così come il supporto l’adozione della sintassi OO COBOL, così come il supporto delle estensioni specifiche di .NET, consente di sviluppare delle estensioni specifiche di .NET, consente di sviluppare programmi in grado di sfruttare al meglio le classi del programmi in grado di sfruttare al meglio le classi del frameworkframework
– il COBOL è definibile come script language per ASP.NETil COBOL è definibile come script language per ASP.NET– è “è “runtimeruntime freefree””
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-28-
il CLR (Common Language il CLR (Common Language Runtime) in .NET FrameworkRuntime) in .NET Framework
Ambiente di Sviluppo:MS Visual Studio
Just-inTime Compiler
COBOL for .NET C#.NETVRPG.NET
Win32 OS (Windows)
Common Language Runtime (CLR)
.NET Framework
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-29-
ASNA MonarchASNA Monarch
• MonarchMonarch– trasforma le applicazioni iSeries ILE RPG ed trasforma le applicazioni iSeries ILE RPG ed
RPG/400 in applicazioni native RPG/400 in applicazioni native Microsoft .NETMicrosoft .NET
– facilita l’utilizzo di programmi RPG per Web facilita l’utilizzo di programmi RPG per Web Services Services
– aiuta ad identificare gli elementi per aiuta ad identificare gli elementi per generare applicazioni complessegenerare applicazioni complesse
– genera oggetti MSIL per altri linguaggi .NETgenera oggetti MSIL per altri linguaggi .NET
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-30-
ASNA MonarchASNA Monarch
iSeries to .NET• il risultato è un’applicazione .NET-il risultato è un’applicazione .NET-hosted scritta in AVRpg per .NEThosted scritta in AVRpg per .NET
– RPG sourceRPG source– Display filesDisplay files– CLCL– MenusMenus– Printer filesPrinter files
• l’unica soluzione che converte da l’unica soluzione che converte da RPG ad……..RPG!RPG ad……..RPG!
• produce applicazioni .NET che produce applicazioni .NET che possono dialogare con i processi possono dialogare con i processi batch OS/400 con interscambio batch OS/400 con interscambio parametri.parametri.
• genera un’applicazione browser-genera un’applicazione browser-based, pronta all’utilizzobased, pronta all’utilizzo
– si collega a iSeriessi collega a iSeries– oppure a SQL Serveroppure a SQL Server– oppure..ad entrambi in un’unica oppure..ad entrambi in un’unica
sessione!sessione!
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
conclusioniconclusioni
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-32-
conclusioniconclusioni
• deve esistere una forte motivazionedeve esistere una forte motivazione• le applicazioni legacy devono essere le applicazioni legacy devono essere
soddisfacentisoddisfacenti• occorre avere deciso la configurazione targetoccorre avere deciso la configurazione target• esiste la necessità di salvaguardare gli skill esiste la necessità di salvaguardare gli skill
interniinterni• l’obiettivo è l’obiettivo è una nuova applicazioneuna nuova applicazione con le con le
regole e i pregi di quella esistente e con regole e i pregi di quella esistente e con l’opportunità di una reale modernizzazionel’opportunità di una reale modernizzazione
• totale integrazione nel Framework .NETtotale integrazione nel Framework .NET
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-33-
La “roadmap”La “roadmap”
• verificaverifica– analisi di un campione ridotto ma qualitativamente significativo di codiceanalisi di un campione ridotto ma qualitativamente significativo di codice– intervista sui requisiti di baseintervista sui requisiti di base– verifica di applicabilità di tools e metodologieverifica di applicabilità di tools e metodologie– produzione di una “pre-fattibilità” che consenta al cliente di decidere se produzione di una “pre-fattibilità” che consenta al cliente di decidere se
proseguire o meno con una stima:proseguire o meno con una stima:• ordine di grandezza dell’impegno (tempi/costi)ordine di grandezza dell’impegno (tempi/costi)• valutazione dei rischi principalivalutazione dei rischi principali
• Proof of ConceptProof of Concept (progetto pilota) (progetto pilota)– definizione di limiti e obiettividefinizione di limiti e obiettivi– pianificazione dei tempipianificazione dei tempi– verifica dei requisitiverifica dei requisiti– Il PoC produce:Il PoC produce:
• un test “reale” di intervento, in grado di consentire un esame tecnicamente accurato un test “reale” di intervento, in grado di consentire un esame tecnicamente accurato dei risultati ottenibilidei risultati ottenibili
• una documentazione che riporta le esperienze fatte, le decisioni prese, i problemi una documentazione che riporta le esperienze fatte, le decisioni prese, i problemi incontratiincontrati
• gli elementi utili alla redazione di una offerta finale per l’intero progettogli elementi utili alla redazione di una offerta finale per l’intero progetto• la pianificazione del progetto complessivola pianificazione del progetto complessivo• una offerta economica per il progettouna offerta economica per il progetto
• progettoprogetto
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
-34-
documentazionedocumentazione
• presentazionipresentazioni• white paperwhite paper
– processiprocessi– metodologiametodologia– esempi di codiceesempi di codice– Web ServicesWeb Services
• prove su campioni di codiceprove su campioni di codice• referenzereferenze• storie di successostorie di successo• www.bizlogica.itwww.bizlogica.it e e [email protected]@bizlogica.it
pro
fess
ion
isti
del so
ftw
are
life c
ycl
e
Midrange Modernization ConferenceMidrange Modernization Conference
modernizzare le applicazioni sviluppate per AS/400:modernizzare le applicazioni sviluppate per AS/400: la proposta Microsoft per i Partnerla proposta Microsoft per i Partner
la migrazione di codice COBOL la migrazione di codice COBOL AS/400 verso il mondo .NETAS/400 verso il mondo .NET