Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

What is the best Topology - For using document services capabilities of AEM Forms?

Avatar

Level 2

Env. AEM Forms 6.5v, On-Premise Setup.

 

One of our client is planning to use only document services (OutputService, FormsService and AssemblerService) capability of AEM Forms.

 

Where users will programmatically (Using APIs) access capabilities of AEM Forms server and will generate flat PDFs using XDP template and XML payload (coming via REST API - exposed as Sling Servlet) and will have almost no intervention through the user interface of AEM.

 

So suggestions needed for following:

- what topology to follow for the physical solution architecture?

- will it be author cluster fronted via load balancer or publish farm fronted via dispatcher?

- from Adobe doc I could see this - Topology for using document services capabilities for offline API-based processing

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

@hrai 

By limited users, I meant limited invocations to the Forms instance, so one author instance for PDF generations should suffice.

 

I don't have a reference implementation, but you can set a file location (accessible to the instance) variable as an absolute path in the servlet and append the template file name to this variable, before passing the argument to the method.

View solution in original post

7 Replies

Avatar

Employee Advisor

@hrai 

The document shared [0] should suffice the requirement if the customer plans to use only document services capability. You can run AEM Forms on OSGi in a single server environment, Farm, and clustered setups.

Please note that an author instance is intended for internal users, form designers, and developers. In contrast, the publish instance is intended for end users of form-based applications. Based on capacity planning, you can set up dedicated publish instances behind a load balancer for such a use case.

Hope this helps!

[0] - https://experienceleague.adobe.com/docs/experience-manager-65/forms/install-aem-forms/aem-forms-arch... 

Avatar

Level 2

Thanks for taking out time to respond. However I have few questions on this? Please see in-line. thanks. 

 

>> The document shared [0] should suffice the requirement if the customer plans to use only document services capability. 

 

so this doc talks of setting up 2 independent AEM Form Author instance. And request will land to any author based on load balancer? So what about the storing XDP template and marketing PDFs? how will we sync these 2 authors running independently. 

 

>> You can run AEM Forms on OSGi in a single server environment, Farm, and clustered setups.

 

are you referring author or publish here for our use case? if author then crx-clustering (active-active) is not possible as of now, right? 

 

>> Please note that an author instance is intended for internal users, form designers, and developers.

 

our client will use XDP template (stored in aem) and xml payloads coming via exposed Rest API as sling servlet so mostly internal users. I believe this could be then author setup for us. Only confusion is how to setup clustering?

 

Avatar

Employee Advisor

@hrai 

Please note that the topology shown in the document is just a sample architecture for the additional comments related to the load/PDFG service(for example - set up dedicated servers for specific capabilities ), quoted below.

So this setup is intended for internal users only, then a single user should also suffice (and it will save you from the overheads of handling multiple instances).

Also, for such a case, the repositories for each instance will be different and should have separate artifacts. However, there is an option to save templates/artifacts over a shared location that can be accessed from multiple instances.

So the setup topology should depend on the use-case implementation for each service and anticipated load. 

We can discuss this further, please raise a request for an expert session over the admin console.

 

Although AEM Forms allows you to set up and run all the functionalities from a single server, you should do capacity planning, load balancing, and set up dedicated servers for specific capabilities in a production environment. For example, for an environment using the PDF Generator service to convert thousands of pages a day and multiple adaptive forms to capture data, set up separate AEM Forms servers for the PDF Generator service and adaptive forms capabilities.

Avatar

Level 2

thanks for your reply. Please see in-line.

 

>> So this setup is intended for internal users only, then a single user should also suffice (and it will save you from the overheads of handling multiple instances).

 

I assume you meant - single instance here?

 

well technically some middleware will hit the AEM Sling Servlet where OutputService/ AssemblerService will be POSTed to generate the flat PDF.

 

>> Also, for such a case, the repositories for each instance will be different and should have separate artifacts.

 

well, we only want to use PDF generation capabilities (OutputService/ AssemblerService APIs) so therefore single instance of author setup should suffice, right?

 

>> However, there is an option to save templates/artifacts over a shared location that can be accessed from multiple instances.

 

If we want to use 2 authors (for higher throughput) So in case of 2 author infront of load balancer - we may use shared datastore? is that you referred here.

 

Avatar

Employee Advisor

@hrai 

Apologies for the Typo; I meant single server/instance.

 

Yes, if there are limited users and specific functionality is being used, then a single instance of author setup should suffice.

 

I was referring to placing the templates on a shared/FTP path and retrieving these templates using the Forms API. I haven't set up a shared datastore for multiple author instances, but if you want to use two instances for better throughput, you can also use external shared datastore options.

 

Avatar

Level 2

its been good conversations here, appreciate you taking time to respond. Few more clarity needed,

 

>> Yes, if there are limited users and specific functionality is being used, then a single instance of author setup should suffice.

 

i am bit confused here, there is no direct user interaction with AEM Forms.

 

As said technically some middleware will hit the AEM Sling Servlet where OutputService/ AssemblerService will be POSTed to generate the flat PDF. 

 

But I believe we are in agreement to have one author instance for PDF generations.

 

>> I was referring to placing the templates on a shared/FTP path and retrieving these templates using the Forms API.

 

Can you please guide how to achieve it with the Forms API? I did not get that.

 

Avatar

Correct answer by
Employee Advisor

@hrai 

By limited users, I meant limited invocations to the Forms instance, so one author instance for PDF generations should suffice.

 

I don't have a reference implementation, but you can set a file location (accessible to the instance) variable as an absolute path in the servlet and append the template file name to this variable, before passing the argument to the method.