Architettura

Download
Risorse | Pagina

Last stable release: 2.9.01
03.08.2023 | janox-2.9.01.tar.gz
Questa è la release di riferimento per ogni esigenza di produzione.

Development release: 2.9.02
15.04.2024 | janox-2.9.02.tar.gz
Questa release è sperimentale: non deve essere usata in ambienti di produzione ed è dedicata alle sole attività di sviluppo.

 

Documentazione
Risorse | Pagina

 

Community
Risorse | Pagina

Google groups:

Pubblico | Assistenza
Canale pubblico di supporto: il posto migliore da cui cominciare se non sai da dove cominciare...

Privato | Sviluppo
Canale di analisi, consultazione e proposte sullo sviluppo. Il canale è riservato alla community.

 

Ambiente di sviluppo
Janox è il tool di sviluppo pensato per le applicazioni complesse orientate ai dati, come gestionali, CRM e moduli di produzione.

Janox è un RAD che genera codice PHP standard, gestibile tramite interfaccia dedicata in ogni fase del suo life-cycle. Facile da utilizzare come un CMS, efficace come un RAD, potente come PHP.

Ogni espansione del codice prodotto, sia verso l’alto (client-side) sia verso il basso (server-side), viene gestita tramite apposite "celle di isolamento", che pur consentendo ogni livello di integrazione, non fanno mai perdere il contatto fra il codice prodotto ed il sistema RAD.

Gli script prodotti possono essere eseguiti su qualunque macchina dove sia presente una installazione PHP con uno dei molti WEB server supportati, senza bisogno di librerie aggiuntive.

L’interfaccia di sviluppo è costituita da un eseguibile compilato (Janox Open Builder), dedicato al nostro particolare modello di RAD, table driven e basato sul rapporto tra repository e moduli esecutivi.

I moduli esecutivi riproducono una architettura a 3 livelli, che a sua volta si innesta sull’astrazione dei repository e dei sistemi di persistenza applicativi.

 

Architettura
L’idea che ha guidato la creazione e l’evoluzione di Janox è la ricerca di un equilibrio perfetto fra semplicità e potenza.

Tutti gli elementi del sistema Janox, dai singoli data-model ai tracciati di persistenza su DB, sono definiti come “nomi logici” in un sistema di repository, di modo da consentire modifiche indirette ad un singolo elemento applicativo e trasversali a tutti i suoi casi di utilizzo.

Tutte le funzionalità relative alla connettività, oltre al supporto transazionale integrato, sono GARANTITE SENZA ALCUNA NECESSITÀ DI INTERVENTO SPECIFICO per tutti i database supportati.

I database attualmente supportati, ufficialmente, sono: SQLite, MySQL, MSSQL, Postgres, Oracle e DB2-AS400, ma la particolare astrazione (atomica) dei gateway Janox consente la rapida integrazione di qualunque tipo di connettività supportata da PHP, in particolare se integrata da PDO.

Janox provvede sia un accesso interattivo che un WEB Service di tipo WEB API alle applicazioni sviluppate, ma consente la semplice implementazione di qualunque tipo standard di WEB servicing.

 

Deploy
Janox è pensato per le aziende che sono in contatto diretto e costante con le esigenze dei propri clienti e dei propri partner.

Il deploy delle applicazioni è possibile su qualunque cloud consenta l’esecuzione di PHP standard e renda disponibile una delle molte basi dati supportate.

Una applicazione Janox è costituita da un’unica cartella che, sotto una stessa gerarchia, contiene tutte le risorse, tutte le logiche esecutive e tutte le connettività necessarie.

Una sub-folder di questa gerarchia è mappata sul WEB Server, garantendo la fruizione dell’intero progetto dietro credenziali applicative.

La runtime Janox è anch’essa contenuta in un’unica cartella e può essere esposta dal WEB Server sia come sotto sistema dell’applicazione, sia come alias o virtual host separato (ad esempio per servire più applicazioni).

Tutte le attività di deploy sono “hot plug”, cioè vengono rese effettive al successivo login (o in certi casi alla successiva singola esecuzione) di ogni sessione in esecuzione sulla piattaforma, senza discontinuità di servizio.

Tutti i repository sono accessibili come file di testo, senza bisogno del supporto di sviluppo, e quindi facilmente configurabili nelle singole realtà di deploy.

Per sovrintendere alle singole installazioni, viene automaticamente creata una figura di amministrazione (root) capace di accedere ad una vasta gamma di attività, configurazioni, risorse, informazioni, storico, customizzazioni, multi-processing (esecuzione asincrona e distribuita) e supporto multi-lingue, oltre alla supervisione dell’intero processo applicativo e delle singole sessioni.

L’amministratore può in oltre lavorare come Database Manager, con funzionalità per un controllo avanzato della base dati, comprese quelle di export/import delle connettività in vari formati, correzione dei tracciati record, data recovering, controllo e gestione dell’integrità referenziale, attivazione e disattivazione di indici e molto altro.

Janox offre una serie di interfacce WEB dedicate alla completa gestione sia delle risorse applicative, sia al deploy, sia agli interventi di sviluppo (con credenziali separate per le attività di CVS e gestione interna dello sviluppo concorrente).

Quindi aggiornare una o più applicazioni Janox è facile come manutenere file di testo in una folder remota (CVS, FTP, Sync, ...). Sono però disponibili sia sistemi di sviluppo e amministrazione remoti, sia un’applicazione dedicata all’aggiornamento di applicazioni Janox (JUD - Janox Update Directory).

 

Interfacce
L'esperienza dell'utente è uno degli aspetti positivi più immediatamente apprezzabili di Janox.

Janox genera interfacce completamente dinamiche HTML5, CSS3 e JavaScript, in base ad una astrazione di “design” definibile tramite l’interfaccia di sviluppo dedicata (Janox Open Bilder).

Janox provvede controlli estremamente evoluti e mirati alla particolare architettura di sviluppo, non sempre identificabili con la versione comunemente diffusa di questi controlli, come nel caso di data-grid, di combo-box (lookup) o di popup.

La tecnologia Janox dedica una particolare attenzione all’utilizzo professionale delle interfacce, mirando a consentire una completa usabilità da tastiera, per ottimizzare la produttività degli utenti evoluti, ovviamente senza limitare quella standard (puntatore o touch).

A meno che non sia una esplicita esigenza applicativa, non sono richieste librerie esterne JavaScript, né plugin, né alcun’altra tecnologia aggiuntiva rispetto a quelle offerte “out of the box” da un qualunque browser di ultima generazione (FireFox, Chrome, Safari, IE, Opera, ...).

Ogni modulo esecutivo può fornire più interfacce per una stessa logica di connettività e/o esecutiva, differenziabili per risoluzione o per altri criteri del client.

Il livello di amministrazione consente anche di intervenire, senza supporto di sviluppo, su vari aspetti delle interfacce, dalla configurazione degli standard di funzionalità, fino all’oscuramento e riposizionamento dei singoli controlli o menu.

Fortemente integrati con la presentazione delle interfacce e delle funzionalità esposte sono anche il sistema di granting, a 3 livelli (utente-ruolo-diritto) o a 2 (utente-ruolo), e le logiche di profiling del singolo utente.

 

Localizzazione
Gestione della localizzazione e delle traduzioni in completa autonomia dal processo di sviluppo.

Janox offre un sistema di internazionalizzazione delle applicazioni, customizzabile in fase di deploy, senza supporto di sviluppo, che va dall’encoding della base dati (Western Europe o UTF-8) alla produzione di dictionary dinamici, estratti dalle interfacce e distribuibili presso terzi (per le traduzioni) come file di testo.

Il sistema multi-lingue prevede sia “hot plug” delle traduzioni, sia il fall-back verso la lingua originale degli elementi mancanti.

I formati di dati, come numeri, date, valute, ecc.., sono direttaemne configurabili in ogni singola installazione.

 

Produzione di report
Export integrato dei dati (XML, CVS, PDF, ODT, ecc...)

Janox prevede un sistema di reporting basato su un modulo esterno, “Report manager” anch’esso OpenSource, e molto simile ai più conosciuti standard, tipo Crystal Reports.

Tuttavia la strategia Janox alla base dell’utilizzo di report esterni è quella di produrre applicativamente (in XML) i dati già “preparati” da dare in pasto ai singoli report, secondo il principio (consigliato ma non limitante) di “meno logiche nei modelli di stampa, più logiche nei programmi di stampa”.

La particolare flessibilità di produzione dei dati di reporting (XML, anche su WEB service) e le potenzialità di Report Manager (o di strumento equivalente) consentono la facile produzione di qualunque tipo di reportistica: Text , XML, CSV, PDF, Excel, ODT ed altre sono disponibili di default.