Sun Java System Communications Express 6 2004Q2 管理指南 |
第 2 章
Communications Express 概述Sun Java System Communications Express 6 2004Q2 提供了一个基于 Web 的集成通信和协作客户端,可满足 Internet 服务提供商、企业和初始设备生产商的需要。
作为基于 Web 的客户端,Communications Express 的三个客户端模块(“日历”、“通讯录”和“邮件”)依靠 Web 服务器进行访问并依靠浏览器进行显示。
产品功能本章包含以下各节:
高级体系结构
“日历”和“通讯录”客户端模块是作为单个应用程序在任何 Web 容器上部署的,在本指南中将其统称为统一 Web 客户端 (UWC)。
图 2-1 高级体系结构
Messenger Express 是独立的 Web 界面邮件应用程序,它使用邮件服务器的 HTTP 服务。Messenger Express 应该与“日历”和“通讯录”模块部署在同一个系统上。Messenger Express 是独立的 Web 界面邮件应用程序,它使用邮件服务器的 HTTP 服务。Messenger Express 应该与“日历”和“通讯录”模块部署在同一个系统上。
UWC 基于 JATO(Sun ONE 应用程序框架)。它要求使用与 J2EE 兼容的 Web 服务器来处理访问 UWC 的 HTTP 请求。
每个用户请求是通过专用应用程序控制器 Servlet 来传递的,该 Servlet 将请求委派给相应的通信客户端模块,如“邮件”、“日历”或“通讯录”。在委派请求之前,应用程序 Servlet 检查试图访问 UWC 的浏览器客户端是否存在有效的 HTTP 会话。如果不存在有效的 HTTP 会话,则控制器 Servlet 通过验证进程传送请求流。
验证进程由一组 Web 过滤器和一个验证 Servlet 进行处理。
- Identity Server SSO 过滤器。它使用 Identity Server 的单点登录机制检查建立的 Sun Java System Identity Server 会话。如果找到有效的 Identity Server 会话,过滤器将为 UWC 创建 HTTP 会话,并将控制权传递给链中的其他过滤器。否则,将传送控制权而不创建会话。
- Messaging SSO 过滤器。它检查使用对等 Sun Java System 应用程序建立的会话,例如,Portal Server 或参与 Messaging SSO 机制的独立 Messenger Express。
- LDAP 验证过滤器。此过滤器用于支持可支持 Sun ONE LDAP Schema 版本 1 的应用程序,并且在 Identity Server SSO 和 Messaging SSO 过滤器均无法成功创建 HTTP 会话时使用。根据为 UWC 配置的验证 LDAP 证书,此过滤器使用用户名和口令对证书进行验证。验证证书后,它将创建一个 HTTP 会话并将请求传送到下一个过滤器。
- 匿名访问过滤器。如果没有有效的会话,此过滤器将检查是否存在以下格式的 URL:http://host:port/?calid=calid。如果存在此格式的 URL,则表明是匿名访问。
- 验证 Servlet。验证 Servlet 用于确定是否任何 Web 过滤器都可以为 UWC 成功创建 HTTP 会话。如果 Servlet 找不到有效的会话,它将请求传送到登录页,使用户能够在其中输入用户名和口令。如果在 UWC 中启用了 Identity Server,则显示 UWC 登录页。
在 Identity Server 登录页中输入的证书是 Identity Server 使用配置服务之一进行验证的。例如,LDAP 服务。
通过 Communications Express 登录页提交的证书是针对为 UWC 配置的验证 LDAP 进行验证的。
在提交并验证证书后,将通过这些过滤器再次传送请求以获取 UWC 的有效 HTTP 会话。
在验证 Servlet 确定存在有效的会话后,它将请求重定向到应用程序控制器,以显示请求的客户端模块。
可进一步将每个客户端模块定义为 Sun ONE 应用程序模块,它由模块特定的控制器 Servlet 进行处理。
为 UWC 定义的 JATO 模块为:
- 基本级别模块。所有应用程序范围内的任务(如选项视图)和应用程序级初始化都是由基本级别模块处理的。此模块的控制器 Servlet 为 UWCServletBase,它处理 URI“base”的所有请求。所有其他模块的控制器 Servlet 都从该 Servlet 中继承。
- “日历”模块。属于日历应用程序的所有视图和模块都由此模块进行处理。此模块的控制器 Servlet 为 CalModuleServlet,它处理 URI“calclient”的所有请求。
- “邮件”模块。属于邮件应用程序的所有视图和模块都由此模块进行处理。此模块的控制器 Servlet 为 MailModuleServlet,它处理 URI“mailclient”的所有请求。
- “通讯录”模块。属于通讯录应用程序的所有视图和模块都由此模块进行处理。此模块的控制器 Servlet 为 ABModuleServlet,它处理 URI“abclient”的所有请求。
请求流概述
对 UWC 的请求可以启动以下阶段:
初始化
UWC 引用在用户会话期间在整个应用程序中共享的一些对象。在创建新的用户会话或启动应用程序时,就会初始化这些对象。可以将初始化分为:
应用程序初始化
所有应用程序范围内的对象在应用程序范围内缓存。
- 验证和应用程序配置。验证和应用程序配置参数位于 WEB-INF/config 目录下的 uwcauth.properties 和 uwcconfig.properties 中。在启动应用程序时,就会装入应用程序配置详细信息。第一次访问 UWC 时会使用验证参数。
- 域配置。域配置存储在用户的域 LDAP 条目以及 uwcdomainconfig.properties 文件中。可读取和存储为 UWC 定义的每个域。然后,应用程序从缓存中获取域配置详细信息,而不是每次都从 LDAP 进行读取。
- 资源束缓存。可本地化和定制的所有 i18n 字符串、图像路径和其他项是一次读取和缓存的。
- LDAP 池。在启动应用程序时,会创建用户/组 LDAP 的连接池。停止应用程序时会删除池。
基于用户会话的初始化
将为新用户会话初始化以下内容:
模块级别初始化
在专门针对模块的统一资源标识符 (URI) 提出请求时,会进行模块级别初始化。
日历存储、日历首选项和日历数据对象都是用户日历模块的模块级别初始化的示例。