Twitter Facebook
Torna alla home page English
prodotti
supporto e assistenza
quanto costa Instant Developer?
clienti
contatta Pro Gamma
press
blog
forum
segui Pro Gamma su twitter e facebook

Home/Schema di funzionamento

Nell’introduzione si è detto che le applicazioni create con In.de sono molto più di un framework di visualizzazione web: il perché viene evidenziato nell’immagine seguente che ne mostra la struttura. Clicca sulle varie parti dell’immagine per vedere le descrizioni dei componenti.

Connection Pooling RD3 Browser enabled XML over HTTP RD3 Manager Web Session Form stack RTC Manager Profile Manager DTT Manager Exception Manager File System Manager External Components Defined Forms UI COmponent Engine Report Engine Commang Engine Panel Engine Timer Engine Entity Cache Entity Helper Entity Manager Defined Entities In Memory DataBase Connection Manager Connection Pooling

Browser RD3 Enabled: è il browser che visualizza l’interfaccia web. Essa è basata su una piccola libreria javascript di soli 110 kb che viene scaricata solo al primo collegamento al server web.  Le applicazioni sono inoltre cross-browser di tipo NPE (near-pixel-equivalent), cioè non solo l’applicazione funziona su tutti i browser, ma l’aspetto dell’interfaccia è quasi sovrapponibile pixel per pixel.


XML over HTTP: è il protocollo di comunicazione fra il browser e il server web. Le applicazioni RIA create con In.de non utilizzano più codice HTML generato dal server, ma un formato XML compresso che descrive sinteticamente lo stato dell’interfaccia e gli eventi avvenuti. Il file XML viene letto, interpretato ed eseguito dalla libreria javascript RD3 presente nel browser. In questo modo si realizza una totale indipendenza dell’applicazione dal dispositivo di visualizzazione. L’utilizzo di HTTPS è supportato in modo trasparente.


RD3 Manager: è il gestore del protocollo di comunicazione basato su XML. Ha un duplice compito:

  • interpretare gli eventi avvenuti nel browser e informare gli oggetti UI contenuti nella memoria del server.
  • osservare le modifiche che avvengono a livello di oggetti UI nel server ed esprimerle in un formato XML da inviare al browser per aggiornare la videata.

Web Session: è il gestore della sessione web e del suo stato. All’interno del progetto In.de corrisponde all’oggetto Applicazione Web. Tramite Visual Code è possibile personalizzarne il comportamento implementando i gestori degli eventi della sessione: Initialize, On Command, On Login, Terminate. Gestisce inoltre gli eventi globali legati agli oggetti di interfaccia utente.


Form Stack: è un oggetto appartenente alla Web Session che contiene l’elenco di tutte le videate aperte dell’applicazione.




RTC Manager: RTC è l’acronimo di Run Time Configuration, il sistema di riconfigurazione dinamica della lingua e dell’intera interfaccia utente dell’applicazione. Tramite questo sistema è possibile modificare l’interfaccia dell’applicazione per ogni singolo utente, oppure per gruppi o per lingue senza dover cambiare il codice o ricompilare.  Clicca qui per un approfondimento tecnico.


Profile Manager: è il gestore del sistema di profilazione delle applicazioni web create con In.de. Permette di configurare dichiarativamente e in maniera molto dettagliata le funzioni permesse al singolo utente o gruppo, fino ad arrivare al singolo campo di ogni pannello o report (nascosto, sola lettura, scrivibile). Il sistema  di profilazione è facilmente integrabile con Active Directory o altri sistemi LDAP e di Single Sign On.

DTT Manager: è il servizio applicativo che si occupa di tenere sotto controllo il funzionamento a runtime dell’applicazione. DTT sta per Debug, Test & Tracing. Il DTT Manager colleziona automaticamente tutti i dati sull’applicazione, fino ad arrivare a tracciare la singola riga di codice e permette di utilizzare queste informazioni per il debugging e il tracing di applicazioni già rilasciate in produzione. Con questo sistema non esistono più gli errori non riproducibili!


Exception Manager: quando un'applicazione non funziona a dovere, capita di vedere una schermata con lo stack trace come questa quando un’applicazione web non funziona come dovrebbe.



Con In.de questo non può succedere, grazie all’Exception Manager che si occupa di tracciare e gestire ogni possibile eccezione che possa avvenire all’interno dell'applicazione web, risolvendo il problema alla radice.

File System Manager: le applicazioni create con In.de possono essere compilate indifferentemente sia in ambiente C# che Java. Componenti come questo servono per risolvere i diversi comportamenti delle architetture nei confronti, ad esempio, del file system. E' così possibile scrivere codice una sola volta e ottenere il medesimo comportamento sia in Java che in C#. In In.de sono stati integrati altri componenti analoghi di gestione multipiattaforma, come ad esempio il Mail Manager o l’XML Manager.

External Components: con In.de puoi riutilizzare qualunque componente compilato di tuo interesse. Per cominciare ad utilizzarlo è sufficiente creare all’interno del progetto In.de una libreria che ne descrive l’interfaccia.


Esempio di utilizzo di componenti esterni per il collegamento verso SAP

Defined Forms: sono le videate che compongono l’applicazione così come sono state definite all’interno del progetto In.de. Ogni videata viene disegnata e personalizzata scrivendo il codice di gestione degli eventi degli oggetti di interfaccia. Clicca qui per vedere un esempio online.


UI Component Engine: questi oggetti realizzano nel server il modello logico di funzionamento dei vari componenti dell’interfaccia utente dell’applicazione, come ad esempio grafici, alberi gerarchici, tabbed views, pannelli dati e report. Ogni componente ha un corrispettivo visuale all’interno della libreria javascript RD3 funzionante nel browser dell’applicazione; il componente RD3 manager si occupa di sincronizzare lo stato dei due componenti corrispondenti nel browser e nel server. Ogni componente espone un insieme di eventi che vengono notificati alla videata in modo che il codice applicativo possa implementare i comportamenti richiesti dal presentation manager. Clicca qui per vedere un esempio online di albero gerarchico.

Report Engine: è una specializzazione del componente UI e si occupa di gestire la visualizzazione o la stampa (in PDF) di report o “libri” definiti nel progetto. Quando essi vengono mostrati in anteprima, possono essere manipolati dall’utente che può modificare il valore dei campi oppure usare il drag&drop o ancora attivare varie parti del report. Clicca qui per vedere  un esempio online di report dinamico.


Command Engine: è un'altra specializzazione del componente UI. Si occupa di visualizzare e gestire set di comandi da presentare all’utente nell’interfaccia, come ad esempio menù multi-livello, pop-up, toolbar o un insieme di pulsanti. E’ anche gestita l’associazione con codice di comando o con tasti funzione.



Panel Engine: è un'ulteriore specializzazione del componente UI. Si occupa di gestire la visualizzazione e la modifica di liste di record in layout lista, dettaglio o misto. E’ uno dei pochi casi di griglia che rende disponibile il live scrolling anche su liste con milioni di record, garantendo una freschezza d'uso simile a quella di un'applicazione desktop. I pannelli mettono a disposizione una serie di automatismi per velocizzare la generazione di interfacce complete di tutte le funzioni utili. Clicca qui per vedere un esempio online e provarne le caratteristiche.

Timer Engine: all’interno delle applicazioni RIA create con In.de è possibile definire timer che scattano all’interno del browser ma che vengono gestiti dal codice del server web. In questo modo è possibile eseguire animazioni, controllare l’avanzamento di processi lunghi o aggiornare in modo temporizzato parti dell’interfaccia per presentare dati “freschi” all’utente. Se vuoi provare un esempio di questo tipo, clicca qui.


Entity Cache: è una cache delle entità (documenti) utilizzate recentemente dall’applicazione. Viene utilizzata ed aggiornata automaticamente o programmaticamente per velocizzare l’accesso a entità di utilizzo frequente o in sola lettura. Clicca qui se vuoi approfondire la gestione delle entità di In.de.



Entity Helper: è un componente che implementa servizi trasversali alla gerarchia delle entità in un’ottica AOP (Aspect Oriented Programming). Utilizza i servizi di riflessione avanzata delle entità di In.de e permette di realizzare servizi di locking e versioning generalizzato con poche righe di codice. Clicca qui se vuoi approfondire la gestione delle entità di In.de.


Entity Manager: è il motore che implementa le funzionalità ORM di Instant Developer. Può essere paragonato ad Hybernate, tuttavia è molto più leggero e flessibile. E’ nativamente collegato con i componenti UI dell’applicazione e mette a disposizione un meccanismo di riflessione avanzato che permette di sviluppare servizi trasversali alla gerarchia delle entità con una logica AOP (Aspect Oriented Programming). Clicca qui se vuoi approfondire la gestione delle entità di In.de.


Defined Entities: sono le entità vere e proprie gestite dall’ORM di In.de: ognuna di queste classi rappresenta un tipo di “documento” gestito dall’applicazione. Tramite In.de è possibile disegnarne le gerarchie in modo da istruire automaticamente l’Entity Manager a collegarle con le tabelle del database o i vari pannelli dell’interfaccia utente. Clicca qui se vuoi approfondire la gestione delle entità di In.de.


In Memory Database (IMDB): è un servizio applicativo che mette a disposizione un modo molto semplice per trattare dati direttamente in memoria, in stile LINQ. Invece che scrivere lunghe procedure di manipolazione di liste di oggetti, è sufficiente scrivere una semplice query visual code per ottenere un risultato immediato. Inoltre è possibile scrivere query miste DB-IMDB per spostare dati dal database in memoria a quello fisico con una sola istruzione.


Connection Pooling: è il servizio applicativo di gestione delle connessioni ai database. In.de solitamente utilizza il servizio di pooling messo a disposizione dall’application server, ma è possibile attivarne uno interno qualora il primo non sia soddisfacente. Alcune caratteristiche del pool di connessioni di In.de sono: il controllo della qualità della connessione prima del riutilizzo, l’annullamento di transazioni pendenti, la chiusura automatica dopo un periodo di inattività, ecc…


Connection Manager: le applicazioni web create con In.de non si interfacciano direttamente con i driver JDBC / ADO.NET, ma eseguono le query solo tramite classi di interfaccia che permettono di gestire in maniera più precisa la connessione. Ad esempio, gli errori nella gestione delle transazioni vengono identificati e risolti a livello di Connection Manager. Inoltre questo componente è in grado di gestire automaticamente il reperimento e il rilascio della connessione fisica al database, in modo da impedire errori di programmazione.

Multi database: grazie al Connection Manager è possibile collegarsi a un qualunque database. In.de supporta nativamente la maggior parte degli RDBMS attualmente sul mercato, fornendo la capacità di cambiare database target in maniera totalmente trasparente e senza conoscere alcun linguaggio SQL. Clicca qui per vedere l'elenco dei database supportati.



<<< Struttura del progetto e standard supportati

 

 

Indice del percorso

Struttura del progetto e standard supportati
Schema di funzionamento
Dov'è il mio codice?
La tecnologia RD
RD3 al microscopio