Assets sviluppo proxy

Adobe Experience Manager Assets utilizza un proxy per distribuire l'elaborazione per determinate attività.

Un proxy è un'istanza di Experience Manager specifica (e a volte separata) che utilizza i proxy worker come processori responsabili della gestione di un processo e della creazione di un risultato. Un lavoratore proxy può essere utilizzato per un'ampia gamma di attività. Nel caso di un proxy Assets, questo può essere utilizzato per caricare le risorse per il rendering all'interno delle risorse. Ad esempio, il lavoratore proxy IDS utilizza un server Adobe InDesign per elaborare i file da utilizzare in Assets.

Se il proxy è un'istanza Experience Manager separata, questo consente di ridurre il carico sulle istanze di authoring dei Experienci Manager . Per impostazione predefinita, Assets esegue le attività di elaborazione delle risorse nella stessa JVM (esternalizzata tramite Proxy) per ridurre il carico sull'istanza di creazione del Experience Manager .

Proxy (accesso HTTP)

Un proxy è disponibile tramite il servlet HTTP quando è configurato per accettare processi di elaborazione in: /libs/dam/cloud/proxy. Questo servlet crea un processo di sling dai parametri inseriti. Questo viene aggiunto alla coda di processo del proxy e collegato al lavoratore proxy appropriato.

Operazioni supportate

  • job

    Requisiti: il parametro jobevent deve essere impostato come una mappa di valore serializzata. 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 di 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 viene trovato.

curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
    http://localhost:4502/libs/dam/cloud/proxy

Proxy Worker

Un lavoratore proxy è 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.

NOTA

Il lavoratore deve implementare sling JobProcessor per essere riconosciuto come lavoratore proxy.

API client

JobService è disponibile come servizio OSGi che fornisce metodi per creare processi, rimuovere processi e ottenere risultati da tali processi. L'implementazione predefinita di questo servizio (JobServiceImpl) utilizza il client HTTP per comunicare con il servlet proxy remoto.

Esempio di utilizzo delle 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);

Configurazioni Cloud Service

NOTA

La documentazione di riferimento per l'API proxy è disponibile in com.day.cq.dam.api.proxy.

Le configurazioni proxy e proxy del lavoro sono disponibili tramite configurazioni di servizi cloud accessibili dalla console Assets Strumenti o in /etc/cloudservices/proxy. Ogni lavoratore proxy deve aggiungere un nodo in /etc/cloudservices/proxy per i dettagli di configurazione specifici del lavoratore (ad esempio, /etc/cloudservices/proxy/workername).

NOTA

Esempio di utilizzo delle 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");

Sviluppo di un Proxy Worker personalizzato

Il lavoratore proxy IDS è un esempio di un lavoratore proxy Assets già fornito out-of-the-box per esternalizzare l'elaborazione delle risorse InDesign.

È inoltre possibile sviluppare e configurare il proprio Assets lavoratore proxy per creare un lavoratore specializzato per l'invio e l'outsourcing delle attività di Assets elaborazione.

Per impostare un lavoratore proxy personalizzato è necessario:

  • Configurare e implementare (utilizzando Sling eventing):

    • un argomento del processo personalizzato
    • un gestore eventi di processo personalizzato
  • Quindi utilizzate l'API JobService per:

    • invio del processo personalizzato al proxy
    • gestire il lavoro
  • Se desiderate utilizzare il proxy da un flusso di lavoro, dovete implementare un passaggio esterno personalizzato utilizzando l'API WorkflowExternalProcess e l'API JobService.

Nel diagramma seguente e nei passaggi viene descritto come procedere:

chlimage_1-249

NOTA

Nei passaggi seguenti, gli equivalenti InDesign sono indicati come esempi di riferimento.

  1. Viene utilizzato un processo Sling, pertanto è necessario definire un argomento del processo per il caso d'uso.

    Ad esempio, vedere IDSJob.IDS_EXTENDSCRIPT_JOB per il lavoratore proxy IDS.

  2. Il passaggio esterno viene utilizzato per attivare l’evento e quindi attendere che sia terminato; questo viene fatto tramite un sondaggio sull'ID. Per implementare le nuove funzionalità è necessario sviluppare un proprio passaggio.

    Implementate un WorkflowExternalProcess, quindi utilizzate l'API JobService e l'argomento del processo per preparare un evento di processo e inviarlo a JobService (un servizio OSGi).

    Ad esempio, vedere INDDMediaExtractProcess.java per il lavoratore proxy IDS.

  3. Implementare un gestore di processi per l’argomento. Questo gestore richiede lo sviluppo in modo che esegua l'azione specifica e sia considerato come implementazione del lavoratore.

    Ad esempio, vedere IDSJobProcessor.java per il lavoratore proxy IDS.

  4. Utilizzare ProxyUtil.java in dam-commons. Questo consente di inviare i processi ai lavoratori utilizzando il proxy DAM.

NOTA

Ciò che il framework proxy Assets non fornisce è il meccanismo del pool.

L'integrazione InDesign consente l'accesso a un pool di InDesign server (IDSPool). Questo pool è specifico dell'integrazione InDesign e non fa parte del framework proxy Assets.

NOTA

Sincronizzazione dei risultati:

In caso di n istanze che utilizzano lo stesso proxy, il risultato dell'elaborazione rimane 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 processo. Il proxy ottiene semplicemente il lavoro e mantiene il risultato pronto per essere richiesto.

In questa pagina