BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

我最喜爱的10大Adobe Digital Enterprise Platform发布功能

| 作者 Ankit Agarwal 关注 0 他的粉丝 发布于 2011年11月24日. 估计阅读时间: 16 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

目录

需求

预备知识

本文假设您熟悉LiveCycle、Mosaic、Data Services、CQ和CRX。

需要的Adobe产品

用户水平

所有

最新的ES3版本(现在称为Adobe Digital Enterprise Platform (ADEP))包含出色的新功能。本文是一系列描述这些新功能的文章中的一篇。在未来几周,一些工程师将分享我们最喜爱的10大ADEP功能,以及使用它们的原因。我很高兴与您分享我最喜爱的10大功能。一些功能是对现有工具集的改进,而其他功能则是最新版本中新增的。一定要访问ADEP开发人员中心了解本文所列出功能的更多信息。

创作-发布拓扑结构

新的创作-发布拓扑结构使得很容易维护需要每秒更新的Web门户网站,比如新闻频道、体育频道和社交网站。以下是一组与此功能关联的新词汇:

  • 创作实例:创作和管理所有资产的实例。
  • 发布实例:在创作实例上创作并最终确定资产之后,只需单击一个按钮就可将它们发布到发布实例。此功能使最终用户或代理可轻松发布文件。
  • JCR:Java内容仓库(JCR)标准JSR 283指定一个与供应商独立且与实现独立的方式来在细粒度级别上双向访问内容仓库中的内容。
  • 分派器:分派器是一个安装在Web服务器上的模块。分派器实现负载平衡和缓存来为站点访问者优化性能。

参见下图,查看分派器的发布工作流(参见图1)。

图1. 分派器简化了创作并向最终用户发布内容的工作流。

图1演示了作者/内容所有者(左上角)如何通过分派器访问内容。作者请求发布某些内容(激活),这可由一个手动请求发起,或者由预先配置的自动触发器启动。对内容进行更改后,它们预览该内容,然后激活该内容。在这时,内容发布到发布实例。通过分派器访问内容的最终用户可以看到更新的内容。

分派器的缓存和负载平衡工具

ADEP的Customer Experience Solution包含一个名为分派器的负载平衡工具。分派器安装在Web服务器上。它是Day's CQ缓存和负载平衡工具。

缓存

分派器帮助实现快速和动态的环境。它用作一个静态HTML服务器的一部分,比如Apache,以实现以下目标:

  • 存储(或“缓存”)尽可能多的站点内容,采用静态网站形式
  • 尽可能少地访问布局引擎

当缓存时,分派器使用Web浏览器提供静态内容的能力。分派器将缓存的内容放在Web服务器的文档根中。由于此配置,分派器仅存储页面的HTML代码,它不会存储HTTP头部。

分派器有两个主要方法用于在对网站进行更改时更新缓存内容(参见图2)。

图2. 描述分派器用于更新缓存内容的两种方法的流程图。

这两种方法是:

  • 内容更新删除已更改的页面,以及与它们直接关联的文件。
  • 自动失效自动使在更新后可能过期的缓存部分失效。此方法实际上将相关的页面标记为过期,而不实际删除任何内容。

负载平衡

分派器通过两种方式执行负载平衡:

  1. 性能统计:分派器跟踪有关每个CQ实例处理文档的速度的内部统计数据。基于此数据,分派器评估哪个实例将在回答请求时提供最快的响应速度,然后保留该实例上必要的计算时间。
  2. 个性化的内容(粘滞性连接):粘滞性连接确保一个用户的文档全部在相同的CQ实例上创作。这在利用个性化的页面和会话数据时很重要。数据存储在实例上,所有来自相同用户的后续请求必须返回到该实例,否则数据会丢失。

轻松的集群设置

将两个节点集群化从未像这样轻松过。输入其他集群的ADEP-Experience Services服务器实例的IP/主机名,然后在后续字段中输入用户名和密码并单击Join。然后使用现已加入集群的存储库准备CRX集群。这种类型的集群称为Shared Nothing clustering。在此配置中,CRX存储的所有3个元素都保存在每个实例中并通过网络同步。不使用任何共享存储。CRX存储的3个实例是:

  1. 工作区存储包含存储库中所有工作区的内容,除大型二进制文件。
  2. 数据存储包含大型二进制文件。
  3. 日志包含CRX在第一次记录想要的变更时写入的数据。

集群的其他变体包括共享数据存储和日志(参见图3)。

图3. 在Join Cluster部分中所提供的字段中提供集群主URL。

OSGi container

OSGi容器

OSGi(也称为Java动态模块系统)定义开发和部署模块化应用程序和库的体系结构。OSGi容器允许您将应用程序分解为各个模块(具有附加元信息的jar文件,在OSGi术语中称为程序包)并管理它们之间的交叉依赖关系。

这些服务和契约提供了一个体系架构,使各个元素可动态发现彼此以便协作。OSGi框架提供了这些程序包的动态加载/卸载、配置和控制——无需重新启动。

此体系结构允许您使用应用程序特定的模块扩展Sling。Sling以及CQ5使用OSGi(Open Services Gateway initiative,开放服务网关计划)的Apache Felix实现并基于OSGi服务平台(参见图4)。

图4. Sling构建于Apache Felix内的OSGi框架之上。

RIA内容

RIA内容的强大功能支持:

  • 在存储库中创建文件夹和文件。
  • 支持通过Fiber模型进行部署。然后可使用LC Content Assembler和/或LC Content API,使用与Fiber模型实体对应的对象在JCR存储库中执行CRUD/搜索。
  • 支持通过Java类进行部署(Java Bean)。然后可使用LC Content Assembler和/或LC Content API,使用与该类对应的对象在JCR存储库中执行CRUD/搜索。
  • 支持将POJO创建为nt:unstructured,用作CRX中的非结构化数据,而不是强类型节点。
  • 提供注册自定义处理函数的能力,这些处理函数可在存储库上执行CRUD之前和之前调用。这些处理函数基于节点类型和事件类型。这些处理函数应该同步调用。
  • 通过向类型定义添加新属性,然后支持对这些扩展的属性执行CRUD/搜索,提供扩展Java类的能力。
  • 提供以实体属性为基础拆分数据的能力,以更好地构建和访问数据。

RIX和CRX系统的结构如下所示(参见图5)。

图5. LiveCycle内容、SpringSecurity和CRX之间的连接

如图5所示,LC内容包含:

  • LCContentAssembler:结合使用LC ContentAssembler和一个LCDS目标在CRX上执行CRUD/搜索。LC ContentAssembler使用RepositoryService和QueryService在JCR存储库上执行CURD/搜索。
  • QueryService:使用QueryService在一个JCR存储库上执行搜索。
  • RepositoryService:使用RepositoryService在一个JCR存储库上执行CRUD。
  • TypeRegistry:使用TypeRegistry持久化LC内容的类型信息。

无需编写任何代码的应用程序开发

直到现在,开发应用程序始终都涉及到编写代码。使用模型驱动的开发,您可以使用Flash Builder开发应用程序,只需编写极少的代码。下面的列表给出了在安装ADEP后Flash Builder中可用的重要功能:

  • 支持的SDK可在开发项目时直接从Experience Server检索。
  • 通道集配置自动从Experience Server检索,编译器参数也会更新。
  • 生成路径基于组件选择而自动生成,而且该列表是无限的。

使用Flash Builder,您可以拖放您希望在您应用程序中显示的字段(参见图6)。

图6. 拖放字段已将其添加到应用程序中。

插入字段后,您可以使用该界面配置它们(参见图7)。

图7. 根据需要更新字段属性。

当您运行应用程序时,字段会按预期显示,无需编码(参见图8)。

图8. 应用了格式的字段显示。

集成ADEP-Document Services服务器与ADEP-Experience Services服务器

ADEP-Document Services服务器与ADEP-Experience Services服务器集成,以实现对从CRX内配置Document Server的无缝配置支持。CRX和Document Server的集成过程只需单击一次鼠标。为了访问Document Server,可以输入Document Server URL、用户名、密码和一些其他项,然后单击Configure。将CRX与Document Server集成后,Document Server中的用户可访问CRX。来自CRX的用户可调用Document Server的不同服务,比如转换PDF、添加密码、使用表格,调用ReaderExtension和其他服务(参见图9)。

图9. 在提供的字段中输入Document Services设置。

Web内容管理工作流

工作流是ADEP中包含的一项非常有帮助的功能。它允许您创建一个自定义工作流或使用预定义的工作流来执行一个具体的流程。例如,CQ的一项关键应用是Web内容管理(CQ WCM),它支持您生成并发布页面到一个网站。此功能常常用于组织流程中,包括由各方参与者批准和签署等步骤。这些流程可表示为工作流,而工作流可在CQ内定义,然后应用与合适的内容页面。

工作流是一系列步骤。当一个工作流启动时,一个新工作流实例将与它的负载相关联。例如,在一个表格中提交的数据会加速特定的步骤。这类工作流可经历自动化流程步骤或手动参与者步骤,可遵循规则(以及可选的拆分和合并)。工作流也可触发容器子工作流。此外,您可以使用此功能调用Document Server端的服务。您可以从工作流中执行多项操作,从Document Server调用不同的服务,比如convertPDF、ReaderExtension、表格和加密等等(参见图10)。

图10. 定义工作流中的步骤。

单一登录(SSO)验证处理函数

单一登录(SSO)机制是如今企业领域的一项基本需求,因为一个组织内存在众多的用户界面。Adobe Granite SSO验证处理函数支持CA SiteMinder或IIS NTLM等单一登录系统。图从HTTP请求中提取用户id,忽略任何密码信息。它很容易配置,提供了以下功能:

  • 来自头部的SSO:从HTTP头部提取用户id
  • 来自Cookie的SSO:从cookie提取用户id
  • 来自请求参数的SSO:从请求参数提取用户id

配置单一登录服务(参见图11)。

图11. 输入Adobe Granite SSO验证处理函数的路径。

跨站点请求仿冒(CSRF)防御过滤器

ADEP-Document Services中包含的一项新功能设计用于预防跨站点请求仿冒(Cross Site Request Forgery,CSRF)。CSRF漏洞会在网站允许经过验证的用户执行敏感操作,但不验证该指定的用户是否调用了该操作时发生。跨站点请求仿冒(CSRF)是最常被利用的安全漏洞之一,跨站点脚本(XSS)和SQL注入也是如此。

直到ES2发布之后,跨站点请求仿冒(CSRF)默认是禁用的,用户需要在config.xml文件中进行手动更改。但在ADEP-Document Services,当系统引导时,Document server的默认主机和IP会输入到Allowed Referrer List中并激活CSRF。用户也可以查看、添加或删除HTTP和HTTPS端口的允许引用方列表。此外,在CSRF功能上也进行了一些最新的更改。例如,不会对GET请求执行CSRF检查,因为GET始终是安全的方法。另外,对空引用方的处理得到了更新,变得更加智能,还有其他许多新的防御措施(参见图12)。

图12. 在配置页面中设置允许的引用方。

延伸阅读

有关在Adobe Digital Enterprise Platform上开发内容和快速部署Customer Experience Solutions的更详细信息,请访问ADEP开发人员中心

另外,一定要阅读本系列的其他文章,了解Adobe Digital Enterprise Platform中其他受欢迎的新功能。

clip_image016

本作品依据Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License授权

查看原文:My top 10 Adobe Digital Enterprise Platform publishing features by Ankit Agarwal

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT