本页重点介绍以下主题:
在开始使用创作和发布服务器之前,您应该事先了解:
仅当您安装了AEM 6.4 Screens功能包2时,才提供此AEM Screens功能。 要获取此功能包,您必须联系 Adobe 支持人员并申请访问权限。您获得权限后,就可以从“包共享”下载它。
AEM Screens架构类似于传统的AEM Sites架构。 在AEM创作实例上创作内容,然后将其转发复制到多个发布实例。 AEM Screens设备现在可以通过负载平衡器连接到AEM发布场。 可以添加多个AEM发布实例以继续扩展发布场。
例如,AEM Screens内容作者在创作系统中为特定设备发出命令,该设备配置为与发布场交互,或者为AEM Screens内容作者发出命令,该设备获取有关配置为与发布场交互的设备的信息。
下图说明了创作和发布环境。
有五个体系结构组件,可促进此解决方案:
将内 容从创作复制到发布以供设备显示
** 将二进制内容从发布(从设备接收)还原为创作
** 通过特定REST API将从创作到发布的命令发送到
** 在发布实例之间发送消息以同步设备信息更新和命令
** 由发布实例作者通过特定REST API获取设备信息的轮询
标准复制代理用于复制Screens渠道内容、位置配置和设备配置。 这允许作者在发布渠道更新之前更新渠道的内容,并选择性地执行某种批准工作流程。 需要为发布场中的每个发布实例创建复制代理。
下图说明了复制过程:
需要为发布场中的每个发布实例创建复制代理。
将创建特定于自定义屏幕的复制代理,以将命令从创作实例发送到AEM Screens设备。 AEM Publish实例用作将这些命令转发到设备的中介。
这允许作者继续管理设备,例如发送设备更新,并从创作环境中拍摄屏幕截图。 AEM Screens复制代理具有自定义传输配置,如标准复制代理。
在很多情况下,命令仅用于一次发送到设备。 但是,在负载平衡的发布架构中,设备正在连接哪个发布实例尚未可知。
因此,创作实例会将消息发送到所有发布实例。 但是,只应将一条消息中继到设备。 要确保消息正确,必须在发布实例之间进行一些通信。 使用Apache ActiveMQ Artemis实现此目的。 每个发布实例都使用基于Oak的Sling发现服务放置在一个松散耦合的拓扑中,并且配置了ActiveMQ,以便每个发布实例都可以通信并创建单个消息队列。 Screens设备通过负载平衡器轮询发布场,并从队列顶部选取命令。
在许多情况下,在发出命令后,Screens设备中会出现某种响应,需要将其转发到创作实例。 为了实现此AEM 使用反向复制。
创作实例需要能够轮询设备以获取心率并了解已连接设备的运行状况。
设备ping负载平衡器并被路由到发布实例。 随后,发布实例会通过在api/screens-dcc/devices/static中提供的发布API(适用于所有活动设备)和api/screens-dcc/devices/<device_id>/status.json中针对单个设备公开设备的状态。
创作实例会轮询所有发布实例,并将设备状态响应合并到单个状态。 在作者上轮询的计划作业是com.adobe.cq.screens.impl.jobs.DistributedDevicesStatiUpdateJob
,可以基于cron表达式进行配置。
注册仍源自AEM创作实例。 AEM Screens设备指向创作实例,并且注册已完成。
在创作环境中注册设备后,设备配置和渠道/计划分配将复制到AEM发布实例。 然后,将更新AEM Screens设备配置,以指向AEM发布场前的负载平衡器。 这是一次性设置,在Screens设备成功连接到发布环境后,它可以继续接收来自创作环境的命令,而且从来不需要将Screens设备直接连接到创作环境。
了解AEM Screens中作者和发布设置的体系结构设计后,请参阅为AEM Screens配置作者和发布 ,以获取更多详细信息。