Show Menu
ARGOMENTI×

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 Assets proxy, questo può essere utilizzato per caricare le risorse per il rendering all’interno delle risorse. Ad esempio, il lavoratore proxy IDS utilizza un Adobe InDesign server per elaborare i file da utilizzare in Assets.
Se il proxy è un' Experience Manager istanza 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 mappa di valore serializzato. Viene utilizzato per creare un processore Event per un 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 un lavoratore proxy.
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

La documentazione di riferimento per l'API proxy è disponibile in com.day.cq.dam.api.proxy .
Sia le configurazioni di proxy che quelle di proxy worker 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 ).
Per ulteriori informazioni, consulta configurazione InDesign Server Proxy Worker e configurazione Configurazioni servizi cloud Cloud Services.
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 Assets proxy già fornito out-of-the-box per esternalizzare l'elaborazione delle risorse InDesign.
È inoltre possibile sviluppare e configurare il proprio Assets proxy worker 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:
Nei passaggi seguenti, gli equivalenti InDesign sono indicati come esempi di riferimento.
  1. Viene utilizzato un processo eventing-and-jobs.html Sling, per cui è necessario definire un argomento di processo per il caso d’uso.
    Ad esempio, vedere IDSJob.IDS_EXTENDSCRIPT_JOB per il proxy worker 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 proxy worker IDS.
  4. Fate uso di ProxyUtil.java in dam-commons. Questo consente di inviare i processi ai lavoratori utilizzando il proxy DAM.
Ciò che il framework Assets proxy non fornisce è il meccanismo del pool.
L' InDesign integrazione consente l'accesso a un pool di InDesign server (IDSPool). Questo pool è specifico dell' InDesign integrazione e non fa parte del framework Assets proxy.
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.