Le applicazioni legacy sono ancora oggi vitali per le aziende, soprattutto per le grandi organizzazioni e, stando alle analisi delle società di ricerca americane, anche per l’intera economia globale dato che elaborano circa l’80% delle transazioni aziendali. Nonostante gli sforzi di standardizzazione, le applicazioni “business-critical” risultano ancora fortemente personalizzate.
Una ricerca del 2009 di Aberdeen Group rilevava come “nelle aziende vengano ancora oggi utilizzate applicazioni mainframe per un valore di 2 miliardi di dollari che coprono circa il 70% di tutta la logica e i dati critici”. Dati piuttosto rilevanti che evidenziano una delle problematiche cui i Cio di tutto il mondo stanno da tempo cercando di dare risposte concrete: l’attenzione alla riduzione dei costi (le applicazioni aziendali intorno a cui ruota il business consumano risorse economiche e umane) e, nel contempo, l’implementazione di sistemi efficienti in grado di dare risposte rapide e flessibili alle esigenze del business.
La maggiore efficienza richiesta dal business (dalle Lob e dagli utenti aziendali che utilizzano le applicazioni per lo svolgimento delle loro operations) si scontra, generalmente, con sistemi It anelastici e tutt’altro che agili nel rispondere alle richieste. Dal punto di vista tecnologico, infatti, lo scenario di riferimento tipico di una media-grande organizzazione è questo: presenza di sistemi eterogenei con grandissima diffusione di ambienti mainframe sui quali si trovano installate applicazioni scritte in linguaggio Cobol, su cui ricade l’attenzione in virtù di progetti di consolidamento, virtualizzazione, standardizzazione e ridisegno delle architetture in ottica “service oriented”.
Il Cobol, pur essendo un linguaggio datato 1959, è riuscito ad evolversi nel corso del tempo e a supportare, oggi, le tecnologie a oggetti, l’interscambio di dati Xml, l’integrazione con Java, le piattaforme J2ee, .Net , le architetture Soa e il Cloud Computing.
La capacità evolutiva del Cobol e l’opportunità di modernizzare efficacemente le applicazioni senza doverle riscrivere (operazione ritenuta dagli analisti rischiosa, costosa e con tempi di applicazione molto lunghi) accompagnano però la questione architetturale delle piattaforme di riferimento e accendono i riflettori su una delle pietre miliari dell’It: il mainframe.
Le aziende, al di là delle crisi economiche e del contesto generale, sono costantemente alla ricerca di strumenti per semplificare l’infrastruttura It, abbatterne i costi, senza però perdere la capacità di sviluppare prodotti e servizi innovativi.
E per realizzare tali obiettivi, uno dei possibili approcci è seguire un progetto di migrazione da mainframe.
“Qualsiasi utilizzatore di mainframe che deve far fronte a costi sempre più elevati, al pensionamento di personale competente e specializzato e alla mancanza di agilità nell’It, dovrebbe prendere in considerazione queste soluzioni per avviare un processo di modernizzazione a lungo termine”, dichiara Dale Vecchio, Research Vice President di Gartner. “Le soluzioni di re-hosting dei mainframe garantiscono costi inferiori e una modernizzazione immediata, una riduzione della spesa per la migrazione tra i 12 e i 36 mesi e offrono alle aziende una modalità valida per trarre vantaggio dalle proprie competenze in ambito Cobol e innovarsi scegliendo piattaforme meno costose, soddisfacendo così le esigenze aziendali.”
Evolvere i sistemi e ridurre i costi
Considerando il Cobol come punto di partenza di qualsiasi decisione di modernizzazione applicativa (data la sua ampia diffusione a livello globale e le caratteristiche tecnico-funzionali oltre che di affidabilità e sicurezza ampiamente dimostrate in oltre cinquant’anni di onorato servizio nel mondo It), le strade per raggiungere gli obiettivi di riduzione dei costi e aumento della qualità dei servizi offerti, accrescendo al contempo il valore patrimoniale delle applicazioni in esercizio sui Mainframe (visto che ancora per lungo tempo non è neppure ipotizzabile pensare di farne a meno), potrebbero essere tre:
1. Sviluppo e testing (da mainframe a workstation standard per mantenere e sviluppare applicazioni mainframe): ridurre i costi delle postazioni di sviluppo attraverso appositi tool che consentono di sviluppare e testare le applicazioni in ambienti standard per poi essere trasferiti su Mainframe. I Mainframe hanno costi di esercizio nettamente superiori agli ambienti distribuiti, risultando poco convenienti come piattaforme di sviluppo e testing anche per le applicazioni destinate ad essi. Usando ambienti che garantiscono la totale compatibilità tra quanto sviluppato su piattaforme Windows, Unix o Linux, con gli ambienti Mainframe, si possono ridurre i Mips dei propri sistemi, elevarne le prestazioni ed evitare ogni rischio di comprometterne l’erogazione dei servizi.
Gli strumenti di sviluppo basati su mainframe e le prassi di sviluppo che derivano dal loro utilizzo erano adeguati solo per la realizzazione della prima generazione di ambienti esclusivamente mainframe. Il contesto tecnologico ed economico è oggi molto diverso; nell’ottica di salvaguardare e mantenere le applicazioni mainframe in tali ambienti, e al contempo ridurre i costi e avere un time-to-market più veloce, si possono perciò adottare tool che mettono a disposizione un ambiente completamente integrato di manutenzione e sviluppo per mainframe, che, di fatto, consentono agli sviluppatori di avvalersi di moderni e potenti strumenti di sviluppo per la creazione, la compilazione, il debug e il collaudo di applicazioni mainframe sulle proprie workstation (desktop, notebook, netbook, ecc. con ambienti standard). Si tratta, in sostanza, di soluzioni che uniscono funzioni di emulazione mainframe a un ambiente per lo unit test e il test di integrazione in grado di aumentare la produttività di tutto il ciclo di sviluppo.
Attraverso questa scelta, i programmatori mantengono il pieno controllo delle proprie aree di prova. Il passaggio dei cicli di sviluppo e test alle workstation libera le risorse dalle regioni Cics (Customer Information Control System, monitor di gestione transazioni), Ims (Information Management System) e Db2 (Relational Database Management System) del mainframe (tipicamente molto costose). Una scelta di questo tipo, dicono gli esperti di settore, consente, infine, di ridurre i carichi, alleggerire le code di job, rimandare i costosi aggiornamenti hardware del mainframe e i costi software associati. I dispositivi di collaudo, poi, migliorano la qualità del codice e riducono i downtime del sistema durante la produzione (perché viene fatto direttamente sulle workstation degli sviluppatori e trasferite su mainframe solo in un secondo momento, dopo gli opportuni test di verifica).
Tra i benefici da ricondurre a questo tipo di soluzioni, anche l’aspetto delle competenze in ambito Cobol: i programmatori per mainframe possono avvalersi di ambienti grafici di sviluppo molto più moderni e user friendly, impadronirsi delle tecniche client-server Gui (graphical user interfaces), pur mantenendo le cognizioni e le esperienze maturate su linguaggio Cobol.
2. Modernization & re-engineering (sviluppo legacy-to-web ed e-business): incrementare la produttività e la qualità delle attività di sviluppo dotando le applicazioni esistenti di nuove funzionalità, facilitarne l’uso, riscriverle integralmente, ecc.. Per rispondere alle richieste degli utenti di nuove funzionalità e per creare nuove soluzioni a partire dalle applicazioni esistenti, si possono seguire approcci tattici o di tipo strategico: intervenire sui sorgenti di partenza, aggiungere le nuove funzioni utilizzando componenti esterni, riscrivere integralmente le applicazioni, capitalizzando gli elementi ancora attuali di quelle originali, quali porzioni di analisi dei requisiti o casi di test, ecc. (per esempio CartaSì che in soli dieci giorni è riuscita a completare la trasformazione di un’applicazione Mainframe in una soluzione Web). Qualunque sia il percorso scelto, però, è fondamentale valutare attentamente le caratteristiche del codice di partenza, capire dove e come intervenire, condurre le operazioni in modo affidabile e controllato, così da minimizzare le attività di sviluppo, i rischi, i tempi e i costi dei progetti. Premessa indispensabile per ottenere tali risultati è disporre di strumenti capaci di fornire una vista completa di come sono strutturate le applicazioni, in modo globale così come al loro interno, di piattaforme di sviluppo altamente produttive e di componenti pronti all’uso per integrare le applicazioni esistenti con, ad esempio, nuove tecnologie per la definizione delle interfacce tipo Ajax, renderle conformi ai nuovi standard Soa e dei Web Services o affinché possano sfruttare a pieno le nuove architetture cloud.
In ambito mainframe, infatti, sono oggi disponibili piattaforme flessibili ad alte prestazioni per lo sviluppo e la verifica di applicazioni Internet e client/server associando così il linguaggio Cobol con le tecnologie d’informazione più recenti (potendo così estendere le applicazioni in tutta l’organizzazione).
3. Razionalizzazione, migrazione, re-hosting per ridurre i costi di esercizio delle applicazioni: così come risulta conveniente e poco rischioso spostare le attività di sviluppo dai mainframe alle piattaforme distribuite, può risultare altrettanto opportuno trasferire l’intero esercizio di determinate applicazioni Cobol o legacy in ambienti client-server (con abbandono quindi degli ambienti mainframe verso una migrazione/re-hosting completa ad ambienti standard), senza tuttavia comprometterne i livelli di affidabilità. Per meglio comprendere le problematiche, le opportunità e il percorso da compiere si rimanda all’articolo "Mainframe re-hosting: scelta tattica in chiave strategica".
Conoscere il parco applicativo
Il punto di partenza di qualsiasi scelta sta nel conoscere lo stato del proprio parco applicativo, inteso non solo come comprensione della consistenza del portafoglio presente in azienda ma anche dei suoi costi di gestione e manutenzione, nonché del valore reale che sono in grado di generare per il business. L’assessment del parco applicativo è dunque il passo che precede qualsiasi scelta di modernizzazione e viene attuato con soluzioni di Application Portfolio Management che consentono di ottenere informazioni dettagliate sulle applicazioni presenti in azienda e il loro funzionamento. Le soluzioni in questione offrono la copertura, i tool, i processi e le funzionalità di reporting essenziali per comprendere l’importanza strategica, ai fini del business, delle applicazioni presenti azienda e, quindi, per decidere quale strada intraprendere per la loro modernizzazione.