Assets proxyontwikkeling

Adobe Experience Manager Assets gebruikt een volmacht om verwerking voor bepaalde taken te verdelen.

Een proxy is een specifieke (en soms aparte) Experience Manager-instantie die proxyworkers gebruikt als processoren die een taak afhandelen en een resultaat maken. Een volmachtsarbeider kan voor een grote verscheidenheid van taken worden gebruikt. In het geval van een Assets Deze proxy kan worden gebruikt voor het laden van elementen voor rendering binnen elementen. Bijvoorbeeld de IDS-proxyworker gebruikt een Adobe InDesign Server om bestanden te verwerken voor gebruik in middelen.

Wanneer de proxy een aparte Experience Manager -instantie wordt de belasting op de Experience Manager ontwerpinstantie(s). Standaard, Assets voert de taken voor middelenverwerking uit in dezelfde JVM (extern via Proxy) om de belasting op de Experience Manager ontwerpinstantie.

Proxy (HTTP-toegang)

Een volmacht is beschikbaar via de Server van HTTP wanneer het wordt gevormd om verwerkingstaken goed te keuren bij: /libs/dam/cloud/proxy. Deze servlet maakt een slingertaak van de geposte parameters. Deze wordt vervolgens toegevoegd aan de wachtrij van de proxytaak en verbonden met de desbetreffende proxyworker.

Ondersteunde bewerkingen

  • job

    Vereisten: de parameter jobevent moet als geserialiseerde waardekaart worden geplaatst. Hiermee maakt u een Event voor een taakprocessor.

    Resultaat: Voegt een nieuwe taak toe. Als dit lukt, wordt een unieke taak-id geretourneerd.

curl -u admin:admin -F":operation=job" -F"someproperty=xxxxxxxxxxxx"
    -F"jobevent=serialized value map" http://localhost:4502/libs/dam/cloud/proxy
  • result

    Vereisten: de parameter jobid moet worden ingesteld.

    Resultaat: Geeft een JSON-representatie van het resultaatknooppunt zoals gemaakt door de taakprocessor.

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

    Vereisten: de parameter jobid moet worden ingesteld.

    Resultaat: Geeft een resource terug die aan de opgegeven taak is gekoppeld.

curl -u admin:admin -F":operation=resource" -F"jobid=xxxxxxxxxxxx"
    -F"resourcePath=something.pdf" http://localhost:4502/libs/dam/cloud/proxy
  • remove

    Vereisten: de parameter jobid moet worden ingesteld.

    Resultaten: verwijdert een taak indien gevonden.

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

Proxy Worker

Een proxyworker is een processor die verantwoordelijk is voor het afhandelen van een taak en het maken van een resultaat. De werknemers verblijven op de volmachtsinstantie en moeten uitvoeren Taakprocessor verkopen om te worden herkend als een proxyworker.

OPMERKING

De worker moet Taakprocessor verkopen om te worden herkend als een proxyworker.

Client-API

JobService is beschikbaar als dienst OSGi die methodes verstrekt om banen tot stand te brengen, banen te verwijderen en resultaten van die banen te krijgen. De standaardimplementatie van deze service (JobServiceImpl) gebruikt de HTTP-client om te communiceren met de externe proxyserver.

Hieronder ziet u een voorbeeld van API-gebruik:

@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);

Cloud Service configuraties

Zowel proxyconfiguraties als proxyarbeidersconfiguraties zijn beschikbaar via cloudservices die toegankelijk zijn via de Assets Gereedschappen console of onder /etc/cloudservices/proxy. Elke proxyworker moet een knooppunt toevoegen onder /etc/cloudservices/proxy voor arbeidersspecifieke configuratiedetails (bijvoorbeeld /etc/cloudservices/proxy/workername).

Hieronder ziet u een voorbeeld van API-gebruik:

@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");

Een aangepaste proxyworker ontwikkelen

De IDS-proxyworker is een voorbeeld van een Assets een proxyworker die al buiten de box is geleverd om de verwerking van InDesign-elementen uit te besteden.

U kunt uw ook ontwikkelen en configureren Assets proxy-worker om een gespecialiseerde worker te maken die uw Assets verwerkingstaken.

Als u uw eigen aangepaste proxyworker wilt instellen, moet u:

  • Instellen en implementeren (met gebruik van Gebeurtenis splitsen):

    • een aangepast taakonderwerp
    • een aangepaste taakgebeurtenishandler
  • Gebruik vervolgens de JobService-API om:

    • Verzend uw aangepaste taak naar de proxy
    • uw taak beheren
  • Als u de proxy uit een workflow wilt gebruiken, moet u een aangepaste externe stap implementeren met de WorkflowExternalProcess-API en de JobService-API.

In het volgende diagram en in de volgende stappen wordt gedetailleerd beschreven hoe u moet doorgaan:

chlimage_1-249

OPMERKING

In de volgende stappen worden equivalenten van InDesigns aangegeven als referentievoorbeelden.

  1. A Verkooptaak wordt gebruikt, zodat moet u een baanonderwerp voor uw gebruiksgeval bepalen.

    Zie als voorbeeld IDSJob.IDS_EXTENDSCRIPT_JOB voor de IDS-proxyworker.

  2. De externe stap wordt gebruikt om de gebeurtenis te activeren en dan te wachten tot dat wordt gebeëindigd; dit wordt gedaan door op identiteitskaart te pollen. U moet uw eigen stap ontwikkelen om nieuwe functionaliteit uit te voeren.

    Een WorkflowExternalProcess, dan gebruik de API JobService en uw baanonderwerp om een baangebeurtenis voor te bereiden en het te verzenden naar JobService (een dienst OSGi).

    Zie als voorbeeld INDDMediaExtractProcess.java voor de IDS volmachtsarbeider.

  3. Voer een baanmanager voor uw onderwerp uit. Deze manager vereist ontwikkeling zodat het uw specifieke actie uitvoert en beschouwd wordt als om de arbeidersimplementatie.

    Zie als voorbeeld IDSJobProcessor.java voor de IDS-proxyworker.

  4. Gebruik van ProxyUtil.java in dam-commons. Hiermee kunt u taken naar werknemers verzenden met de proxy voor moederdieren.

OPMERKING

Wat de Assets Het proxyframework biedt geen out-of-the-box-mechanisme.

De InDesign integratie maakt de toegang tot een pool van InDesign servers (IDSPool). Deze pooling is specifiek voor InDesign en geen deel uitmaken van de Assets proxyframework.

OPMERKING

Synchronisatie van resultaten:

Bij n instanties die dezelfde proxy gebruiken, blijft het verwerkingsresultaat bij de proxy. Het is de taak van de client (Experience Manager Auteur) om het resultaat aan te vragen met dezelfde unieke taak-id als die aan de client is gegeven bij het maken van een taak. De proxy haalt de taak gewoon uit en zorgt ervoor dat het resultaat klaar is om te worden aangevraagd.

Op deze pagina