Stack di tecnologie AEM

AEM utilizza la piattaforma Granite come base e la piattaforma Granite include, tra le altre cose, Java™ Content Repository.

chlimage_1-80

Granite

Granite è uno stack Open Web di Adobe che fornisce vari componenti, tra cui:

  • Un modulo di avvio applicazioni
  • Un framework OSGi in cui tutto è distribuito
  • Diversi servizi del compendio OSGi per supportare le applicazioni di costruzione
  • Un framework di registrazione completo che fornisce diverse API di registrazione
  • Implementazione dell’archivio CRX delle specifiche API JCR
  • Framework web Apache Sling
  • Parti aggiuntive del prodotto CRX corrente
NOTE
Granite viene eseguito come progetto di sviluppo aperto all’interno di Adobe: i contributi al codice, le discussioni e i problemi vengono effettuati da tutta l’azienda.
Granite è tuttavia non un progetto open-source. È basato su diversi progetti open-source (Apache Sling, Felix, Jackrabbit e Lucene in particolare), ma Adobe disegna una linea chiara tra ciò che è pubblico e ciò che è interno.

Interfaccia utente Granite

La piattaforma di progettazione Granite fornisce anche un framework di base per l’interfaccia utente. Gli obiettivi principali sono:

  • Fornire widget di interfaccia granulari
  • Implementa i concetti dell’interfaccia utente e illustra le best practice (rendering di elenchi lunghi, filtro di elenchi, CRUD di oggetti, procedure guidate CUD…)
  • Fornire un'interfaccia utente di amministrazione estensibile e basata su plug-in

Queste soluzioni rispettano i seguenti requisiti:

  • Rispetta "prima il cellulare"
  • Essere estensibile
  • Facile da ignorare

chlimage_1-81
GraniteUI.pdf

Ottieni file
L’interfaccia utente Granite:

  • Utilizza l’architettura RESTful di Sling
  • Implementa librerie di componenti destinate alla creazione di applicazioni web incentrate sui contenuti
  • Fornisce widget di interfaccia granulari
  • Fornisce un'interfaccia utente standard predefinita
  • Estensibile
  • È progettato sia per dispositivi mobili che per dispositivi desktop (rispetta prima il mobile)
  • Può essere utilizzato in qualsiasi piattaforma/prodotto/progetto basato su Granite; ad esempio, AEM

chlimage_1-82

Lato client e lato server

La comunicazione client-server nell’interfaccia utente Granite è costituita da ipertesti, non da oggetti, pertanto non è necessario che il client comprenda la logica di business

  • Il server arricchisce il HTML con dati semantici
  • Il client arricchisce l’ipertesto con hypermedia (interazione)

chlimage_1-83

Lato client

Questo utilizza un’estensione del vocabolario HTML, a condizione che l’autore possa esprimere la propria intenzione di creare un’app web interattiva. Questo approccio è simile a WAI-ARIA e microformati.

È costituito principalmente da una raccolta di pattern di interazione (ad esempio, l’invio asincrono di un modulo) interpretati da codici JS e CSS ed eseguiti sul lato client. Il ruolo del lato client è quello di migliorare il markup (dato come prezzo per l’hypermedia dal server) per l’interattività.

Il lato client è indipendente da qualsiasi tecnologia server. Se il server fornisce il markup appropriato, il lato client può svolgere il proprio ruolo.

Attualmente i codici JS e CSS vengono consegnati come Granite clientlibs nella categoria:

granite.ui.foundation and granite.ui.foundation.admin

Questi vengono forniti come parte del pacchetto di contenuti:

granite.ui.content

Lato server

Questa è formata da una raccolta di componenti sling che consentono all'autore di comporre un'app Web velocemente. Lo sviluppatore sviluppa i componenti, l’autore assembla i componenti come una web app. Il ruolo del lato server è quello di offrire al client il markup (prezzo conveniente per l'hypermedia).

Attualmente, i componenti si trovano nell’archivio Granite in:

/libs/granite/ui/components/foundation

Viene fornito come parte del pacchetto di contenuti:

granite.ui.content