Il paradigma di riferimento dell’ERP Fluentis è il modello SOA (Service-Oriented Architecture) e la tecnologia di base è rappresentata dall’ambiente Microsoft.
Di seguito procederemo a descrivere l’architettura su cui si basa Fluentis.
L’applicazione di Fluentis è identificata da una grande libreria di oggetti di business in grado di rappresentare una vasta base dati che si esprime in circa 3.000 tabelle e 30.000 campi tra loro opportunamente relazionati in modo da rappresentare un contesto molto ampio di esigenze e contenuti applicativi. L’applicazione si definisce Full Object Oriented in quanto la composizione di questa libreria di oggetti rappresenta non solo il set di informazioni strutturali delle tabelle, ma ogni oggetto è in verità in grado di identificare entità gestionali molto precise. Un oggetto può quindi rappresentare i Clienti, i Fornitori, gli Articoli di magazzino, i documenti quali gli ordini o le fatture ecc. Ogni oggetto inoltre può essere di due tipologie diverse: Read Only, ovvero in grado di esporre solo le informazioni ad esso pertinenti e Read-Write, ovvero in grado di esporre anche metodi e funzioni attraverso le quali è possibile interagire con gli algoritmi applicativi. In questo senso quindi la libreria di oggetti rappresenta l’unico canale di comunicazione per interagire con tutto l’ambiente gestionale, svincolando il partner (integrator) dalla conoscenza di complesse organizzazioni tabellari e procedurali concepite per poter estrarre, eseguire ed elaborare informazioni presenti nel sistema. Un ulteriore aspetto molto interessante è la facile estendibilità di ogni oggetto; la pratica di customizing delle entità, in funzione delle specifiche esigenze aziendali rappresenta la quotidianità delle attività del partner o del power user.
L’applicazione Fluentis è stata attentamente progettata anche nel layer di accesso alla base dati. Non esiste infatti un accesso di tipo diretto al database, ma demandato al layer dell’ORM (Object Relational Mapping). Ogni oggetto viene appunto in gergo mappato nel rapporto One-to-One o Many–to-One con una tabella del database. In verità la stessa tabella può rappresentare contemporaneamente più oggetti (pensiamo come ad esempio dall’unica tabella contatti sia possibile rappresentare contemporaneamente sia l’oggetto Contatto, che Cliente, che Fornitore ecc.). Il compito di questo Layer è quindi quello di instradare tutte le richieste di interrogazione, inserimento, modifica e cancellazione dell’oggetto tra la base dati e la libreria applicativa, sollevando il programmatore dallo sviluppo di complesse e spesso anche poco corrette query SQL. L’ORM è inoltre in grado di formulare query specifiche in funzione del DMBS utilizzato, facendo uso di dialetti specifici anche in funzione della versione correntemente installata del motore SQL.
La comunicazione client-server all’interno dell’applicazione Fluentis avviene attraverso un layer specifico: Windows Communication Foundation. Fluentis supporta la versione di WCF dalla 4.5 in poi. Al fine di velocizzare e semplificare la comunicazione tra il consumer dei Web Services ed il server preposto per renderli disponibili, sono state integrate ulteriori tecnologie di comunicazione sempre basate su questo layer WCF quali: WCF data service 5.0 e le librerie JSON (JavaScript Object Notation).
La GUI Fluentis è stata progettata per interoperare nell’ambiente SOA attraverso una comunicazione sia User-to-Machine, sia Machine-to-Machine. Questo ad indicare che una qualsiasi interfaccia può essere funzionale. L’interfaccia standard di riferimento è sviluppata attraverso la definizione in formato XAML (Extensible Application Mark-up Language) in modo da rendersi fruibile sia in modalità WPF (Windows Presentation Foundation) sia via web in Silverlight (all’interno dei browser web) sia in un ambito Mobile con l’ausilio di Windows Phone 8.0 o WindowsRT. Attraverso la realizzazione di interfacce in formato HTML5 è possibile utilizzare la libreria per accedere a piattaforme non Microsoft.