Trento, 19 Gennaio 2015
Italdes Software Embedded per Sistemi di Cash Management DOCUMENTAZIONE SOFTWARE
1/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Table of Contents SOFTWARE CLIENT SIDE....................................................................................5 Architettura..........................................................................................................5 Mappa Classi e loro funzioni – JAVA.................................................................6 Package: it.italdes.bna.daemon.......................................................................6 Package: it.italdes.bna.devices.......................................................................7 Package: it.italdes.bna.daemon.mei................................................................8 Librerie Esterne...................................................................................................9 Package: org.freedesktop.dbus.......................................................................9 Package: com.google.common.......................................................................9 Package: com.meiglobal.ebds.api...................................................................9 Mappa Classi e loro funzioni – QT...................................................................10 main.cpp........................................................................................................10 bnawindow.cpp.............................................................................................10 dbus....cpp.....................................................................................................10 meiacceprotmanager.cpp..............................................................................10 barcode/barcodemanager.cpp........................................................................11 Db/dbmanager.cpp........................................................................................11 Db/transazione.cpp........................................................................................11 Devices/devices.cpp......................................................................................12 shutter/shuttermanager.cpp...........................................................................12 SmartCard/scmanager.cpp............................................................................12 StateMachine................................................................................................12 ui (user interface)..........................................................................................13 utils...............................................................................................................13 XML.............................................................................................................14 Mappa Classi e loro funzioni – QT Knox.........................................................15 main.cpp........................................................................................................15 knoxmanager.cpp..........................................................................................15 operationmanager.cpp...................................................................................15 signaturemanager.cpp...................................................................................15 Specifiche addizionali.......................................................................................16 Comunicazioni..............................................................................................16 Configurazione.............................................................................................16 Log................................................................................................................16 Database........................................................................................................17 Gestione installazione e aggiornamenti.............................................................19 SOFTWARE CLIENT SIDE..................................................................................20 ARCHITETTURA............................................................................................20 FILE E CARTELLE STANDARD...............................................................21 FOLDER E MODULI CUSTOM.................................................................22 MODULI AGGIUNTIVI UFFICIALI.........................................................23 WEB SERVICES IMPLEMENTATI................................................................26 get_xml.........................................................................................................26 set_log...........................................................................................................26 set_transaction..............................................................................................27 set_cashbox...................................................................................................27 get_translation...............................................................................................27 2/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
set_still_alive................................................................................................28 nw_update.....................................................................................................28 DATABASE.......................................................................................................29 VISUALIZZAZIONE DEI LOG......................................................................30 AGGIORNAMENTO BILL SET E FIRMWARE ACCETTATORI.....................31 SCHEMA COMPLESSIVO DI FUNZIONAMENTO.....................................31 CLIENT.............................................................................................................31 SERVER............................................................................................................32
3/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Italdes Software Embedded per Sistemi di Cash Management DOCUMENTAZIONE SOFTWARE Il presente documento (in seguito la "Documentazione"), come previsto dal contratto stipulato il 16.01.2014 tra Italdes e Net Wise, contiene tutte le informazioni necessarie per la presa in carico del Software Embedded per Sistemi di Cash Management da parte del cliente. L'obiettivo della Documentazione è quello di fornire una dettagliata mappa e descrizione di come è stata sviluppato ed organizzato il codice sorgente, l'elenco e le relazioni fra le classi utilizzate e la base tecnologica utilizzata. Come da proposta e da specifiche iniziali, tutto il software sviluppato è stato costruito su piattaforme e con strumenti OPEN SOURCE, ed in particolare si basa sul sistema operativo Linux. Tutta la documentazione di tali piattaforme e strumenti è liberamente disponibile su web, e quindi nel seguito del documento si dà per scontato che il lettore sia in grado di reperirla e consultarla. Si danno altresì per scontati - e non si ripeteranno - i contenuti della proposta iniziale di sviluppo del sistema (nel contratto, il "Preventivo") ed il documento di specifiche iniziali (nel contratto, le "Specifiche"). 4/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
SOFTWARE CLIENT SIDE Architettura L'architettura del sistema client è stata realizzata sulla seguente base: •
Demone per la gestione periferiche - è lo strato a più basso livello, in cui il colloquio con le periferiche è gestito e normalizzato in modo che allo strato superiore sia presentata sempre la stessa interfaccia "astratta". E' stato realizzato in Java (www.java.com) vers. 7 con supporto degli specifici SDK forniti da produttori hardware (MEI MPOST java vers. 3.10).
•
GUI e logica applicativa - è lo strato in cui è contenuta la pura logica applicativa del sistema, ovvero le "regole di decisione" del sistema in base agli eventi che si verificano e allo stato in cui il sistema si trova, ed in particolare lo "automa a stati finiti" del sistema. E' stato realizzato in QT (qt-project.org) vers. 5. Per il salvataggio dei dati relativi alle transazioni e configurazioni specifiche della macchina relative ad utenti e cassetti è stato implementato un database Sqlite (www.sqlite.org) vers. 3. Per la gestione dei log applicativi a livello locale si utilizzano file sequenziali testuali (.txt).
•
Comunicazioni - Per le comunicazioni interprocesso (inter-process communication – IPC) viene utilizzato il sistema open-source DBus (www.freedesktop.org/wiki/Software/dbus) vers. 2.7.
INTERFACCIA UTENTE QT C++ D-BUS
DAEMON JAVA CONTROLLO MEI ETC. LINUX 5/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Mappa Classi e loro funzioni – JAVA Package: it.italdes.bna.daemon Descrizione: Istanzia le classi corrispondenti ai moduli hardware caricati dinamicamente e si occupa del controllo periodico del corretto collegamento e funzionamento delle periferiche. Dettaglio classi: BnaDaemon.java Classe principale, crea e gestisce la comunicazione tramite D-Bus e si occupa del controllo periodico (ogni 15 secondi) dello stato delle periferiche connesse. DBusAcceptorConnector.java DBusChipCard.java DBusPrinter.java DBusShutter.java Le precedenti classi si occupano della comunicazione tramite DBus per le relative perifiche (indicate nel nome della classe). BnaCustomPrinter.java BnaNautPrinter.java bnaMartelPrinter.java bnaSerialPrinter.java Le precedenti classi sono responsabili dell'implementazione dei comandi di programmazione per le relative stampanti.
6/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Package: it.italdes.bna.devices Descrizione: Classi e interfacce generiche per la gestione delle periferiche hardware e la comunicazione tramite D-Bus. Dettaglio classi: BnaDevice.java BnaDeviceEvent.java BnaDevices.java DeviceManager.java DevicesWorkingMap.java Le precedenti classi sono delle rappresentazioni generiche delle periferiche hardware. DbusDevices.java Interfaccia standard per la comunicazione delle periferiche su canale Dbus.
7/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Package: it.italdes.bna.daemon.mei Descrizione: Si occupa della gestione degli accettatori MEI. Dettaglio classi: DBusMeiConnector.java Gestisce la comunicazione tramite canale DBus per le periferiche MEI. MeiAcceptorManager.java MeiBnfManager.java MeiCashBoxManager.java Le precedenti classi implementano la comunicazione con le relative periferiche MEI. La comunicazione si basa sulle classi MEI MPOST versione 3.10. MeiCashBoxStatus.java MeiAcceptorData.java Le precedenti classi vengono utilizzate per rappresentare lo stato dei componenti MEI.
8/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Librerie Esterne Package: org.freedesktop.dbus Descrizione: Implementazione delle comunicazioni tramite canale DBus. File: dbus.jar
Package: com.google.common Descrizione: Classi di supporto alla comunicazione tramite canale DBus. File: guava-16.0.1.jar
Package: com.meiglobal.ebds.api Descrizione: API MEI per comunicazione e gestione eventi accettatori, attualmente implementate alla versione 3.10. File: MEI-java.jar
9/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Mappa Classi e loro funzioni – QT Dettaglio classi:
main.cpp Classe di partenza, provvede al caricamento della classe principale dell'applicativo: bnawindow.cpp.
bnawindow.cpp Rappresenta la classe principale dell'applicativo; al primo avvio si occupa di istanziare le classi di supporto per la gestione delle periferiche, file di configurazione xml, classi di log, classi di gestione
database.
Dopodichè
procede
al
caricamento
dell'interfaccia grafica. La classe contiene anche la prima logica per la gestione delle principali operazioni utente (deposito, prelievo ed azioni supervisore), funzionalitĂ autonome della cassaforte (controllo livelli denaro, aggiornamenti software e configurazione) e degli errori.
dbus....cpp dbusdevices.cpp dbuscarddetector.cpp dbusmeiconnector.cpp dbusshutter.cpp dbusserialprinter.cpp Classi standard per la comunicazione tramite DBus.
meiacceprotmanager.cpp Si occupa della gestione degli accettatori, compresi comandi inviati ed eventi ricevuti (anche errori); la comunicazione avviene tramite la classe di supporto dbusmeiconnector.cpp. 10/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
barcode/barcodemanager.cpp Si occupa della lettura dei codici a barre tramite lettore usb e della loro eventuale validazione.
Db/dbmanager.cpp Si occupa di tutte le interazioni con il database Sqlite, ivi compresa la sua creazione in fase di prima installazione e le operazioni di manutenzione.
Db/transazione.cpp Rappresenta una transazione di prelievo o deposito e viene utilizzato per la creazione e successiva gestione della transazione. Si basa sulle classi: Db/operazione.cpp
-
contiene
le
singole
operazioni
che
compongono un deposito o un prelievo Db/datiprelievo.cpp – contiene il dettaglio degli importi prelevati Db/safebagdata.cpp – contiene il dettaglio degli importi versati / prelevati tramite safebag Db/sealverifier.cpp Gestisce il controllo di conformità per i codici: •
seriale cassaforte;
•
seriale cashbox;
•
seriale safebag.
Db/user.cpp Rappresenta un oggetto utente – quando si utilizza la procedura di autenticazione tramite codice pin.
11/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Devices/devices.cpp Questa classe, in collaborazione con l'interfaccia DBus, si occupano di verificare lo stato delle periferiche hardware registrate sul bus. In particolare, verificano la connessione ed eventuali errori e gestiscono gli stati principali del software: cassaforte operativa e cassaforte fuori servizio.
shutter/shuttermanager.cpp Gestisce la comunicazione con la periferica shutter per i comandi di apertura / chiusura porta, inoltre emette gli eventi di porta aperta / porta chiusa.
SmartCard/scmanager.cpp Gestisce la lettura delle smartcard tramite lettore collegato su porta USB. In base alla carta inserita genera i relativi eventi di deposito, prelievo, supervisore, carta errata.
StateMachine Il software è basato sul modello della macchina a stati finiti. Di seguito vengono riportate le macchine utilizzate per le diverse funzioni: StateMachine/mainmachine.cpp
–
macchina
a
stati
finiti
principale, che governa tutte le funzioni della cassaforte. StateMachine/jobdepomanager.cpp
–
istanziata
dalla
mainmachine per gestire la procedura di deposito banconote. StateMachine/jobcollectmanager.cpp
–
istanziata
dalla
maimachine per gestire la procedura di prelievo StateMachine/cashboxloop.cpp
–
istanziata
dalla
jobcollectmanager.cpp per gestire la procedura di inserimento nuovo cassetto. 12/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
ui (user interface) ui/helpmessages.cpp ui/numerickeyboard.cpp ui/popovererror.cpp ui/popoverhelp.cpp ui/safebagedit.cpp ui/statusbarleft.cpp ui/statusbarright.cpp Le precedenti sono tutte classi di supporto per la gestione dell'interfaccia grafica.
utils utils/keepalive.cpp Si occupa di chiamare ad intervalli regolari il server di monitoraggio per segnalare il corretto collegamento della cassaforte. utils/logger.cpp Effettua il log dei messaggi operativi sia in locale tramite il file bna.log che in tramite trasmissione al server di monitoraggio. utils/transactionlogger.cpp Effettua
la
trasmissione
delle
transazioni
al
server
di
monitoraggio: il sistema si occupa di verificare la corretta ricezione da parte del server del flusso e in caso negativo di ritrasmettere la stessa fino alla sua corretta ricezione.
13/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
XML xmlConfig/langmanager.cpp Si occupa di richiedere eventuale file di traduzione per tutti i test dell'interfaccia software. xmlConfig/xmlconfig.cpp Interfaccia per il file di configurazione. La configurazione che la cassaforte riceve da server a seguito dell'inserimento del seriale e tramite successive richieste in caso vengano effettuati degli aggiornamenti, è salvata in locale nella posizione /home/italdes-daemon/config.xml xmlConfig/xmlmanager.cpp Si occupa della comunicazione con il server per il controllo ed eventuale recupero del file xml di configurazione del sistema, del controllo della presenza di aggiornamenti al software di sistema e del controllo della presenza di aggiornamenti al firmware degli accettatori.
14/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Mappa Classi e loro funzioni – QT Knox Il sistema di comunicazione verso Knox si basa sulle librerie gSOAP: www.cs.fsu.edu/~engelen/soap.html Di seguito una descrizione delle classi di interfaccia:
main.cpp Si occupa di istanziare la classe KnoxManager e di chiamare il metodo corretto in base ai parametri ricevuti.
knoxmanager.cpp Si occupa della trasmissione dei flussi relativi ad operazioni di deposito e prelievo, del controllo della corretta ricezione e, in caso negativo, di salvare il flusso e ritrasmetterlo, della gestione del numero di segnale. Si appoggia alle seguenti classi:
operationmanager.cpp Crea il flusso XML relativo alle operazioni di deposito / prelievo
signaturemanager.cpp Firma il flusso XML come da specifiche Knox.
15/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Specifiche addizionali
Comunicazioni Tutte le comunicazioni con il server di monitoraggio (log, transazioni, richiesta
seriali,
configurazioni,
aggiornamenti,
traduzioni,
etc)
avvengono tramite tracciati XML.
Configurazione La configurazione locale che la macchina riceve dal server viene salvata in formato XML nel file /home/italdes-daemon/config.xml
Log I log testuali sono salvati nei file: /home/italdes/bin/bna.log: log operativi /home/italdes-daemon/italdes-daemon.log: log del software Java relativi alle connessioni delle periferiche hardware supplementari. /home/italdes/bin/SENT.log: tracciato inviato a Knox. /home/italdes/bin/RECV.log: tracciato ricevuto da Knox. /home/italdes-daemon/MPOST_Log_ttsyX.log: log effettuati da classi MEI MPOST.
16/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Database Il database utilizzato è Sqlite. Viene salvato in /home/italdes/bin/bna.db. Di seguito è riportato uno schema delle tabelle: transazioni ogni record memorizza una singola transazione di deposito / prelievo.
operazioni ogni record rappresenta una singola operazione, più operazioni compongono una transazione.
pins_level1, pins_level2, pins_level3 salva i dati di autenticazione utente (per le casseforti configurate con autenticazione tramite pin) così come presente nel file di configurazione ricevuto da server.
smartcards salva i dati delle smartcard abilitate così come presente nel file di configurazione ricevuto da server. Storico sigilli salva un elenco dei sigilli cassetti non utilizzabili.
unsent memorizza temporaneamente le eventuali transazioni non inviate al server per problemi di comunicazione. 17/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
unsentKnox memorizza temporaneamente le eventuali transazioni non inviate al server Knox per problemi di comunicazione.
18/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
Gestione installazione e aggiornamenti Il software si appoggia ad un ambiente Linux basato su Debian 7.8 32 bit. L'installer fornito provvede all'installazione dei pacchetti necessari al funzionamento del software, alla sicurezza (configurazione utenti, firewall, vpn) e alla installazione dei driver specifici Linux per le periferiche all'oggi utilizzate. Al termine dell'installazione viene configurato il repository Italdes, scaricato il software nella sua ultima versione ed automaticamente avviato. La cassaforte arriva così al suo primo avvio; dopo presenta la schermata di richiesta del proprio codice seriale per potersi così collegare al server di monitoraggio e ricevere la propria specifica configurazione. Gli aggiornamenti ai pacchetti software avvengono tramite il sistema apt/aptitude (wiki.debian.org/Aptitude). Il repository è installato presso il server di monitoraggio Italdes. Esistono 2 pacchetti indipendenti per la componente Java e quella QT. •
italdes-daemon_nrVersione_all.deb
•
italdes_nrVersione_i386.deb
Di entrambi è gestito il versioning, con la seguente naming convention: major.minor.build ___ _ ___
19/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
SOFTWARE CLIENT SIDE ARCHITETTURA L'architettura sistemistica è un classico stack LAMP Server: (architettura hw Intel), oggi HP MicroServer - 64bit, Debian GNU/Linux 7, Apache/2.2.22 PHP: v. 5.4 Mysql: 5.5.40 L'architettura applicativa è basata sul CMS/CMF Drupal (www.drupal.org) Drupal: 7.34
20/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
FILE E CARTELLE STANDARD Il server utilizzato per il censimento ed il monitoraggio delle casseforti è sviluppato utilizzando il cms opensource “Drupal”. Drupal è un piattaforma software “LAMP”(Linux-Apache-MySql-PHP), scaricata dal sito ufficiale www.drupal.org, seguendo l'installazione standard. La directory in cui si trova tutta la struttura di Drupal sul server è: home/italdes ed è accessibile dagli utenti root e italdes.
21/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
FOLDER E MODULI CUSTOM All'interno di “home/italdes”, oltre a tutti I file che Drupal utilizza per funzionare correttamente, vi è una cartella denominata “repo”, dove vengono caricati dal cliente i file di installazione aggiornati del software che gira sulle cassaforti.
Sono stati sviluppati alcuni moduli Drupal custom (in effetti, l'unico codice scritto ad hoc per il server, oltre a quello per i web services). Risiedono all'interno della directory home/italdes/sites/all/modules e sono: nw_custom_formatter gestisce la formattazione customizzata di alcuni campi drupal nw_functions collezione di funzioni custom nw_italdes web services nw_logs visualizzazione log
22/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
MODULI AGGIUNTIVI UFFICIALI Sono i moduli aggiuntivi per Drupal creati dalla community e liberamente reperibili sul web. admin_menu fornisce un'interfaccia di amministrazione indipendente dal tema admin_views sostituisce le pagine di amministrazione con viste attuali per un'usabilità superiore backup_migrate backup e ripristina Drupal ctools set di API per migliorare la fase di sviluppo del sito date modulo per la gestione delle date diff mostra le differenze tra il modulo installato e quello originale (lavora con modulo hacked) double_field permette di splittare un campo in parti separate entity fornisce un modo per interagire con le entità e le loro proprietà field_collection 23/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
fornisce un campo field collection, ovvero una collezione di campi field_collection_table fornisce una formattazione a tabella per I campi di tipo field collection field_formatter_settings permette di modificare la formattazione predefinita dei campi di un nodo field_group permette di raggruppare più campi assieme field_permission permette agli amministratori di settare livelli di permessi (lettura, modifica, creazione) sui vari campi hacked controlla
l'integrità
di
tutti
i
moduli,
rispetto
alla
loro
implementazione originale imagemagick permette di utilizzare la suite ImageMagick jquery_update permette di aggiornare jquery e di scegliere quale versione abilitare libraries fornisce un repository comune per le librerie linked_field permette di linkare campi nel “field formatter settings” 24/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
login_destination permette di customizzare la pagina di redirect dopo aver effettuato il login multiupload_fieldfield_widget permette l'upload multiplo di file node_clone permette di clonare un nodo drupal ed editarne il contenuto noreqnewpass rimuove il link di richiesta nuova password pathauto genera “alias url” per vari contenuti del sito references permette di referenziare nodi all'interno di altri nodi e di editarli tac_lite governa l'accesso ai nodi basati su “taxonomy terms” token modulo per la gestione dei token upload_replace sostituisce file con lo stesso nome caricati in una cartella views implementa le viste views_bulk_operations permette di compiere operazioni su più righe di una vista 25/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
WEB SERVICES IMPLEMENTATI Tutti I web service utilizzano lo standard XML per lo scambio di informazioni.
get_xml Url: italdes.mondialpolnetwork.it/nw/get_xml Linguaggio: PHP, SQL Cosa fa: La cassaforte chiede se ci sono aggiornamenti nel file di configurazione config_improved.xml�. Se ce ne sono il server gli risponde inviandole il file.
set_log Url: italdes.mondialpolnetwork.it/nw/set_log Linguaggio: PHP, SQL Cosa fa: La cassaforte invia al server I log
26/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
set_transaction Url: italdes.mondialpolnetwork.it/nw/set_transaction Linguaggio: PHP, SQL Cosa fa: La cassaforte invia al server tutti I dati relativi alle transazioni(versamento/prelievo)
set_cashbox Url: italdes.mondialpolnetwork.it/nw/set_cashbox Linguaggio: PHP, SQL Cosa fa: Quando nella cassaforte vengono inseriti i cashbox, invia al server i loro id
get_translation Url: italdes.mondialpolnetwork.it/nw/get_translation Linguaggio: PHP, SQL Cosa fa: La cassaforte chiede al server di inviargli la traduzione dell'interfaccia del sw che gira sulla cassaforte, all'interno di un file .qm (multilanguage di QT) 27/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
set_still_alive Url: italdes.mondialpolnetwork.it/nw/set_still_alive Linguaggio: PHP, SQL Cosa fa: La cassaforte fa una richiesta periodicamente per informare il server della sua presenza attiva in rete
nw_update Url: italdes.mondialpolnetwork.it/nw/nw_update Linguaggio: PHP, SQL Cosa fa: La cassaforte chiede al server se ci sono aggiornamenti riguardanti il software che gira sulle casseforti.
28/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
DATABASE Il database è composto da una serie di tabelle generate da Drupal in maniera automatica per la gestione delle informazioni e dei contenuti del sito. La connessione dal database è effettuata autonomamente da Drupal, prendendo le informazioni necessarie come username e password dal file settings.php presente nella cartella “home/italdes/sites/default”. E' stata inoltre aggiunta una tabella custom per la gestione dei log che le casseforti inviano al server: tabella: nw_logs campi: id chiave univoca autoincrement type tipo di log (info, warning, error) cassaforte seriale della cassaforte a cui il log si riferisce text testo del messaggio di log data_log data di quando è inviato il log (data cassaforte, quindi) data_server data di quando viene ricevuto il log (data risultante al server)
29/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
VISUALIZZAZIONE DEI LOG Il modulo che si occupa della visualizzazione dei log di tutte le casseforti si trova in /home/italdes/sites/all/modules/nw_logs Questo modulo interroga la tabella custom dei log sul database per farsi restituire tutti i log presenti e renderizza correttamente la pagina del sito demandata a mostrarli, gestendo i filtri e la paginazione. ___ _ ___
30/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
AGGIORNAMENTO BILL SET E FIRMWARE ACCETTATORI SCHEMA COMPLESSIVO DI FUNZIONAMENTO L'aggiornamento da remoto dei file di descrizione delle banconote (billset) e del firmware degli accettatori MEI è previsto dal costruttore avvenga tramite le porte seriali. Il client dunque verifica periodicamente se sul server sono disponibili aggiornamenti di questo genere, ed in caso avvia il download dei relativi file ed il trasferimento via porta seriale sugli accettatori. Il trasferimento da client ad accettatore è stato realizzato utilizzando le API di MEI MPOST. Segue descrizione più dettagliata del processo sui componenti coinvolti.
31/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
CLIENT
Periodicamente il client provvede al controllo per l'aggiornamento degli accettatori, sia billset che firmware: •
viene effettuato un controllo nella cartella "/acceptor" del server
•
se il software trova un file nominato <SerialeCassaforte>.bin, provvede al download e successivamente all'invio agli accettatori per l'aggiornamento (ovviamente ponenedo la cassaforte "fuori servizio")
•
una volta completato correttamente il download e l'invio agli accettatori, viene cancellato il file locale e chiamato un webservice sul server che provvede all'eliminazione del file remoto così da non avere un nuovo scaricamento al successivo controllo
•
al termine della procedura gli accettatori sono riavviati.
La procedura viene eseguita solo a macchina in fase di "standby" e durante l'aggiornamento è presentata la schermata che invita l'utente a non utilizzare nè spegnere la macchina e non viene accettata alcuna card.
32/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE
SERVER
A quanto già descritto in precedenza si aggiunge che: •
Il file di aggiornamento degli accetttatori si trova nella nella cartella /home/italdes/acceptor.
•
Una volta che il client scarica questo file, il server richiama lo script che si trova all'indirizzo .../acceptor/delete.php il quale non fa altro che cancellare il file (il nome del file da cancellare viene passato allo script come parametro della get request). ___ _ ___
33/33
italdes
Software Embedded per Sistemi di Cash Management - DOCUMENTAZIONE