RPG ILE vs Java (7), Accesso al Data Base

ibm-use

In ILE-CGI l’ accesso è nativo e completo. Si può “navigare” sulle vie d’ accesso tramite posizionamenti per chiave e letture dei record successivi e/o precedenti (i codici operativi RPG sono SETLL, SETGT, READ, READE, READP, REDPE),  o accesso random per chiave o numero relativo di record. E’ anche possibile utilizzare SQL e Open Query File (OPNQRYF), ma generalmente tali strumenti sono usati per filtrare e ridurre  la massa dei record da elaborare poi con le funzioni di accesso sopra menzionate.

In JAVA l’ accesso avviene tipicamente tramite JDBC. Questo significa che l’ accesso ad Data Base avviene tramite richiesta SQL e ricezione di un insieme di record (ovviamente come caso particolare l’ insieme può ridursi ad un solo record). Si tratta quindi di un’ elaborazione a “blocchi” che non permette “navigazione” sulle vie di accesso. Ad esempio se si deve stampare la fattura relativa ad un ordine cliente lo statment SQL richiede tutti i record dell’ archivio righe d’ ordine relative al numero d’ ordine del cliente; il programma dovrà memorizzare i dati dei record ritornati in opportune schiere e poi elaborare le schiere in sequenza, elemento per elemento. In ILE-CGI un caso del genere sarebbe gestito con SETLL e loop di READE nel quale per ogni ciclo viene elaborata una riga d’ ordine. 

Annunci

RPG ILE vs Java (6), Utilizzo descrizione esterna dei file

ap_ibm_071112_ms

L’ utilizzo della descrizione esterna dei file è ovviamente completo nel caso ILE-CGI.

Nel caso JAVA (in tutti i casi) occorre distinguere se l’ accesso al data base avviene direttamente o (più frequentemente) tramite driver JDBC. Nel primo caso l’ utilizzo della descrizione esterna dei file è nulla. Questo significa che nel caso di cambiamento del tracciato record dei file data base il tutto va riportato manualmente, in molti casi anche tre volte: a livello di pagina HTML, di programma, e di interfaccia XML. Se viceversa si utilizza il driver JDBC l’ effetto della mancanza di descrizione esterna crea problemi solo nel caso di cambiamento di tipologia di campo (numerico, alfanumerico ecc.) per il quale occorre intervenire manualmente sul programma.

 

ILE CGI vs Java (5) Usabilità delle funzioni del sistema operativo i5/OS

Le funzioni del sistema operativo i5/OS sono ovviamente pienamente disponibili in ambiente ILE-CGI. (immagine di repertorio non pertinente)

Viceversa JAVA “puro”, nell’ ottica della portabilità, prescinde da qualsiasi sistema operativo e di conseguenza non può far uso delle funzioni dell’ i5/OS. E’ però possibile utilizzare il Toolbox for Java che rende disponibili alcune funzioni AS/400, ma non tutte e questo soprattutto perché le funzioni richiamate vengono eseguite in un JOB separato; quindi comandi a livello di JOB come RTVJOBA, CHGJOB o che hanno validità nell’ ambito del JOB come l’ uso della libreria QTEMP, i comandi OVRXXX, ADDLIBLE ecc. non ha senso che siano utilizzati.

Lo stesso discorso vale se si utilizza il nodulo “run”

E’ da sottolineare come l’ uso del Toolbox for Java o del modulo “run” renda l’ applicazione Java non più portabile.

 

ILE CGI vs Java (4) – Separazione della logica di presentazione dalla logica di elaborazione

Su questo punto è nato un grosso equivoco.

Chi propaganda JAVA fa notare ad ogni occasione che la programmazione CGI per il WEB ha all’ interno del programma la costruzione della pagina HTML da visualizzare, con la conseguenza che ogni volta che si debba modificare l’ aspetto grafico occorra metter mano al programma. La logica di presentazione sarebbe quindi all’ interno della logica elaborativi.

Ma questo è vero solo per il generico CGI che dialoga con l’ HTTP Server senza particolari accorgimenti, un po’ come farebbe un RPG 5250 che pilotasse direttamente il video senza usare le DDS. Viceversa il caso che stiamo confrontando con JAVA è quello di CGI arricchito dall’ apposito Open Source fornito dalla stessa IBM. Con l’ utilizzo di tale Open Source la definizione della pagina HTML è esterna al programma in modo del tutto analogo a quanto avviene con l’ uso delle DDS 5250. La logica di presentazione…

 

Leggi il seguito di questo post »

ILE CGI vs Java (3), Personalizzazione post-conversione delle pagine WEB

 Aggiunte funzionali post-conversione (possibilità di crescita tecnico-applicativa dei  programmi convertiti)

 

I programmi RPG 5250 una volta convertiti in ILE CGI sono pienamenti modificabili e arricchibili di nuove funzioni (che ovviamente la versione 5250 non poteva prevedere). Questo perchè si tratta di sorgenti RPG e sorgenti di pagine HTML ben definiti, individuabili  e quindi modificabili, o direttamente aggiungendo sul sorgente gli effetti grafico-funzionali desiderati, o anche utilizzando programmi di editing come “FRONT PAGE”. Per modificare la pagina HTML occorre solo avere conoscenze di HTML. Inoltre il programma RPG ha il pieno controllo di tutti gli elementi della pagina HTML, potendo pilotare e condizionare perfettamente tutti gli effetti grafico-funzionali desiderati.

Molto diverso il discorso nel caso delle conversioni effettuate con il convertitore Java (ed utilizzo del modulo “RUN”).

 

Leggi il seguito di questo post »

ILE CGI vs JAVA (2), convertibilità dei programmi

Nel secondo post riguardante il confronto tra le modalità con le quali accedere al web mediante AS/400, posso affermare che è ragionevolmente semplice convertire i programmi da modalità 5250 a modalità CGI. Occorre infatti agire solo sulle routines di I/O verso il 5250. Questo si può fare sia manualmente che con appositi tool. Anche la conversione dei formati 5250 può avvenire manualmente, ma l’ uso di un tool è largamente consigliabile.

Per JAVA “puro” non è possibile convertire i programmi ed occorre riscriverli ex-novo tenendo presente che in tale contesto non sono disponibili le funzioni dell’ i5/OS (come lista librerie, override, individuazione dell’ utente corrente e criteri di riservatezza e security) ed anche per l’ accesso al data base occorre agire diversamente.

Per Java con Toolbox for Java non è possibile la conversione ma alcune funzioni i5/OS sono disponibili.

Per “Java col modulo run” ed utilizzo del convertitore la conversione è completa e rapida. Viene in tal caso effettuata una conversione uno-a-uno tra ogni singola istruzione del programma originario e un nuovo gruppo di istruzioni JAVA. Il rischio è di ottenere qualcosa che non è più né RPG né JAVA (di JAVA avrebbe solo la struttura formale, ma non sostanziale).

Se invece non si utilizza il convertitore ma solo il modulo “RUN” non è possibile convertire ma occorre riscrivere tutto il programma, avendo però disponibili le funzioni dell’ i5/OS.

ILE-CGI vs JAVA, riutilizzo del patrimonio software

Nella programmazione ILE-CGI il patrimonio software è largamente riutilizzabile perché occorre solo riscrivere le routines di I/O verso il file WORKSTN. Le routines di calcolo, accesso al data base, controllo autorizzazioni ecc. sono pienamente riutilizzabili.

In JAVA occorre riscrivere ogni singolo programma senza avere a disposizione le funzioni del sistema operativo i5/OS. Se si utilizza il Toolbox for Java alcune di esse sono disponibili, ma ovviamente si perde la portabilità.

 In “Java col modulo run” ed utilizzo del convertitore viene eseguita una conversione uno-a-uno tra ogni singola istruzione del programma originario e un nuovo gruppo di istruzioni JAVA. In tal caso quindi il riutilizzo è completo.

Se invece non si utilizza il convertitore ma solo il modulo “RUN” occorre anche in questo caso riscrivere tutto il programma, avendo però disponibili le funzioni dell’ i5/OS.