Definizione del Termine Main Frame Il mainframe computer (comunemente "mainframe") o sistema centrale è un computer utilizzato per applicazioni critiche, soprattutto da grandi aziende e istituzioni, tipicamente per elaborare, con alte prestazioni ed alta affidabilità, grandi quantità di dati come ad esempio quelle in gioco nelle transazioni finanziarie, nei censimenti, nelle statistiche di industrie e clienti, nelle applicazioni ERP (Enterprise Resource Planning), nei sistemi di stampa delle banconote. Perche si sta facendo un progetto di Re- Hosting? Banca Popolare di Sondrio ha deciso di attuare questo progetto di re-hosting, perché hanno deciso diminuire la mole di dati presenti sul Main Frame creando un ambiente emulato chiamato Micro Focus. Su di esso è stata spostata la parte dello sviluppo in quanto la parte occupata dallo sviluppo sul Main Frame era elevata; cioè causava un rallentamento nell utilizzo del Main Frame. In informatica si definisce hosting (dall'inglese to hos t, ospitare) un servizio di Rete che consiste nell'allocare su un server dei dati, rendendoli così accessibili dalla rete Internet e ai suoi utenti. Per re-hosting si intende la migrazione di una allocazione in un server Quali sono i vantaggi dell utilizzo di Micro Focus? Il vantaggio dell utilizzo del Micro Focus è che l investimento iniziale è elevato ma la manutenzione, gli aggiornamenti e i contatti rispetto a quelli del Main Frame sono meno elevati. Inoltre i costi hardware sono minori per il Micro Focus rispetto al Main Frame. Il Micro Focus viene utilizzato per lo sviluppo ed è indicato per il lavoro di sviluppo in quanto è più veloce e su ogni macchina viene creato un emulazione di Main Frame grazie a Micro Focus ed esso è una cosa positiva per gli sviluppatori in quanto una modifica di uno sviluppatore non inficia il lavoro degli altri sviluppatori. Inoltre il lavoro fatto in locale può essere condiviso con gli sviluppatori per essere testato. I prodotti Micro Focus Enterprise soddisfano le esigenze di modernizzazione delle applicazioni dei team dedicati alla distribuzione e allo sviluppo mainframe di IBM. Gli strumenti Micro Focus di implementazione del carico di lavoro, test, sviluppo e
conoscenze applicative migliorano in modo significativo l'effi cienza delle distribuzione delle applicazioni aziendali - Accelerano significativamente i tempi di sviluppo, test ed erogazione dei servizi - Migliorano l'agilità aziendale e gli ambienti IT - Contribuiscono ad aumentare l'efficienza e a ridurre i costi oper ativi Cambia qualcosa agli utilizzatori finali? Ai filialisti non cambia nulla, in quanto la migrazione verso Micro Focus colpisce solo la parte di sviluppo, ma questa migrazione è ben vista in quanto facilita il lavoro degli sviluppatori e diminuisce i rischi ad esso legati. Problema Un problema di questa migrazione è che il codice non va sempre bene per questo durante lo stage ci è stato commissionata la creazione di un programma per la modifica del codifica che tuttora viene utilizzato. Di seguito allego la relazione fatta sul programma PROGETTO DI RE-HOSTING Descrizione Tramutare delle utility esterne che sono utilizzate in Mainframe (es utility prodotte da IBM, cioè non modellabili da BPS) in utility da utilizzare in un ambiente virtuale che emula il Mainframe che ha elevati costi di gestione. Questo è il programma che ho sviluppato AutoIt. Utilizzo del programma: Questo programma può essere posizionato in una qualsiasi cartella prende tutti i file e gli analizza. Il Job Control Language (JCL) è un linguaggio di scripting utilizzato nei sistemi operativi IBM DOS/VSE(Banca Popolare di Sondrio utilizza IBM), OS/VS1 ed MVS per eseguire (in gergo lanciare) una procedura batch su un sistema generalmente mainframe. Procedura batch serie di job che vengono schedulate. I job sono dei processi.
In questo programma vengono forniti in INPUT i seguenti dati: - nome programma da ricercare dentro una serie di file.jcl(oppure un formato differente che può essere scelto al momento del lancio del programma che per default prende l'estensione.jcl - parola del programma In questo programma fornisce in OUTPUT i seguenti dati: - i file con estensione.jcl con le procedure commentate per renderle utilizzabili anche nell'ambiente virtuale che emula Mainframe
- le righe di ogni file.jcl sono adattate a 80 caratteri, perchè è il limite massimo con il quale riesce a lavorare l'emulatore
Codice #include <Array.au3> #include <File.au3> DirRemove(".\nuovi",1) DirCreate(".\nuovi") $estensione=inputbox("estensione","inserisci l'estensioni dei file") ;estensione del file Local $FileList = _FileListToArray(".","*."&$estensione) If @error = 1 Then MsgBox(0, "", "No Folders Found.") Exit If @error = 4 Then MsgBox(0, "", "No Files Found.") Exit FileDelete("nomifile.txt") $pgm=inputbox ("Attenzione!", "Inserire il nome del programma che si vuole cercare") $parola=inputbox("nome procedura", "inserire la parola che stai cercando") For $i=1 to $FileList[0] if(stringinstr($filelist[$i],".au3")=false And StringInStr($FileList[$i],"nuovi")=False) Then $nrighe=contarighe($filelist[$i]) scrivifile($nrighe,$filelist[$i],".\nuovi\"&$filelist[$i],$pgm,$parola) Func contarighe($pfile) $linee=0 While 1 Local $line = FileReadLine($pfile,$linee) $linee=$linee+1 If @error = -1 Then ExitLoop WEnd FileClose($pfile) return $linee-2 Func scrivifile($nrighe,$pfile,$pfilenuovo,$pgm,$parola) Local $vett[$nrighe] $nr=0 $a=1 FileDelete($pfilenuovo) For $i = 1 to $nrighe $riga = FileReadLine ($pfile,$i) If (StringInStr($riga, " EXEC ")=False or StringInStr($riga, $pgm)=false)then
FileWriteLine($pfilenuovo,$riga) If StringInStr($riga, " EXEC ") Then If StringInStr($riga, $pgm) Then $j=$i+1 $riga=filereadline($pfile,$j) While StringInStr($riga," EXEC ")=False And $j<> $nrighe $nr=$nr+1 $riga=filereadline($pfile,$j) $j=$j+1 WEnd $nr=$nr-1 $vett=vettfile($vett,$nr,$pfile,$i+1) $riga=filereadline($pfile,$i) $cont=$i+1 If trovaparola($vett,$nr,$parola)=true Then If $a=1 Then FileWriteLine("nomifile.txt",$pfile) $a=$a+1 $riga2=stringmid($riga,1,68) $riga3=stringmid($riga,72,8) $riga=$riga2&$riga3 FileWriteLine ($pfilenuovo,"//*"& $riga) $riga=filereadline($pfile,$cont) $cont <> $nrighe While StringInStr($riga," EXEC ")=False and $riga2=stringmid($riga,1,68) $riga3=stringmid($riga,72,8) $riga=$riga2&$riga3 FileWriteLine($pfilenuovo,"//*"&$riga) $cont=$cont+1 $riga = FileReadLine ($pfile, $cont ) WEnd Else FileWriteLine ($pfilenuovo, $riga) $riga=filereadline($pfile,$cont) $cont=$cont+1 $i=$cont-1
Func vettfile($vett,$nr,$pfile,$j) For $i=1 to $nr $vett[$i]=filereadline($pfile,$j) $j=$j+1 Return $vett Func trovaparola($vett,$nr,$parola) For $i=1 to $nr If (StringInStr($vett[$i],$parola) or $parola="")=true Then return True Return False Test finale di funzionamento Come ultima il file generato dal programma è stato portato nel Mainframe in modalità scan (con il parametro Typrun=scan) e il test che è stato effettuato ha fatto funzionare una vecchia procedura Mainframe nel linguaggio AutoIt. Fonti https://www.microfocus.it/prodotti/enterprise/index.aspx