Assets proxyontwikkeling assets-proxy-development

Adobe Experience Manager Assets gebruikt een proxy om verwerking voor bepaalde taken te distribueren.

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. Als er een Assets -proxy is, kan dit worden gebruikt voor het laden van elementen voor rendering binnen Assets. Bijvoorbeeld, gebruikt de IDS volmachtsarbeidereen Adobe InDesign Server om dossiers voor gebruik in Assets te verwerken.

Wanneer de proxy een aparte Experience Manager -instantie is, wordt de belasting van de Experience Manager -ontwerpinstantie(s) verminderd. Standaard voert Assets de elementverwerkingstaken uit in dezelfde JVM (extern via Proxy) om de belasting van de Experience Manager -ontwerpinstantie te verminderen.

Proxy (HTTP-toegang) proxy-http-access

Een proxy is beschikbaar via de HTTP-server wanneer deze is geconfigureerd voor het accepteren van verwerkingstaken 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 supported-operations

  • job

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

    Resultaat: Voegt een nieuwe baan 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 geplaatst.

    Resultaat: Keert een vertegenwoordiging JSON van de resultaatKnoop terug zoals die door de baanbewerker wordt gecreeerd.

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

    Vereisten: De parameterjobid moet worden geplaatst.

    Resultaat: Keert een middel verbonden aan de bepaalde baan terug.

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

    Vereisten: De parameterjobid moet worden geplaatst.

    Resultaten: Verwijdert een baan als gevonden.

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

Proxy Worker proxy-worker

Een proxyworker is een processor die verantwoordelijk is voor het afhandelen van een taak en het maken van een resultaat. De arbeiders verblijven op de volmachtsinstantie en moeten uitstellen JobProcessoruitvoeren om als volmachtsarbeider worden erkend.

NOTE
De worker moet uitputtend JobProcessoruitvoeren om als volmachtsarbeider te worden erkend.

Client-API client-api

JobServiceis 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 dienst (JobServiceImpl) gebruikt de cliƫnt van HTTP om met verre volmachtsservlet te communiceren.

Hieronder ziet u een voorbeeld van API-gebruik:

@Reference
 JobService proxyJobService;

 // to create a 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 cloud-service-configurations

Zowel zijn de volmacht als de configuraties van de volmachtsarbeider beschikbaar via de configuraties van de wolkendiensten zoals toegankelijk van de Assets console van Hulpmiddelen of onder /etc/cloudservices/proxy. Elke proxyworker moet een knooppunt onder /etc/cloudservices/proxy toevoegen voor arbeidersspecifieke configuratiegegevens (bijvoorbeeld /etc/cloudservices/proxy/workername ).

NOTE
Zie {de configuratie van de Werknemer van de Volmacht van 0} InDesign Server šŸ”— en configuratie van Cloud Servicenvoor meer informatie.

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 developing-a-customized-proxy-worker

De IDS volmachtsarbeideris een voorbeeld van een Assets volmachtsarbeider die reeds uit-van-de-doos wordt verstrekt om de verwerking van de activa van het InDesign uit te besteden.

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

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

NOTE
In de volgende stappen worden equivalenten van InDesigns aangegeven als referentievoorbeelden.
  1. A het Verdelen baanwordt gebruikt, zodat moet u een baanonderwerp voor uw gebruiksgeval bepalen.

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

  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. Ontwikkel uw eigen stap om nieuwe functionaliteit uit te voeren.

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

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

  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 IDSJobProcessor.java voor de IDS-proxyworker als voorbeeld.

  4. Gebruik ProxyUtil.java in dammen en komma's. Hiermee kunt u taken naar werknemers verzenden met de proxy voor moederdieren.

NOTE
Wat het proxy-framework van Assets niet buiten de box biedt, is het poolmechanisme.
Dankzij de integratie van InDesign hebt u toegang tot een groep InDesign -servers (IDSPool). Deze pooling is specifiek voor InDesign -integratie en maakt geen deel uit van het Assets -proxyframework.
NOTE
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.
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2