Limpaginazione automatica di questa rivista e realizzata al ` 100% con strumenti Open Source usando OpenOffice, Emacs, BHL, LaTeX, Gimp, Inkscape e i linguaggi Lisp, Python e BASH
For copyright information about the contents of Computer Programming, please see the section Copyright at the end of each article if exists, otherwise ask authors. Infomedia contents is 2004 Infomedia and released as Creative Commons 2.5 BY-NC-ND. Turing Club content is 2004 Turing Club released as Creative Commons 2.5 BY-ND. Le informazioni di copyright sul contenuto di Computer Programming sono riportate nella sezione Copyright alla ne di ciascun articolo o vanno richieste direttamente agli autori. Il contenuto Infomedia e 2004 Infome` dia e rilasciato con Licenza Creative Commons 2.5 BYNC-ND. Il contenuto Turing Club e 2004 Turing Club ` e rilasciato con Licenza Creative Commons 2.5 BY-ND. Si applicano tutte le norme di tutela dei marchi e dei segni distintivi. ` E in ogni caso ammessa la riproduzione parziale o totale dei testi e delle immagini per scopo didattico purch e vengano integralmente citati gli autori e la completa identicazione della testata. Manoscritti e foto originali, anche se non pubblicati, non si restituiscono. Contenuto pubblicitario inferiore al 45%. La biograa dellautore riportata nellarticolo e sul sito www.infomedia.it e di norma quella disponibi` le nella stampa dellarticolo o aggiornata a cura dellautore stesso. Per aggiornarla scrivere a info@infomedia.it o farlo in autonomia allindirizzo http://mags.programmers.net/moduli/biograa
case study
a creazione di un sistema informativo efficace una delle principali sfide che le imprese sono chiamate a fronteggiare per poter ridurre i propri costi e mantenere la competitivit. A tale scopo sono stati introdotti sul mercato gli strumenti globalmente indicati con il termine ERP: Enterprise Resources Planning. In generale si tratta di piattaforme di notevoli dimensioni, dotate di tool per la pianificazione di tutti gli aspetti della vita aziendale, dal sistema vendita alla contabilit, allanalisi del comportamento clienti al fine di migliorare i processi di marketing; essi consentono laccesso in remoto anche da eventuali altre sedi dellazienda. Permettono anche di trattare problematiche complesse, come lapertura di nuovi stabilimenti produttivi e lacquisizione di nuovi distributori commerciali e dispongono di tool di business intelligence per effettuare analisi statistiche su dati di interesse. I vantaggi nellinstallazione di un sistema ERP sono dunque rappresentati dalla capacit di monitorare ogni aspetto della vita aziendale e di disporre continuamente di dati aggiornati sulle varie attivit svolte. A fronte di ci esistono anche degli svantaggi, quali lelevato investimento necessario, la difficolt nelladdestrare Antonio Tomarchio
il personale allutilizzo di strumenti software particolarmente elaborati, la complessit del sistema e la conseguente mancanza di flessibilit. Questultimo punto risulta evidente nel momento in cui, ad esempio, si rende necessario, nel quadro di una strategia di e-business, lintegrazione di applicativi Web-based con lERP stesso e con la sua base dati. In particolare gli ostacoli principali sono i seguenti: 1) Scarsa flessibilit: i sistemi ERP richiedono che qualunque operazione, per esempio linvio di un ordinativo di un cliente, sia codificata mediante messaggi di testo con campi ben precisi. Un singolo errore nel messaggio comporta lincapacit per lERP di processarlo e di trasferirlo nella base dati; 2) Problemi di sicurezza ed impossibilit di un accesso diretto alle basi dati dellERP: spesso gli applicativi di e-business coinvolgono attori esterni allazienda, come fornitori e/o distributori. Di conseguenza non possibile progettare soluzioni Web che abbiano accesso diretto ai dati dellERP, per motivi di sicurezza. Questo impone di sviluppare tool di intermediazione capaci di fare da tramite tra le soluzioni di e-business e lERP. Esistono diverse strategie per superare queste problematiche, limportante consiste nel trovare quella pi vantaggiosa in termini di efficacia e di costi.
antonio.tomarchio@ecomware.it
Studente in ingegneria matematica presso il Politecnico di Milano e lEcole Centrale Paris. Fondatore e vicepresidente di Ecom, societ di system integration, dove si occupa di project management e ricerca e sviluppo. I suoi interessi sono rivolti al knowledge management, al data e Web mining soprattutto da un punto di vista modellistica.
Davide Platania
Si laureato in Ingegneria Informatica a Catania. Attualmente docente di ruolo della disciplina Informatica in un istituto tecnico statale e lavora come Technical Consultant presso Ecom e altre aziende nel settore della Information Technology.
Giovanni Strano
giovanni.strano@ecomware.it
Si laureato in Ingegneria Informatica a Catania. Attualmente responsabile della ricerca e sviluppo in Ecom e project leader dei maggiori progetti realizzati.
74
INFORMATICA
FIGURA 1
fondata sui prodotti SAP. Allo stato attuale la Nicoletti dispone di una struttura IT interna capace di gestire ed innovare la piattaforma SAP. Il problema che abbiamo dovuto fronteggiare stato quello di creare una soluzione di e-business Web-based per interfacciare tutti i punti vendita dislocati sul territorio nazionale con la Nicoletti, in modo da consentire le seguenti operazioni: 1) Creazione e condivisione dellanagrafica clienti 2) Elaborazione, invio ed archiviazione di preventivi 3) Elaborazione, invio e processamento di ordini 4) Gestione delle contestazioni 5) Gestione delle fatture 6) Invio di comunicazioni dalla Nicoletti a tutti i punti vendita 7) Analisi statistiche su preventivi ed ordini Sono emerse subito le forti potenzialit derivanti dallintegrazione di questa struttura Web con il sistema SAP: interfacciando la soluzione con lERP, quando un punto vendita invia un ordine via Web questultimo pu arrivare direttamente in catena di produzione, senza ulteriore intervento di personale umano, consentendo quindi di abbattere i costi per la gestione delle transazioni. Per poter raggiungere questo scopo necessario fare in modo che lordine inviato via Web alla base dati della Nicoletti venga processato in modo da renderlo esportabile su SAP, che poi provveder ad inviarlo in produzione. La struttura del sistema lato server rappresenta in Figura 1.
troppo oneroso per il segmento delle piccole e medie imprese; 2) Scarsa flessibilit: spesso un sistema EDI estremamente specifico per comunicare con un ben determinato gruppo di partner. Questo significa che qualora sorgano nuove esigenze necessario effettuare nuovi consistenti investimenti; 3) Complessit: le soluzioni EDI possono essere complesse e richiedere forti investimenti in formazione del personale. Per queste ragioni, pu risultare conveniente utilizzare un altro strumento: lXML. I maggiori software vendor hanno costituito un consorzio (Rosetta.Net) che ha come scopo la creazione di una lingua franca delle-business fondata su XML. In pratica stanno procedendo a codificare tutte le possibili operazioni di business in XML, in modo da sviluppare poi soluzioni software capaci di processare automaticamente i documenti realizzati con questo standard. I pi importanti produttori di sistemi ERP hanno gi integrato gli standard Rosetta.Net nei propri prodotti, consentendo la creazione di soluzioni di e-business capaci di utilizzare lXML come strumento di comunicazione e di integrarsi con lERP. Tuttavia anche in questo caso possono sorgere delle problematiche non indifferenti, legate al fatto che per poter disporre di queste funzionalit lazienda deve acquistare aggiornamenti e spesso nuovi prodotti software con costi non indifferenti e quindi investire nuovamente, dopo aver subito gli elevati costi per la creazione della piattaforma ERP. Inoltre essa deve anche poter disporre del personale con le capacit per utilizzare questi strumenti di sviluppo, realizzare le soluzioni di e-business ed integrarle con lERP. Ne consegue che anche in questo caso i costi possono diventare proibitivi specialmente per aziende di medie e piccole dimensioni.
hanno costituito un consorzio (Rosetta.Net) che ha come scopo la creazione di una lingua franca delle-business fondata su XML
I blocchi a sinistra sono tipici di ogni applicazione Webbased: il blocco Web Server (Internet Information Service, Apache), ha lo scopo di gestire le connessioni http che provengono dai client remoti. Questo blocco consente non solo di far reperire al client il contenuto delle pagine che questultimo desidera sfogliare, ma anche di eseguire script particolari (server-side) che consentono di rendere dinamico il contenuto delle pagine web in funzione delle operazioni richieste dal cliente. Tutto questo avviene per mezzo di moduli aggiuntivi opportuni forniti dal blocco Moduli Server Side quali i moduli per gli script ASP, PHP, JSP, ecc. Il blocco DB Connectivity Drivers fornisce uninterfaccia di accesso al DB ed specifico in funzione della tecnologia utilizzata nei moduli server-side e del tipo di Database (Oracle, SQL Server, Access, MySql, ecc.). Il DB contiene linsieme delle tabelle dei dati relazio75
case study
FIGURA 2
nati che il sistema informatico deve manipolare per la consultazione e la manutenzione a distanza. Il blocco Server NFS rappresenta le funzionalit del Network File System del sistema operativo, installato sul server, invocate dagli script delle pagine per la lettura e scrittura degli Shared Files, questultimi memorizzati in una cartella condivisa con il sistema SAP. Il problema centrale che abbiamo dovuto fronteggiare stato quello di non poter realizzare un accesso diretto alla base dati del sistema ERP per ragioni di sicurezza, dal momento che coloro che utilizzano la piattaforma Web sono soggetti esterni alla Nicoletti, trattandosi di gestori di punti vendita in franchising. Per superare questo ostacolo abbiamo realizzato un sistema informatico indipendente con una propria base dati, che registra tutte le informazioni relative al commercio realizzato dai punti vendita. Rispetto alla totalit della base dati SAP, infatti, questa quantit di informazioni limitata e quindi, per quanto ridondante, la costituzione di una banca dati indipendente ci ha permesso di non dover operare direttamente su SAP e di garantire la sicurezza e lefficienza necessaria. A questo punto ci siamo trovati di fronte alla necessit di realizzare una perfetta sincronizzazione tra le due basi dati e di realizzare una comunicazione costante tra soluzione Web e ERP. La soluzione adottata quella dello scambio dei messaggi tra SAP e la piattaforma di integrazione attraverso una cartella condivisa dai due sistemi. Ogni messaggio costituito da un file di testo formattato in maniera opportuna e strutturato in diversi segmenti secondo il linguaggio di SAP. La Figura 2 mostra larchitettura adottata per il message passing tra il sistema di integrazione e SAP. Il sistema informatico integrativo preleva le informazioni dal DB proprietario e genera un messaggio verso SAP sotto forma di file di testo in una cartella condivisa. La generazione del messaggio avviene secondo il diagramma a blocchi della Figura 3. Il message Generator un modulo server-side del sistema informatico di integrazione che si occupa della generazione di un messaggio. Esso preleva il template del messaggio (cio il formato e lo stile sintattico dei messaggi verso SAP) e riempie i campi specifici con le informazioni prelevate dalle tabelle del Database proprietario. Il template garantisce la correttezza sintattica del messaggio rispetto a SAP ed il message generator crea un messaggio che rappresenta una copia del template, dove le stringhe chiave sono state rimpiazzate (STRING REPLACE) con i dati prelevati dal DB proprietario. Una tale struttura garantisce alta velocit nella produzione dei messaggi e versatilit nella sintassi (per manutenzioni future e cambi di sintassi nei messaggi sufficiente modificare solo il template con un semplice editor di testo, senza apportare modifiche agli script). 76
Inoltre facilmente adattabile a nuove esigenze: qualora vi sia la necessit di aggiungere funzionalit gestite dallERP sar sufficiente creare nuovi template ed una nuova tabella nella base dati della piattaforma Web, e lintegrazione con SAP sar automatica. Questo consente anche di adattare la nostra piattaforma per essere applicata in contesti aziendali profondamente diversi che utilizzano SAP come strumento ERP. Questa architettura relativamente semplice ha permesso di gestire tutte le problematiche connesse alle esigenze della Nicoletti spa. In questo caso abbiamo pi punti vendita che possono trovarsi nella stessa citt o in citt diverse. Per ogni punto vendita abbiamo pi account abbinati ai diversi consulenti. Ogni volta che viene registrato un nuovo cliente ai punti vendita, il sistema integrato conserva le informazioni interessate nella propria banca dati ed assegna al cliente una coppia di chiavi: una la chiave allinterno del DB proprietario, laltra la chiave che al cliente verr assegnata negli archivi SAP (tipicamente differisce dalla prima solo per un prefisso che SAP destina ai punti vendita). Essendo la chiave univoca nel DB proprietario, con laggiunta di un prefisso uguale per tutti continua ad essere univoca anche allinterno di SAP. Dopo aver memorizzato i dati nel DB proprietario, viene generato un messaggio di Anagrafica (sfruttando il template di Anagrafica) verso SAP nel quale viene specificato, tra gli altri, il valore della chiave abbinata a questo nuovo cliente. Eventuali operazioni di Ordine, Preventivo o Contestazioni che faranno riferimento a questo cliente o ad uno precedentemente memorizzato, faranno riferimento alla chiave SAP del cliente ed il messaggio relativo alloperazione far riferimento alla stessa chiave. Ogni volta che viene effettuata una operazione di Ordine/Preventivo/Contestazione, prima di tutto i dati vengono memorizzati nella banca dati proprietaria e subito dopo viene generato un messaggio verso SAP attinente alloperazione (MsgOrdine/MsgPreventivo/MsgContestazione) Per garantire la coerenza dei dati, la procedura che il SAP Interchange Management Module deve svolgere consiste in: Controllo e lettura di eventuali messaggi di anagrafico nello Shared Folder Cancellazione dei messaggi di anagrafico appena processati Controllo e lettura di eventuali messaggi di ordine/preventivo/contestazione Cancellazione dei messaggi processati
FIGURA 3
INFORMATICA
La soluzione si completa con la creazione di un server https e lutilizzo di certificati che permettono di proteggere le comunicazioni tra punti vendita e Nicoletti mediante crittografia a chiave pubblica a 40 bit e con una grafica semplice ma efficace visualizzabile nella Figura 4.
Conclusioni
Il nostro progetto ci ha permesso di sviluppare una soluzione per lintegrazione con i sistemi ERP che ha i vantaggi di essere efficace, versatile e soprattutto a basso costo, richiedendo un investimento di 20.000 Euro. Essa, di conseguenza, si adatta bene alle esigenze di piccole e medie imprese che non hanno la capacit di fare ulteriori forti investimenti dopo quelli affrontati per la creazione della piattaforma ERP. Lunico inconveniente del nostro approccio quello di dover costituire una base dati a s e di doverla sincronizzare con quella dellERP, ma i disagi sono limitati dalla dimensione relativamente ristretta, dovuta al fatto che la nostra base dati gestisce un solo aspetto delle attivit aziendali. possibile migliorare il tool ed aggiungere gradualmente ulteriori funzionalit: sul piano operativo, uno dei possibili sviluppi che gi si intravedono, consiste nellestensione della piattaforma anche alla rete di distributori internazionali. Sul piano tecnico riteniamo che sarebbe di interesse introdurre lutilizzo di XML per consentire la comunicazione anche con altri applicativi e non semplicemente con SAP e per sviluppare un sistema pi avanzato di knowledge management.
Questa sequenza garantisce la coerenza delle informazioni anche se SAP programmato per lacquisizione dei dati dai punti vendita remoti in modalit Off Line (per esempio tutte le sere dopo la chiusura dei punti vendita). Per garantire il rispetto della cronologia, i messaggi sono nominati con un TimeStamp che consente di ordinarli in base al tempo (ed al punto vendita, incorporando nel nome un prefisso corrispondente al codice dei punti vendita). Analogamente, eventuali risposte da SAP al sistema integrato vengono gestite in maniera duale.