AEM Forms是部署到AEM(作为AEM包)的应用程序。 该包装称为AEM Forms附加包。 AEM Forms加载项包包含部署到AEM OSGi容器的服务(API提供程序)和部署到AEM OSGi的servlet或JSP(提供前端和REST API功能),JSP由Sling框架管理。 下图描述了此设置:
AEM Forms的架构包括以下组件:
核心AEM服务: AEM为部署的应用程序提供的基本服务。这些服务包括符合JCR的内容存储库、OSGI服务容器、工作流引擎、信任存储、密钥存储等。 这些服务可用于AEM Forms应用程序,但不由AEM Forms软件包提供。 这些服务是整个AEM堆栈的一个组成部分,而AEM Forms各组件使用这些服务。
Forms服 务:提供与表单相关的功能,如创建、组合、分发和存档PDF文档,添加数字签名以限制对文档的访问,以及对条形码表单进行解码。这些服务可通过在AEM中共同部署的自定义代码公开使用。
Web层:基 于常用和表单服务构建的JSP或Servlet,它们提供以下功能:
AEM Forms在OSGi上: AEM Forms在OSGi环境上是标准AEM作者或AEM发布,其上部署了AEM Forms包。您可以在单个服务器环境、场和群集设置中在OSGi上运行AEM Forms。 群集设置仅适用于AEM作者实例。
AEM Forms在JEE上: AEM Forms在JEE上是运行在JEE堆栈上的AEM Forms服务器。它具有AEM Author和AEM Forms加载项包以及在应用程序服务器上运行的单个JEE堆栈上共同部署的其他AEM FormsJEE功能。 您可以在单服务器和群集设置中在JEE上运行AEM Forms。 AEM Forms的JEE要求仅运行文档安全、流程管理以及升级到AEM Forms的LiveCycle客户。 以下是在JEE上使用AEM Forms的一些其他情况:
AEM FormsJEE还向AEM部分提供以下支助服务:
AEM Forms创作用户界面不支持创建记录文档(DOR)、PDF forms和HTML5Forms。 此类资产使用独立的Forms设计器应用程序进行设计,并单独上传到AEM Forms经理。 或者,对于JEE上的AEM Forms,表单可以设计为应用程序(在AEM Forms工作台中)资源并部署到JEE服务器上的AEM Forms。
AEM FormsOSGi和AEM FormsJEE都有工作流功能。 您可以在OSGi上为AEM表单快速构建和部署基本工作流,无需在JEE上安装AEM Forms全面的流程管理功能。 在AEM Forms的OSGi上以表单为中心的工作流的功能和AEM Forms在JEE上的流程管理功能方面存在一些差异。 在OSGi上开发和管理AEM Forms上以表单为中心的工作流,使用熟悉的AEM工作流和AEM收件箱功能。
下图显示了典型AEM Forms部署中使用的各种AEM Form服务器配置及其组件:
作者: 作者实例是在标准“作者”运行模式下运行的AEM Forms服务器。可以是AEM Forms在JEE上,也可以是AEM Forms在OSGi环境上。 它面向内部用户、表单和交互式通信设计人员和开发人员。 它启用以下功能:
发布:发 布实例是在标准发布运行模式下运行的AEM Forms服务器。Publish实例适用于基于表单的应用程序的最终用户,例如访问公共网站和提交表单的用户。 它启用以下功能:
处理: 在“作者”运行模式下运行的AEM Forms的实例,未将用户分配到表单管理器组。您可以将AEM Forms部署到JEE上,或将AEM Forms部署到OSGi上作为处理实例。 未分配这些用户是为了确保表单创作和管理活动不在处理实例上执行,并且仅在创作实例上执行。 处理实例启用以下功能:
处理来自发布实例的原始表单数据:这 主要是通过AEM工作流在数据到达时触发的处理实例实现的。工作流可以使用现成提供的表单数据模型步骤将数据或文档存档到适当的数据存储。
安全存储表单数据:处理为与用户隔离的原始表单数据提供防火墙后的存储库。作者实例上的表单设计者和发布实例上的最终用户都不能访问此存储库。
Adobe建议使用第三方数据存储来保存最终处理的数据,而不要使用AEM存储库。
存储和后处理从Publish实例到达的对应: AEM工作流执行相应字母定义的可选后处理。这些工作流可以将最终处理的数据保存到合适的外部数据存储中。
HTML工作区托管:处理实例承载HTML Workspace的前端。HTML工作区为相关的任务/组分配提供UI,供审阅和审批过程使用。
处理实例配置为在作者运行模式下运行,因为:
以下建议的AEM FormsJEE拓扑主要针对从JEE上的LiveCycle或旧版AEM Forms升级的客户。 Adobe建议在OSGi上使用AEM Forms进行新安装。 在JEE上新安装AEM Forms仅建议使用文档安全和流程管理功能。
AEM Forms客户计划只使用文档服务或文档安全功能,其拓扑类似于下面所示的拓扑。 此拓扑建议使用AEM Forms的单个实例。 如有必要,您还可以创建AEM Forms服务器的群集或群。 当大多数用户以编程方式访问AEM Forms服务器的功能并且通过用户界面进行干预达到最小时,建议使用此拓扑。 该拓扑对文档业务的批处理操作有一定帮助。 例如,使用输出服务每天创建数百个不可编辑的PDF文档。
尽管AEM Forms允许您从单台服务器设置和运行所有功能,但您应该执行容量规划、负载平衡,并为生产环境中的特定功能设置专用服务器。 例如,对于使用PDF Generator服务的环境,每天转换数千页并添加数字签名以限制对文档的访问,请为PDF Generator服务和数字签名功能设置单独的AEM Forms服务器。 它有助于提供最佳性能并独立扩展服务器。
AEM Forms客户计划使用AEM Forms流程管理功能,例如,HTML Workspace的拓扑可以与下面显示的拓扑类似。 JEE服务器上的AEM Forms可以是单台服务器或群集配置。
如果您是从LiveCycleES4升级,则此拓扑与您已具有的LiveCycle密切镜像,除了在JEE上将AEM作者内置到AEM Forms之外。 此外,对于执行升级的客户,群集要求没有变化。 如果您在集群环境中使用AEM Forms,则可在AEM 6.4Forms继续使用。 对于使用HTML Workspace的JEE的AEM Forms的全新安装,将AEM作者实例内置到JEE环境是另外一项要求。
表单数据存储是第三方数据存储,用于存储表单的最终处理数据和交互式通信。 这是拓扑中的可选元素。 如有必要,还可以选择设置处理实例并将其存储库用作最终的记录系统。
对于计划在JEE服务器上使用AEM Forms进行流程管理功能(HTML Workspace)的客户,建议使用此拓扑,而无需使用任何后处理、自适应表单、HTML5表单和交互通信功能。
AEM Forms客户计划使用AEM Forms数据捕获功能,例如自适应表单、HTML5Forms、PDF forms,其拓扑类似于下面显示的拓扑。 此拓扑还建议使用AEM Forms的交互通信功能。
您可以对上述拓扑进行以下更改/自定义:
AEM Forms客户计划使用AEM Forms数据捕获功能,例如自适应表单、HTML5Forms、PDF forms,其拓扑类似于下面显示的拓扑。 此拓扑还建议在OSGi功能上使用交互通信和以Forms为中心的工作流,例如,将AEM收件箱和AEM Forms应用程序用于业务流程工作流。
AEM Forms客户计划使用“监视文件夹”进行批处理,其拓扑类似于下面显示的拓扑。 拓扑显示群集环境,但您决定根据负载使用单个实例或AEM Forms服务器群。 第三方数据源是您自己的记录系统。 它用作监视文件夹的输入源。 拓扑还以打印文件的形式显示输出。 您还可以将输出内容存储到文件系统、通过电子邮件发送以及使用其他自定义方法使用输出。
AEM Forms客户计划只使用文档服务功能,其拓扑类似于下面所示的拓扑。 此拓扑建议在OSGi服务器上使用AEM Forms群集。 当大多数用户以编程方式(使用API)访问AEM Forms服务器的功能以及通过用户界面进行的干预达到最小时,建议使用此拓扑。 该拓扑在多种软件客户端场景中非常有用。 例如,多个客户端使用PDF Generator服务按需创建PDF文档。
尽管AEM Forms允许您从单台服务器设置和运行所有功能,但您应该执行容量规划、负载平衡,并为生产环境中的特定功能设置专用服务器。 例如,对于使用PDF Generator服务环境每天转换数千页和多个自适应表单以捕获数据,请为PDF Generator服务和自适应表单功能设置单独的AEM Forms服务器。 它有助于提供最佳性能并独立扩展服务器。