MokaByte Numero 28  -  marzo  1999
AS/400 e Java
Primi passi di eCommerce
di 
Michele Sciabarrà
Come integrare le due più importanti tecnologie del momento: Java ed il commercio elettronico
In collaborazione con Computer Programming


Si parla molto di Internet, di commercio elettronico e delle nuove tecnologie che consentono di connettersi all’AS/400. Queste, talvolta, vengono percepite come "future" e "lontane" perché considerate complesse. Invece è possibile realizzare facilmente significative applicazioni per rendere l’azienda più competitiva nell’era della telematica globale. Vediamo come siamo riusciti a realizzare, in Java, una semplice raccolta ordini via Web. Il problema che ci siamo posti è di far fare all’azienda il primo passo verso il commercio elettronico e le opportunità di direct marketing offerte da Internet. 

 
Poiché l’AS/400 è una realtà di mercato ben nota per le applicazioni gestionali delle aziende italiane di modeste dimensioni, risulta centrale nella soluzione descritta in quanto archivia i dati commerciali per le varie rielaborazioni successive. La prima applicazione di ecommerce che occorre realizzare deve, nel caso più semplice, consentire di creare (e modificare) un catalogo prodotti, di presentarli all’utente e permettergli di inviare l’ordine. 
Gli aspetti di presentazione e di marketing sono di dominio di grafici, pubblicitari e webmaster e non li tratteremo qui. Supponiamo invece che il cliente sia giunto alla fase in cui desidera comporre l’ordine. L’applicazione avrà dunque le seguenti caratteristiche:
  • nel contesto di un sito che presenta il catalogo prodotti, l’utente Web arriva alla pagina per effettuare l’ordine di alcuni dei prodotti presentati nel catalogo (figura  riportata qui di seguito). Il listino dei prodotti viene mantenuto nel database dell’AS/400

  •  

     
     
     
     
     
     
     
     
     
     


     
     
     

  • l’utente compone l’ordine e lo invia. Il nuovo ordine verrà notificato al personale commerciale (per esempio tramite l’invio di un messaggio di posta elettronica); 

  •  

     
     
     

  • dopo la ricezione dell’ordine, l’addetto può consultare il dettaglio dell’ordine, verificare le generalità del cliente, eventualmente contattarlo ed infine decidere se dare corso all’ordine;

  •  

     
     
     

  • poiché i prodotti in vendita possono variare nel tempo, il sistema consente di variare il listino senza dover modificare le pagine HTML (Figura 2). Il catalogo presentato può infatti essere facilmente modificato e le modifiche apportate al catalogo sono immediatamente operative online.

  •  

     

Utilizzando l’AS/400 per memorizzare il catalogo prodotti e gli ordini, sono possibili numerose integrazioni del sistema di e-commerce con le applicazioni preesistenti. 
Per esempio:
  • il catalogo può essere collegato alla gestione del magazzino, in modo da avere online una vetrina di merce realmente disponibile;
  • la raccolta ordini può essere collegata alla fatturazione e alla contabilità, in modo tale che un ordine accettato venga immediatamente fatturato e contabilizzato;
  • integrando il sistema di commercio elettronico con l’archivio clienti è possibile consentire al personale commerciale sia immediate verifiche sul cliente, sia nuove possibilità di indagini di marketing.
In sintesi si può dire che un sistema di commercio elettronico può essere visto come una naturale evoluzione del sistema gestionale esistente.

Architettura

Abbiamo delineato il funzionamento del sistema dal punto di vista dell’utente. Tuttavia, siccome siamo interessati anche agli aspetti tecnici, ne esaminiamo l’architettura e la tecnologia. Il panorama sistemistico è piuttosto variegato, ma rispecchia la realtà odierna. Discuteremo in seguito la motivazioni delle varie scelte:

  1. Il catalogo prodotti e l’archivio ordini vengono memorizzati sull’AS/400;
  2. L’applicazione di commercio elettronico è eseguita su una macchina presso la sede del provider, sotto sistema operativo Unix o Windows NT, a cui l’AS/400 è collegato tramite una linea dedicata CDN (Circuito Diretto Numerico, vedi sotto);
  3. L’applicazione server è realizzata in linguaggio Java;
  4. Il personale commerciale gestisce gli ordini utilizzando un client dedicato in ambiente Windows 95/98 sviluppata in Delphi.
Tale architettura è sintetizzata in figura seguente: esaminiamo le ragioni tecniche delle varie scelte. 

Riteniamo che tale architettura sia la più comune e realistica considerando l’offerta commerciale e il panorama tecnologico del mercato italiano attuale. La scelta al punto 1 è assolutamente naturale sia perché normalmente sull’AS/400 risiedono tutte le informazioni dell’azienda, ma anche e soprattutto in vista delle possibili integrazioni del catalogo con il gestionale.
La ragione della scelta al punto 2 è più complessa. Bisogna dire innanzitutto che l’AS/400 rappresenta di per sè una buona soluzione come Web Server. Tuttavia quando su tale macchina risiedono anche informazioni vitali per l’azienda (come è del tutto naturale) occorre riconsiderare con molta cautela la scelta di esporre la macchina ad Internet. Infatti, nonostante la macchina in sé possa essere considerata sicura, può essere sempre violata non necessariamente per motivi tecnici ma anche (e soprattutto) per motivi legati al fattore umano. È infatti nota la difficoltà con cui (purtroppo) si riesce ad educare il personale ad osservare le necessarie misure di sicurezza. Per questo motivo è molto meglio non correre rischi e non esporre direttamente la macchina ad Internet. 
Meglio invece mantenere la macchina protetta dietro un firewall e far girare l’applicazione di e-commerce in una macchina presso un provider che si occuperà anche della necessaria manutenzione. Tale manutenzione è sufficientemente complessa da consigliare un outsourcing invece di gestirla in casa. Si provvederà invece ad attivare una linea diretta al provider e consentire una sola interazione, molto più facilmente controllabile, tra l’applicazione di e-commerce e l’AS/400. L’interconnessione con il provider utilizzerà una linea a Circuito Diretto Numerico, che è lo standard proposto da Telecom Italia per le connessioni dati permanenti. Questo tipo di linee sono utilizzate per le connessioni permanenti della maggior parte degli Internet Service Provider, ed hanno un costo che continua a diminuire, anche per effetto della recente deregulation nelle telecomunicazioni.
Per quanto riguarda le ragioni della scelta al punto 3, dobbiamo considerare innanzitutto che i provider utilizzano generalmente Web Server con sistemi Unix o Windows NT. Questo requisito porta alla necessità di utilizzare un linguaggio compatibile sia con Unix che con Windows NT, che disponga di una buona connettività all’AS/400. Fino a qualche tempo fa si sarebbe ricorso ad un mix di linguaggi (Visual Basic, C++ e RPG) e alla rassegnata consapevolezza di dover riscrivere l’applicazione quando da Unix si desideri passare a Windows NT, a un Domino con AS/400 o altre piattaforme (per esempio per cambio di provider o potenziamento dell’applicazione). Queste problematiche hanno un ovvio impatto sui costi. Oggi, grazie a Java è finalmente disponibile una soluzione ottimale:
 

  • innanzitutto l’applicazione è realmente portabile tra NT, Unix e AS/400;
  • la connettività tra l’AS/400 e le applicazioni Java è eccellente grazie all’AS/400 Toolbox di IBM;
  • Il linguaggio è sempre più supportato da terze parti, viene insegnato nelle scuole e guadagna consensi sia nella comunità dei programmatori Visual Basic che C++;
  • Ultimo ma non meno importante fattore, Java è considerato il linguaggio designato per applicazioni di commercio elettronico e Internet in generale, per cui è il più supportato sia in termini di librerie che di integrazione con tool esistenti. Per esempio basta considerare il fatto che tutti i principali Web Server (Domino compreso) supportano l’integrazione con Java.
Consideriamo infine la scelta al punto 4. Una volta costruita l’applicazione è opportuno dotare gli addetti al trattamento degli ordini di un applicativo user-friendly per la loro gestione. Generalmente in ambito client la portabilità è un requisito meno stringente rispetto alla facilità d’uso e alla integrazione con gli strumenti di produttività individuale. Tra gli strumenti di sviluppo disponibili specificamente per AS/400, si è utilizzato il Borland Delphi /400 per la realizzazione del trattamento degli ordini. In questo articolo comunque ci concentriamo sul lato server ed esaminiamo le tecnologie Java utilizzate.

Tecnologie e strumenti

L’intera applicazione è scritta in linguaggio Java. Java è considerato un linguaggio, ma in realtà è un insieme di tecnologie che hanno nella Java Virtual Machine (che garantisce la portabilità) il loro punto di incontro e integrazione. 
Per realizzare il sistema abbiamo fatto ricorso a diverse tecnologie Java. Innanzitutto abbiamo scritto un programma che si collega al DB/2 per memorizzare i dati, sfruttando la tecnologia di database di Java nota come JDBC (Java Data Base Connectivity).
JDBC tuttavia non è sufficiente, in quanto si tratta di una tecnologia generica, mentre occorre un driver specifico per collegarsi al DB/2. Questo driver è fornito dal kit di IBM per la connessione a database, noto come AS/400 Toolbox. Il Toolbox include il driver JDBC, ma fornisce anche numerose altre funzioni necessarie per interfacciare i programmi in Java con l’AS/400. Infine, l’applicazione viene invocata da un Web Server quanto l’utente, seguendo i link, chiama l’applicazione. Come esistono le tecnologie Java per l’integrazione con i database e l’AS/400, così ne esiste un’altra, nota come servlet, che consente appunto di sviluppare applicazioni integrate con i WebServer che producono pagine Web dinamiche. Notiamo che, allo scopo di garantire la massima fruibilità dell’applicazione, non abbiamo utilizzato applet: queste ultime vengono talvolta considerate (erroneamente) l’aspetto di punta della tecnologia Java.

Servlet

L’applicazione viene invocata da un utente quando, navigando nel sito aziendale, decide di seguire un link che lo porta alla pagina degli acquisti on-line. Molte pagine presenti sul sito sono statiche, ma alcune sono in realtà interattive, generate dinamicamente da un programma. Infatti il nostro modulo d’ordine presenta un listino che può variare. Sebbene possa essere praticabile modificare la pagina degli ordini quando varia il listino, si perde in tal modo la possibilità di integrazione con il magazzino prodotti. Questo richiede ogni volta l’intervento di un programmatore HTML invece di un semplice operatore. Generando invece la pagina con un programma, questo può consultare il magazzino e presentare un listino che rispecchi situazione corrente. Inoltre quando l’utente ha formulato il suo ordine, questo deve essere catturato, memorizzato sul database e notificato al personale. Anche questo è compito di un programma. Le richieste inviate al Web Server vengono passate ad un programma Java detto servlet. Java è famoso per consentire di scrivere applet, piccoli programmi che attraversano la rete e vanno in esecuzione "dentro" il browser. 
Le servlet sono in un certo senso l’equivalente lato server: sono programmi che vengono eseguiti sul server contestualmente alle richieste che invia l’utente. L’applicazione che raccoglie l’ordine è appunto una servlet. Le servlet sono supportate da numerosi Web Server: innanzitutto, Domino Go WebServer, e numerosi altri. Per i Web Server che non supportano le servlet nativamente, esistono dei "motori" per l’esecuzione di servlet: per esempio il Servlet Express di IBM o il Jrun di Live Software. Oggi sono disponibili le servlet praticamente per ogni Web Server esistente, Microsoft IIS, IBM Domino e Apache compresi. Le servlet consentono anche di scrivere applicazioni indipendenti non solo dalla piattaforma ma anche dal Web Server. Per esempio l’applicazione mostrata in queste pagine è stata sviluppata su un sistema NT con IIS, ma è stata posta online in un provider che utilizza Unix con Apache. Non è stato necessario cambiare una sola riga di codice né ricompilare l’applicazione.

JDBC

La nostra servlet deve interagire con il database sia per conoscere il listino corrente, sia per memorizzare l’ordine. È noto che le applicazioni Windows sono in grado di colloquiare con i database sfruttando ODBC. Il JDBC ha la stessa funzione per le applicazioni Java: è la tecnologia di interfaccia a database della piattaforma Java. Il JDBC è un sistema generale che consente di accedere a qualsiasi tipo di database. Le applicazioni che sfruttano il JDBC sono indipendenti dal database utilizzato. Comunque se il JDBC rende le applicazioni portabili, per accedere ad uno specifico database occorre un "driver". 
Quindi una applicazione che usa il JDBC può girare su Oracle utilizzando il driver per Oracle, su Informix utilizzando il driver per Informix, e su DB/2 utilizzando il driver per il DB/2. Fortunatamente i driver JDBC, per tutti i tipi di database (noti e meno noti), sono generalmente forniti insieme al database. Per collegarci a DB/2 abbiamo utilizzato il driver JDBC per AS/400 fornito insieme all’AS/400 Toolbox.

AS/400 Toolbox 

La strategia Java di IBM si muove su due filoni principali: il primo è il supporto di Java sull’AS/400 per applicazioni server, il secondo è lo sviluppo di applicazioni client dell’AS/400 in Java. Abbiamo utilizzato quest’ultimo nell’applicazione presentata. L’AS/400 Toolbox è una libreria vasta, completa e attivamente supportata da IBM che permette di sviluppare applicazioni che sfruttano a fondo le tecnologie dell’AS/400. 
Nel nostro caso l’aspetto determinante è stato il driver JDBC per la connessione a DB/2. Abbiamo anche utilizzato l’AS/400 Toolbox per altre operazioni di routine. In particolare, abbiamo utilizzato la CommandCall per invocare comandi sull’AS. Questa funzione è necessaria nella manipolazione del database, poichè la creazione di tabelle richiede anche l’inizializzazione del Journaling, operazione che viene effettuata eseguendo dei comandi sull’AS/400. In realtà l’aspetto entusiasmante del Toobox è offerto dalle possibilità di integrazione con le applicazioni esistenti. Per esempio supponendo di avere applicazioni sviluppate per generare vari prospetti, queste possono essere collegate al Web tramite l’utilizzo di semplici applicazioni che invocano comandi sull’AS/400, catturano l’output e ripresentano i dati sul server. Allo stesso modo, avendo moduli di immissione dati, è possibile portarle sul Web presentando delle form che invocano tali programmi riempiendone i campi. Tutto questo utilizzando una interfaccia basata sul Web che può essere usata sia su una intranet che su Internet. L’aspetto sicurezza non va trascurato, ma i problemi sono contenuti in quanto si riesce ad eseguire queste operazioni senza dare l’accesso all’AS/400 ad alcun utente esterno.

Conclusioni

Questo articolo ha illustrato come sia possibile mettere al lavoro Java e l’AS/400 per una soluzione immediatamente utile all’azienda. In realtà si tratta solo del primo passo, perché il commercio elettronico ha numerosi aspetti che devono essere accuratamente considerati quando il business cresce, ad esempio la protezione delle connessione per la riservatezza dell’ordine, l’accesso a parti del catalogo e a particolari offerte ad una clientela selezionata, le transazioni di pagamento sicuro (SET), il marketing che richiede una accurata analisi delle registrazioni per la verifica degli interessi della clientela e così via. 


 
Guido Salvestroni è amministratore di Consist Srl., azienda di consulenza informatica impegnata nello sviluppo di applicazioni database sulle più diffuse piattaforme. Laureato in Ingegneria, si occupa tra l’altro di networking e di tecnologie Internet. Può essere contattato tramite e-mail all’indirizzo gsalvest@consist.it

Michele Sciabarrà è direttore tecnico di Satori Network Solutions, ditta specializzata nello sviluppo Java e nelle soluzioni di commercio elettronico. Laureato in Scienze dell’Informazione, lavora con Java fin dalla versione alfa del linguaggio. Articolista di varie riviste italiane ed estere, è stato il primo espositore italiano di applicazioni Java alla 1st Italian Java conference. Ha sviluppato numerose applicazioni in Java, e tenuto corsi di Java per importanti clienti, tra cui IBM. Può essere contattato tramite e-mail all’indirizzo msciab@satorins.com


 

MokaByte Web  1999 - www.mokabyte.it

MokaByte ricerca nuovi collaboratori. 
Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it