simposio 2006
DESCRIPTION
Presentazione all'intersystems simposio 2006TRANSCRIPT
Il progetto NPLANLa genesi
1996 attività di consulenza nella gestione del patrimonio immobiliare- A.R.T.I. e A.B.B. Manutenzione edile
Manutenzione impiantistica
X-World ObjectStore- COMIT/Intesa BCI- Domus Aurea (Harpa Italia)- Telecom (HarpaCeas/HP)
Il progetto NPLANInizio progetto
Obiettivo: realizzare un applicativo di AM/FM (più) adatto al mercato italiano
• Inizio: 6 anni fa • Main competitor: Archibus/FM (milioni di installazioni
mondiali)• Poche risorse (2 persone, scarsi fondi)• Molto da realizzare (interfaccia CAD/GIS, tutti i moduli
funzionali...)• Budget 1/100 dei competitors• Mercato abbastanza impermeabile alle piccole aziende
...apparentemente una causa persa (o quantomeno un progetto estremamente ambizioso)
Il progetto NPLANFlessibilità richiesta
user
Applicazionecustom“CensimentoPatrimonio montano”
Integrazione
systemMotore GUI,accesso ai dati,gestione utenti, gestione concorrenza, navigazione, framework di base
application
Applicazione: classi utente + business logic + GUI
Applicazione 1
Es. Censimento Patrimonio
Applicazione 2
Classi in comune
Non
mod
ifica
bil
e
mod
ifica
bile
derivazione
personalmaschere,report
personali
Impianti
Componenti Impianti
Persone
Edifici
Strade
Anagrafe patrimonio immobiliare e mobiliare
Unità Immobiliari
Terreni, parchi, verde pubblico
Beni mobili
Locali
Anagrafe contratti d’affitto
Centri diCosto
NPLANIl modello dei dati
NPLANDati modellati in aderenza alla
realtàIl patrimonio immobiliare, e i sistemi e sottosistemi che lo
compongono, sono descritti senza forzature ma riportando le varie parti così come sono relazionate tra loro, con il livello di dettaglio necessario e desiderato. A tutti gli immobili possono essere aggiunte informazioni, in tempi successivi, sulla base delle rilevazioni e dei “feed back” operativi (censimento, manutenzione etc).
• Menu contestuale
• Link grafico con Drag & Drop
• Ricerche in linguaggio naturale
• Modelli complessi
• Aggiornamento da modelli
NPLANFacilità d’uso
• Browser di navigazione
• Vista di insieme
• Vista di dettaglio
• Interazione su dati filtrati
NPLANLa visualizzazione dei dati
Livello di dettaglio scelto dall’utenteLibertà nella definizione delle categorie
Classi ricorsive
NPLANModulo Asset
Facilmente accessibili
Rapidamente Disponibili
Qualitativamente rilevanti
Integrate da dati eterogenei quali:
Dati alfanumerici Dati grafici Dati documentali
Tutti i moduli di NPLAN consentono di disporre di informazioni
NPLANGestione documenti
Gestione modelli manutentivi
Gestione risorse umane
Piano di manutenzione
Gestione interventi Programmati Su richiesta
Schedulazione interventi programmati
Preventivi Listini opere multilivello
Consuntivi
NPLANIl modulo Manutenzioni
Gestione interventi su richiesta
Generazione automatica degli interventi
Gestione delle richieste di sollecitoMonitoraggio e analisi delle richieste
Gestione allegati della richiesta (fax, e-mail etc)
Gestione priorità della richiesta
NPLANIl modulo Call Center
Il progetto NPLANRequisiti
Servono: numerose viste d'insieme quali alberi, griglie, viste CAD/GIS, diagrammi di Gantt, grafici, cubi multidimensionali, diagrammi, eccetera.
Il progetto NPLANInizio progetto
Come rendere possibile tutto ciò ?
• Forti motivazioni • Fiducia nei propri mezzi (20 anni di esperienza)• Introduzione schiavitù... • ...• Necessario ridurre il gap economico (1:100)
mediante tecnologie adatte ad abbassare i costi.• Necessario scegliere prodotti innovativi che
permettano una riduzione dei costi di sviluppo di 10 volte.
• Creare in casa una tecnologia e architettura di sviluppo, realizzare cioè gli strumenti di sviluppo più adatti, prima del prodotto. Se si ottiene un altro fattore 10, ci siamo!
Il progetto NPLANInizio progetto
Dove si può risparmiare ?
• Costi sviluppo e mantenimento maschere (>800)• Numero tabelle (>500)• Costi mantenimento query SQL (ogni aggiunta di
un campo si ripercuote su tutte le query che usano la tabella)
• Mantenimento codice business• GUI particolarmente complessa (tree-view)
possiede costi elevati di manutenzione.
Il progetto NPLANInizio progetto
Soluzioni
• Adottare un’architettura Model Driven (MDA): Interfaccia utente prodotta interamente in
automatico da metadati, nessuna maschera viene realizzata manualmente (compreso i tree-view).
• Limitare il numero di tabelle usando la derivazione (un tool di mapping OO-relazionale può occuparsene se si sceglie un db relazionale...ma risulta talvolta inefficiente).
• Tenersi alla larga dall’SQL il più possibile nelle viste complesse, pena un costo di manutenzione elevato.
• Massima riusabilità della business logic se scritta in linguaggio OO.
• Trovare la tecnologia adatta che ne permetta la realizzazione
Il progetto NPLANArchitettura Model Driven
System DB (FMSYS):- Elenco Moduli disponibili- Metadati-Viste -GUI
Client
Server
User DBClassi e dati applicativi
NPLAN server
1. Prelievo di metadati e definizione GUI dal System DB2. Creazione GUI (viste, maschere,
menu) sulla base delle definizioni3. Browsing di dati nello User DB
NPLAN client
Per modificare l’interfaccia utente è sufficiente modificare dati nel System DB,senza intervenire sul client.
Il progetto NPLANLa ricerca tecnologica
Analisi e test su molteplici sistemi
• Oracle• SQL Server• Jasmine (CA)• O2
• Versant, Poet• CACHÉ (InterSystems Corp.)
Il progetto NPLAN
ODBMS RDBMS+ Tempo di accesso al singolo oggetto contenuto (0,5 mS)
- Tempo di accesso al singolo oggetto elevato (50-500 mS) –browsing difficile
+ Alta scalabilità - Bassa scalabilità
+ Ottimizzati per on line processing
+ Ottimizzati per batch processing
- Strumenti di reportistica scarsi + Potenti strumenti di reportistica
- Standard poco diffuso + Standard consolidato (SQL, ODBC)
- Scarsa integrazione + Elevata integrazione
Analisi comparative
Il progetto NPLANPerché abbiamo scelto Cachè
Alcune funzionalità peculiari da utilizzare
• Nessuna latenza fra application server e db, se si usa Cachè anche per l’elaborazione dati, scrivendo metodi in COS/Basic.
• Duplice interfaccia OO e relazionale: tabelle ereditano proprietà da altre tabelle. La customizzazione si fa meno complessa.
• Il tipo di dato “reference” (analogo al puntatore), e “array of reference”.
• Xecute (un’istruzione che fa la differenza)• Subclassing utile anche alle customizzazioni• CSP pe il web
Cachèlatenza fra application server e storage
client
APPLICATION SERVER
Oracle DB2SQL Server AS/400
DB
Client
Server
Java.Net....
JDBC,ODBC (latenza SQL+rete)
client
Application ServerCachèObjectScript
globalsCachè
Select xxx from yyy
Il progetto NPLANDuplice interfaccia
Cespiti
Immobili
Edifici
Mobili
Arredi Automezzi
- Responsabile
- P.F.
- Valore
- P.ED. - Ufficio n. -Targa
Tabella Cespiti
Tabella Mobili
Tabella Automezzi- Responsabile
- Valore - Responsabile- Valore
- Valore- Valore
-Valore-P.F.
Il progetto NPLANObject Reference
Cachè permette di avere campi di tipo “Object reference”.
Può essere considerato un analogo al puntatore nei linguaggi tradizionali, in quanto garantisce un tempo di accesso molto basso all’oggetto puntato (record).
In un db relazionale l’unica modalità è l’utilizzo di una query:
Select * from table where ID=xxx...ma il tempo di setup della query, più la latenza
del protocollo (JDBC, ODBC, ADO etc) ne limitano l’utilizzo.
Il progetto NPLANObject Reference
L’object reference permette la creazione di:ListeAlberiStackGrafi
etc etc..., ma PERSISTENTI, ed efficienti!
Il progetto NPLANGrafi
Geography
Roads
Organigzations
Buildings
Persons
Tasks reportProjects
Tasks
Lots
Attachment
Category
Railways
Equipment/Assets
Gli oggetti di una gestione patrimoniale sono tipicamente relazionati l'un l'altro in maniera molto stretta.Le classi e le relazioni formano in NPLAN un grafo con nodi ed archi
Il progetto NPLANTree View
Geography
Roads
Organizations
Buildings
Persons
Tasks reportProjects
Tasks
Lots
Attachment
Category
Railways
Equipment
NPLAN può mostrare qualunque numero di relazioni e classi in una singola vista gerarchica
Il progetto NPLANTree View
Il Treeview è un controllo che permette di trovare con un click le entità relazionate ad un oggetto (es. I beni patrimoniali di una città, i locali presenti su un piano, etc).La normativa UNI ne prescrive l’utilizzo per la gestione del patrimonio immobiliare.
Il browsing nel tree dev’essere efficiente: meglio tenersi alla larga da SQL
Il progetto NPLANArray of reference
Realizzare un treeview in SQL richiede una query per ogni tabella di dati relazionata (documenti, superfici,strade,edifici,terreni,impianti,elementi architettonici nell’esempio), per un costo tipico: 20ms x 7=140ms di solo setup
In NPLAN usiamo gli Array of reference. Poiché un array sta in una singola global, il tempo è di circa 7ms
Il progetto NPLANTreeView
Poiché i dati tipicamente sono parecchi (svarati milioni di record) l’effettivo tempo di esecuzione delle query necessarie ad aprire un nodo dell’albero, 6 anni fa (quando abbiamo iniziato i test) su Oracle era di 30 secondi (!)
Contro 3 decimi di secondo, in media su Cachè.
Il progetto NPLANVisualizzazione multidimensionale
Una caratteristica esclusiva di NPLAN è che le viste ad albero sono sincronizzate: passando dall'una all'altra gli oggetti selezionati sono automaticamente visualizzati, mostrando le altre relazioni presenti in una diversa dimensione.
Il progetto NPLANAggiornamenti real-time
Vista la rapidità con la quale ci si muove all’interno di un albero, abbiamo pensato che si poteva sfruttare Cachè per la sequenza di aggiornamento dei dati.
Anziché aggiornare tutti i record di una tabella, in NPLAN teniamo un albero delle dipendenze di ciascun oggetto e aggiorniamo solo quelli necessari, attraversando l’albero.
Questo permette di avere un aggiornamento in tempo reale durante l’input.
Il progetto NPLANNeuroni
Per facilitare la customizzazione dei calcoli abbiamo inserito un motore di valutazione d’espressioni, stile foglio di calcolo.
I neuroni sono oggetti che contengono un’espressione da valutare e il risultato (persistente), e un sistema di cache (sinapsi), simili ad una cella di Excel.
Più neuroni compongono una procedura di calcolo.La persistenza del risultato rende il debugging
immediato
NPLANNeuroni
I neuroni ci hanno permesso di realizzare la procedura di controllo di gestione del Nucleo Elicotteri della Provincia Autonoma di Trento in circa 3 mesi, e 16.000 euro di budget.
Analoghi progetti in Provincia avevano finora richiesto 60.000 euro (Oracle+Board), più di un anno di sviluppo, senza esiti brillanti (non completata).
xecutexecute “s ..”_propname_”= value”
Affinché il modello dei dati sia esterno all'applicazione, esso non deve essere compilato internamente.Per far questo è necessario che i metodi che accedano ai dati possano lavorari su nomi di campi noti solo a run-time.
In questo modo l’ambiente può essere esteso per inserire, navigare ed analizzare nuovi tipi di dati.Nuove classi con nuove procedure possono essere aggiunte senza ricompilare l'applicazione.
È talvolta possibile customizzare un prototipo parallelamente all'analisi del problema.
Alla base di tutto ciò c’e’ l’instruzione “xecute”, che rende le cose più facili.
Web
NAJAH (oooh No! Another AJAX library)NAJAH (Nplan Asynchronous Javascript And Html) è un’architettura che stiamo sviluppando utilizzando le Cachè Server Pages.
Punta a risolvere due problemi:-latenza fra client e server (i controlli in cascata data-aware client-side producono un proliferare di chiamate al server, con una latenza che si moltiplica).-Compatibilità fra i browser
In che modo?Abbiamo spostato la gestione dell’interfaccia server-side.Il browser non fa che mandare eventi e aggiornare pezzi di pagine html dinamicamente, che vengono generate da Cachè.
Web
NAJAHVantaggi:
- minimo codice Javascript nel browser (1k) facilmente portabile su qualunque piattaforma.
- latenza minima: ad un evento corrisponde l’aggiornamento automatico di tutte le sezioni della pagine interessate, in un’unica chiamata al server.
Un modulo applicativo (Time Report) è stato prodotto con questa architettura ed è in fase di installazione in Provincia di Trento, utilizzato da circa 600 dipendenti provinciali
A che punto siamo?
NPLAN attualmente viene fornito talvolta in gare di Global Service per la gestione del patrimonio imobiliare, di importi considerevoli.
Quando il capitolato tecnico della gara non prevede la preferenza per Oracle NPLAN raggiunge un punteggio pieno, lasciando spesso i competitors a bocca asciutta.
Al momento siamo impegnatissimi nel seguire le commesse che si moltiplicano di mese in mese.
La difficoltà attuale sta solo nella capacità di seguire e supportare i clienti.
NPLANLe referenze
• Ater Trieste/Siram• ASL Ferrara/Siram• Comune di Barberino del Mugello• Comune di Carmignano• Comune di Cles• Comune di Montalto di Castro• Comune di Montebelluna/Energy Service s.p.a• Comune di Trieste • Federazione Trentina delle Cooperative• ITEA - Energy Service s.p.a - gruppo Petrolvilla• Ospedale Niguarda – Milano/Siram • Servizi Antincendio Nucleo Elicotteri Provincia
Autonoma di Trento• SMI srl – Milano• Università della Calabria • Università di Siena• Università Politecnica delle Marche/Siram