Adobe Experience Manager (AEM) Assets uses:
- A proxy to distribute the load of certain processing tasks. A proxy is an AEM instance that communicates with a proxy worker to fulfil a specific task, and other AEM instances to deliver the results.
- A proxy worker to define and manage a specific task.
These can cover a wide variety of tasks; for example, using an InDesign Server to process files.
To fully upload files to AEM Assets that you have created with Adobe InDesign a proxy is used. This uses a proxy worker to communicate with the Adobe InDesign Server, where scripts are run to extract metadata and generate various renditions for AEM Assets. The proxy worker enables the two-way communication between the InDesign Server and the AEM instance(s) in a cloud configuration.
Adobe InDesign comes as two products:
This allows you design page layouts for print and/or digital distribution.
- InDesign Server
This engine enables you to programmatically create automated documents based on what you have created with InDesign. It operates as a service offering an interface to its ExtendScript engine.
The InDesign Server can be integrated with AEM Assets so that files created with InDesign (.indd) can be uploaded, renditions generated, all media extracted (for example, video) and stored as assets:
Previous versions of AEM were able to extract XMP and the thumbnail, now all media can be extracted.
A framework sends command script(s) to the InDesign Server via SOAP (Simple Object Access Protocol).
This command script will:
- Retrieve the .indd file.
- Execute InDesign Server commands:
- The structure, text and any media files are extracted.
- PDF and JPG renditions are generated.
- HTML and IDML renditions are generated.
- Post the resulting files back to AEM Assets.
IDML is an XML-based format that renders everything in the InDesign file. It is stored as an compressed package using Zip compression.
See Adobe Press - InDesign Interchange Formats INX and IDML for further information.
If the InDesign Server is not installed or not configured, then you can still upload an .indd file into AEM. However the renditions generated will be limited to png and jpeg, you will not be able to generate html, idml or the page renditions.
To integrate the InDesign Server for use with AEM Assets and after configuring your proxy, you need to:
From the command line, start the server:
<ids-installation-dir>/InDesignServer.com -port 8080
This will start the server with the SOAP plugin listening on port 8080. All log messages and output are written directly to the command window.
If you want to save the output messages to a file then use redirection; for example, under Windows:
<ids-installation-dir>/InDesignServer.com -port 8080 > ~/temp/INDD-logfile.txt 2>&1
AEM Assets has a preconfigured workflow DAM Update Asset, that has several process steps specifically for InDesign:
This workflow is setup with default values that can be adapted for your setup on the various author instances (this is a standard workflow, so further information is available under Editing a Workflow). If you are using the default values (including the SOAP port), then no configuration is needed.
After the setup, uploading InDesign files into AEM Assets (by any of the usual methods) will trigger the workflow required to process the asset and prepare the various renditions. Test your configuration by uploading an .indd file into AEM Assets to confirm that you see the different renditions created by IDS under <your_asset>.indd/Renditions
This step controls the extraction of media from the .indd file.
To customize, you can edit Arguments tab of the Media Extraction step.
- ExtendScript library
This is a simple http get/post method library, required by the other scripts.
- Extend Scripts
You can specify different script combinations here. If you want your own scripts to be executed on the InDesign Server, save the scripts at /apps/settings/dam/indesign/scripts.
For information about Indesign scripts see:
Do not change the ExtendScript library.
This library provides the HTTP functionality required to communicate with Sling. This setting specifies the library to be send to the InDesign Server for use there.
The ThumbnailExport.jsx script run by the Media Extraction workflow step generates a thumbnail rendition in .jpg format. This rendition is used by the Process Thumbnails workflow step to generate the static renditions required by AEM.
You can configure the Process Thumbnails workflow step to generate static renditions at different sizes. Ensure that you do not remove the defaults, because they are required by the AEM Assets UI. Finally, the Delete Image Preview Rendition workflow step removes the .jpg thumbnail rendition, as it is no longer needed.
This creates an AEM page from the extracted elements. An extraction handler is used to extract data from a rendition (currently HTML or IDML). This data is then used to create a page using the PageBuilder.
To customize, you can edit the Arguments tab of the Page Extraction step.
- Page Extraction Handler
From the drop down list, select the handler that you want to use. An extraction handler operates on a specific rendition, chosen by a related RenditionPicker (see the ExtractionHandler API).
In a standard AEM installation the following is available:
- IDML Export Extraction Handler
Operates on the IDML rendition generated in the MediaExtract step.
- IDML Export Extraction Handler
- Page Name
Specify the name you want to have assigned to the resulting page. If left blank then the name is "page" (or a derivative if "page" already exists).
- Page Title
Specify the title you want to have assigned to the resulting page.
- Page Root Path
The path to the root location of the resulting page.
If left blank the node holding the asset's renditions will be used.
- Page Template
The template to use when generating the resulting page.
- Page Design
The page design to be used when generating the resulting page.
The worker resides on the proxy instance.
If the InDesign server and AEM run on different hosts or either or both these applications do not run on default ports, configure Day CQ Link Externalizer to set the host name, port, and content path for the InDesign server.
You can now enable parallel job processing for IDS.
First you need to determine the maximum number of parallel jobs (x) an InDesign Server can process:
- On a single multiprocessor machine, the maximum number of parallel jobs (x) that an InDesign Server can process is one less than the number of processors running IDS.
- When you are running IDS on multiple machines you need to count the total number of processors available (ie on all machines) then subtract the total number of machines.
To configure the number of parallel IDS jobs:
If there are multiple machines running InDesign Servers, add SOAP endpoints (number of processors per machine -1) for each machine.
You may choose to enable Blacklisting of IDS workers when working with pool of workers.
To do so, enable the "enable.retry.name" checkbox, under the com.day.cq.dam.ids.impl.IDSJobProcessor.name configuration, which enables IDS job retrials.
Also, under the com.day.cq.dam.ids.impl.IDSPoolImpl.name configuration, set a positive value for max.errors.to.blacklist parameter which determines number of job retrials before barring an IDS from the job handlers list
By default, after the configurable (retry.interval.to.whitelist.name) time in minutes the IDS worker is revalidated. If the worker is found online, it is removed from the blacklist
For InDesign Server integration with AEM Assets, use a multi-core processor because the Session Support feature necessary for the integration is not supported on single core systems.
You can change the default administrator credentials (user name and password) for accessing the InDesign server from your AEM instance without breaking the intergration with the InDesign server.