Buongiorno a tutti e grazie per essere presenti oggi.
Sono Marco Ruffoni e in ESC mi occupo di progettazione di software applicativo
Una piccola presentazione di ESC
ESC è l’acronimo di Enterprise Software Consulting
ESC nasce dall’unione di una solida esperienza nell’ambito della gestione dei processi aziendali
con la capacità di adattare le tecnologie IT alle esigenze del business.
L’obiettivo di ESC è quello di fornire soluzioni
Gli ambiti in cui operiamo sono ERP, Data Integration e applicazioni Web & Mobile rivolte al mondo Enterprise
Lavoriamo con importanti realtà del settore fashion e manufacturing.
Veniamo ora al case study di oggi.
Si tratta di un progetto che abbiamo realizzato per il nostro cliente Performance in Lighting
Performance in Lighting, è una realtà industriale multinazionale che progetta, produce e distribuisce in tutto il mondo apparecchi di illuminazione di altissima qualità.
Raggruppa 6 brand: Prisma, Lumis, SBP, Prisma Architectural, Spittler e SBP Urban Lighting.
Con sedi in 10 nazioni europee, negli USA ed in Asia, Performance in Lighting conta oltre 700 collaboratori e distribuisce i suoi prodotti in oltre 90 paesi.
Circa 1 anno e mezzo fa Performance in Lighting (o PiL in modalità abbreviata) ha dato il via a un progetto che prevede il trasferimento verso il cloud di gran parte dei suoi servizi IT.
Tutto è iniziato con la decisione di sostituire i diversi software gestionali installati nelle aziende del gruppo con un nuovo ERP: SAP.
Tra i requisiti del progetto, che ha in IBM l’attore principale, PIL ne ha incluso uno che ha caratterizzato in modo importante tutte le attività successive: il nuovo sistema doveva essere ospitato nel cloud.
L’infrastruttura scelta è quella di SoftLayer.
Più in dettaglio, avendo quindi al centro Softlayer, abbiamo portato nel cloud
il nuovo ERP SAP (con il roll-out delle 4 aziende produttive e delle filiali commerciali)
le informazioni necessarie alle attività di marketing: foto, dati commerciali, testi, …
i siti web del gruppo con tutte le informazioni di backend e i servizi di sincronizzazione di queste ultime con l’ERP
il sistema di Product Information Management (che si chiama Pointer Basic) con i suoi servizi di connessione all’erp ed alle informazioni di marketing
l’infrastruttura per il backup
Il datawarehouse ed il portale web realizzato da ESC che ospita le applicazioni di analisi statistica e di inquiry. Portale che è integrato con SAP
In questo contesto si inserisce il progetto realizzato con Bluemix: il sistema per la rilevazione della produzione
Gli obiettivi dichiarati di questa applicazione sono:
l’assegnazione delle risorse umane alle linee di produzione e agli ordini pianificati su queste linee
la rilevazione delle quantità prodotte e dei tempi impiegati per le varie attività, sia produttive che improduttive.
la verifica ed eventuale quadratura dei tempi di produzione con quanto rilevato dalla gestione presenze
la capacità di interfacciarsi con SAP ERP e con il software di Gestione Presenze, sia per l’acquisizione delle informazioni necessarie alla gestione dell’avanzamento produzione che per la riconsegna dei dati rilevati.
l’implementazione di una interfaccia semplice e funzionale, soprattutto per i moduli utilizzati dal personale di produzione
La struttura del sistema può essere schematizzata in 3 sezioni:
la parte client: composta da un’app Android (disponibile su tablet) da distribuire nei reparti per rilevare i dati di produzione e da un browser web per l’uso della web application
la parte Bluemix, dove troviamo la web application php ad uso dei responsabili di reparto per il controllo e la giustificazione delle anomalie e i servizi di backend per la comunicazione con l’app. Su Bluemix sono stati attivati anche i servizi Cloud integration per la comunicazione con SAP, un Db Postgres e il software JasperReports server per la gestione dei report della web app
la sezione di destra è di fatto SAP ERP che espone delle funzionalità sotto forma di BAPI
Spiegazione dettagliata e con esempi
Vediamo meglio i servizi Bluemix che fanno parte del progetto
all’interno del runtime php abbiamo implementato i ws REST per la comunicazione con l’app Android e la web application per la quadratura dei tempi di produzione con quanto rilevato dal software di gestione presenze.
l’app Android è dotata di un suo db locale, implementato con SQLite, per essere in grado di lavorare anche in assenza di rete
Il servizio liberty for java è un application server java (basato su WebSphere application server) in cui gira JasperReports server, che abbiamo utilizzato per la produzione dei report della web application
Nota Tecnica
Solitamente nelle applicazioni php su piattaforma tradizionale utilizziamo il runtime di JasperReports con un servizio chiamato JavaBridge installato sul server web che consente di richiamare classi java all’interno di script php in modo trasparente.
Passando alla piattaforma Bluemix abbiamo sostituito JavaBridge e JasperReports runtime con Liberty for Java e JasperReports server e modificato le modalità di esecuzione dei report dal php: ora si richiamano attraverso dei WS opportunamente parametrizzati.
Il db Postgres è il database di backend dell’app android e della web application.
Abbiamo scelto Postgres tra i db relazionali disponibili in Bluemix perché già utilizzato in altri progetti php
Il db Postgres è lo storage di transito tra l’erp e la parte client: memorizza le informazioni che arrivano da SAP (anagrafiche, OP pianificati, …), inoltre riceve i dati rilevati sul campo che poi saranno validati dagli utenti e passati all’ERP
Mi soffermo un attimo di più sul servizio cloud integration, che ha dato un grande valore al progetto.
Cloud Integration per Bluemix consente di integrare rapidamente i servizi cloud con i system of record aziendali, nel nostro caso SAP ERP.
Cloud Integration espone i system of record di backend come API REST: in sostanza tutte le BAPI esposte da SAP (sia quelle di lettura che quelle di scrittura di dati) sono state mappate come API REST e poi rese disponibili alle applicazioni php.
- Cloud Integration abilita la comunicazione sicura tra cloud e on-premise mediante connettori sicuri installati in loco. Si procede con l’installazione del connettore fornito da cloud integration (e disponibile per sistemi Windows e Linux) su una macchina nella stessa rete dei server che ospitano l’ERP. Il connettore si preoccupa di attivare un tunnel SSH con il servizio cloud integration su Bluemix e di implementare un canale di comunicazione sicuro su cui far fluire le informazioni.
Di fatto possiamo parlare di cloud ibrido: applicazione Bluemix + SAP ERP (anche se SAP è su SoftLayer, quindi in cloud)
L’app android fornisce al personale di produzione di Performance in Lighting opzioni per
la rilevazione di quantità e tempi
l’interrogazione della distinta base e del ciclo di produzione
la visualizzazione della documentazione: disegni e istruzioni di montaggio
Il tutto con un’interfaccia semplice
Come dicevamo prima è dotata di db locale per poter operare anche in mancanza di rete
Spiegare scelta Android
Per chiudere qualche considerazione nata dall’utilizzo sul campo dei servizi Bluemix
Il vantaggio della piattaforma PaaS di IBM consiste nella disponibilità di componenti evoluti per le attività di sviluppo (sia della web application che del back-end)
L’integrazione con SAP ottenuta attraverso Cloud integration è stata di grande aiuto nello sviluppo del progetto.
La struttura stessa di Bluemix rende possibile concentrarsi sulla progettazione del software senza preoccuparsi dell’infrastruttura sottostante (server, sistemi operativi, middleware, etc.)
Di notevole interesse anche la possibilità di scalare le risorse in modo molto semplice …
… e di replicare istanze dell’applicazione istantaneamente (es. per testing o deploy di nuove istallazioni)
Inoltre si paga solo quello che si utilizza!!!
Nella foto potete vedere un collega che sta facendo sviluppo agile e rapido.
Da un punto di vista di sviluppo è semplice introdurre nuovi componenti all’interno dell’architettura, creare prototipi anche di parti dell’applicazione, eseguire test, …
Questo consente di fornire soluzioni a completamento dell’ERP in tempi (e costi) contenuti.
Ci riserviamo di rivalutare il tempo da dedicare allo sviluppo delle applicazioni: trattandosi del primo progetto Bluemix abbiamo dedicato risorse per capire come muoverci sulla piattaforma. Le sensazioni però sono buone
abbiamo dovuto rivedere alcune scelte architetturali che abitualmente utilizziamo in ambiente tradizionale
Per esempio: solitamente usiamo un db SQLite per ospitare informazioni di supporto alle web application. In Bluemix però non esiste un file system condiviso tra gli utenti e SQLite è implementato come un file. Abbiamo dovuto spostare questi dati in uno storage diverso (Postgres)
altro esempio l’introduzione della versione server di JasperReports in sostituzione del runtime