Architettura di Asset Compute Service overview
Asset Compute Service è basato sulla piattaforma Adobe I/O Runtime
senza server. Fornisce il supporto di Adobe Sensei Content Services per le risorse. Al client che richiama (è supportato solo Experience Manager come Cloud Service) vengono fornite le informazioni generate da Adobe Sensei che ha cercato per la risorsa. Le informazioni restituite sono in formato JSON.
Asset Compute Service può essere esteso creando applicazioni personalizzate basate su Adobe Developer App Builder. Queste applicazioni personalizzate sono Project Adobe Developer App Builder app headless ed eseguono attività quali l'aggiunta di strumenti di conversione personalizzati o la chiamata di API esterne per eseguire operazioni sulle immagini.
Project Adobe Developer App Builder è un framework per generare e distribuire applicazioni web personalizzate sull'Adobe I/O Runtime
. Per creare applicazioni personalizzate, gli sviluppatori possono sfruttare React Spectrum (toolkit dell'interfaccia utente di Adobe), creare microservizi, eventi personalizzati e orchestrare API. Consulta la documentazione di Adobe Developer App Builder.
Le basi su cui si basa l’architettura includono:
-
La modularità delle applicazioni, che contiene solo ciò che è necessario per una determinata attività, consente di separare le applicazioni l'una dall'altra e di mantenerle leggere.
-
Il concetto di runtime Adobe I/O senza server offre numerosi vantaggi: elaborazione asincrona, altamente scalabile, isolata e basata su processi, ideale per l'elaborazione delle risorse.
-
L’archiviazione cloud binaria fornisce le funzioni necessarie per archiviare e accedere singolarmente ai file di risorse e alle rappresentazioni senza richiedere autorizzazioni di accesso completo all’archiviazione, utilizzando riferimenti URL prefirmati. Accelerazione del trasferimento, memorizzazione nella cache CDN e co-localizzazione delle applicazioni di elaborazione con l'archiviazione cloud consentono un accesso ottimale ai contenuti a bassa latenza. Sono supportati sia i cloud AWS che Azure.
Figura: architettura di Asset Compute Service e modalità di integrazione con Experience Manager, archiviazione ed elaborazione dell'applicazione.
L’architettura è costituita dalle seguenti parti:
-
Un livello di orchestrazione e API riceve richieste (in formato JSON) che indicano al servizio di trasformare una risorsa di origine in più rappresentazioni. Le richieste sono asincrone e restituiscono con un ID di attivazione che è l’ID del processo. Le istruzioni sono puramente dichiarative e per tutto il lavoro di elaborazione standard (ad esempio, generazione di miniature, estrazione di testo) i consumatori specificano solo il risultato desiderato, ma non le applicazioni che gestiscono determinate rappresentazioni. Le funzionalità API generiche, come l'autenticazione, l'analisi e la limitazione della velocità, vengono gestite mediante il gateway API Adobe davanti al servizio e tutte le richieste indirizzate a Adobe I/O Runtime. Il routing dell’applicazione viene eseguito dinamicamente dal livello di orchestrazione. I client definiscono applicazioni personalizzate per particolari rappresentazioni, fornite con il proprio set di parametri univoci. L'esecuzione dell'applicazione può essere completamente parallelizzata in quanto si tratta di funzioni senza server separate nell'Adobe
I/O Runtime
. -
Applicazioni per l'elaborazione di risorse specializzate in determinati tipi di formati di file o rappresentazioni di destinazione. Concettualmente, un'applicazione è simile al concetto di pipe UNIX®: un file di input viene trasformato in uno o più file di output.
-
Una libreria di applicazioni comune gestisce le attività comuni. Ad esempio, scaricando il file di origine, caricando le rappresentazioni, segnalando gli errori, inviando gli eventi e monitorando. Questo design garantisce che lo sviluppo delle applicazioni sia semplice, in linea con il concetto di server-less, con interazioni limitate al file system locale.