JUGPD DAY 2024 #2

Posted by Lucio Benfante Sat, 02 Nov 2024 16:27:00 GMT

Quando: sabato 9 Novembre 2024, dalle 10.00 alle 13.00

Dove: Agriturismo Scacchiera, Via Rovetta, 38 35127 PADOVA (Padova), località San Gregorio (www.agriturismoscacchiera.it)

Programma

  • Assemblea ordinaria 2024 dellassociazione JUG Padova
  • Applicazioni e database multi-tenant con JOOQ e PostgreSQL (Lucio Benfante)
  • PostgreSQL e la sicurezza orizzontale

Per chi vorrà, al termine delle presentazioni sarà possibile continuare la discussione durante il pranzo.

Registrati all’evento

Per permetterci una migliore organizzazione dell’evento registrati al più presto :

https://mobilizon.it/events/82b87de2-1731-486c-abe2-177f4386559f

Note

La partecipazione è, come sempre, libera e gratuita.

Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Applicazioni e database multi-tenant con Jooq e PostgreSQL (Lucio Benfante)

“Software multitenancy is a software architecture in which a single instance of software runs on a server and serves multiple tenants. Systems designed in such manner are “shared” (rather than “dedicated” or “isolated”). A tenant is a group of users who share a common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a dedicated share of the instance—including its data, configuration, user management, tenant individual functionality and non-functional properties. Multitenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants. (https://en.wikipedia.org/wiki/Multitenancy)”

Come si evince dalla definizione, lo sviluppo di un’applicazioni che ne supporti l’uso da parte di più tenant, comporta scelte architetturali nei vari livelli dell’applicazione, da quello legato alla gestione dei dati, a quello relativo alle funzionalità dell’applicazione stessa, fino alla gestione degli utenti stessi.

Durante questo incontro, esamineremo brevemente le diverse possibili scelte che potremmo adottare per lo sviluppo di un database che supporti un’applicazione con esigenze di multi-tenancy, cercando di valutarne le conseguenze sullo sviluppo e l’operatività dell’applicazione stessa.

Esamineremo poi l’architettura e il codice di un’applicazione multi-tenant che sto sviluppando, in cui è stato scelto PostgreSQL come DBMS e Jooq come libreria di accesso ai dati, considerandone alcune caratteristiche che appunto favoriscono lo sviluppo di tali applicazioni.

PostgreSQL e la sicurezza orizzontale

Postgres ci permette di controllare l’accesso al database, allo schema, alle tabelle e colonne ma, dalla versione 9.5, con le row security policy, anche alle righe di cui è composta una tabella.

Ognuno di noi che si è cimentato in un’applicazione multi-tenant (o multi societaria che dir si voglia) si è trovato davanti al problema di non far “vedere” ad un tenant i dati di un altro tenant.

Postgres, con le row security policy, ci offre una soluzione flessibile ed elegante e al tempo stesso economica da implementare.

Nella sessione andremo a vedere come sfruttare questo strumento.

RELATORI

Lucio Benfante

Dal 1996 lavoro come libero professionista nel campo dello sviluppo software e della formazione professionale.

Quando posso condivido il codice che sviluppo in modalità open-source: potete trovarlo all’interno dei miei repository e organization in GitHub (https://github.com/benfante)

Sono un socio fondatore e attuale presidente del Java User Group (JUG) Padova (www.jugpadova.it).

Nel tempo libero amo cucinare (iononcucino.blogspot.com), praticare la corsa (https://runkeeper.com/user/benfante) e cantare nel Gruppo Vocale Novecento (www.gvnovecento.it).

Andrea Adami

Nei primi anni 80 ho trovato sotto l’albero di natale un Commodore 64 ed è stato amore a prima vista.

Ho imparato a conoscere i sistemi operativi mainframe IBM, quelli di rete e dei personal computer ed anche i sistemi embedded sia per la domotica che per l’automazione industriale.

Ho usato molti linguaggi e strumenti di sviluppo, diversi application manager, database a indici e gerarchici fino ai moderni database relazionali.

La necessità di sfruttare l’hardware e il sistema operativo mi porta a sviluppare il mio lato sistemistico.

Dinamiche personali mi fanno fare un’esperienza di gestione manageriale per poi proseguire creandone una mia e sviluppando la cultura aziendale: economica, amministrativa, fiscale ed infine finanziaria.

Nel corso degli anni ho affiancato la passione per la programmazione con la progettazione di soluzioni e la consulenza direzionale.

Nel 2010 Ho conseguito il brevetto per il volo libero da diporto sportivo con il nulla osta della questura di Verona.

Nel mio tempo libero mi appassiona costruire e far volare aeromodelli.

Posted in ,  | Tags ,  | no comments

JUGPD DAY 2024 #1

Posted by Lucio Benfante Tue, 21 May 2024 17:28:00 GMT

Quando: sabato 1 Giugno 2024, dalle 9.00 alle 13.00

Dove: Via Brenta 2, 35020, Saonara, Italia

Programma

  • Prototipizzazione con LibreOffice e Postgres (Andrea Adami)
  • Rendere “web friendly” le applicazioni desktop (Andrea Adami)
  • Come creare un “Terminal Server” con Linux (Andrea Adami)
  • Laboratorio di IOT (Andrea Adami e Paolo Tomelleri)

Per chi vorrà, al termine delle presentazioni sarà possibile continuare la discussione durante il pranzo.

Registrati all’evento

Per permetterci una migliore organizzazione dell’evento registrati al più presto :

https://mobilizon.it/events/83ea6f0f-c76a-4b3a-a1fa-86f6ab9800ee

Note

La partecipazione è, come sempre, libera e gratuita.

Pubblicizza questo evento

Aiutaci a pubblicizzare questo evento:

  • nella tua social network preferita
  • sui forum e mailing list che segui
  • ai tuoi amici e colleghi

Prototipizzazione con LibreOffice e Postgres (Andrea Adami)

Molto spesso ci si trova a scrivere codice su un’analisi carente (per non essere volgari) o addirittura sbagliata.

Il problema è che spesso le “personas” alla base dell’analisi forniscono informazioni incomplete, non esaustive o addirittura errate.

Ecco che viene molto utile produrre un prototipo che permetta di verificare se l’analisi corrisponde al prodotto software che il nostro utente vuole.

Quante volte ci siamo sentiti dire: “ma io non la volevo così” anche se è stato realizzato esattamente quello richiesto ?

Il problema però è che scrivere codice è costoso, in temini di tempo, e dover rifare quanto appena finito oltre che demotivamente può originare contrasti economici e di tempo con il cliente.

Un’approccio che si vuole mostrare con questo intervento è l’utilizzo di Libreoffice unito a Postgres per creare molto velocemente dei prototipi di applicazione in maniera da ridurre al minimo il costo, ineluttabile, delle successive modifiche.

Una volta finito il prototipo abbiamo una sorta di “analisi definitiva” su cui costruire il software finale, in limitati casi, potrebbe anche diventare il prodotto finito.

L’utilizzo delle funzionalità di programmazione di Postgres permette di avere una base di codice riutilizabile anche con il linguaggio scelto per la versione definitiva del codice.

Rendere “web friendly” le applicazioni desktop (Andrea Adami)

Oggi ci sono tecnologie che permettono di portare sul web il nomale desktop tramite quelli che vengono chiamati gateway RDP HTML5 (javascript).

Possiamo quindi portare “sul Web” qualsiasi applicazione desktop.

Nell’intervento vedremo come crearne uno (https://guacamole.apache.org) in maniera veloce utilizzando i container.

Come creare un “Terminal Server” con Linux (Andrea Adami)

Molti ormai sono abituati a lavorare con la tecnologia che viene definita, su windows, “terminal services” oppure più familiarmente “Desktop remoto” forse pochi sanno che anche su Linux è possibile fare la stessa cosa.

L’argomento di questo intervento è far vedere come realizzarlo.

Laboratorio di IOT (Andrea Adami e Paolo Tomelleri)

Penso a nessuno sia sfuggito la portata del fenomeno “IOT”, questo intervento vuole condividere l’esperienza di laboratorio fatta con la famiglia di prodotti M5STACK ( https://m5stack.com ).

Incominciando con una breve presentazione della famiglia di prodotti vedremo quali sono gli impieghi più comuni per le varie famiglie di dispositivi, gli strumenti di sviluppo che si possono usare, le difficoltà incontrate (serate su serate buttate che speriamo di evitarvi).

RELATORI

Andrea Adami

Nei primi anni 80 ho trovato sotto l’albero di natale un Commodore 64 ed è stato amore a prima vista.

Ho imparato a conoscere i sistemi operativi mainframe IBM, quelli di rete e dei personal computer ed anche i sistemi embedded sia per la domotica che per l’automazione industriale.

Ho usato molti linguaggi e strumenti di sviluppo, diversi application manager, database a indici e gerarchici fino ai moderni database relazionali.

La necessità di sfruttare l’hardware e il sistema operativo mi porta a sviluppare il mio lato sistemistico.

Dinamiche personali mi fanno fare un’esperienza di gestione manageriale per poi proseguire creandone una mia e sviluppando la cultura aziendale: economica, amministrativa, fiscale ed infine finanziaria.

Nel corso degli anni ho affiancato la passione per la programmazione con la progettazione di soluzioni e la consulenza direzionale.

Nel 2010 Ho conseguito il brevetto per il volo libero da diporto sportivo con il nulla osta della questura di Verona.

Nel mio tempo libero mi appassiona costruire e far volare aeromodelli.

Posted in ,  | Tags , , ,  | no comments