Case history Siroc / Resec

18
Case History Case History Sviluppo di una applicazione J2EE 5 Sviluppo di una applicazione J2EE 5 per la gestione di una centrale di per la gestione di una centrale di controllo di antifurti satellitari controllo di antifurti satellitari Relatore: Domenico Giordano Relatore: Domenico Giordano JugSicilia JugSicilia Meeting Meeting Ragusa, 14/06/2008 Ragusa, 14/06/2008

Transcript of Case history Siroc / Resec

Case HistoryCase HistorySviluppo di una applicazione J2EE 5 Sviluppo di una applicazione J2EE 5 per la gestione di una centrale di per la gestione di una centrale di controllo di antifurti satellitaricontrollo di antifurti satellitari

Relatore: Domenico GiordanoRelatore: Domenico Giordano

JugSicilia JugSicilia MeetingMeeting

Ragusa, 14/06/2008Ragusa, 14/06/2008

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Siroc s.r.l.

La Siroc s.r.l. nasce dalla unione di due diverse realtà operanti entrambi nell'ambito dell' Information Technology. Una operante prevalentemente in ambito di sviluppo software gestionali per il settore turistico-alberghiero, l'altra con competenze focalizzate nel settore della Sicurezza informatica.La Siroc s.r.l. ha da sempre adottato Java come partner tecnologico sia per lo sviluppo di applicazioni client-server che per applicazioni web-based

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

La commessa RESEC

●Client di centrale su cui un operatore possa leggere i log relativi alle periferiche montate sugli autoveicoli.●Software di interfaccia con le periferiche per l'invio della programmazione e la lettura dei parametri●Software gestionale per la registrazione degli abbonamenti, archivio clienti e gestione del magazzino.●Le sedi della società sono due: sede commerciale e tecnica a Milano, centrale di controllo ubicata a Ragusa.

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS

Dati provenienti da sorgenti differentiDifferenti settori interessati alla produzione e

recupero delle informazioni (commerciale, amministrativo, magazzino, centrale di controllo, collaudatori, ecc...)

Gestione della comunicazione con le periferiche attraverso i più comuni protocolli di comunicazine (GSM dati, GSM SMS, ISDN, GPRS)

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS e Java Enterprise Edition 5

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS – Tecnologie adottate

Java Standard Edition per la comunicazione basso livello con i modem per l'interfacciamento con le periferiche

Java Enterprise Edition 5 per la definizione del object/relational model e della logica di business

Glassfish come Application Server che soddisfi i requisiti di J2EE 5

NetBeans quale IDE di sviluppoTopLink come persistence providerJSF con i componenti visuali del progetto opensource

Woodstock per il modulo di presentazine WEB

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS – Modulo Caronte

Si colloca fra le periferiche e l'applicazione enterpriseSi occupa della comunicazione diretta con i dispositivi in

base ai protocolli standard di comunicazione (GSM dati, GSM SMS, ISDN, GPRS)

Logica di livello più alto che gli permette di comunicare, secondo un protocollo proprietario, con Ermes, inviando ad esso i dati raccolti e ricevendo da esso i comandi che dovrà recapitare ai dispositivi

un'applicazione multi-threads

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS – Modulo Caronte HA

Per garantire un'alta affidabilità è prevista una configurazione di Caronte-Master e di N (1 o +) Caronte-Slave installati su macchine differenti. Ogni Caronte-Slave sa su quale macchina gira il Master così lo contatta e si registra ad esso. Il Master allora, invia, ad ogni slave riconosciuto, una copia di OGNI pacchetto che manda ad Ermes.Un'istanza di un Caronte-Slave attiva così un sottoinsieme dei moduli attivati dal Master, e questo perchè alcuni moduli - come quello di comunicazione con i dispositivi - devono essere gestiti solo dal Master. In caso di crash del Master viene scelta una delle istanze di Caronte-Slave in base ad una priorità definita nella configurazione iniziale.

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Glassfish

Application Server opensource sviluppato da una comunità di oltre 1100 tecniciNato nel 2005 come rilascio dei sorgenti del Sun Java System Application ServerPrimo Application Server in grado di soddisfare tutte le specifiche EJB3Potenzialità e stabilità paragonabile ad altri prodotti commercialiVantaggio di essere un prodotto opensource

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

EJB 3.0

Logica di businessComponente server-sideAnnotazioni su classi Java (POJO)Configuration by defaultDipendency injection

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

EJB 3.0 - Componenti

Session Bean: effettuano tutte le operazioni legate alla logica di business (stateless, statefull)Message driven bean: permettono ad una applicazione enterprise di processare messaggi in maniera asincronaEntity bean: rappresentano i dati di business persistenti

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS e JMS - ERMES

JMS è una API standard di J2EE che consente alle applicazioni di inviare e ricevere messaggi in maniera asincrona.JMS providerJMS clientJMS producerJMS consumer

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS e JMS - ERMES

ERMES è singleton, attivo all’interno dell’Application Server, che ha il compito di trasformare le informazioni pervenute dai dispositivi, attraverso Caronte, in oggetti Entity Bean, renderli persistenti ed inviarli in broadcast via JMS Topic a tutti client autorizzati.Un utente che entra in gestione di una periferica, riceverà esclusivamente i dati da questa sino a quando non rilascia la risorsa.

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS e JPA

JPA: Java Persistence API garantisce un livello di astrazine rispetto al ”dialetto” del RDBMS utilizzato.Entity Bean sono dei POJO con annotazioni. Ciascun entity rappresenta una tabella sul DB, ciascuna istanza della classe rappresenta una riga nella tabella. Le proprietà della classe POJO rappresentano campi persistenti sul database

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS e JPA

Object/Relational mappingRelazioni di tipo: one-to-many; many-to-one; one-to-one; many-to-manyNavigabilità delle relazioniEreditarietà

Single tableJoin tableTable-per-concrete-class

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS e JPA - TopLink

Persistence Providere OpenSource della OracleIn origine sviluppato dagli “The Object People” in Smalltalk (da cui la parte del nome TOP) agli inizi degli anni 90Acquistato dalla Oracle che donò il codice sorgente al progetto GlassFish della SunPerfetta integrazione con l'AS utilizzato per il progetto NESS

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Sistema NESS – ERP

Due sedi dati e appplicazioni condivisiGestione settore commerciale e post-vendita; amministrazione, magazzinoRealizzazione di una web application utilizzando come framework JSF

JugSicilia MeetingJugSicilia MeetingRagusa, 14/06/2008Ragusa, 14/06/2008

Java Server Faces

Tecnologia descritta dalle specifiche JSR 127basata sul design pattern architetturale Model-View-Controller (MVC)Lo scopo è quello di facilitare lo sviluppo di interfaccia utente di una web applicationFacilita la gestione dello stato dei componenti