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 processors die verantwoordelijk zijn voor het afhandelen van een taak en het maken van een resultaat. Een volmachtsarbeider kan voor een grote verscheidenheid van taken worden gebruikt. In het geval van een Experience Manager-middelenproxy kan dit worden gebruikt voor het laden van elementen voor rendering binnen Experience Manager-elementen. De IDS-proxyworker gebruikt bijvoorbeeld een InDesign Server om bestanden te verwerken voor gebruik in Experience Manager-middelen.
Wanneer de proxy een afzonderlijke Experience Manager-instantie is, wordt de belasting op de Experience Manager-ontwerpinstantie(s) hierdoor verminderd. Standaard worden in Experience Manager Elementen de elementverwerkingstaken in dezelfde JVM (extern via Proxy) uitgevoerd om de belasting op de Experience Manager-ontwerpinstantie te verminderen.
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.
job
Eisen: de parameter jobevent
moet als geserialiseerde waardekaart worden geplaatst. Dit wordt gebruikt om een Event
voor een baanbewerker te creëren.
Resultaat: Hiermee wordt een nieuwe taak toegevoegd. 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
Eisen: de parameter jobid
moet worden ingesteld.
Resultaat: Retourneert 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
Eisen: de parameter jobid moet worden ingesteld.
Resultaat: Retourneert een resource 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
Eisen: de parameter jobid moet worden ingesteld.
Resultaten: Hiermee wordt een taak verwijderd als deze wordt gevonden.
curl -u admin:admin -F":operation=remove" -F"jobid=xxxxxxxxxxxx"
http://localhost:4502/libs/dam/cloud/proxy
Een proxyworker is een processor die verantwoordelijk is voor het afhandelen van een taak en het maken van een resultaat. Workers bevinden zich op de proxyinstantie en moeten sling JobProcessor implementeren om te worden herkend als een proxyworker.
De worker moet sling JobProcessor implementeren om te worden herkend als een proxyworker.
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 dienst (JobServiceImpl
) gebruikt de cliënt van HTTP om met de verre volmachtsservlet te communiceren.
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);
Referentiedocumentatie voor de proxy-API is beschikbaar onder com.day.cq.dam.api.proxy
.
Zowel proxyconfiguraties als proxyarbeidersconfiguraties zijn beschikbaar via configuraties van cloudservices die toegankelijk zijn via de Experience Manager Assets Tools-console of onder /etc/cloudservices/proxy
. Van elke proxyworker wordt verwacht dat deze onder /etc/cloudservices/proxy
een knooppunt toevoegt voor specifieke configuratiegegevens van de worker (bijvoorbeeld /etc/cloudservices/proxy/workername
).
Zie Configuratie van de Worker van de Volmacht van de Server InDesign en Configuratie van Cloud Services voor 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");
De IDS volmachtsarbeider is een voorbeeld van een Experience Manager de volmachtsarbeider van Activa die reeds ver-van-de-doos wordt verstrekt om de verwerking van activa inDesign uit te besteden.
U kunt ook uw eigen Experience Manager de volmachtsarbeider van Activa ontwikkelen en vormen om een gespecialiseerde worker tot stand te brengen om uw Experience Manager de verwerkingstaken van Activa te verzenden en uit te besteden.
Als u uw eigen aangepaste proxyworker wilt instellen, moet u:
Instellen en implementeren (met gebruik van Gebeurtenis splitsen):
Gebruik vervolgens de JobService-API om:
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:
In de volgende stappen worden equivalenten van InDesign als referentievoorbeelden aangegeven.
Er wordt een Sling-taak gebruikt, dus u moet een taakonderwerp definiëren voor uw gebruiksscenario.
Zie IDSJob.IDS_EXTENDSCRIPT_JOB
voor de IDS-proxyworker als voorbeeld.
De externe stap wordt gebruikt om de gebeurtenis te activeren en dan te wachten tot dat wordt gebeëindigd; dit wordt gedaan door opiniepeilingen over de id . U moet uw eigen stap ontwikkelen om nieuwe functionaliteit uit te voeren.
Voer 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.
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.
Gebruik ProxyUtil.java
in dam-commons. Hierdoor kunt u taken naar werknemers verzenden met de proxy voor moederdieren.
Wat het Experience Manager de volmachtskader van Activa niet uit-van-de-doos verstrekt is het poolmechanisme.
De integratie van InDesign staat de toegang van een pool van indesign servers (IDSPool) toe. Deze pooling is specifiek voor de integratie van InDesign en maakt geen deel uit van het Experience Manager de volmachtskader van Activa.
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.