Adobe Experience Manager Assets utilizza un proxy per distribuire l’elaborazione per determinate attività.
Un proxy è un'istanza di Experience Manager specifica (e talvolta separata) che utilizza i lavoratori proxy come processori responsabili della gestione di un processo e della creazione di un risultato. Un processo di lavoro proxy può essere utilizzato per un'ampia gamma di attività. Se è presente un Assets proxy che può essere utilizzato per caricare le risorse per il rendering in Assets. Ad esempio, il Processo di lavoro proxy IDS utilizza un Adobe InDesign Server per elaborare i file da utilizzare in Assets.
Quando il proxy è separato Experience Manager questo consente di ridurre il carico sul Experience Manager istanze di authoring. Per impostazione predefinita, Assets esegue le attività di elaborazione delle risorse nella stessa JVM (esternalizzata tramite Proxy) per ridurre il carico sulla Experience Manager istanza di authoring.
Un proxy è disponibile tramite HTTP Servlet quando è configurato per accettare i processi di elaborazione in: /libs/dam/cloud/proxy
. Questo servlet crea un processo sling dai parametri inviati. Questa viene quindi aggiunta alla coda del processo proxy e connessa al processo di lavoro proxy appropriato.
job
Requisiti: il parametro jobevent
deve essere impostata come mappa di valori serializzati. Viene utilizzato per creare un Event
per un processore di processi.
Risultato: aggiunge un nuovo processo. In caso di esito positivo, viene restituito un ID processo univoco.
curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
-F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
result
Requisiti: il parametro jobid
deve essere impostato.
Risultato: restituisce una rappresentazione JSON del nodo dei risultati creato dal processore del processo.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
resource
Requisiti: è necessario impostare il parametro jobid.
Risultato: restituisce una risorsa associata al processo specificato.
curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
-F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
remove
Requisiti: è necessario impostare il parametro jobid.
Risultati: se trovato, rimuove un processo.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
Un proxy worker è un processore responsabile della gestione di un processo e della creazione di un risultato. I lavoratori risiedono nell'istanza proxy e devono implementare Sling JobProcessor per essere riconosciuto come lavoratore proxy.
Il lavoratore deve implementare Sling JobProcessor per essere riconosciuto come lavoratore proxy.
JobService
è disponibile come servizio OSGi che fornisce metodi per creare processi, rimuoverli e ottenere risultati da tali processi. Implementazione predefinita del servizio (JobServiceImpl
) utilizza il client HTTP per comunicare con il servlet proxy remoto.
Di seguito è riportato un esempio di utilizzo dell’API:
@Reference
JobService proxyJobService;
// to create a job
final Hashtable props = new Hashtable();
props.put("someproperty", "some value");
props.put(JobUtil.PROPERTY_JOB_TOPIC, "myworker/job"); // this is an identifier of the worker
final String jobId = proxyJobService.addJob(props, new Asset[]{asset});
// to check status (returns JobService.STATUS_FINISHED or JobService.STATUS_INPROGRESS)
int status = proxyJobService.getStatus(jobId)
// to get the result
final String jsonString = proxyJobService.getResult(jobId);
// to remove job and cleanup
proxyJobService.removeJob(jobId);
Le configurazioni di lavoro proxy e proxy sono disponibili tramite le configurazioni dei servizi cloud accessibili dalla Assets Strumenti console o inferiore /etc/cloudservices/proxy
. Ogni processo di lavoro proxy deve aggiungere un nodo in /etc/cloudservices/proxy
per dettagli di configurazione specifici del lavoratore (ad esempio, /etc/cloudservices/proxy/workername
).
Consulta Configurazione di InDesign Server Proxy Worker e Configurazione Cloud Service per ulteriori informazioni.
Di seguito è riportato un esempio di utilizzo dell’API:
@Reference(policy = ReferencePolicy.STATIC)
ProxyConfig proxyConfig;
// to get proxy config
Configuration cloudConfig = proxyConfig.getConfiguration();
final String value = cloudConfig.get("someProperty", "defaultValue");
// to get worker config
Configuration cloudConfig = proxyConfig.getConfiguration("workername");
final String value = cloudConfig.get("someProperty", "defaultValue");
Il Processo di lavoro proxy IDS è un esempio Assets lavoratore proxy già preconfigurato per esternalizzare l’elaborazione delle risorse InDesign.
Puoi anche sviluppare e configurare Assets proxy worker per creare un worker specializzato per l'invio e l'esternalizzazione Assets elaborazione delle attività.
Per configurare un processo di lavoro proxy personalizzato è necessario:
Impostare e implementare (utilizzando l’evento Sling):
Quindi utilizza l’API JobService per:
Se desideri utilizzare il proxy da un flusso di lavoro, devi implementare un passaggio esterno personalizzato utilizzando l’API WorkflowExternalProcess e l’API JobService.
Il diagramma e i passaggi seguenti descrivono in dettaglio come procedere:
Nei passaggi seguenti, gli equivalenti InDesign sono indicati come esempi di riferimento.
A Processo Sling è utilizzato, pertanto devi definire un argomento di lavoro per il tuo caso d’uso.
Ad esempio, consulta IDSJob.IDS_EXTENDSCRIPT_JOB
per il processo di lavoro proxy IDS.
Il passaggio esterno viene utilizzato per attivare l’evento e quindi attendere che sia completato; ciò viene effettuato tramite il polling dell’ID. Per implementare nuove funzionalità, devi sviluppare un passaggio personalizzato.
Implementare un WorkflowExternalProcess
, quindi utilizza l’API JobService e l’argomento del processo per preparare un evento di processo e inviarlo al JobService (un servizio OSGi).
Ad esempio, consulta INDDMediaExtractProcess
.java per il processo di lavoro proxy IDS.
Implementa un gestore di processi per l’argomento. Questo gestore richiede sviluppo in modo che esegua l’azione specifica ed è considerato l’implementazione del processo di lavoro.
Ad esempio, consulta IDSJobProcessor.java
per il processo di lavoro proxy IDS.
Utilizza di ProxyUtil.java
in dam-commons. In questo modo è possibile inviare processi ai lavoratori utilizzando il proxy DAM.
Che cosa Assets il framework proxy non fornisce come predefinito il meccanismo di pool.
Il InDesign consente l'accesso a un pool di InDesign server (IDSPool). Questo pooling è specifico per InDesign e non fa parte del Assets framework proxy.
Sincronizzazione dei risultati:
In caso contrario, il risultato dell'elaborazione rimarrà con il proxy. È compito del client (Autore Experience Manager) richiedere il risultato utilizzando lo stesso ID processo univoco fornito al client al momento della creazione del lavoro. Il proxy esegue semplicemente il processo e mantiene il risultato pronto per essere richiesto.