Adobe Experience Manager Assets utilizza un proxy per distribuire l’elaborazione per determinate attività.
Un proxy è un'istanza Experience Manager specifica (e a volte separata) che utilizza i processi di lavoro proxy come processori responsabili della gestione di un lavoro e della creazione di un risultato. Un proxy worker può essere utilizzato per un'ampia varietà di attività. Nel caso di un proxy di Experience Manager risorse , può essere utilizzato per caricare le risorse per il rendering all’interno di Experience Manager risorse. Ad esempio, il proxy worker IDS utilizza un InDesign Server per elaborare i file da utilizzare in Experience Manager Assets.
Quando il proxy è un'istanza Experience Manager separata, questo aiuta a ridurre il carico sulle Experience Manager istanze di authoring. Per impostazione predefinita, Experience Manager Assets esegue le attività di elaborazione delle risorse nella stessa JVM (esternalizzata tramite Proxy) per ridurre il carico sull’ Experience Manager istanza di authoring.
Un proxy è disponibile tramite il servlet HTTP quando è configurato per accettare processi di elaborazione in: /libs/dam/cloud/proxy
. Questo servlet crea un lavoro sling dai parametri inviati. Questo viene quindi aggiunto alla coda del processo proxy e collegato al processo di lavoro proxy appropriato.
job
Requisiti: il parametro jobevent
deve essere impostato come mappa del valore serializzato. Viene utilizzato per creare un Event
per un processore di processo.
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 risultato creato dal processore del processo.
curl -u admin:admin -F":operation=result" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502 /libs/dam/cloud/proxy
resource
Requisiti: il parametro jobid deve essere impostato.
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: il parametro jobid deve essere impostato.
Risultati: Rimuove un processo se trovato.
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 riconosciuti come proxy worker.
Il processo di lavoro deve implementare sling JobProcessor per essere riconosciuto come proxy worker.
JobService
è disponibile come servizio OSGi che fornisce metodi per creare lavori, rimuovere lavori e ottenere risultati da tali processi. L'implementazione predefinita di questo servizio (JobServiceImpl
) utilizza il client HTTP per comunicare con il servlet proxy remoto.
Di seguito è riportato un esempio di utilizzo API:
@Reference
JobService proxyJobService;
// to create a new 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);
La documentazione di riferimento per l'API proxy è disponibile in com.day.cq.dam.api.proxy
.
Le configurazioni del proxy e del proxy worker sono disponibili tramite configurazioni di servizi cloud accessibili dalla console Experience Manager Risorse Strumenti o in /etc/cloudservices/proxy
. Ogni proxy worker deve aggiungere un nodo in /etc/cloudservices/proxy
per i dettagli di configurazione specifici del processo di lavoro (ad esempio, /etc/cloudservices/proxy/workername
).
Per ulteriori informazioni, vedere Configurazione del proxy worker di Indesign Server e Configurazione dei Cloud Services.
Di seguito è riportato un esempio di utilizzo 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 proxy worker IDS è un esempio di un processo di lavoro proxy Experience Manager Assets già fornito come predefinito per esternalizzare l’elaborazione delle risorse di Indesign.
Puoi anche sviluppare e configurare il tuo Experience Manager lavoratore proxy Assets per creare un processo di lavoro specializzato per inviare ed esternalizzare le tue Experience Manager attività di elaborazione Assets.
Per configurare un processo di lavoro proxy personalizzato è necessario:
Configurazione e implementazione (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 seguente e i passaggi descrivono come procedere:
Nei passaggi seguenti, gli equivalenti di Indesign sono indicati come esempi di riferimento.
Viene utilizzato un processo Sling, quindi devi definire un argomento di lavoro per il tuo caso d’uso.
Ad esempio, vedi IDSJob.IDS_EXTENDSCRIPT_JOB
per il proxy worker IDS.
Il passaggio esterno viene utilizzato per attivare l’evento e quindi attendere fino al termine; questo viene fatto tramite sondaggi sull'id. Devi sviluppare un tuo passaggio per implementare nuove funzionalità.
Implementa un WorkflowExternalProcess
, quindi utilizza l'API JobService e l'argomento del tuo lavoro per preparare un evento di lavoro e inviarlo al JobService (un servizio OSGi).
Ad esempio, vedi INDDMediaExtractProcess
.java per il processo di lavoro proxy IDS.
Implementa un gestore di processi per l’argomento. Questo gestore richiede lo sviluppo in modo che esegua l'azione specifica ed è considerato l'implementazione del processo di lavoro.
Ad esempio, vedi IDSJobProcessor.java
per il proxy worker IDS.
Utilizza ProxyUtil.java
in dam-commons. Questo consente di inviare i lavori ai lavoratori utilizzando il proxy dam.
Il meccanismo pool non è disponibile nel framework proxy di Experience Manager Assets.
L’integrazione di InDesign consente l’accesso a un pool di server indesign (IDSPool). Questo pool è specifico per l’integrazione di Indesign e non fa parte del framework proxy Experience Manager Assets.
Sincronizzazione dei risultati:
Con n istanze che utilizzano lo stesso proxy, il risultato dell'elaborazione rimane con il proxy. È compito del client (Experience Manager Autore) richiedere il risultato utilizzando lo stesso ID di processo univoco assegnato al client al momento della creazione del processo. Il proxy ottiene semplicemente il lavoro svolto e mantiene il risultato pronto per essere richiesto.