ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在 Web Content Management 中使用 Rendering Portlet 进行内容展现

在 Web Content Management 中使用 Rendering Portlet 进行内容展现

原创 Linux操作系统 作者:genusBIT 时间:2009-04-07 15:03:45 0 删除 编辑

Rendering Portlet 简介

Rendering Portlet 是由 IBM Web Content Management 提供的,用于展现 Web 内容的 Portlet 组件。

IBM Web Content Management 是包含在 WebSphere Portal 的 Enable 和 Extend 版本中的 Web 内容管理组件,提供了在 Portal 环境下通过 Web 页面或 Portlet 创建、管理和发布 Web 内容的方式。使用 Web Content Management 可以创建和管理因特网、内部网、外部网以及 WebSphere Portal 站点的 Web 内容,还可以使用它来向用户展现 Web 站点中的 Web 内容,包括由文档管理器管理或由用户个性化生成的内容。使用 Web Content Management 可以使 Web 站点的设计、页面设计,和内容提供以及内容评阅的工作完全分开,能够让具有不同技能的人员独立工作,从而高效的创建和管理 Web 内容。

当网站开发人员使用 IBM Web Content Management 完成了网站开发工作后,可以使用 Web Content Management 提供的 Servlet、预呈现和 Rendering Portlet 三种展现方式来对 Web 内容进行发布。其中,Rendering Portlet 方式提供了一种在 Portal 页面中,以 Portlet 组件的形式对 Web Content Management 站点、站点区域、内容、内容元素和组件等进行展现的方法。 Rendering Portlet 包括部署在本地 Web Content Management 服务器中的 Local Rendering Portlet,和部署在远程的 WebSphere Portal 服务器中的 Remote Rendering Portlet

使用 Rendering Portlet 有着种种特有的优势,本文将予以详细的介绍。

Rendering Portlet 与其它展现的比较

在 Web Content Management(Web 内容管理,以下简称 WCM)中,为了对 Web 内容进行展现,需要首先完成对站点的设计和建造。其中包括构建 Web 站点的结构,编辑演示模板,匹配编写模板与演示模板,制作 Web 内容和组件,类型 ( 分类 , 类型 ),Web 站点组件访问权限的控制等工作。最后通过适当的展现方法将 Web 内容展现给最终用户。

WCM 提供了预呈现,WCM Servlet 和 Rendering Portlet 三种对内容展现的方式,每种内容展现的方式都有其各自的优缺点。

预呈现方式

预呈现的展现方式,是利用 WCM 提供的缓存机制,以自动或手动的方式对 Web 的站点内容进行快照,生成针对特定时间和特定用户的静态网页内容,以HTML 文件的方式保存在磁盘中。最终用户可以通过 WCM 或 Web 服务器直接访问。由于最终用户访问的是静态的网页内容,所以预呈现展现方式三种内容展现方式中,能够提供最快的访问速度的展现方式。

但是由于预呈现方式生成的是静态的网页文件,所以使用上会受一些特殊的限制:

  1. 采用预呈现方式, Web 内容所设置的访问权限控制将被忽略

    采用预呈现方式时,在 Web 内容项目上所设置的读取权限将不被进行处理。预呈现后用户所能访问的内容是以配置文件中所指定的用户为标准的。对 Web 内容访问时将忽略用户角色,返回的均为这个特定用户访问时的内容。

  2. 预呈现站点路径受到 Web Content Management 服务器所在的操作系统的限制

    由于预呈现是将 Web 站点以目录树和 HTML 文件的方式存储到磁盘中,所以在使用中会受到具体服务器文件系统的的限制。例如

    • 站点、站点区域和内容的命名必须符合所在文件系统的命名规范,不能包括文件系统中的非法字符。
    • 站点的路径结构需要符合所在文件系统的目录路径规则,不能超过文件系统的最大路径长度。如 Windows 的最长目录路径不能超过 255 个字符,Linux 的最长目录路径不能超过 1024 个字符。
  3. 不能对 JSP 组件进行预呈现

    JSP 组件是 WCM 提供的用于引用 JSP 文件的组件,JSP 文件(JavaServer Pages)是使用 Java 编程语言在 HTML 文件中插入 Java 程序段和 JSP 标记来生成动态网页。 WCM 可以使用 WCM 标记和 WCM 的 API 将 WCM 内容和组件加入到 JSP 文件中。

    由于 JSP 是服务器端执行的动态脚本,需要在用户请求时由服务器动态的执行。而预呈现后是生成静态的 Web 页面,所以无法对 JSP 组件进行呈现。

  4. 不能使用编写服务器进行预呈现

    实际的项目开发过程中,一般包括编写服务器,登台服务器和交付服务器。编写服务器用于内容的开发和编写,登台服务器用于聚集编写服务器对于发布网站的内容的修改并将修改数据交付给交付服务器展现给最终用户,详细的介绍请参考“网络拓扑结构”一章。

    因为在进行站点预呈现的过程中,Web 站点存储库是被上锁的,其它操作不能再对其进行访问。所以进行预呈现时,需要在专门的登台服务器上进行,不能在编写服务器上执行。

  5. 只能对站点和内容进行预呈现

    由于预呈现所使用的是 WCM 的缓存机制,而缓存模块所应用的客体只限定于站点或站点内容。所以只能对站点或内容进行预呈现,不能仅对单独的组件或元素进行展现。

    元素是 WCM 提供的用以存储或生成不同类型的 Web 内容,可以存储在站点、站点区域、内容项或组件中;组件用来存储单个元素,每种元素类型都有不同的类型组件。由于元素和组件不存在自己的上下文,所以不能对单独的组件或元素进行预呈现展现。

所以预呈现方式适用于具有简单需求的不需要个性化的应用,而不适用于动态的复杂的 Web 内容展现。

WCM Servlet 的方式

用户可以通过浏览器访问,以 URL 的方式调用 WCM Servlet,对 Web 站点或特定的 Web 内容或组件进行展现。

使用 WCM Servlet 的方式通过设置调用 Servlet 的不同参数来达到 Web 内容展现的目的。 URL 的模式如下所式:

http://[HOST]:[PORT]/wps/wcm/connect/[PATH]?srv=[SRV]&cache=[CACHE]&expires=[EXPIRES]

其中的参数包括:

  1. PATH,路径

    指向用于展现的站点、站点区域或内容的路径。在展现组件时,这是显示该组件的站点、站点区域或内容项的路径。

  2. SRV,渲染实体

    可以是组件、元素或 Web 页面。由于 Web 页面是由 PATH 参数隐含指定的,所以当展现对象为 Web 页面时,该参数可以省略。

  3. CACHE,缓存种类

    是一个可选参数,用于设定缓存的种类,缓存类型包括当前站点、当前会话、当前用户等。

  4. EXPIRES,过期时间

    同 CACHE 同时使用的可选参数,用于指定缓存的过期时间。有绝对过期时间和相对过期时间两种形式。

使用 WCM Servlet 方式,能够在呈现时动态的设定缓存种类和过期时间。但是所有对用户展现得 Web 内容都要由 WCM 提供。不能应用 WebSphere Portal 中所使用的主题、皮肤等公有设施。同时展现参数以 URL 参数的方式提供,当由人工手动输入时,可能会由输入错误导致展现失败。

Rendering Portlet 的方式

Rendering Portlet 是由 WCM 提供的用于展现 Web 内容的 Portlet 。使用 Rendering Portlet 可以在 Portal 页面中展现 WCM 的内容、组件和元素,是 WCM 客户使用最广泛的内容展现方式。

使用 Rendering Portlet 进行 Web 内容展现,允许 Web 内容、组件和元素在 WebSphere Portal 中进行展现。而且可以使用 WebSphere Portal 所提供的各种底层基础设施,同时在展现页面上可以直接使用现有的丰富的 Portlet 协助进行展现。这样在进行 Web 站点设计和建造过程中,开发人员可以将注意力集中于 Web 内容的展现上。而其它辅助功能可以直接使用其它 Portlet 来提供,细化了开发粒度,降低了开发风险。

与其它两种呈现方式相比,Rendering Portlet 具备其独特的优点:

  • 与 WebSphere Portal 天然的联合,
    1. 在页面中可以直接使用 WebSphere Portal 提供的丰富的 Portlet,如日历,天气等 Portlet 。
    2. 使用 WebSphere Portal 定义的主题和皮肤。简化了 Web 内容的美工设计。
    3. 使用 WebSphere Portal 提供的拖放功能。可以使用鼠标的托拽,无需编程,自由的定位 Rendering Portlet 在页面中的位置,从而改变 Web 内容在 Portal 页面上显示的位置。
    4. 强大的搜索功能。 Servlet 方式只能使用在网页中定义搜索表单,在表单中包含搜索元素的方式。而 Rendering Portlet 可以通过搜索元素,搜索中心或“搜索和浏览 Portlet ”的方式对 Web 站点进行搜索。
  • 使用 Portlet 的设置模式
    1. 通过 Rendering Portlet 提供的“编辑共享设置”和(或)“配置”模式,以图形化界面的方式设置所展现的站点、内容或组件 / 元素等属性。避免了使用 WCM Servlet 方式手工输入时可能导致的错误。
    2. 对最终用户完全屏蔽 Web Content Management 服务器的信息。同时还可以通过对 Rendeirng Portlet 的访问权限的控制,来间接的控制最终用户对 Web 内容的访问。拥有较高的安全性和灵活性。
  • 其它优点
    1. 可以和 WCM 编写服务器部署在同一个 WebSphere Portal 中(Local Rendering Portlet),也可以部署在单独的 WebSphere Portal 中(Remote Rendering Portlet),拥有较灵活的部署方式。
    2. 在 Rendering Portlet 中拥有比其它两种方法更为灵活、安全的设置方法。在使用 Rendering Portlet 进行站点呈现时,既可以使用存储在 WCM 中的属性,同时还可提供备用的演示模板作为没有匹配的演示模板时的的备用方案,还可以通过额外的概要文件来追加用户类别,从而更好的适应用户个性化需求的快速变化。
    3. Rendering Portlet 支持多个 Portlet 之间的交互,可以较容易的设置多个 Portlet 之间的协同,使每一个 Portlet 只展现单一的内容,减小了开发粒度,提高了开发质量。
    4. Rendering Portlets 使用实时的机制从 WCM 服务器中提取内容,对页面的使用者进行展现,可以适应动态的复杂的应用。

      Local Rendering Portlet 和 Remote Rendering Portlet 的比较

      本章节通过对两种 Rendering Portlet 的比较,可以使用户了解到如何根据实际情况选择适合种类的 Rendering Portlet 来进行内容展现。

      WebSphere Portal 提供了 Local Rendering Portlet 和 Remote Rendering Portlet 两种类型的 Rendering Portlet 。两种 Portlet 都可以用来展现 WCM 内容,所不同的是 Local Rendering Portlet 需要与展现内容所在的 WCM 应用部署在同一个 WebSphere Portal 实例上,而 Remote Rendering Portlet 可以与展现内容所在的 WCM 应用部署在不同的 WebSphere Portal 实例上。

      由于 Local Rendering Portlet 同 WCM 应用部署在同一个 WebSphere Portal 实例上,所以 Local Rendering Portlet 可以直接访问 WCM 中存储的数据,访问速度较快,网络访问路径较短。如图 1 所示:


      图 1. Local Rendering Portlet 示例
      图 1. Local Rendering Portlet 示例

      Remote Rendering Portlet 同 WCM 应用部署于不同的 WebSphere Portal 实例上,通过远程方式访问 WCM 应用实例。 Remote Rendering Portlet 使用凭证保险库槽或单点登陆的方式同远程 WCM 应用进行通讯,所以网络的访问路由较长,但是由于 WCM 应用运行在远程的服务器上,所有对交付服务器的资源占用较小。图 2 是 Remote Rendering Portlet 的访问原理图:


      图 2. Remote Rendering Portlet 示例
      图 2. Remote Rendering Portlet 示例

      Remote Rendering Portlet 可以部署在 WebSphere Portal 5.1.0.x 之后的版本上。这对于企业应用非常重要,由于交付服务器在升级时,旧的 WebSphere Portal 应用程序有可能要重写和测试,需要一个较长的周期。这样就可以首先升级编写服务器,而将新版本的 Remote Rendering Portlet 部署在旧版本的交付服务器上,使用升级后的新版本提供的功能。其它 WebSphere Portal 应用程序经过完全测试后再升级交付服务器。

      通过以上分析,Local Rendering Portlet 和 Remote Rendering Portlet 的主要区别总结为如表 1 所示:


      表 1. Remote Rendering Portlet 和 Local Rendering Portlet 的比较
      项目 Remote Rendering Portlet Local Rendering Portlet
      访问吞吐量 较小 较大
      授权数(价格) 较多 较少
      可部署于防火墙后 是(注:不启用由“WCM 服务器生成标准URL”)
      交付服务器的资源占用
      可单独升级 WCM
      管理复杂度
      网络使用量
      硬件 / 资源使用
      是否需要调校

      客户应该根据实际的应用环境,综合考虑以上因素,选择适当的 Rendering Portlet 类型来进行 WCM 内容的展现。

      网络拓扑结构

      首先,在建设网站时,一般会包含开发阶段和交付阶段,即最初网站开发人员会在一个开发环境上进行内容的编写和开发,随后再将内容直接复制到生产阶段并交付给用户,这样可以有效的区分出开发和生产阶段。当网站内容经常变动时,可以再增加一个登台阶段,登台阶段可以逐步聚集对网站的更改并将更改以批量方式交付给生产阶段;也可以逐步聚集多个编写服务器的内容,然后以辛迪加的方式复制给交付阶段,这样可以有效的减少交付阶段内容的频繁改动而造成的网站的频繁改动。

      使用 WCM 时的应用方案一般也都会包含这三个阶段,每个阶段通常会安装一个 WCM 应用实例,各阶段 WCM 实例之间的 Web 内容使用 WCM 提供的辛迪加方式进行复制,辛迪加方式是 WCM 应用程序用于将数据从 WCM 的一个实例传输到另一个实例的方法,通过辛迪加复制的方式可以实现将 WCM 内容从编写服务器到登台服务器,以及从登台服务器到交付服务器的复制,极大地方便了数据从开始的编写阶段到最终交付阶段的复制。下图是一个使用 Local Rendering Portlet 实现 WCM 内容交付的网络环境部署图:


      图 3. Rendering Portlet 网络环境部署示例
      图 3. Rendering Portlet 网络环境部署示例

      图 3 的部署实例中包含有三个阶段,编写阶段、登台阶段和交付阶段,分别对应为编写服务器、登台服务器和交付服务器,每个服务器上安装有一个 WCM 应用实例,Web 内容由编写服务器以辛迪加方式逐步的复制到交付服务器的 WCM 实例上。

      用户可以在编写服务器上开发建设网站所使用的基本资源,例如,共用的编写模板、演示模板、图片文件等资源。

      本应用方案还包括了测试环境,即上图中的测试服务器。当网站建设完成或者是对 Web 站点做了更改之后,可以使用测试环境进行交付前的测试,查看更改对于网站有什么样影响,当测试通过后,就可以做后续的更改并交付给客户了。

      通常为保护内部的 WCM 应用程序和资源,在登台应用程序和交付应用程序之间可以使用防火墙,这样可以阻止有权限访问 Web 站点的用户访问位于防火墙之后的编写应用程序和登台应用程序,有效的提高了网络的安全性。

      在进行实际的网站建设时,需要考虑到很多因素,例如网络环境、WebSphere Portal 安全性、系统稳定性、冗余性、容错性等等。所以客户需要具体情况具体分析以部署出做合理的网络结构。

      Rendering Portlet 的安装

      Local Rendering Portlet 的安装

      Local Rendering Portlet 可以用来展现与其部署在同一个的 WebSphere Portal 实例上的 WCM 内容,它随 WCM 产品一同安装。具体安装操作方式为运行 WCM 的配置任务 configure-wcm-authoring:

      Windows:  \config\WPSconfig.bat configure-wcm-authoring
      UNIX: /config/WPSconfig.sh configure-wcm-authoring
      			

      其中 为安装了 WebSphere Portal 的主目录,config 目录中存放了配置 WebSphere Portal 所用的配置文件以及配置工具。

      该配置任务在创建 WCM 的管理页面的同时也部署了编写 Portlet 以及 Local Rendering Portlet 。安装过程同时为 WebSphere Portal 的所有认证用户设置了对 Local Rendering Portlet 有特权用户的访问权限,即 WebSphere Portal 的认证用户具有对 Local Rendering Portlet 查看以及个性化设置的权限。在该安装任务完成之后,需要重新启动 WebSphere Portal 服务器使安装的生效。

      Remote Rendering Portlet 的安装

      Remote Rendering Portlet 可以部署在与需要展现的 WCM 内容的 WebSphere Portal 实例不同的 WebSphere Portal 服务器上,通过必要的凭证信息以远程方式访问位于不同服务器上的 WCM 服务。 Remote Rendering Portlet 可以安装部署在 5.1.0.x 版本之后的的 WebSphere Portal 服务器上,其安装方式与其他的 Portlet 非常类似,通过 WebSphere Portal 提供的 “ Web 模块” 管理页面进行安装。

      要安装 Portlet,用户需要有对该 WebSphere Portal 的管理员的权限。首先,Remote Rendering Portlet 的 war 包文件必须要存放于本地目录中,该 war 包文件一般存放于 WebSphere Portal 服务器的安装主目录中的 installableApps 路径下,该目录中存放了所有 WebSphere Portal 提供的 Portlet 的 war 包文件。 war 包文件为封装了 Portlet 应用程序的文件,包含了 Portlet 的描述性信息以及 Portlet 类和资源,安装 Portlet 过程中会将 war 包文件上传到服务器,解包并将所有资源放在服务器文件系统里。

      Rendering Portlet 安装完成之后,管理员用户可以通过 WebSphere Portal 提供的“ Portlet ”管理页面,根据实际应用情况为指定的组或用户制定对 Rendering Portlet 的访问权限,从而使有权限的用户可以使用 Rendering Portlet 。

      验证安装

      通过 WebSphere Portal 提供的“ Portlet ”管理页面可以查看 WebSphere Portal 服务器安装了哪些 Portlet,Rendering Portlet 安装完成之后,也可以在该管理页面中查询到。 Local Render Portlet 和 Remote Rendering Portlet 分别对应名称为“ Web 内容查看器”和“远程 Web 内容查看器的 Portlet ”。

      注明:当需要使用 Rendering Portlet 进行内容展现时,需要将 Local Rendering Portlet 或 Remote Rendering Portlet 加到 Portal 页面中。

      Rendering Portlet 的配置

      Rendering Portlet 配置方式

      同大多数 Portlet 一样,Rendering Portlet 也提供了三种配置方式:配置模式,编辑共享设置模式以及个性化设置模式。不同权限的用户可以执行的操作模式是不同的,不同的配置方式对所作的更改对于用户和 Portlet 的影响也是不同的。

      • 配置模式,该配置方式需要用户拥有对该 Rendering Portlet 管理员以上的权限,这种模式对 Rendering Portlet 所作的配置更改会对所有 WebSphere Portal 用户的所有 Portlet 实例生效,不管 Rendering Portlet 是加载在哪个 Portal 页面上。
      • 编辑共享设置模式,该配置方式需要用户拥有对该 Rendering Portlet 编辑者以上的权限,这种模式对 Rendering Portlet 所作的配置更改会使所有 WebSphere Portal 用户只对该 Rendering Portlet 实例生效,而不会影响到其他的 Rendering Portlet 实例。在用户使用编辑共享设置模式对 Portlet 做了配置之后,以配置模式对该 Portlet 实例所做的设置便不再生效了。
      • 个性化设置模式,该配置方式需要用户拥有对该 Rendering Portlet 特权用户权限,这种模式对 Rendering Portlet 所作的配置仅会对该 WebSphere Portal 用户的该 Rendering Portlet 实例生效,即其他的用户看不到这个用户对于这个 Rendering Portlet 实例所作的配置更改。

      下面的这个例子详细的描述了三种配置方式对于用户和 Rendering Portlet 产生的影响的区别。现有用户 userA、userB、userC,分别对 Rendering Portlet 具有管理员权限、编辑者权限和特权用户权限,这样的权限设置使得用户 userA 可以以配置模式更改 Rendering Portlet 的配置,userA 和 userB 可以以编辑共享设置模式更改 Rendering Portlet 的配置,而 userC 能够以个性化设置的模式对 Rendering Portlet 进行配置更改。这时我们再以 WebSphere Portal 管理员的身份创建两个 Portal 页面,Page1 和 Page2,设置页面的访问权限使得三个用户均具有对 Page1 和 Page2 页面的编辑者权限。在每个页面上分别加上两个 Rendering Portlet,Page1 上有 Portlet1-1, Portlet1-2 ; Page2 上为 Portlet2-1,Portlet2-2,如图 4 所示:


      图 4. Rendering Portlet 设置举例
      图 4-1. Rendering Portlet 设置举例

      图 4-2. Rendering Portlet 设置举例

      此时:

      如果使用用户 userA 对 Page1 上的 Portlet1-1 以配置模式进行 Portlet 配置,所作的更改会影响到 Page1 以及 Page2 上的所有的 Rendering Portlet 实例,用户 userA,userB 和 userC 都可以看到所作的更改;

      若以 userA 或 userB 用编辑共享设置的模式更改 Page1 页面上的 Portlet1-1 的设置,这种情况下 userA、userB 和 userC 可以看到仅在 Page1 的 Portlet1-1 上更改生效了,其他的 Portlet 都没有变化;

      第三种情况则是以 userC 用户更改 Page1 页面上 Portlet1-1 的个性化配置,此时,更改只会被 userC 看到,而且,更改只生效在 Portlet1-1 上面。

      配置步骤

      用户通过选择 Portlet 标题栏中的配置,编辑共享设置或个性化设置按钮,可以进入 Rendering Portlet 的配置页面,Local Rendering Portlet 的配置页面如图 5 所示:


      图 5. Rendering Portlet 的配置
      图 5. Rendering Portlet 的配置

      从上面的图 5 中可以看出 Local Rendering Portlet 的配置主要包括四个部分:

      • 选择在 Rendering Portlet 中展现的内容、库组件或者内容元素项

        在 Rendering Portlet 中可以展现内容、库组件或者是内容元素项。在选择展现不同类型的项时,所需要设置的展现上下文也是不同的:

        1. 展现内容项,选择展现的是 WCM 中的内容。该内容必须是已经发布的 WCM 内容,同时它的父站点中应当正确设置了展现时所需要的编辑模板和演示模式的映射,否则,我们需要必须为展现的内容在备用演示模板部分选择备用的演示模板;
        2. 展现库组件项,选择展现的是 WCM 库里的组件,可以是菜单组件、导航组件或图像组件等等。在展现组件时,需要展现的组件选择一个 WCM 内容作为展现时的上下文;
        3. 展现内容元素项,内容元素是 WCM 内容中包含的元素,所以在展现元素时首先需要选在元素所在的 WCM 内容,然后再选择要展现的内容中的元素。同样的,这里选择的 WCM 内容也是 WebSphere Portal 已经发布的内容。
      • Rendering Portlet 概要文件配置

        这个配置部分的功能是 WebSphere Portal 6.0.x 之后的版本新增加的,与 WCM 中的菜单组件配合使用。

        菜单组件是 WCM 提供的用于显示内容项中的元数据或者内容的组件,显示的内容项与菜单元素中配置的搜索条件相匹配,可以是站点区域、编写模板、类别等等。其中,在 Rendering Portlet 中配置站点区域或类别也可以作为菜单显示内容项时的匹配依据。此时用户需要在创建菜单时,在搜索的匹配条件中包含显示在 Rendering Portlet 中设置的展现站点区域或类别。

      • Portlet 间的链接配置

        Rendering Portlet 可以加载在一个或多个 Portal 页面上,实现不同的 Portlet 实例之间行为交互是非常必要的。例如,用户希望创建一个包含有两个 Rendering Portlet 的 Portal 页面,其中一个 Rendering Portlet 上展现菜单以显示某站点区域下的内容链接,另一个 Rendering Portlet 上展现某个具体的内容项的数据,当你希望点击第一个 Rendering Portlet 上不同的内容链接同时在第二个 Rendering Portlet 上展现相应的内容项数据时,就需要使用 Rendering Portlet 的链接配置来实现这种 Portlet 间的协同工作。该部分的设置包括两个部分:

        1. 广播链接目标,配置是否将当前 Portlet 的上下文广播给本页面或者是其他页面(可以在选择目标 Portal 页面列表中选择);
        2. 接收连接源,配置是否接收本页面或是其他页面广播的上下文。

        通过链接配置还可以实现使用 Local Rendering Portlet 进行内容预览。要实现这种方式的内容预览,用户需要首先创建一个 Portal 页面,在该页面上加载 Local Rendering Portlet ;然后需要配置使该 Local Rendering Portlet 使它可以接收来自“其他 Portlet 和此 Portlet ”的链接,同时在 WCM 的编辑 Portlet 的配置页面中的预览选项部分允许作者在新建的 Portal 页面中预览内容,这样用户就可以使用以 Portal 页面的方式进行内容预览了。

      • 其他

        通过配置 Portlet 显示标题可以更改 Rendering Portlet 的显示标题,以更友好的方式呈现给用户,不做配置时会使用默认的 Portlet 名称。

      Remote Rendering Portlet 所需做的额外配置

      Remote Rendering Portlet 除了需要作上述的配置以外,还需要设置访问该 Portlet 时所使用的访问控制凭证类型等信息,如图 6 所示:


      图 6. Remote Rendering Portlet 的特殊配置
      图 6. Remote Rendering Portlet 的特殊配置

      1. 凭证,用来控制对远程 Rendering Portlet 的访问,可以使用当前用户的凭证,此时用户对 Remote Rendering Portlet 以及 Portlet 展现的 WCM 内容或组件的访问权限取决于自身对它们所具有的权限,这种情况要选择LTPA类型;你也可以设置为使用凭证保险库槽,这时所有用户访问 Remote Rendering Portlet 时都是使用这个凭证,即它们对于这个 Remote Rendering Portlet 的访问权限都是取决于所使用的凭证保险库槽,这种情况需要用户输入凭证保险库槽的名称,WebSphere Portal 的凭证保险库槽是在 WebSphere Portal 管理页面中进行创建和管理的。
      2. Web Content Management 服务器主机,配置想要展现的远程服务器的主机及端口号;
      3. Web Content Management 上下文路径,配置 WCM 应用程序的上下文路径,这是由WAS为 WCM 企业应用程序定义并设置的,缺省值为 /wps/wcm ;
      4. Web Content Management Servlet 路径,配置 WCM Servlet 路径,这个值是通过 WCM 的配置文件 WCMConfigService.properties 中的 connect.defaultservletpath 来设置的,缺省值为 /connect ;
      5. Web Content Management 认证的 Servlet 路径,配置可靠的 WCM Servlet 路径,这个值通过 WCM 的配置文件 WCMConfigService.properties 中的 connect.secureservletpath 来设置,缺省值为 /myconnect ;
      6. Web Content Management 服务器生成的标准 URL,它确保 WCM 生成的 URL 是标准的,该选项缺省设置是选中的。

      使用 SSL 保证通信安全

      在实际网站建设应用中,为了保证 Remote Rendering Portlet 和 WCM 服务器之间数据传输的安全性,会对 Remote Rendering Portlet 和 WCM 服务器之间的通信使用加密的传输,SSL/HTTPS 。在这里我们对 WebSphere Portal 所使用的 DummyServerKey 和 ServeTrustFile 进行简要的介绍。

      在 WebSphere Portal 安装完成后,会生成 DummyServerKeyFile.jks 和 DummyServerTrustFile.jks 两个缺省密钥数据库文件。其中 DummyServerKeyFile.jks 用于存储 Portal 服务器的个人证书,DummyServerTrustFile.jks 用于存储受到信任的签署人证书。本文以这两个文件为例,说明在 Remote Rendering Portlet 和 WCM 服务器之间创建 SSL 连接的方法。应该指出,使用 WebSphere Portal 安装时产生的密钥是不安全的,为了提高安全性,您可以为通信创建自己的私钥和证书。

      使用 /bin 目录下的 IBM 密钥管理程序(ikeyman)打开 WCM 服务器中的密钥数据库文件 DummyServerKeyFile.jks 。抽取个人证书。并将导出的证书文件拷贝到 Rendering 服务器中;


      图 7. 导出服务器证书
      图 7. 导出服务器证书

      Rendering Portlet 服务器 中,使用 IBM 密钥管理程序打开 DummyServerTrustFile.jks,并使用证书导入 WCM 服务器的个人证书文件。


      图 8. 导入服务器证书
      图 8. 导入服务器证书

      完成了上述操作之后,就可以在 Remote Rendering Portlet 中设置使用 SSL 的方式和 WCM 服务器进行通讯了。在 WCM 服务器主机中填入 https 方式的主机地址,如 https://wcmserver.com 。

      以上只是保证了通信链路的安全性,如果用户需要对客户端(Rendering Portlet 服务器)的身份进行认证,还需要重复上述步骤,将 Rendering Portlet 服务器中存储于 DummyClientKeyFile.jks 中的个人证书导入到,位于 WCM 服务器中的 DummyClientKeyFile.jks 中。

      Rendering Portlet 应用实例

      Web 站点发布的内容一般都包括图片和文字信息,我们这里提供了一个例子详细的说明了如何使用 Rendering Portlet 发布 WCM 内容。

      作为示例,我们使用 WCM 创建了一个新闻站点,站点包含两个 Rendering Portlet,一个用来展现新闻文章列表,另一个展现当前用户选择阅读的新闻文章内容,如图 9 所示:


      图 9. 使用 Rendering Portlet 创建新闻站点
      图 9. 使用 Rendering Portlet 创建新闻站点

      首先,需要进入 WebSphere Portal 管理页面,新建一个 Portal 页面或者我们可以直接使用 WCM 默认安装时提供的内容预览页面,重新编辑页面的布局在页面上加载两个 Rendering Portlet(以 Local Rendering Portlet 为例),如图 10 所示:


      图 10. 添加新闻站点的 Rendering Portlet
      图 10. 添加新闻站点的 Rendering Portlet

      这时我们就可以开始配置两个 Portlet 了,在Rendering Portlet 的配置这一个章节中我们已经了解到,这个页面上的两个 Rendering Portlet 属于不同的 portlet 实例,而且 portlet 之间需要协同并表现出不同的行为,所以,在配置 Portlet 时需要采用编辑共享设置模式的配置方式。

      在 Portlet 设置之前,我们假设已经事先创建好了菜单组件以及新闻内容。对于页面左面的 Rendering Portlet 我们需要显示新闻菜单,并将该 Portlet 的链接广播到本页面;对于右侧用于显示新闻内容的 Portlet,在显示内容区域我们可以选择一个默认展现的新闻内容,最重要的是在链接部分允许该 Portlet 能够接收本身以及其他 Portlet 的链接。具体的 Portlet 的设置如图 11 所示:


      图 11. 新闻 Rendering Portlet 的设置
      图 11. 新闻 Rendering Portlet 的设置

      上述的操作完成之后,我们在点击左侧 Rendering Portlet 上显示的新闻链接时,在右侧的 Rendering Portlet 上就可以展现出相应的新闻内容了。

      Rendering Portlet 最优实践

      本章节就对 WebSphere Portal 的优化,Rendering Portlet 部署上的优化和 WCM 内容设计上的优化三个方面进行了讲解,详细的描述了使用 Rendering Portlet 的优化措施以使,WCM 展现环境工作在较好的状态。

      对 WebSphere Portal 的优化

      • 安装性能相关的补丁

        WebSphere Portal 的一些补丁是专门为了提高 Rendering Portlet 的性能而发布的,所以建议对这类补丁在经过测试后予以安装,如:

        PK32541: Allow PrincipalInformations to be cached (for Local Rendering Portlet) 
        PK32544: Allow PrincipalInformations to be cached (for Remote Rendering Portlet)
        			

        可以通过访问 http://www.ibm.com/support 获得最新的补丁列表

      • 对数据库进行调校

        Web 内容存储在 JCR 数据库中,对 WebSphere Portal 所使用数据库的访问速度,尤其是 JCR 数据库的访问速度是影响 WCM 存储速度的关键要素之一。因此需要对数据库进行调校使数据库工作在最佳状态。同时由于 Web 内容会随着对 WCM 的使用不断的变化,所以对数据库调较的工作需要周期性的持续进行。具体的操作需要参照所用数据库的使用手册。

      • 对 WCM、WebSphere Portal 和 LDAP 进行调校

        访问 Rendering Portlet,需要 WCM 的支持,以及间接的对 WebSphere Portal 和 LDAP 的访问。所以需要对 WCM、WebSphere Portal 和 LDAP 进行调校。

        对 WCM 的调校参见《 Official Web Content Management Tuning Guide 》。

        对 WebSphere Portal 的调校参见《 Official Portal Tuning Guide 》。

        对 LDAP 的调校参见具体 LDAP 的使用手册。

      • 及时关闭无意义的跟踪设置

        在系统发生故障时需要打开跟踪功能,获取了相关的信息以进行故障的诊断。但是在获取了运行信息后,一定要确保及时的关闭跟踪设置。因为开启跟踪,会占用大量的处理器时间,产生大量的 I/O 操作,严重影响服务器的性能。

      Rendering Portlet 部署优化

      • 在交付服务器上关闭版本功能

        由于在 WCM 安装完毕后,默认是启用了版本管理功能的。但通常在交付服务器中,是不会对 Web 内容进行编辑的,而是通过辛迪加的方式,从编写服务器中复制 Web 内容。所以我们可以通过关闭版本功能的方法来加快辛迪加的速度。所以建议在交付服务器上关闭版本功能。具体步骤如下:

        1. 使用文字编辑软件打开交付服务器中位于 /wcm/shared/app/config/wcmservices 路径下的 WCMConfigService.properties 文件
        2. 设置:
          versioningStrategy.AuthoringTemplate = nerver
          versioningStrategy.Component = nerver
          versioningStrategy.Content = nerver
          versioningStrategy.PresentationTemplate = nerver
          versioningStrategy.Site = nerver
          versioningStrategy.Taxonomy = nerver
          versioningStrategy.Workflow = nerver
          versioningStrategy.Default = nerver
          					

        3. 保存 WCMConfigService.properties 文件,并退出。
        4. 重启交付服务器。
      • 不要在本地 WCM 服务器上使用 Remote Rendering Portlet

        由于 Remote Rendering Portlet 是通过 HTTP 连接的方式同 WCM 服务器进行网络通信获取 Web 内容的,而 Local Rendering Portlet 是通过直接本地数据访问获取 Web 内容的。所以使用 Local Rendering Portlet 访问本地 WCM 服务器能有效的减少网络流量。在高负载的环境下尤其重要,严重时可能会造成服务器的挂起。

      • 启用 WCM 会话管理

        WCM 默认的为页面中的每一个 Rendering Portlet 创建一个会话。这样当大量用户访问具有多个 Rendering Portlet 的页面时,就会造成严重的性能问题。当有这种情况发生时,我们需要启动 WCM 会话管理服务,对会话进行管理,以保证当前对每个用户只有一个活动的会话。具体步骤可参考 WebSphere Portal 的信息中心,启用会话处理的章节。

      • 开启服务器的缓存功能

        在使用 Rendering Portlet 进行呈现的环境中,应该使用 WCM 高级缓存,来加速 WCM 内容的呈现。具体参见 WebSphere Portal 的信息中心中 Web 内容高速缓存配置一节。

        同时可以使用 Servlet 缓存来加速非个性化内容的展现,开启 Servlet 缓存的具体步骤如下:

        1. 确保 Dynacache 在 Web Application Server 中处于开启的状态。参见WebSphere Application Server 的信息中心中配置 Servlet 高速缓存一节;
        2. 定义 cachespec.xml 文件,用来指定被缓存的内容。参见 WebSphere Application Server 的信息中心中 cachespec.xml 文件一节;
        3. 备份 Rendering Portlet

          \installableApps 路径下对 ilwwcm-localrendering-portlet.war 和(或)ilwwcm-remoterendering-portlet.war 文件进行备份;

        4. 生成 Rendering Portlet 新的 war 包

          将 cachespec.xml 文件分别加入 ilwwcm-localrendering-portlet.war 和(或)ilwwcm-remoterendering-portlet.war 文件中;

        5. 在 WebSphere Portal 用新生成的 war 包,更新 Rendering Portlet ;
        6. [ 可选 ] 安装 Dynamic Cache Monitor. 参见 WebSphere Application Server 的信息中心中显示高速缓存信息一节。
      • 使用 Remote Rendering Portlet 时 WCM 主机的设定

        使用 Remote Rendering Portlet 时,可以选用 LTPA 和凭证保险库槽两种凭证方式用于向 WCM 服务器进行认证。当使用 LTPA 方式时,在设置 WCM 主机时一定要使用域名,这是因为 LTPA 工作时使用主机域名的方式进行工作,如果设置成 IP 地址时,将导致工作不正常;当使用凭证保险库槽的方式时,推荐使用 IP 地址作为输入。这样会减少确认主机的时间,提高 Rendering Portlet 的响应速度。

      • 升级优化

        由于 Remote Rendering Portlet 可以部署在低版本的 WebSphere Portal 上。这样,可以在 WebSphere Portal 交付服务器全面升级之前,升级后台的 WCM 服务器,尽快的使用 WCM 新版本带来的优势。

      • 在使用 Remote Rendering Portlet 预览时使用 URL 映射

        在 WCM 的预览选项中可以设定使用在 Remote Rendering Portlet 进行远程预览。建议使用 URL 映射机制对加载了 Remote Redering Portlet 的 Portal 页面,进行 URL 映射。虽然在通常情况下可以使用 Remote Rendering Portlet 的 WebSphere Portal URL 进行设定,但是这是不被保证的,而且不是用户友好的。所以为了提供固定的,用户友好的 URL 应该使用映射的 URL 的方式。具体方法参见 WebSphere Portal 的信息中心中 URL 映设一节

      以上一些对 WCM 部署时的优化措施,有些会在升级 WebSphere Portal 补丁的时候被覆盖掉。所以在每次升级后,需要对配置进行适当的检查。

      内容设计优化

      • 对内容和内容组件组件进行适当的授权

        适当的使用授权机制,来控制用户对 WCM 内容的访问权限,可以提高呈现的效率。同时不要使用概要文件来代替权限控制,因为这是不安全的和低效的。

        如果在 Web 内容展现的实际应用中,确实不需要个性化和权限管理,同时又希望使用 WebSphere Portal 提供的基础设施,可以考虑使用“预呈现 +Web Page Portlet ”的方式。即使用 WCM 中 Pre-Rendering 功能将站点预呈现为静态 HTML 站点,然后通过在 WebSphere Portal 中使用 Web Page Portlet 导入预呈现的 Web 内容来实现。

      • 对缓存的考虑

        尽量不要将可缓存的内容和不可缓存的内容放置在同一页面,以提高缓存的效率。同时不要对个性化内容进行缓存

      • 尽量使用概要文件代替个性化规则

        由于在 WCM 中使用个性化规则,需要较大的代价。所以在进行个性化的设计时,首先应该考虑使用 WCM 中的概要文件功能(关键词 , 类别),来代替个性化规则。

      • 设计自包含的展现单元

        在使用 WCM 的设计中。不是所有的设计内容和组件都适用于在 Rendering Portlet 呈现。使用 Rendering Portlet 进行呈现,在设计中尽量保持内容或组件是独立的,不依赖于其它的内容或组件。即要求在设计演示模板时,仅仅引用需要现实的内容。而其它诸如菜单组件,导航器组件等部分放置在其它 Rendering Portlet 中,通过链接广播的方式进行展现。

        其他使用注意事项

        • JSP 文件路径

          JSP 组件使用的 JSP 文件,当使用 Local Rendering Portlet 进行呈现时,需要放置在 LRP 的 WAR 路径下

          /installedApps/WCM_Local_ng_Portlet-name.ear/name.war

          使用 RRP 进行呈现时,需要将其放置在 WCM 的 WAR 路径下

          /installedApps/node-name/wcm.ear/ilwwcm.war

        • 类别选择树无法应用于 Local Rendering Portlet

          类别选择树由分类组件进行显示,它可以使用户能够选择要在个性化菜单中显示的类别,实现用户的个性化设置。在 Local Rendering Portlet 中可以显示登陆用户已选择和未选择显示的类别,但是由于用户在更新选择类别时请求的页面与加载 Local Rendering Portlet 的标准 Portal 页面不同,所以登陆用户在 Local Rendering Portlet 上无法实现用户选择类别的更新。

        • 显示路径信息

          在 WCM 中使用 pathcmpnt 标签来显示当前项的路径信息。由于在 Rendering Portlet 中和在 Servlet 中处理的方法不同,当使用 pathcmpnt 标签时,需要使用 Type="noprefixbase" 来代替标准参数 Type="base",使用 Type="noprefixservlet" 来代替标准参数 Type="servlet" 。

        • 关于接收链接源

          使用 Rendering Portlet 进行预览时,需要配置 Rendering Portlet 的接收链接源为“其它 Portlet 和此 Portlet ”,这样 Rendering Portlet 才能接收到来自预览的内容。

          使用页面导航等组件时,由于会产生 WCM 和 Rendering Portlet 之间的通信,同样需要将 Rendering Portlet 的接收链接源配置为“其它 Portlet 和此 Portlet ”。

        • 使用预呈现展现方式时的限制

          当预呈现作为默认的内容展现方式时,将不能使用 Local Rendering Portlet 进行呈现

        • 生产环境下使用 Remote Rendering Portlet

          在生产环境下为了保护服务器的安全,通常在使用 Remote Rendering Portlet 时会将 WCM 服务器放置在防火墙之后,如图 12 。但是最终用户访问时,Remote Rendering Portlet 不会为用户代理去访问图像及其它资源,而是默认直接返回资源的直接地址,有浏览器进行直接访问。这就会造成在使用 Remote Rendering Portlet 时,由于资源处于防火墙后,会造成客户端无效链接的问题。具体解决方法如下:

          1. 在配置 Remote Rendering Portlet 时,不要选中“ Web Content Management 服务器生成的标准 URL ”
          2. 编辑 Web 服务器所使用的 plugin-cfg.xml 文件,使“ wps/wcm/myconnect/* ”定向到位于防火墙后的 WCM 服务器。


          图 12. 防火墙环境下使用 Rendering Portlet
          图 12. 防火墙环境下使用 Rendering Portlet

        使用 Rendering Portlet 访问集群环境下的 WCM 服务器

        当使用 Remote Rendering Portlet 时,将 WebSphere Portal 服务器和 WCM 服务器在一个集群中时,Remote Rendering Portlet 可能会工作不正常。这是由于 WebSphere Portal 服务器和 WCM 服务器使用了同一个主机名。因为缺省情况下 WAS 使用名为 JSESSIONID 的 cookie 来保存会话信息。因此当 WebSphere Portal 服务器和 WCM 服务器使用同一个主机名,cookie 会被相互覆盖,产生一系列问题。

        下面有四种解决方式:

        1. 使用 Local Rendering Portlet 的方式代替 Remote Rendering Portlet,因为在集群的环境下 Local Rendering Portlet 可以访问不同服务器上的内容。
        2. 使用 WCM 服务器的 IP 的地址来配置 Remote Rendering Portlet 。
        3. 分配两个主机名,使 WebSphere Portal 服务器和 WCM 服务器使用不同的主机名
        4. 为 WebSphere Portal 服务器和 WCM 服务器配置不同的 cookie 名称。具体操作见 WebSphere Application Server 信息中心 Cookie 设置一节 .

          结论

          本文对 WCM 中 Rendering Portlet 的呈现方式进行了介绍。希望本文能对您有所帮助。使用本文讲解的内容,您可以正确的配置和使用 Rendering Portlet 的呈现方式,并掌握对 Rendering Portlet 的优化技能。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14751907/viewspace-586495/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-04

  • 博文量
    233
  • 访问量
    436386