Progettazione e sviluppo di una applicazione SaaS in informatica

Progettazione e sviluppo di una applicazione SaaS in informatica

Livelli dell’architettura

Architetturalmente parlando, le applicazioni SaaS sono bene o male simili alle altre applicazioni costruite secondo i principi di design service-oriented. I Process Services presentano interfacce che i livelli di presentazione Web possono invocare e fanno partire un flusso di lavoro sincrono o lunghe transazioni che invocheranno i cosiddetti Business Services che interagiscono con i rispettivi data-store in modo tale da leggere e scrivere i dati. I Security Services sono invece responsabili del controllo degli accessi.

La più importante differenza è l’aggiunta dei Metadata Services che si occupano di controllare la configurazione dell’applicazione per ogni singolo cliente. I servizi possono interagire con i Metadata Services in modo tale da ottenere informazioni che descrivono la configurazione specifica di ogni cliente.

Sviluppo di una applicazione SaaS

Un sistema ben modellato di un’applicazione SaaS possiede tre proprietà principali: deve essere costruito su misura per l’utente, elastico ed essere efficiente per la moltitudine di utenti che lo utilizzeranno. Questi requisiti, funzionali e non, necessitano, nella fase di realizzazione, di un nuovo modo di sviluppare il software.

Fondamentalmente le applicazioni SaaS possono essere suddivise in due grandi gruppi: le applicazioni Business e le applicazioni BPM.

Le prime presentano un’interfaccia utente web-based aperta a tutti i vari clienti che usufruiscono di essa. Lo scopo di tali applicazioni (ad esempio CRM o ERP) è di processare transazioni business e collaborazione tra gli utenti con dati che risiedono nel DBMS, acronimo di DataBase Management System. Utenti diversi possono avere ruoli differenti come per esempio amministratore, manager, impiegato o qualsiasi altro incarico che possa avere le proprie autorizzazioni per accedere ai dati aziendali e alle logiche di business. A seconda dei ruoli e dei loro permessi di accesso, vengono fornite agli utenti determinate pagine web per richiedere servizi attraverso i browser web. Tali richieste vengono demandate all’Application Server che contiene le logiche di business che processano le varie transazioni. Gli aspetti principali di un’applicazione di questo genere sono quindi il modello dei dati, la logica di business, le pagine web e i ruoli.

Oltre a questa tipologia, esistono le applicazioni Business Process Management (BPM). In contrasto con le prime che sono utilizzate per condividere informazioni e collaborazione fra gli utenti, le applicazioni BPM si incentrano sul flusso delle attività di un’azienda.

Lo scopo delle applicazioni BPM è di modellare ed eseguire processi di business che sono collezioni di attività correlate e strutturate di un’azienda. I processi business sono modellati da un analista o da un manager dell’organizzazione. Tali processi vengono salvati sotto forma di flusso di lavoro nel cosiddetto Process Repository. Un flusso di lavoro è una rappresentazione di una sequenza di operazioni che esegue il processo di business modellato usando un motore apposito. Ogni membro dell’azienda possiede un’interfaccia utente in modo da poter controllare e processare attività a lui assegnate. Gli aspetti principali di un’applicazione BPM sono quindi flusso di lavoro e attività.

Progettazione e sviluppo di una applicazione SaaS in informatica

Multitenancy attraverso i Metadata

Poich´e viene fornita un’applicazione SaaS a più clienti attraverso una singola istanza del servizio, l’architettura della piattaforma deve permettere la configurazione da parte dei clienti senza cambiare il codice sorgente del software per ogni singolo cliente e senza sospendere il servizio durante ogni configurazione. Per risolvere queste problematiche entra in gioco l’architettura metadata-driven.

In tale architettura ogni aspetto dell’applicazione SaaS che è configurabile dai clienti viene posizionato in un Metadata Database. Quando il manager configura alcuni aspetti dell’applicazione, le informazioni vengono immagazzinate nel metadata specifico del cliente. Un motore runtime genera l’applicazione polimorfica ad hoc per il singolo cliente utilizzando il codice di base del software e il metadata specifico. Attraverso questa applicazione all’utente sembra di utilizzare il proprio software business mentre invece l’istanza del servizio è condivisa fra tutti i clienti. Anche se i dati sono condivisi, essi vengono mantenuti al sicuro dall’applicazione polimorfica che permette un accesso individuale a questi sfruttando delle query ottimizzate.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *