L’innovazione alla base della Digital Transformation passa attraverso metodologie e piattaforme all’avanguardia che garantiscono tempi di risposta rapidi a un mercato in costante cambiamento.
Performance, flessibilità e scalabilità sono le prerogative dei progetti di trasformazione digitale, in aggiunta ad alcuni elementi fondamentali:
- progettazione user centered con un aumento del numero di touch point
- interfacce ad alta dinamicità
- servizi business fortemente interattivi
- messaggistica push
Questa evoluzione si avvale di strumenti affermatisi negli ultimi anni come performanti in termini di affidabilità, supporto e stabilità.
Jhipster si rivela un’ottima soluzione per lo strato “Backend service Engine”, fulcro e motore di questo tipo di progetti, concedendo massima libertà di personalizzazione ed estensione.
La sua natura interattiva e incrementale, affiancata alla modularità insita nei framework utilizzati, lo rendono un candidato valido per fornire al cliente soluzioni enterprise web e mobile basate su cloud.
Jhipster
Da ormai 4 anni Jhipster sta catturando l’interesse di decine di aziende ed è stato di recente premiato con il terzo posto ai JAX Innovation Award 2017 nella categoria “Most Innovative Contribution to the Java Ecosystem”.
Con Jhipster si può generare in qualche minuto un’applicazione web Angular, collegata out of the box con un backend REST Spring Boot. Sfruttando la metodologia agile, vengono integrati una serie di tool fondamentali per aumentare la produttività in fase di design, sviluppo, testing e delivery.
Non si tratta di un nuovo framework, ma di uno strumento che permette di inizializzare un progetto web scegliendo tra un set di tecnologie consolidate dell’ecosistema Java e del mondo delle Single Page Application.
Nessun ulteriore livello di astrazione quindi: solamente un workspace organizzato per integrare – secondo best practice condivise – strumenti affermati come Angular, Bootstrap, Spring Boot, Spring Security, Hibernate, EHCache, Swagger e molti altri ancora.
L’autenticazione, la gestione di utenti e ruoli, il monitoring e altre funzionalità di base sono presenti fin da subito nell’applicazione in una versione facilmente estendibile a seconda delle esigenze.
Jhipster Backend per Mobile e Single Page Application
Nelle applicazioni multi-touch point è necessario rendere fruibili i contenuti in modo efficiente, gestendo opportunamente caching, autenticazione, ruoli e permessi.
Le API REST generate con Jhipster possono essere sfruttate sia per semplici operazioni di amministrazione sia per fornire servizi e contenuti a applicazioni Mobile e Single Page Application.
Esporre le API a servizi terzi rende necessario documentarle in modo sistematico e comprensibile, utilizzando un vocabolario comune. Jhipster è integrato con Swagger, lo standard de facto per progettare, costruire e documentare servizi web REST.
Da tempo Intesys ha adottato Swagger per orientare lo sviluppo di tutti i componenti delle sue piattaforme verso un design di tipo Contract First. Questo approccio permette di documentare in modo consistente i servizi esposti, di disaccoppiare lo sviluppo di client e servizi e di isolare i componenti i cui contratti subiscono poche modifiche tra diverse applicazioni.
Enterprise ready
Un’occhiata veloce al technology stack mostra come la community abbia esteso le potenzialità del prodotto non solo a piccole applicazioni monolitiche pronte out-of-the box, ma, potenzialmente, anche a soluzioni enterprise su larga scala.
La struttura a componenti e l’introduzione di pattern come la dependency injection hanno garantito crescente popolarità di framework SPA come Angular e React (da poco disponibile in Jhipster in versione sperimentale), con vantaggi tangibili in termini di scalabilità, manutenibilità e testabilità del frontend.
D’altra parte, la modularità di Spring – e della sua più recente evoluzione Spring Boot – garantiscono grande versatilità rispetto alle moderne esigenze di business che richiedono, all’occorrenza, l’utilizzo di cache distribuite, configuration management, persistenza su database NoSQL e strumenti di monitoring.
Spring Cloud, Spring Integration, Consul, Hazelcast, Kafka, ELK sono tutte tecnologie abilitanti per scalare l’applicazione su ambienti distribuiti integrati in grado di gestire migliaia di richieste.
Jhipster predispone le configurazioni e, per integrarsi con questi strumenti, fornisce i file necessari per abilitare il deploy e lo scaling delle applicazioni in ambienti PaaS (Cloudfoundry, Heroku) o container based (Kubernetes, Openshift).