Show Menu
ARGOMENTI×

Sviluppo proxy delle risorse

Risorse Adobe Experience Manager utilizza un proxy per distribuire l’elaborazione per determinate attività.
Un proxy è un’istanza 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 Risorse, questo può essere utilizzato per caricare le risorse per il rendering all’interno di Risorse. Ad esempio, il lavoratore proxy IDS utilizza un Adobe InDesign server 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 di Experience 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 authoring di 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 Strumenti risorse 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 del Proxy Worker di InDesign Server e configurazione dei servizi Cloud.
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.
Puoi anche sviluppare e configurare il tuo personale addetto proxy Risorse per creare un lavoratore specializzato per l’invio e l’outsourcing delle attività di elaborazione Risorse.
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 di 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 proxy Assets 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 (Experience Manager Author) 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.