Introduzione

Nel documento “.\CVSWork\Analisi Funzionale\U-GOV PTH\Analisi Strumenti OLAP 2017\Analisi Strumenti OLAP.docx” si è discusso su come nel 2017 fossero utilizzate le piattaforma Microstrategy e Pentaho da parte degli atenei, dei principali pro e contro dei due e di quali siano le attuali architetture messe in campo da Cineca per erogarne il servizio nonché un dimensionamento dell’architettura stessa in termini sia di utenti utilizzatori che di “ferro” utilizzato e di storage necessario.

In questo pagina wiki, invece, si vogliono analizzare quali possono essere eventuali scenari architetturali evolutivi futuri per adattarsi a quello che viene definito “l’affettamento dell’elefante” ovvero la riscrittura dei vari verticali ugov in moduli a se stanti interoperabili esclusivamente via webservices, ed anche, per poter espandere il DW/ODS con informazioni provenienti da fonti dati non oracle o, perlomeno, non ugov (es: mondo IRIS). Allo stesso tempo si vuole analizzare un'evoluzione che permetta di scaricare l'ecosistema ugov dal carico indotto dal reporting.

Per vagliare i possibili scenari si partirà da un’esigenza cogente, ovvero il modulo Didattica che è già partito con la propria riscrittura all’esterno di ugov (prodotto GDA) e con IRIS, esterno ad ugov, di cui si vuole incrociare la reportistica col mondo PJ.


Legenda

DM

Data Mart

PTH

Pentaho BI Platform

PDI

Pentaho Data Integrator (ETL Platform)

RDBMS

Database Oracle

TAD

Team CINECA che si occupa di Trasversale Analisi Dati

DW o DWH

Data Warehouse

ETL

Extract Transform Loading (processo di caricamento del DW)

PL/SQL

Linguaggio di scripting di Oracle

MSTR

Microstrategy BI Platform

ODS

Operational Data Store

OLTP

Istanza Oracle dedicata ad ospitare i dati Gestionali

OLAP

Istanza Oracle dedicata ad ospitare i dati dei DWH

UGOV o SIA

University Governance

BI

Business Intelligence

DBG

Database per la Reporistica Gestionale

DBO

Database per la Reportistica Operativa

DBB

Database per la Reportistica di Business Intelligence

Reportistica gestionale

La reportistica “funzionale all’uso del sistema gestionale” deve essere realizzata all’interno del sistema gestionale. (si tratta di reportistica che risponde alle domande “fammi vedere i dati che ho inserito”, “fammi estrarre l’elenco dei dati che ho inserito nel periodo …” ecc…) e deve dare dati real time o near-real time senza necessariamente una profondità storica

Reportistica operativa

La reportistica “operativa” è un tipo di reportistica non necessariamente esposta e sviluppata all'interno del gestionale e con strumenti del gestionale; può avere profondità storica e un ritardo termporale sui dati di al massimo 1 giorno. Generalmente non prevede crosstab ma solo report formattati

Reportistica di analisiLa reporstica di analisi è quella a supporto della BI di ateneo e generalmente si appoggia su un datawarehouse e a report crosstab, grafici e cruscotti. Contiene la profondità storica dei dati e ha un tempo di refresh che può andare dal giornaliero al mensile

Esigenze mondo Ricerca


Gli obiettivi della ricerca sono sostanzialmente due:

Una prima Analisi

Il primo obiettivo

pone la necessità di creare un DW Ricerca anche per i moduli IRIS AP e RM, tenendo presente che, ad oggi IRIS stesso ha già un proprio data mart sul modulo IR (necessario quindi definire come gestire questo aspetto anche in termini di politica interna di distribuzione dei ricavi); tutti e tre questi DW dovranno essere accessibile al DWTRASV se si vogliono realizzare cruscotti trasversali.
Come ipotesi minimale si potrebbe creare solo lo strato DB, senza la presentazione all'utente finale per l'analisi del dato, per quanto già gestito da IRIS (possibili problemi poi di duplicazione dei dati esposti, reporting IRIS vs dati dei KPI).
Si potrebbe direttamente utilizzare l'ODS di livello 1 già presente in IRIS come sorgente per la creazione di strati superiori per la reportistica DWH. Il database alla base di IRIS è Oracle e ci si immagina, come per UGOV ed ESSE3, di prevedere un accesso via dblink o con exp/imp ai dati dalla staging area del DWH.
Ad oggi non esistono WS in Iris che espongono tutti i dati degli ODS per cui ci si immagina che l'accesso diretto al db sia imprescindibile (visto anche che alcuni ods hanno una mole di dati elevata).

Il secondo obiettivo

pone la necessità di trovare un posto nell'attuale architettura in cui incrociare dati provevienti da due gestionali differenti che condividono via WS solo le anagrafiche; su questo ambiente si dovrà poter eseguire reportistica operazionale richiamabile dal gestionale UGOV come avviene oggi per la reportistica di PJ; le possibili problematiche architetturali si possono riassumere in:

  1. presenza delle istanze IRIS/UGOV/DW su istanze DB diverse su sistemi distribuiti e conseguente complessa gestione delle dipendenze e versionamento;
  2. strato DB dell'ODS U-Gov con livelli >1, ad oggi gestito dal gruppo TAD, oneroso sia in termini di manutenzione che di esecuzione in quanto presenta degli ETL di discreta complessità (in particolare ODS L2 COAN-PJ).

Questi due punti aprono a diversi scenari e possibili conseguenze:

Scenario I, TUTTO SU DWH

Il DW attinge dati dalle due diverse fonti (UGOV e IRIS) e replica le tabelle/viste di interesse che vanno a formare la staging area per l'effettiva creazione del DW. In questa ottica DWH gestisce in autonomia il caricamento dalle fonti esterne indipendentemente dalla loro dislocazione e tipologia. Tempistiche di caricamento, gestione degli errori e qualità del dato vengono gestiti dal DWH. Questo comporta che i dati potranno avere presumibilmente un aggiornamento giornaliero (notturno).
In questo caso risulta necessario approfondire se i requisiti utente verrebbero soddisfatti in quanto:

  1. deve essere verificata l'eventuale comparabilità del dato tra reportistica PJ (basata su ODS) e reportistica ottenibile dallo strato DWH: vi sarebbe, come minimo, un disallineamento temporale dei dati.
  2. per raggiungere una completa equivalenza tra l'attuale strato ODS COAN L>1 e lo strato DWH si renderebbe necessaria una significativa estensione dell'attuale DW CO (che riporta anche dati di PJ) per recuperare i dati necessari agli incroci con IRIS/AP in modo da non dover creare un ulteriori DW con potenziali problemi di riconciliazione del dato.

Questo scenario pone anche il problema del tipo di piattaforma per le applicazioni utente del DWH e relativa accessibilità della reportistica erogata da parte dei verticali che debbano proporla ai propri utenti: ad es. autenticazione e profilazione.
Questo comporta una dipendenza funzionale reciproca tra verticali e DWH dove i primi necessitano del secondo per offrire reportistica operazionale trasversale, il secondo deve recepire requisiti e supportare i report delivery richiesto dalla prime.

Scenario II, ODS U-Gov+DWH

I dati provenienti dai diversi verticali (Iris+U-Gov PJ-CO) devono transitare tutti su un unico strato (potenzialmente lo strato XM di U-Gov). Le ETL potrebbero essere di due tipi: integrazione lato DB o lato verticali (interoperabilità applicativa), ovvero i moduli che necessitano di dati provenienti da altri devono negoziare via servizi i contenuti che intendono condividere. Nel caso in cui i dati di AP debbano confluire nell'ODS COAN PJ L>1, dovrebbe essere PJ a recepirli e esporli come ODS L1. In caso di integrazione lato db diretta su schema XM (modello attuale per i moduli U-Gov), IRIS dovrebbe gestire l'ETL e il relativo "modulo ponte" U-Gov per poter esporre il dato (vedi già citati problemi di versionamento e compatibilità).
Questo scenario, a fronte di una significativa complessità, resta però il più vicino alla soluzione che già oggi (almeno per la reportistica PJ) risponde meglio ai requisiti utente in termini di contenuti, freschezza del dato e flessibilità nella creazione di reportistica custom e del relativo delivery.

Esigenze mondo Nuova Didattica (GDA)

Riprogettazione del componente di reporting applicativo (ora ODS) alla luce della progettazione dello sviluppo della nuova didattica.

Occorre considerare diversi aspetti:
- Requisiti utente
- Tempi di Refresh
- Processo di sviluppo
- Organizzazione
- Strumento
- Modello dati

Si vuole avere uno strumento di Reporting applicativo. L'utente "reporter" deve poter costruire i propri report.
E' il gestionale che guida dal punto di vista di:
- Requisiti
- Dati
- User experience
- Refresh

Gli altri aspetti vanno subordinati a questo

Requisiti principali:
R1. Il reporting applicativo deve funzionare su un modello dati dedicato, che non impatti sull'applicazione
R2. Deve esistere un metadato descrittivo del modello di reporting del gestionale
R3. Utente finale: usa il report; Reporter di Ateneo: usa lo strumento per definire i report; Cineca: definisce il metadato
R3. Il gestionale deve poter essere pensato come formato da diversi moduli, ognuno con i propri dati (microservizi)
R4. Nessuna assunzione sulla localizzazione dell'applicazione (cloud)
R5. Refresh near real time

Ipotesi di lavoro: Usare Microstrategy?

Problemi da smarcare:
P1: Integrazione, autenticazione, autorizzazione
P2: Licenze
P3: Processo ed organizzazione

Note comuni con altri verticali

 

La separazione dei verticali di U-Gov (ad esempio Didattica) sta già portando a ragionare su questi aspetti. La separazione del DB comporta ragionare su come dovranno/potranno essere costruiti gli ODS di livello superiore a L1 e quindi l'eventuale possibile necessità di poter accorpare tutto solo a livello DW. Ci si chiede quindi se sia possibile prevedere una soluzione architetturale, a tendere, che permetta di astrarre dalle morfologie dei diversi repository fonte (Oracle, Mongo DB, etc.) pur mantenendo la capacità di disegnare un modello concettuale trasversale omogeneo, con livelli di servizio equivalenti all'attuale ODS. In questo momento si tratta di capire se possa già essere l'attuale modello di DWH o si debba ragionare su soluzioni diverse.
Lato requisiti utente si segnala la forte necessità di mantenere uno strato comune (che ad oggi è l'ODS di livello 2 o superiore ed il relativo metadato) che consente una veloce produzione di reportistica personalizzata ed in "near-real time".
La produzione di questa reportistica sui progetti (che necessita dell'utilizzo di dati relativi a diversi processi) utilizzando direttamente viste di interscambio tra moduli verticali era stata abbandonata in quanto richiedeva competenze che, almeno al tempo (ma ci risulta ancora oggi), non erano gestibili dai singoli verticali. Inoltre nel tempo, ODS L>1 è stato in grado di recepire requisiti relativi a misure trasversali non gestibili a livello di singolo verticale (es: Proiezione utilizzo budget) che hanno poi avuto una ricaduta diretta sui dati esposti dai singoli verticali. Sarebbe necessaria quindi una riflessione sulle modalità di raccolta, gestione e implementazione di requisiti funzionali trasversali con finalità non esclusivamente di analisi del dato.

 

Requisiti Funzionali (RF)

Si elencano i requisiti raccolti

 



Livello importanza requisito

NOTE

SOLUZIONE
RF = REQUISITI FUNZIONALI
RF.1 Performance 

RF.1.1           

La reportistica operativa deve poter essere utilizzata senza incidere sulle prestazioni del sistema gestionale.

OBBLIGATORIO

ovvero non si vuole più che i report vengano eseguiti puntando a oggetti del sistema sorgente

PERFORMANCE
RF.1.2La reportistica operativa deve risultare performante anche all'aumentare della mole datiDESIDERABILEdifficilmente ottenibile se si usano viste con logiche di estrazione complessa e se il sistema storage sottostante non è di tipo SSDPERFORMANCE

RF.2 Design dei report

RF2.1      

L’utente di Ateneo che ha determinate competenze e opportunamente formato, deve poter creare in autonomia nuova reportistica operativa

DESIDERABILE

gli atenei hanno già competenze in PTH e alcuni atenei anche su MSTR; già oggi sono in grado di creare reportistica in autonomia

già soddisfatto dall'attuale architettura
RF2.2La consulenza CINECA deve poter creare in autonomia nuova reportistica operativaOBBLIGATORIOgià avviene oggigià soddisfatto dall'attuale architettura

RF2.3        

Lo strumento di reportistica operativa deve consentire all’utente finale di realizzare reportistica in formato cross-tab

DESIDERABILE

Con PTH è necessario avere un metadato mondrian per poter realizzare reportistica crosstab; con Microstrategy la funzionalità è nativa. Su mondo ODS non esiste un metadato mondrian; era stato sviluppato ma poi dismesso; esiste invece sul mondo DW

la possibilità del CROSS TAB viene lasciata SOLAMENTE al reporting analitico

RF2.4             

Lo strumento di reportistica operativa deve consentire di costruire reportistica basata su istruzioni SQL

OPZIONALE

E' già così sia con PTH che con MSTR; dipende poi dai profili degli utilizzatori

già soddisfatto dall'attuale architettura
RF2.5


Lo strumento di reportistica operativa deve consentire la costruzione di report via web mediante funzioni di drag and drop di attributi, misure e filtri

OBBLIGATORIO

E' già così sia con PTH che con MSTR (tranne che per i report basati su sql o particolarmenti complessi che prevedono l'utilizzo di un client)

già soddisfatto dall'attuale architettura

RF2.6

Lo strumento di reportistica deve consentire di applicare filtri complessi al report (AND e OR innestati)

OBBLIGATORIO

possibile solo con MSTR mente con PTH è possibile solo impostare degli AND; eventuali condizioni complesse vanno precalcolate con dei flag su db e poi impostate su metriche filtrate

limite del prodotto PTH non superabile; necessario utilizzare MSTR

RF2.7


Lo strumento di reportistica deve consentire all’utente di Ateneo di realizzare reportistica operativa via web mediante l’utilizzo di un metadatoOBBLIGATORIOSia utilizzando PTH che MSTR è possibile creare un metadato su cui l'utente costruirà il prorpio reporting (è l'attuale soluzione per tutti i DWH e ODS anche se per il mondo ODS è usato solo PTH)già soddisfatto dall'attuale architettura

RF2.8    

Lo strumento di reportistica deve offrire la possibilità di costruire report di prodotto realizzati da Cineca e messi a disposizione dell’Ateneo mediante sistema di deploy

OBBLIGATORIO

l'attuale ciclo di sviluppo funziona già così sia con PTH che con MSTRgià soddisfatto dall'attuale architettura

RF3 Integrazione applicativa

RF3.1 

SSO fra sistema gestionale e applicazione di reportistica operativa

OBBLIGATORIO

già così con PTH mentre è possibile con MSTR solo dalla release 11 (vedi mstr) che contiene una funzionalità per gestione dell'autenticazione con Shibboleth

a piano una migrazione a mstr 11 con sperimentazione della funzionalità; per PTH già fattible

RF3.2

Possibilità di eseguire report operativi all’interno dell’applicazione gestionale

OBBLIGATORIO

la possibilità esiste già con PTH ma non è mai stata esplorata con MSTR di cui non se ne conoscono gli eventuali WS


PTH già lo permette; MSTR va sperimentato facendo una POC che metta insieme anche la possibilità di SSO


RF3.3    

Possibilità di eseguire report operativi all’interno di applicazioni di terze parti (Ateneo)

OPZIONALE

RF3.4

I dati esposti dallo strumento di reportistica operativa devono poter essere integrati anche con dati provenienti da altre fonti dati gestionali cineca (esse3, vecchi ods, verticali ugov……)OPZIONALEad oggi le uniche fonti dati utilizzabili da ODS sono quelle derivanti da UGOV e da ESSE3A livello di Frontend solo MSTR permette (dalla versione 11) di avere data source di "terze parti"integrabili nelle dashboard insieme con i datasource di prodotto. A livello backend vedi FONTIDATI

RF4 Profilazione dati e autorizzazioni

RF4.1

Lo strumento di reportistica operativa deve consentire di definire autorizzazioni sulla possibilità di visualizzare/eseguire report presenti all’interno del sistema

OBBLIGATORIO

già oggi possibile sia con PTH che con MSTR

funzionalità presente in tutti i tool di reportistica (poi da capire quando l'atività è automatica e quanto manuale)

RF4.2        

Lo strumento di reportistica deve offrire la possibilità di definire filtraggi automatici sui dati visualizzati in base a regole impostate sull’utente che si collega

OBBLIGATORIO

già oggi possibile sia con PTH che con MSTR

RF4.3

Lo strumento di reportistica deve offrire la possibilità di ereditare dal sistema gestionale i filtraggi da impostare sui report eseguiti dall’utente che si collega

DESIDERABILE

oggi è possibile solo con PTH (ereditando oltretutto le impostazioni dell'utente fatte su UGOV tramite una query sulla PTH madre)

Microstrategy non permette di ereditare in automatico da fonti date esterne eventuali valori da impostare nei security filter per un utente. Vanno impostati a mano

RF5 Freschezza del dato

RF5.1          

Il sistema di reportistica operativa deve mettere a disposizione i dati in tempo reale o con un ritardo massimo non superiore ad x ore

DESIDERABILE

Il tempo reale o il near-real time è dsifficilmente ottenibile e fuori dallo scope, per definizione, dei report operativi. Il ritardo di x ore invece è implementabile rispetto a vincoli di performance e architettura e bisogna che il cliente accetti queto ritardo

VINCOLI
PERFORMANCE

RF5.3        

Il sistema di reportistica operativa deve consentire di effettuare un aggiornamento di dati su richiesta

DESIDERABILE

attenzione però alle performance; ad esempio, l'attuale sistema per UNIFI impiega 6 ore, non avrebbe molto senso la sua esecuzioneon-demand

PROC-CAR
RF6  VARIE

RF6.1          

Il sistema di reportistica deve essere lo stesso per tutti i possibili DBG seguendo il modello organizzativo di ODS (possibilità di attivare solo certi moduli di analisi)

DESIDERABILE

a oggi è già così con PTH, mentre MSTR serve solo la reportistica di analisi

il modello di reporting rimane come quello già in produzione

RF6.2        

Nel costruire la reportistica operativa deve essere possibile mettere in relazione metadati di aree gestionali differenti

DESIDERABILE

deve essere previsto a priori a livello di modellazione sia del metadato che della base dati; MSTR è più flessibile nel permettere di incrociare metadati, mentre PTH è più restrittivo e porta a dover modellare il tutto in modo più puntuale

FONTIDATI

RF6.3        

Le informazioni che dovranno poter essere interrogate dal sistema di reporting devono essere le medesime degli attuali ODS, ovvero il sistema deve essere compatibile con quello che già è in produzione in soluzione di continuità

OPZIONALE

la cosa è possibile se si scegle di continuare con PTH come sistema di reporting ed espandere i BM esistenti mantenendo l'attuale struttura del metadato

PROC-CAR
VINCOLI

RF6.4        

Lo strumento di reportistica dovrà permettere di ricevere aggiornamenti di release dei metadati e dei report senza dover riscrivere i filtraggi e gli accessi impostati prima del deploy

OBBLIGATORIO

a oggi è già così sia per MSTR che per PTH

rimane in essere quello già funzionante oggi

RF6.5        

Il sistema di reportistica dovrà permettere di creare report indipendenti dal “nome” degli oggetti usati e presenti nel metadato  (dovrà lavorare per ID)

DESIDERABILE

MSTR lavora così "by design" invece PTH no per cui il cambio di un'etichetta può invalidare il metadato rispetto al reporting; è necessaria fare molta più attenzione in fase di mappatura

ci sono limiti nei software di reporting in essere e non ne è previsto al momento un cambio

RNF = REQUISITI NON FUNZIONALI

xxx

RNF.1             

La base dati del DBG non deve essere necessariamente una base dati Oracle

OBBLIGATORIO

tramite PDI è possibile accedere praticamente a qualsiasi tipologia di base datiFONTIDATI

RNF.2

La base dati del DBO e del DBD deve essere necessariamente una base dati OracleDESIDERABILEtutta l'attuale architettura ODS/DW si basa sul fatto che la base dati sono Oracle; fu fatta anche un'analisi costi/benefici da ICTeam qualche anno fa sul spostare tutto su una nuova tecnologia e fu valutato che non ne valeva la pena

PROC-CAR

ARCHITETTURA

RNF.3             

Il trasferimento dati fra DBG e DBO deve avvenire mediante servizi

DESIDERABILE

il problema potrebbe essere la mole dati dato che spesso saranno trasferimenti massivi

PROC-CAR

FONTIDATI

ARCHITETTURA

RNF.4             

Il trasferimento dati fra DBG e DBO deve avvenire mediante data pump di dati da parte di DBG verso DBO

OPZIONALE

da valutare nel caso di situazioni distribuite; in realtà si vorrebbe studiare un'architettura che limitasse il passaggio dei dump senza dover passare tutta la base dati gestionale (sia UGOV che ESSE3); se si materializzano gli ODS in uno schema terzo l'ateneo potrebbe passare via dump solamente questo

PROC-CAR

FONTIDATI

ARCHITETTURA

VINCOLI

RNF.5 

La gestione del trasferimento dati da DBG a DBO (schedulazione trasferimento dati, verifica esito trasferimento dati ecc…) deve essere monitorabile e debuggabile e non legata ad un'applicazione interna al verticale

DESIDERABILE

nova console di monitoraggio ?????
l'attuale replica esistente scrive i log su una tabella e uno script notturno verifica la presenza di errori in questa tabella

PROC-CAR

VINCOLI

RNF.6             

La DBO deve rappresentare la nuova fonte dati che va ad alimentare la base dati del DBB

DESIDERABILE

già è così; il DWH è alimentato solo dal mondo ODS. L'unica eccezione è il mondo segreteria studenti che legge direttamente da ESSE3. Si potrebbero trasformare tutte le attuali V_DM* in ODS_OS3 e far dipendere anche dwsegstu solo da ODS. Il fatto è questi ODS non verrebbero usati per il reporting ma solo per il caricamento del DWH col side-effect di aumentare molto lo storage richiesto per la replica degli ODS_S3*

ARCHITETTURA

VINCOLI


RNF.7 

La gestione del trasferimento dati da DBG a DBO, e da DBO e DBD deve essere sincronizzato (es. se il trasferimento fra DBG e DBO va in errore, non deve essere caricato il DBB)

DESIDERABILE

questo è possibile se si fa seguire tutto il flusso di caricamento dati da un unico "gestore" e non cercando di sincronizzare flussi indipendenti

ARCHITETTURA

VINCOLI

PROC-CAR

RNF.8            

Le basi dati DBO e DBG NON devono risiedere su siti differenti (HOSTING e HOUSE)

DESIDERABILE

queto permetterebbe trasferimenti dati più veloci e con meno problemi legati ad ugovgw e a vincoli di apertura porte e visibilità db/db

ARCHITETTURA

VINCOLI

RNF.8            

Le basi dati DBO e DBD devono risiedere solo in HOSTINGDESIDERABILEquesto permetterebbe di avere un reporting più veloce e un monitoraggio più puntuale e tempi di intervento più immediati. Questo implicherebbe anche di avere sil sistema di reportistica in hosting che sgraverebbe molto le attività di configurazione/gestione in house

ARCHITETTURA

VINCOLI

RNF.10        

Il DBO è un’unica istanza contenente tutti i dati di tutti gli atenei così come il DBG

OPZIONALE

dipende dall'architettura che si vuole mettere in piedi e se si vuole slegare il carico del reporting operazionale da quello del reporting olapNO, si sfrutta la stessa architettura di hosting del DWH in cui gli atenei sono splittati fra le varie istanze in un'ottica di carico

RNF.11 

Il sistema di reportistica operativa deve poter gestire un numero elevato di utenze (>1000)

OBBLIGATORIO

al momento l'unico in grado di gestire questa mole di utenze è PTH in quanto i costi lato MSTR sono alti in mancanza di accordi OEM (o similari)i sistemi di reportistica li gestiscono; argomento differente è se lo sforzo economico è sostenibile

RNF.12

Il DBO NON deve essere interrogato via SQL dagli utenti di ATENEI

DESIDERABILE

alcuni client (come report designer) necessitano di un accesso diretto al database; al massimo si può limitare l'accesso in sola lettura

LETTURAODS

la lettura dovrà continuare

RNF.13

Il DBO deve esporre servizi per l’interrogazione di dati al di fuori della reportistica

DESIDERABILE

è necessario mettere in piedi un'interfaccia di gestione che esponga una serie di servizi che diano accesso ai dati

LETTURAODS

non si svilupperanno WS ma si dà possibilità di accesso al db via sql

RNF.14IL DBG non deve essere più direttamente interrogato via sql dagl utenti per l'accesso ai dati usati dal reporting

DESIDERABILE

l'utente via sql dovrà al masimo accedere alla replica di questi dati e non più lanciare query sul gestionale per avere i dati degli ODS

LETTURAODS

C REQUISITI ORGANIZZATIVI

C.1             

La gestione del sistema di reportistica (aggiornamenti, verifica di anomalie, deploy ecc…) deve essere in carico all’area sistemi (IT&DP)

DESIDERABILE

si vuole mantenere l'attuale metodologia dove il team di riferimento viene ingaggiato in caso di problemi di delivery da parte di IT&DP

il delivery è sempre tramite Titanium come l'attuale architettura

C.2             

La gestione delle licenza del sistema di reportistica deve essere in carico a un gruppo "centralizzato" Cineca e non necessariamente al gruppo che lo sviluppa/utilizza

DESIDERABILE

separazione delle competenze; un conto è il licencing e le offerte/sconti che Cineca può ottenere e trattare col fornitore, un conto è chi lo strumento lo utilizza per i suoi prodotti che deve avere il contatto col supporto del prodotto

le licenze Pentaho ad oggi sono in mano a IT&DP, mentre quelle Microstrategy rimangono in carica al team TAD

C.3             

Il supporto interno sul sistema di reportistica deve essere erogato da un team esteso Cineca conscio del prodotto e di come è installato/configurato/gestito, non solo quindi dal team che ne sviluppo il prodotto su cui si basa la reportistica

DESIDERABILE

è un requisito che da tanto si vorrebbe poter perseguire in Cineca

non è prevista la creazione di un team di supporto dedicato

C.4             

Deve poter essere dichiarata in matrice di compatibilità la dipendenza fra DBG - DBO - DBD

OBBLIGATORIO

la matrice è l'unica a dare la garanzia del rispetto delle compatibilità in fase di aggiornamento di release

FONTIDATI

C.5

I report/metadati di prodotto dovranno essere parte (quindi essere deploiati con) del DBO

OBBLIGATORIO

il versioning del metadato deve rispettare il versioning della struttura del database

il delivery è sempre tramite Titanium come l'attuale architettura e la reportistica/metadato rimane inclusa nel prodotto








Architettura Attuale

schema dell'architettura attuale


PROPOSTA EVOLUTIVA

Si espande di seguito la proposta evolutiva che è in fase di approfondimento; se ne descrive l'architettura e le principali caratteristiche elencandone anche i pro e i contro e i punti ancora da approfondire

Issue di riferimento

Architettura



Principali caratteristiche

Si propone una soluzione in cui si prevede:

PERFORMANCE

STORAGE

FONTI DATI

PROCESSO DI REPLICA e CARICAMENTO Lx

Molte delle caratteristiche sopra elencate sono già state implementate nella logica della procedura crea_mv che sta alla base dell'attuale replica ODS pilotata da WPS; ATTENZIONE a utilizzare oggetti di unixx_tools che se usati frequentemente di giorno renderebbero difficile farne il deploy a causa dei lock. Preferire quindi una copia locale di oggetti di unixx_tools e poi esecuzione della copia locale
DA CAPIRE: su GIT va creata una struttura di cartelle utile al deploy e ai caricamenti; capire come gestire la parte "schema" ovvero la parte che contiene le ddl degli oggetti Lx (la si popola a mano ? si usa maven ? si cablano le ddl all'interno dei package di caricamento ?). creare un sottoramo SCHEMA con dentro package e viste ? in fase di deploy come fare le diff stile maven o stile compare del deploy attuale ods ?
così come esiste la DWH_PARAMETRI per il caricamento del DWH valutare la creazione di una ODS_PARAMETRI e ODS_SCHEDULAZIONI per la replica/caricamento Lx e valutare l'adozione della gestione dell'id_set_paramatri. Capire nel caso chi e come deve essere deploiata (col dwh viene popolata dal processo di deploy del datamart con jenkins)

Attenzione alle schedulazioni multiple nella stessa giornata; le frequency si potrebbero lasciare a livello di giorno e se ci sono delle schedulazioni multiple in un giorno di alcuni ODS vanno gestiti con n schecule windows che lanciano n bat specifici dove si passa cabalto l'id set parametri da usare. Se parte la replica di tutto o un ods e c'è già un'altra replica in corso allora deve uscire diretto; se invece parte un caricamento con replica e poi dwh ma c'è un'altra replica in corso allora deve skippare direttamente alla parte di caricamento del dwh

REPORTING e AUTORIZZAZIONI SUI DATI

VINCOLI


Esistono report SQL che accedono direttamente agli oggetti del verticale oltre che a oggetti ODS; ci sono tre possibili soluzioni:

  1. il report viene riscritto per utilizzare esclusivamente oggetti ODS andando eventualmente a creare nuovi ODS laddove mancanti
  2. il report, solo nel caso che non mischi oggetti del verticale con oggetti ODS di livelli >1, verrà eseguito configurando un DATASOURCE in Pentaho differente da quello utilizzato per il reporting ods (SIAXM). Questo permetterà, nel momento in cui si farà puntare il reporting alla replica, di mantenere questo nuovo datasource verso ugov
  3. se il report utilizza oggetti ods di livelli > 1 (in congiunzioni a quelli del verticale) o se ha delle peculiarità per cui è necessario che accede a dati "freschi" ad ogni lancio, il workaround utilizzabile è quello di referenziare gli oggetti del report che puntano al verticale con il dblink che dovrà essere presente sullo schema unixx_ods. Questa casistica però deve essere LIMITATA a casi eccezionali

Alcuni di questi report utilizzano oggetti ODS_USR%; la problematica è la stessa. Alcuni ODS_USR% accedono direttamente a tabelle del gestionale; spostando gli ODS sulle istanze del DWH si potrebbe mantenere questa funzionalità utilizzando un dblink verso ugov e riscrivendo la query. Questa soluzione è già in uso per UNIPD per i report di UBDG in quanto in fase di budget l'ateneo ha necessità di reportistica con dati freschi e se i report si basassero sulla replica delle viste giornaliera l'ateneo non potrebbe correttamente lavorare


DELIVERY

SEMPLIFICAZIONE e AZIONI PREVENTIVE

Nome Package

Nome Tabella Target

ODS_CO92_003_ODS_CO_DIM_ANA_GE

ODS_CO_DIM_ANA_GERARCHIA

ODS_CO92_002_ODS_CO_PDC_COAN

ODS_CO_PDC_COAN_GERARCHIA

ODS_CO92_004_ODS_CO_PDC_COGE

ODS_CO_PDC_COGE_GERARCHIA

ODS_CO92_003_ODS_CO_UA_GER

ODS_CO_UA_GERARCHIA

ODS_CO92_006_UA_USER_CNTX

ODS_CO_UA_USER_CNTX

ODS_CO92_005_ODS_CO_UE_GER

ODS_CO_UE_GERARCHIA

ODS_PJ92_002_ODS_PJ_PROG_GER

ODS_PJ_PROGETTO_GERARCHIA

ODS_PJ92_003_ODS_PJ_UO_PROG

ODS_PJ_UO_PROGETTI

ODS_S3ODS92_064_ISCRITTIAPP

ODS_S3_ISCRITTI_APP

ODS_S3ODS92_094_LOGMASTER

ODS_S3_LOG_MASTER

ODS_S3ODS92_084_LTVRBTRSTATO

ODS_S3_LOTTI_TR_STATO

ODS_S3ODS92_083_LOTTIVERB

ODS_S3_LOTTI_VERB

ODS_S3ODS92_020_QUESITIDOM

ODS_S3_P02_QUESITI_DOM

ODS_S3ODS92_018_QUESITIPAG

ODS_S3_P02_QUESITI_PAG

ODS_S3ODS92_019_QUESITIPARAG

ODS_S3_P02_QUESITI_PARAG

ODS_S3ODS92_021_QUESITIRISP

ODS_S3_P02_QUESITI_RISP

ODS_S3ODS92_046_P02_QUEST_COMP

ODS_S3_P02_QUEST_COMP

ODS_S3ODS92_047_P02QUESTCMPDID

ODS_S3_P02QUESTCOMP_DID

ODS_S3ODS92_095_P02QUESTCMPDOC

ODS_S3_P02QUESTCOMP_DOC

ODS_S3ODS92_038_P06AA

ODS_S3_P06_AA

ODS_S3ODS92_056_P06DIP

ODS_S3_P06_DIP

ODS_S3ODS92_028_P09_UD_PDSORD

ODS_S3_P09_UD_PDSORD

ODS_S3ODS92_061_P10APP

ODS_S3_P10_APP

ODS_S3ODS92_062_P10APPABILDOC

ODS_S3_P10_APP_ABIL_DOC

ODS_S3ODS92_063_P10APPLOG

ODS_S3_P10_APP_LOG

ODS_S3ODS92_031_UDLOGPDS_TCDOC

ODS_S3_UDLOGPDS_TCDOC

ODS_S3ODS92_096_V02GENQUESTDOC

ODS_S3_V02_GEN_QUEST_DOC

ODS_S3ODS92_048_V02GENQUESTEST

ODS_S3_V02_GEN_QUEST_EST

Il problema è che a oggi questi oggetti sono ancora un interregno dove la DDL della tabella viene rilasciata col prodotto ODS mentre il package di caricamento viene rilasciato col verticale. Soluzioni:


GESTIONE TRANSITORIO

Se si spostano i livelli > 1 da UGOV o si decide di convertire le tabelle di primo livello in viste è necessario che da una certa versione di ODS l'architettura/infrastruttura sia pronta ed in esercizio sull'ateneo.
Ci dovrà essere un periodo transitorio in cui:


ASPETTI COMMERCIALI


MINUTA Incontro TAD/Automazione

Partecipanti: Unknown User (a.westcott@cineca.it) , Unknown User (m.castagna@cineca.it) , Marco Brizi

MINUTA Incontro TAD/GDA

Partecipanti: Claudio Brizi , Unknown User (a.westcott@cineca.it) , Lorenzo Ficarra , Massimo Rimondi , Giovanni Introna , Unknown User (n.santi@cineca.it)



Impatti legati alla sicurezza (GDPR)

I dati nella replica vengono scambiati su canali in VPN (ugovgw) o acceduti tramite HTTPS (nel caso di accesso via rest a servizi); i dati vengono memorizzati sugli stessi database su cui risiede il DWH su utenze specifiche non comunicate agli utenti finali. Se un ateneo ha necessità di accedere ai dati gli verrà dato a disposizione un'utenza personale a fronte dell'autorizzazione del suo dsi.

L'accesso al reporting e il sistema di autorizzazione sui dati dei report non cambia, quindi non si variano gli impatti sulla sicurezza rispetto all'esistente.

A tendere i caricamenti del dwh potranno leggere dalle replice e non dai dump evitandone quindi la memorizzazione su ftp limitiamo così il rischio di perdita di dati per il fatto che i dump sono in chiaro su ftp

Evoluzioni DWH/KPI

Le richieste di ateneo sul mondo KPI portano ad una necessaria integrazione fra DWH e Sprint. Infatti su DWH sono presenti tutti i KPI che derivano dai vari datamart/ODS (più eventuali fatti esterni); su Sprint sono presenti kpi provenienti da altre fonti dati (es: MIUR). Su sprint si vogliono poter vedere i dati dei kpi del DWH per poter legare obiettivi anche a queste fonti, lato dwh si vuole potenzialmente integrare nel cruscotto di ateneo le informazioni provenienti dalle altre fonti extra ugov.

Come SPRINT può leggere i dati dal DWTRASV

Si sono vagliate varie possibilità:

  1. possibilità da parte di Pentaho di esporre report la cui esecuzione/esportazione producesse un json
  2. possibilità di creare una trasformation/job PDI invocabile tramite Carte con una chiamata web senza utilizzare i client pan/kitchen di pentaho
  3. sviluppo di un'applicazione/servizio dedicato per l'esposizione dei dati di ods/dwh
  4. produzione di file json da parte del caricamento ETL del DWTRASV e loro successiva scrittura su ftp o su un db mongo
  5. produzione di file json da parte del caricamento ETL del DWTRASV e a sprint tramite chiamata REST in modo che poi Sprint memorizzi i file in un filesystem locale alla PaaS

A fronte di varie valutazioni, sperimentazioni e verifiche si è optato per la soluzione 4 in cui la scrittura avverrà sul db mongo centralizzato di Cineca e su cui già Sprint si appoggia

Si cercherà di fare in modo che questa soluzione diventi standard anche per le altre sorgenti dati

Come il DWTRASV può leggere i dati da SPRINT

L'unica soluzione possibile è quella di effettuare delle chiamate a dei WS che esporrà SPRINT. Il caricamento ETL del DWTRASV, tramite PDI con delle chiamate rest, scaricherà da Sprint dei json con tutte le informazioni relative a kpi e metadati delle fonti dati non ugov e le integrerà nel caricamento (il dettaglio delle modalità lo si dovrà analizzare); a tendere anche le info di prodotto del dbconf finiranno su Sprint e le varie MD del dwuniversità, sorgenti del caricamento del dwtrasv, dovranno essere popolate da json di sprint e non più tramite la replica MD pilotata da WPS


Esposizione oggetti ODS a query clienti


frequentemente viene richiesto al gruppo TAD di poter dare accesso al database (in hosting) per poter far fare in autonomia query agli atenei sugli oggetti ODS. Questo serve per eseguire:

Da tenere in considerazione che:

Possibili soluzioni

  1. verranno creati le utenze in questo modo:
    1. creazione personal user (PUEXT) sull'istanza di UGOV per ciascun utente di ateneo che deve accedere ai dati;
    2. creazione di un application user (AU) sull'istanza di UGOV per ogni subset di dati omogeneo che devono poter essere interrogati dai PUEXT sopracreati;
    3. si creano su SIAXM n ODS_USR che espongono i soli dati di prodotto che può vedere l'utente. In fase di creazione dell'application user si comunicano gli oggetti ODS_USR di SIAXM sui cui l'AU deve avere la grant. Si comunicano ai vari PUEXT (che si collegheranno proxando l'AU) le query che deve eseguire per interrogare i vari ODS_USR in modo che la esegua direttamente o si crei una vista sul suo schema personale (che però non è sotto backup)
    NOTA: se l'accesso deve essere fatto da un'applicazione esterna e non direttamente da un utente, allora non verranno creati gli utenti PUEXT ma solamente l'utente AU (vedi ad esempio issue )
  2. come la 1) solo che viene direttamente creato un ODS_USR che è già la query utile all'ateneo; l'ateneo quindi non dovrà fare altro che una "select * from SIAXM_UNIxx_PROD.ODS_USR%"
  3. soluzione simile alla 1) ma effettuata sul db del DWH e non sul db di UGOV:
    1. se l'ateneo deve accedere tramite utente UNIxx_BIPTH con client Report Designer allora si considera già questo schema l'AU e verranno creati i soli PUEXT che lo proxano. Il popolamento dello schema UNIxx_BIPTH è a carico di Cineca in quanto deve contenere un sinonimo per ogni oggetto ODS o DW in modo da far andare i report con metadato (ogni notte viene ricreato via script il contenuto dello schema)
    2. se l'ateneo non deve usare Report Designer o comunque l'utente deve accedere ad un sottoinsieme di ODS, viene impostata la replica degli ODS per l'ateneo richidente e viene inserita la grant sulla tabella di configurazione gestita dalla procedura di replica (M_GRANT). Questo utente verrà quindi usato come fosse SIAXM, quindi si rientra poi nel caso 1)
  4. si passa all'ateneo l'export di ugov (o dwh se richiedono accesso ad un datamart) in modo che se lo importi su un db in house e acceda come e dove vuole
  5. se devono accedere ai dati degli schema del DWH (i vari datamart) 

Si può trovare documentazione al link UAO - Istruzioni

A seconda della richiesta o del momento "storico" in cui arriva si potrebbe configurare più conveniente una o l'altra soluzione: ad esempio:

UNIBO

UNICAL

UNIPA

UNIMORE


NOTA BENE: a tendere andrebbero tutti riportati alla soluzione 3), sia che siano in hosting, sia che siano in housing (o nel caso dell'housing fornire il solo export degli ods e non di tutto ugov)


Soluzioni valutate ma escluse


NOTA BENE: deve essere chiaro all'utente che Cineca non fa manutenzione sugli oggetti ODS_USR o su query extra prodotto fornite. Se qualcosa smetterà di funzionare per via di modifiche apportate al prodotto, l'utente dovrà aprire ticket e in quella sede si valuterà l'impatto della sistemazione del problema

Se in fase di richiesta della creazione dell'application user si specificano gli oggetti di SIAXM che l'utente deve poter vedere, queste grant non verranno poi perse in caso di aggiornamento ODS in quanto tutte le notti gira uno script che li ridà in base alla richiesta che era stata fatta (esiste uno store che tiene traccia di tutte le grant che devono avere gli application user)

Esempio di comunicazione da dare all'utente per giustificare la creazione dell'application user:

per adempiere a quanto richiesto dalla normativa sul GDPR prima di procedere è necessaria la supervisione da parte di un autorizzatore che scriva di persona in questo ticket l'accordo a procedere; 
nella lista gestita dal vostro Direttore dei Sistemi Informativi vediamo elencati xxxx@xxxx yyy@yyyy che ho provveduto a mettere in cc a questo ticket. Non possiamo più creare account impersonali; creeremo un account personale per ciascuna persona che dovrà accedere. Quindi, oltre all'autorizzazione delle persone sopra citate, è necessario fornire le seguenti informazioni per ogni utente: Nome Cognome Data di Nascita Luogo di Nascita Codice Fiscale Indirizzo mail

Si può specificare inoltre che nel momento in cui verrà censita l'anagrafica riceveranno una mail con le spiegazioni su come cambiare e mantenere aggiornata la password.

Una volta ottenuta l'autorizzazione dall'approvatore e i dati richiesti dell'utente, si deve aprire un ticket a SDCIS chiedendo che quelle persone vengano inseriti nel ramo LDAP PEOPLE di cineca.

Una volta che sistemi informativi chiude il ticket, va aperto un ticket a SDAMADB con la richiesta di creazione di un utente personale sul database dell'ateneo facendo riferimento al ticket CIS in cui sono state censite. Va specificato nel ticket anche gli indirizzi/range IP pubblici da cui si collegano dai pc dell'ateneo.



Evoluzioni ODS/OS3

Situazione attuale

ODS IN GENERALE

ODS rientra fra i prodotti della fabbrica dell’area TAD

ODS, dal punto di vista tecnico, è un prodotto composto da oggetti DB (viste, package, tabelle) e MW (metadati e report Pentaho) che risiedono sullo schema SIAXM di UGOV

Da un punto di vista logico è distinto in:

LIVELLI:

L0 (Livello 0) e Lx (Livelli da 1 a x); solo i livelli da 1 a x sono mappati da metadati di business e utilizzati per la costruzione di report senza scrittura di SQL.

• Il livello 0 è sviluppato dalle fabbriche verticali UGOV/ESSE3 [oggetti CO_ODS_%. Non esistono per ESSE3, ci sono delle viste…vedi spiegazione successiva di OS3]
• Il livello 1 è sviluppato a 4 mani fra le fabbriche UGOV/ESSE3 e la fabbrica ODS [oggetti ODS_CO_%]
• l livello >1 sono sviluppati dal team TAD [oggetti ODS_Lx_abcd]


BUSINESS MODEL (BM):

Esistono uno o più BM per area funzionale che racchiudono al loro interno uno o più ODS che possono essere di vari livelli. Ad esempio il Business Model “STU - Indicatori ANS” è composto dagli ODS:
ODS_S3_P06_AA
ODS_S3_P06_CDS
ODS_S3_P07_NORM
ODS_S3_TIPI_CORSO
ODS_S3_P06_FAC_CDS
ODS_S3_P06_FAC
ODS_S3_P06_DIP_CDS
ODS_S3_P06_DIP
ODS_S3_P15_MON_EVENTI
ODS_S3_P15_MON_STAT
ODS_L2_S3_DIDATTICA_CDS

Lo stesso ODS può appartenere a più BM

Ad ogni BM viene associato un percorso fisico su cvs che conterrà eventuali report di prodotto relativi a quel BM.

Possono esistere BM che non prevedono report (quindi senza una cartella fisica associata) in quanto hanno solo oggetti db (come ad esempio ODS creati ad hoc solo ai fini del caricamento del DWH).

Possono esistere BM che non prevedono oggetti lato db in quanto sono usati solo come contenitori di reporting di prodotto legato ad ODS appartenenti a più di un BM

SVILUPPO

Durante la fase di sviluppo si specifica per ogni BM quali sono i verticali da cui si dipende, ma poi la matrice di compatibilità la si compila a livello di prodotto ODS e non a livello di BM.
Infatti si rilascia il prodotto ODS e non i singoli BM che quindi vengono sempre tutti rilasciati in blocco col prodotto ODS e ne ereditano lo stesso versioning.

Il progetto JIRA è unico per lo sviluppo ODS, così come è unico il metadato che mappa i vari oggetti ODS dei vari livelli (non è pensabile dividere i vari livelli ODS, quindi ad esempio non si può lasciare su UGOV il livello 0 e 1 e portare sul DWH i livelli successivi).

 Il rilascio avviene mensilmente salvo urgenze per cui è possibile fare rilasci anticipati.

 

CONFIGURAZIONE DI ATENEO

Su ogni ateneo viene configurata la visibilità degli ODS ovvero quali BM devono essere deploiati e se resi visibili al reporting (o perché ad esempio quell’ateneo non ha PTH come sistema di reporting ma usa MSTR oppure perché quel BM non prevede report associati).

Per ogni ateneo/ambiente/BM viene anche specificato il “gruppo di visibilità” ovvero quali saranno il/i gruppi LDAP che avranno accesso per l’esecuzione dei report contenuti nella cartella associata al BM.

Quindi a parità di release di ODS deploiata su due atenei differenti ci potrebbero essere  oggetti db ODS e report completamente differenti.
Il motivo è che commercialmente non si vende “ODS” ma si vendono i BM della contabilità degli ODS o i BM dei questionari o delle risorse umane.

Inoltre, anche se un ateneo ha comprato i BM delle risorse umane, non è detto che tutti i BM di RU vengano resi visibili (per motivi legati al progetto)

REPORT

La fruizione dei report avviene da parte dei clienti:

• accedendo direttamente alla PUC
• tramite il client PRD sulle proprie PDL
• direttamente da UGOV sulle maschere del gestionale accedendo comunque alla puc, anche se in maniera trasparente per l’utente.

E’ possibile in UGOV configurare dei diritti per i singoli utenti in modo da limitare la visibilità dei dati che verranno mostrati dai report eseguiti sugli ods dagli utenti stessi (si parla di profilazione sui dati).


PARTICOLARITA' OS3

Gli ODS basati sui dati di ESSE3, prevedono la seguente architettura di prodotti:

Ovvero:


Il prodotto OS3 è un prodotto “tecnico” nel senso che non ha un’interfaccia utente e non ha un proprio schema ma contiene solamente sinonimi e viste; ha un suo versionamento e viene aggiornato con gli aggiornamenti UGOV. Come per gli altri ODS, tutti gli oggetti sono scritti su SIAXM.
Quando UGOV non è collegato a ESSE3, i sinonimi di OS3 vengono fatti puntare a viste “FAKE” che si trovano su SIAXM. In questo modo è installabile OS3 anche in assenza di ESSE3 (utile ad esempio a poter deploiare il BM PJ - Timesheet che prevede un oggetto di OS3 nel suo reporting.......CINECAERP, ad esempio, deve attivare questo BM e non ha ESSE3).
Il prodotto OS3 è composto da viste e tabelle; nel caso delle tabelle queste sono strutturate in modo confermo a tutte le tabelle ODS dei vari verticali e ciascuna tabella prevede un package di caricamento che ne gestisce il caricamento full e/o incrementale. Le viste e i package sono committate sul git di OS3 e installate col delivery di OS3, mentre le tabelle risiedono sul cvs/git di ODS e vengono deploiate col delivery di ODS; i motivi di questa scelta risiedono principalmente in queste considerazioni storiche:

La scelta relativa a se fare o no una vista è stato o:

A oggi i package di caricamento ODS (la relativa tabella di deduce dal nome) creati per ragioni di performance sono (sono un 1 a 1 con la relativa vista):

Invece quelli creati con logiche complesse di estrazione sono:


Il motivo principale che spinse a suo tempo a predisporre il prodotto OS3 fu il disaccoppiamento fra i due prodotti ESSE3 e ODS. Si tratta infatti di un prodotto “light” che non ha al suo interno logica applicativa. Il disaccoppiamento doveva servire nei casi:

  1. devono essere eliminate delle colonne di data base da ESSE3 e le colonne sono utilizzate da ODS;
  2. deve essere rilasciata una versione di ODS che utilizza campi di ESSE3 aggiunti in versioni “troppo recenti” e non ancora installate o installabili sugli atenei.

Nel caso (1) è possibile eliminare le colonne da ESSE3 e modificare la vista V_ODS_S3_xxx che utilizza quel campo sostituendo la colonna con una colonna NULL as “nome campo”. In questo modo l’ODS continuerà a funzionare e ci sarà tutto il tempo per adeguare gli ODS. Sarà quindi sufficiente rilasciare una versione del modulo OS3 che contiene la colonna NULL as “nome campo”.
Nel caso (2) sarà possibile rilasciare una versione di ODS anche se su ESSE3 non sono ancora stati aggiunti i campi necessari all’ODS. In questo caso infatti sarà sufficiente rilasciare una versione di OS3 che contiene dei campi NULL as “nome campo”.

Si tratta ovviamente in entrambi i casi di situazioni limite che raramente dovrebbero verificarsi. In ogni caso avere a disposizione il modulo OS3 può tornare molto utile soprattutto se si considera che il prodotto ODS è un prodotto con un unico versionamento che al suo interno include gli ODS di tutti gli ambiti di analisi.

Problemi attuali

L’architettura attuale richiede necessariamente un doppio vincolo di compatibilità fra ESSE3 e OS3 e fra OS3 e ODS; ciò significa che se ods necessita di esporre un nuovo campo dovrà attendere l'installazione delle versione di OS3 con la struttura delle viste aggiornate che a sua volta deve attendere l'installazione di ESSE3 che contiene il nuovo campo nelle sue tabelle/viste di prodotto
Ciò significa che se in un aggiornamento UGOV è presente anche il modulo OS3 allora l'aggiornamento non potrà essere fatto fino a quando anche ESSE3 non avanzerà ad una versione compatibile; questo purtroppo non può sempre avvenire in quanto gli atenei NON vogliono legare gli aggiornamenti di ESSE3 a quelli di UGOV e viceversa, anzi spesso non lo permettono perchè le aree di ateneo e gli uffici sono differenti e difficilmente li si riesce ad accordare.

Un altro problema è legato al fatto che il ciclo di sviluppo/rilascio di OS3 è slegato sia dal ciclo di sviluppo/rilascio di ODS che di ESSE3; capita che ods debba leggere una nuova colonna esposta da OS3 a sua volta eposta da una modifica fatta su ESSE3. Quello che avviene poi è che non si può rilasciare ODS perchè non si può rilasciare OS3 perchè ESSE3 verrà rilasciato fra tot giorni (....che è prorpio quello che è capitato con il rilascio della 18.10 di ODS).

Quindi i problemi non ci sono solo in fase di delivery ma anche in fase di ciclo di produzione.

 

Tamponi momentanei

DELIVERY

Per tamponare è possibile far avanzare UGOV senza portare avanti il modulo OS3 e senza aggiornare ODS; questo però porta ad altri effetti indesiderati quali:

Altro tampone è quello di, se possibile, applicare manualmente le modifiche su ESSE3 (spesso impatta solo delle viste) e poi procedere con l'aggiornamento di OS3/UGOV/ODS; anche qui però:

Altro tampone è quello di togliere la dipendenza fra OS3 e ESSE3 in modo che si riesca sempre ad aggiornare UGOV e, laddove si verifichino degli errori di aggiornamento, si proceda manualmente a modificare gli oggetti OS3 aggiungendo delle colonne "null" dove necessario (sono poi questi i principali problemi, ovvero colonne aggiunte o tolte). Anche qui però:

Altro tampone è quello di aggiornare UGOV e “staccare” ESSE3 facendo puntare le viste XM ai FAKE fino all’aggiornamento di ESSE3 alla versione di rottura; anche qui però:


SVILUPPO

rilasciare comunque ODS e subito dopo deprecare la versione finchè non viene rilasciato OS3

Proposte evolutive (pre incontro interno)

  1. FICARRA: a suo tempo Giostra aveva gestito le “viste bridge” ossia, mi sembra, viste create dinamicamente che mantenevano la compatibilità con le versioni precedenti la rottura di ESSE3 creando come NULL i campi aggiuntivi di ODS. Magari approfondire il discorso in questa direzione
  2. ALONZO/WESTCOTT: portare tutto OS3 (viste/tabelle/package) dentro a ESSE3 lasciando su SIAXM solo dei sinonimi ODS_S3* verso o i fake o gli oggetti di OS3 su ESSE3. Il modulo ponte è corretto che rimanga per i vantaggi scritti sopra, ma il suo delivery deve essere pilotato SOLO da ESSE3 interagendo con ugov per la v_xm_prodotti_installati, i sinonimi e i fake di XM. Questo permetterebbe anche di essere lineari rispetto a quanto si sta progettando come evoluzione del mondo ods dove gli ODS sono solo viste ed eventuali tabelle su cui si appoggiano stanno sul verticale; queste viste poi vengono replica sull'istanza del DW e utilizzate per il mappaggio del metadato diretto o il caricamento dei livelli successivi (la cui competenza logica/funzionale è corretto risieda in TAD)
  3. FARINA: spostare OS3 dentro a ODS ...........................................


NOTA:

fino a poco tempo fa l'aggiornamento di OS3 veniva effettuato sia da UGOV che da ESSE3. A giugno 2018, quando capitò un problema similare a quello di oggi sempre legato ad una rottura di compatibilità, ci incontrammo e si decise che per miglioare la situazione la cosa giusta da fare fosse fare in modo che OS3 venisse aggiornato solamente da UGOV e non più da ESSE3. Sinceramente non ricordo i dettagli delle motivazioni della scelta; ho solo recuperato questo scambio di mail in cui svariate delle cose scritte qui ce le eravamo già dette


da tenere in considerazione:

 


Proposta evolutiva (post incontro interno)

partecipanti: Libero Farina , Lorenzo Ficarra , Claudio Brizi , Stefano BudaUnknown User (a.westcott@cineca.it)

Presupposti:


Punti di attenzione


Soluzione proposta (nel breve)

Soluzione proposta (nel medio periodo)