simposio 2006

49
Ottimizzare l’uso di Cachè Max Sebastiani

Upload: max-sebastiani

Post on 24-Mar-2016

247 views

Category:

Documents


1 download

DESCRIPTION

Presentazione all'intersystems simposio 2006

TRANSCRIPT

Ottimizzare l’uso di Cachè

Max Sebastiani

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

Alcune immagini

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

• Viste analisi

• Viste olap

• Grafici

NPLANSupporto alle decisioni

NPLANViste sincronizzate

NPLANIntegrazione grafica

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

NPLANGli strumenti di reportistica

NPLANReportistica su WEB

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

NPLANIl modulo Call Center

Monitoraggio e analisi delle richieste di intervento

NPLANIl modulo Inventari

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 NPLAN La scelta di Caché

La scelta di

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).

NPLANNeuroni

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

NPLANN Tree Europa

Grazie !!!Grazie !!!