mercoledì 27 luglio 2011

Una piattaforma Enterprise Nuova Flex / Applicazioni Java EE

Pubblicato da Jean-Jacques Dubray

La scorsa settimana, Granito Data Services ha pubblicato il suo Enterprise Platform per la costruzione di Rich Internet Applications con Flex e Java EE nel back-end. L'intero quadro Granito DS è Open-Source e relased sotto la licenza LGPL v2.

Granito DS è composta da una struttura di sviluppo client (Tide) che porta i concetti JavaEE familiari al lato Flex: iniezione di dipendenza, gestione del contesto, l'autenticazione e accesso sicuro, la convalida di fagioli, ecc Si integra con tutti i server principali applicazioni JavaEE, quadri e JPA motori: JBoss, GlassFish, WebLogic, WebSphere, Tomcat e Jetty, Hibernate, EclipseLink, OpenJPA e DataNucleus. Inoltre è dotato di un efficiente Real-Time Module (Gravity), basato su implementazioni cometa, permettendo scalabile dati-push.

Abbiamo parlato con Frank Wolff, CEO e co-fondatore di DS Granito di understant le sue prospettive di Rich Internet Applications.

InfoQ: Stacks Enterprise Software e RIA in particolare, sono in rapida evoluzione con nuovi livelli di scalabilità, Mobilità, HTML5 ... come si fa Granito DS posizionarsi in questa evoluzione?

Frank: la scalabilità delle applicazioni Web è ottenuta principalmente attraverso il bilanciamento del carico in ambienti cluster. Il nuovo GraniteDS Enterprise Platform, che si basa attualmente su JBoss 5.1 (comunitario o EAP), è fornito in bundle con out-of-the-box supporto clustering (load-balancing e fail-over). Per altri application server (WebLogic, GlassFish, Tomcat, Jetty, ecc), il lavoro fatto per JBoss, consentendo di sessione e la replica di autenticazione su tutti i nodi del cluster, possono essere facilmente riutilizzati. Un altro aspetto della scalabilità è legato alle connessioni / gestione discussioni: GraniteDS utilizza servlet asincrono (noto anche come Cometa) per la messaggistica in tempo reale, consentendo la scalabilità notevolmente migliorato rispetto al classico, sincrono, modello servlet.

Mobilità è stata un problema per gli sviluppi Flex che è stato recentemente affrontato da Adobe con il nuovo Flex e Flash Builder versione 4.5. Esso permette in sostanza agli sviluppatori Flex per creare una skin specifica Flex che si adatta piccoli schermi di cellulari e compilare il loro Flex / Flash per Android / iOS piattaforme come applicazioni Air. Questa è una grande notizia (per iPhone / iPad sono ora supportate) ma si tratta con alcune limitazioni: l'applicazione è ancora un'applicazione Flash, in esecuzione in una macchina virtuale Flash, non ha l'aspetto di un vero nativo Android / iOS applicazione e non può sfruttare tutte le funzionalità native della piattaforma di destinazione. GraniteDS ha recentemente rilasciato a librerie native (Java / Objective-C) per superare queste limitazioni: si possono ora creare nativo Android / IOS applicazioni collegate a un server GraniteDS e lo scambio di dati in formato AMF3 (AMF3 è molto compatto formato di serializzazione binaria utilizzato con applicazioni Flex). Questo è ancora un work in progress (entrambe le librerie sono beta-software) ma offre già AMF3 remota per queste due piattaforme e linguaggi.

HTML5 è ben lungi dall'essere ancora pronta per le applicazioni di livello enterprise. La specifica non sarà completamente liberato prima della fine del 2012, i fornitori di browser Internet non sono pienamente d'accordo, prima un po 'e che non è pazzo pessimista a temere una nuova guerra del browser intorno a questa specifica: principali attori non sono d'accordo su uno dei primi passi del formato specifiche, video ... Beside problemi di compatibilità del browser, ben conosciuto da tutti gli sviluppatori HTML, attualmente non vi è scritto-safe, linguaggio compilato che viene fornito con HTML5: è necessario utilizzare l'attuale versione di JavaScript, che è una lingua molto limitata e debole quando si arriva a sviluppare grandi applicazioni lato client. Infine, non IDE vero è ancora disponibile per questo tipo di sviluppi (con l'eccezione di GWT, che utilizza un trucco piuttosto ingegnoso per aggirare questa lacuna: JavaScript è generato da codice Java). In confronto, il Flex / ActionScript3 / trio Flash Builder offre un ambiente di sviluppo vero e potente con assolutamente alcuna corrispondenza nel mondo HTML. Tuttavia, HTML5 è il suo modo e certamente rappresentano un grande cambiamento tecnologico e potente nell'ultimo decennio: GraniteDS prevede di rilasciare una libreria JavaScript per consentire alle persone la creazione di applicazioni HTML5 per connettersi ai server GraniteDS 'e sfruttare il formato AMF3, real- tempo di messaggistica e le funzioni avanzate di gestione dei dati presenti nella nostra piattaforma.

InfoQ: Persistenza ha fatto molta strada dai primi giorni di ORM a metà degli anni '90. JPA sembra essere la soluzione che tutti stavano cercando. Cosa ne pensi su di esso?

Frank: Uno degli obiettivi iniziali del GraniteDS stato quello di valorizzare tutte le caratteristiche dei motori JPA, a partire da lazy-loading e Hibernate. Durante i 5 anni di sviluppo GraniteDS, il pieno supporto JPA è stato esteso a tutti i principali motori: TopLink / EclipseLink, OpenJPA e DataNucleus. Supporto JPA GraniteDS 'è stato ampiamente utilizzato ed è maturo per molto tempo. Trasparente lazy-loading è disponibile anche attraverso il framework client Marea: pigro dati inizializzati possono essere automaticamente scaricati quando è il primo accesso sul lato client (tramite un'associazione Flex per esempio).

Più in generale, GraniteDS mira ad integrarsi con tutti i framework JavaEE principali e le caratteristiche: EJB3, Spring e JBoss / Seam, motori JPA, convalida Bean, ecc L'obiettivo principale è quello di rendere lo sviluppo Flex familiare agli sviluppatori Java, integrando con i loro quadri preferiti e concetti JavaEE replicare sul lato Flex (iniezione di dipendenza, sul lato client entity manager, autobus eventi con osservatori, ecc)

InfoQ: Protocolli bidirezionale in tempo reale o stanno diventando sempre più importante in RIA e applicazioni mobili.Come vede il futuro dei servizi remoti in un mondo Composite Application?

Frank: in tempo reale protocolli offrono nuove possibilità e interessanti per gli sviluppatori web e saranno sempre più utilizzati in questo decennio. Questo è ovviamente grande, perché l'esperienza degli utenti potranno beneficiare di questa evoluzione, consentendo alle persone di accedere ai propri dati e applicazioni da qualsiasi luogo, ma gli sviluppatori Web e fornitori quadro esigenza di affrontare due grandi sfide:

1. Scalabilità del server: non esiste una cosa come "push dati" in HTTP. L'applicazione client deve inviare una richiesta e la richiesta deve essere messa in pausa sul lato server, in attesa dei dati disponibili. Server devono gestire decine (o centinaia) di migliaia di connessioni simultanee persistente e il modello asincrono (standardizzato nel Servlet 3,0 specifica) sta aiutando molto per ridurre il consumo di risorse. Tuttavia, un'estensione del protocollo HTTP, che permette al cliente di agire come un server e il server di avviare una vera spinta dati al cliente sarebbe una grande evoluzione.

2. Congestione della rete: le reti cellulari sono ben lungi dall'essere pronto ad affrontare le applicazioni che richiedono più connessioni HTTP persistenti. Le API remoto utilizzato per creare applicazioni per smartphone deve offrire un modo di limitare il numero di connessioni aperte e dovrebbe contare su piattaforme specifiche meccanismi di notifica per la messaggistica in tempo reale per quanto possibile. Altrimenti, 3G (o 4G) le reti saranno completamente sopraffatti da queste nuove applicazioni.

La nostra piattaforma di sviluppo sia a conoscenza di questi problemi e, ad esempio, l'attuazione del nativo (Java / Objective-C) biblioteche mobili si sta prendendo cura di coda tutte le chiamate in remoto tramite una connessione univoca HTTP. Ma c'è ancora un sacco di lavoro e di studi da fare prima di raggiungere una soluzione remota generale e costante adatto per tutti i dispositivi di questo nuovo mondo di applicazioni composite.

Corso Java - Corsi Java - Corsi programmazione Java

Corso programmazione Android - Certificazione Android


Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.