本文包括 IBM Lotus Connections 部署准备中所使用的一些最常用步骤。在较高的层面上,对架构概念和可用的选择方案进行了概述,因此可以成功规划适合于您的企业的 Lotus Connections 部署。本文的内容适合于 I/T 架构师和 I/T 专家。
Lotus Connections 是 IBM 的新产品,引入了一套专门支持企业需求的基于 J2EE 的社会协作服务。它由五个轻量级的独立特性组成,旨在支持业务的增量实现和应用,同时提供了一个简单的可扩展集成框架,在企业进行集中部署时允许单个特性之间进行交互。
Lotus Connections 的五个功能特性包括:
- Profiles(个人档案)。可以快速访问企业人员的信息,包括使用关键字进行跨企业搜索的功能,可用于识别人员的专业技能、当前项目和职责。
- Communities(社区)。提供一种创建具有共同兴趣、职责或专长领域的社区的工具,整个企业的人员都可以加入到其中。
- Blogs(博客)。提供 weblog 服务,个人或团体可以使用该服务来分享观点并彼此交流。
- Dogear(社会书签)。提供一种工具保存、组织、共享有价值的在线资源的书签,并提供一种方法查找由其他人共享的书签。
- Activities(活动)。提供一种方法,使个人和团体可以组织工作、计划和保存处理步骤以备日后重用、方便地协作日常工作。
因为 Lotus Connections 是一个新产品,很少有人知道该使用哪些步骤来规划部署。本文的目的是给出架构概念的概要以及可以使用的选择方案,以便成功规划适合您的企业的 Lotus Connections 部署。
下面将讨论 Lotus Connections 特性的逻辑架构和操作架构。
图 1 演示了 Lotus Connections 特性的逻辑架构。包含以下内容:
- 用于访问特性的客户机
- HTTP 传输和代理缓存
- J2EE 容器,托管并控制对所有 Lotus Connections 特性和数据的访问
- 供特性使用的后端系统,用于验证、数据存储以及与外部消息传递系统的集成
图 1. Lotus Connections 逻辑架构
![Lotus Connections 逻辑架构](http://www.ibm.com/developerworks/cn/lotus/connections-deploy-pt1/Fig1.gif)
通过一个基于 REST 协议和 Atom 标准的 API,Lotus Connections 可以通过标准 Web 端口为各种类型的客户机提供特性服务。虽然本身提供了一些访问特性的方法,例如浏览器访问和 IBM Lotus Sametime V7.5 或 IBM Lotus Notes V8 的应用程序插件,但 API 允许客户创建、更新、查询并管理来自客户定制应用程序的 Lotus Connections 信息。
因为 Lotus Connections REST API 在结构上类似于 HTTP(HTTP 实际上就是一个基于 REST 的协议),并且使用与标准 Web 服务器相同的传输层,所以特性调用可与标准 Web 服务器和代理服务器兼容。
API 允许使用 POST、PUT 和 DELETE 方法(将服务数据封装在 HTML 表单或 XML Atom 文档中)输入和管理信息。可以使用 GET 方法检索信息,并呈现为 HTML 或 XML Atom 文档,这取决于发出请求的客户机的需求。
例如,以下 URL 展示了一个检索用户书签的 Dogear REST 调用的两个变量。第一个将检索 HTML 格式的信息;第二个将检索 Atom 提要格式的信息,并添加一个附加过滤器,从而仅选择用户书签的子集:
http://dogear.ibm.com/html?user=Jane_Roe@us.ibm.comhttp://dogear.ibm.com/atom?tag=java&user=Jane_Roe@us.ibm.com
除了由客户机访问的五个功能特性之外,Lotus Connections 还提供了四个额外的公共实用工具模块:
- JMX 管理(JMX administration)。用于配置和管理 Lotus Connections 环境。大多数管理功能是由 WebSphere wsadmin 命令管理的,但其他管理功能是通过 Web 接口公开的。
- 导航标题(Navigation header)。使所有已安装的特性能够互相感知,并为用户提供一致的 Web 导航。可以进行扩展,从而包括与其他外部服务的链接。
- 个人卡片(Person card)。当每个特性需要某人的基本个人档案信息时,显示一致的名片信息。需要使用 Profiles 特性。
- 用户目录(User directory)。Lotus Connections 所使用的目录的接口,用于验证、授权和查询特性。
Lotus Connections 还依赖于某些关键后端服务:
- LDAP。为 Lotus Connections 提供验证和授权服务,并用作 Profiles 特性所使用的个人信息的主要数据源。
- 关系型数据库。存储 Lotus Connections 特性所需的数据库和表。每个功能特性都有自己的数据存储。
- 数据集成(IBM Tivoli Directory Integrator)。从企业数据源(例如 LDAP 目录)中提取个人信息,并将该信息推到 Profiles 特性的数据库表中。还可以通过配置将 Profiles 条目的更新推回到原始数据源。仅用于 Profiles 特性。
- 文件系统。存储服务索引和特定于服务的数据(例如上载到博客或活动的文件附件)。Activities 可以将 Domino 数据库交替用于文件附件和大对象。
- 出站 SMTP。Lotus Connections 将使用企业已有的消息传递基础设施来传送通知消息。可以是能够接受和转发 SMTP 消息包的任何邮件系统。
图 2 展示了组成 Lotus Connections 的主要部署组件。这些是满足最低要求的组件。在某些场合下,组件可能同时位于同一个物理服务器。例如,虽然常用的最佳部署实践是在一个独立于 IBM WebSphere Application Server 的物理单元上安装 HTTP 服务器,但是在某些低使用率的场合下,如部署服务器或测试服务器、小型概念证明或试验部署等,更适合于将它们安装在同一个物理单元上。
图 2. Lotus Connections 操作组件
![Lotus Connections 操作组件](http://www.ibm.com/developerworks/cn/lotus/connections-deploy-pt1/Fig2.gif)
Lotus Connections 需要使用 Microsoft Windows 或 Linux 上运行的 WebSphere Application Server V6.1 作为它的主机平台。可以安装单个功能性特性,或者将多个特性部署到同一个物理实例中的独立应用服务器上。此外,如果某个公司需要高可用性环境,或者 Lotus Connections 必须扩展以支持大型用户群部署时,可以跨多个物理服务器(它们是网络部署集群的一部分)部署特性。
Lotus Connections 支持两种目录服务器:IBM Tivoli Directory Server V6.1 和 Microsoft Active Directory 2003。即将发行的维护版本将支持其他 LDAP 目录,如 IBM Lotus Domino 和 Sun Java System Directory Server。
可以将 Lotus Connections 数据库托管在 IBM DB2 V9.1 或 Oracle 10g 上。在 DB2 上,每个服务的数据都存储在独立数据库中。而在 Oracle 10g 上,Profiles 和 Activities 数据都存储在独立数据库实例中,Blogs、Communities 和 Dogear 数据都存储在共享单个数据库实例的独立表中。对于大多数部署,用于填充 Profiles 数据库的 Tivoli Directory Integrator V6.1 应用程序与数据库服务器位于同一台机器。
如前所述,某些数据存储在文件系统的数据库之外,可以通过 Lotus Connections 特性进行访问。这些文件系统组件(如索引和文件附件)必须存储在 WebSphere Application Server 附带的驱动器上。如果是在集群式的 WebSphere Application Server 环境中进行部署,则每个集群实例必须拥有对通用文件服务器或企业网络存储设备上文件共享的访问权。
Activities 特性允许使用额外的文件存储选项。可以配置 Activities,从而使用 Lotus Domino 服务器托管的 Domino NSF 文件,而不是向文件系统编写附件和内容。无论将 Lotus Connections 安装在独立环境中还是集群环境中,都可以使用该选项。
Lotus Connections 支持一组非常灵活的部署场景。例如,一个企业可以仅部署一个特性,如使用 Activities 特性来支持 IBM Lotus Notes V8 的首次展示。另外,如果跨企业进行部署,公司可以选择构建集群环境并将多个节点分配到企业中使用率最高的特性。
图 3 展示了最小的 Lotus Connections 部署拓扑结构,它适于低使用率场景,如公司开发部门所使用的测试系统,或有限的概念证明。
图 3. 示例测试/概念证明的部署拓扑结构
![示例测试/概念证明的部署拓扑结构](http://www.ibm.com/developerworks/cn/lotus/connections-deploy-pt1/Fig3.gif)
在这个拓扑结构中:
- HTTP 服务器与 WebSphere Application Server 并存,因此客户机直接通过 SSL 安全通道和不安全的 HTTP 通道来访问 Lotus Connections 服务器。
- HTTP 服务器所使用的 SSL 证书可以是自签名证书,而不是经过认证中心注册的证书。
- Lotus Connections/WebSphere Application Server 通过 LDAP 或 LDAPS 绑定到目录服务器,并通过瘦 JDBC 连接绑定到数据库服务器。
- Tivoli Directory Integrator 与数据库服务器并存,通过 LDAP 或 LDAPS 连接到目录服务器,从而使用详细的用户数据填充 Profiles 数据库。
- 在大多数情况下,在向目录添加用户、在目录中更新用户或从目录删除用户时,Tivoli Directory Integrator 连接可能是定期更新的单向提供。
因为每个 Lotus Connections 特性必须拥有自己的应用服务器,所以必须在安装之前创建这些服务器。使用独立的 WebSphere Application Server 时,最简单的方法是将默认 server1 应用服务器保留在适当位置上,用于托管 WebSphere Application Server Console,并在同一个应用服务器配置文件下创建新的应用服务器实例,用于托管要安装的特定 Lotus Connection 特性:
/AppServer/profiles//wsadmin.sh (or wsadmin.bat)$AdminTaskcreatApplicationServer {-name }
$AdminConfig save
例如,若要设置三个服务器来托管 Linux 服务器上的 Activities、Profiles 和 Dogear,则使用清单 1 中所示的命令。
清单 1. 设置托管服务器
/opt/WebSphere/AppServer/profiles/AppSrv01/wsadmin.sh $AdminTaskcreatApplicationServer Node01 {-name ActivitiesServer} $AdminTaskcreatApplicationServer Node01 {-name ProfilesServer} $AdminTaskcreatApplicationServer Node01 {-name DogearServer} $AdminConfig save |
这些命令将创建三个服务器,每个服务器具有不同的服务端口集,并将服务器设置保存到 WebSphere Application Server 配置文件的配置中。
图 4 所展示的 Lotus Connections 部署拓扑结构适合于企业中一个或所有服务的小型生产部署。依据所部署的服务和系统的使用程度,此类系统可以支持相对较大的注册用户群。
图 4. 示例小型生产部署拓扑结构
![示例小型生产部署拓扑结构](http://www.ibm.com/developerworks/cn/lotus/connections-deploy-pt1/Fig4.gif)
在这个拓扑结构中:
- HTTP 服务器位于自己的服务器上,客户机通过 SSL 安全通道和不安全的 HTTP 通道访问服务器。HTTP 服务器通过 HTTP 或 HTTPS(如果需要的话)绑定到 Lotus Connections/WebSphere Application Server。
- HTTP 服务器的 URL 必须具有认证中心注册的有效 SSL 证书。
- 可以将 Tivoli Directory Integrator 配置为双向提供,这样包含用户所提供的某些 Profile 更新的数据(例如移动电话号码)可以与源目录服务器保持同步。
- 如果将 Tivoli Directory Integrator 配置为几乎实时地执行同步,则有必要将 Tivoli Directory Integrator 服务器过程移动到独立服务器,从而限制数据库服务器上潜在的资源约束。
- 在 Lotus Connections WebSphere Application Server 和企业的一个邮件服务器之间配置出站 SMTP 通道,以便将来自 Activities 或 Blogs 特性的通知发送到对此感兴趣的人员。
注意:虽然该配置支持基本的产品配置,但没有提供任何系统故障恢复冗余,也不具备支持用户负载增长的扩展能力。需要一个集群解决方案,详见下一节描述。
图 5 所展示的 Lotus Connections 部署拓扑结构适于企业部署。该配置提供了组件冗余,从而支持操作的高可用性和故障恢复,还提供了一种扩展 Lotus Connections 特性的方法,从而支持大型系统负载和并发用户群。
图 5. 示例企业部署拓扑结构
![示例企业部署拓扑结构](http://www.ibm.com/developerworks/cn/lotus/connections-deploy-pt1/Fig5.gif)
在这个拓扑结构中:
- 客户机通过 SSL 安全通道和不安全的 HTTP 通道访问 HTTP 代理服务器或负载均衡器,后两者反过来连接到 HTTP 服务器集群。HTTP 集群通过 HTTP 或 HTTPS(如果需要的话)绑定到 Lotus Connections/WebSphere Application Server 集群。
- 使用 DNS 轮循功能,Lotus Connections 服务器通过 LDAP 或 LDAPS 绑定到目录集群。
- Lotus Connections 服务器通过 DB2 高可用性和灾难恢复(High Availability and Disaster Recovery,HADR)特性和 Oracle Real Application Clusters (RAC) 绑定到数据库集群。
- Tivoli Directory Integrator 位于自己的服务器上。它通过 JDBC 连接到数据库集群,并通过 LDAP 或 LDAPS 连接到目录集群,从而使用详细用户数据填充 Profiles 数据库。此外,Tivoli Directory Integrator 还连接到公司的 HR 数据源,获取没有存储在公司 LDAP 中的关键企业信息。
- 可以将 Tivoli Directory Integrator 配置为多方向提供,这样包含用户所提供的某些 Profile 更新的数据可以与源目录服务器和 HR 系统保持同步。
Lotus Connections 最重要的性能增益之一存在于缓存过程中。Lotus Connections 百分之七十的网络通信量来自插件和 RSS/Atom 阅读器提要轮询。可以由缓存代理提供提要,它将从 WebSphere Application Server 清除不必要的通信量。
对于非常大的实现以及最大的可伸缩性,需要考虑将每个 Lotus Connections 特性放置在自己的集群中。该方法允许单个特性的扩展和所有五个特性的扩展。
例如,某企业正在实现 Activities 和 Communities,您发现 Activities 的使用率明显高于 Communities 的使用率。可以将 Communities 托管在双服务器集群上以支持冗余,而 Activities 可能需要四服务器集群来支持用户负载。
Lotus Connections 特性是通用的,可以对它们进行配置,从而支持各种业务需求。一个成功的 Lotus Connections 部署需要进行仔细规划,将企业业务需求映射到部署架构中。
规划 Lotus Connections 部署的第一步是确定需要部署哪些服务。虽然可以一次性部署所有特性,但在大多数情况下,更实际的选择是在进行下一个特性部署之前,充分部署上一个特性并使其可使用。部署顺序应根据业务需求的重要性确定。例如,在一个企业中,实现专家定位服务(如 Profiles)是比较重要的,以便支持全局的项目人员分配;而另一个企业需要使用 Activities 的工作共享功能,从而实现跨工作组的任务管理并获取最佳实践过程。
另一个考虑因素是确定目标用户群并了解用户如何使用系统。有关用户群统计的某些关键问题包括:
- 希望多少用户并发访问特性?
- 希望哪种特性是最活跃特性及其活跃程度?
- 使用哪种类型的客户机软件访问特性(浏览器、提要阅读器、插件组件等)?
- 希望哪种特性是最活跃特性及其活跃程度?
了解关键的安装和实现考虑因素也非常重要:
- 在安装产品之前,必须识别 Lotus Connections 的 URL 并注册到 DNS。
- 用户进行身份验证时,他们被强制进入 HTTPS 连接以保护凭证,因此 Lotus Connections URL 必须具有相关的 SSL 证书。
- 在安装任何 Lotus Connections 特性之前,必须启用并配置 WebSphere Application Server 安全性,从而支持联合存储库。
- 必须定义运行服务的 WebSphere Application Server 应用服务器,并且在安装过程中,服务器的 default_host HTTP 和 HTTPS 端口必须是已知的。
- 在 Lotus Connections 服务器上安装单个特性之前,必须创建数据库,并且在服务安装过程中,必须输入数据库用户凭证。
- 需要将凭证绑定到目录服务器以便进行身份验证,在安装之前必须确定数据同步,并且必须设置正确的权限,从而允许绑定 ID 访问所需的全部用户属性和目录模式。
- 对于 Activities 和 Blogs 特性,在安装特性之前,需要连接到出站 SMTP 服务器的凭证也必须是可用的。
- 应确定所期望的 Lotus Connections 用户界面更改,并且定义图片和样式。
- 对于 Dogear 特性,必须确定内部 IP 地址范围,因此特性能够区分内部书签和外部书签。同时,必须确保 Dogear 特性能够访问可以添加书签的目标站点。
- 对于 Blogs 特性,在安装特性之前,应定义具有管理权限的用户帐户,并且必须在安装后立即定义 Blogs Home。
在所有 Lotus Connections 特性中,实现 Profiles 所需的技术规划是最多的。这主要是因为需要从其他数据源预载入带有用户信息的 Profiles 数据存储。在执行初始规划时,考虑以下关键问题:
- 哪一个数据源持有要载入到 Profiles 数据存储的用户数据?
- 源数据的字段规格是什么(字段名、类型、数据长度)?
- 载入是一次性事件,还是定期将新数据源更新推向 Profiles?如果是这样,数据源是否具有一个可供 Tivoli Directory Integrator 访问的更改日志?
- 在 Profiles 中进行更新的用户数据是否与它的原始数据源同步?
- 数据源中是否定义了所需的企业层次,并且信息是否一致、完整?
- Profiles 数据中是否包含其他多媒体信息,如用户照片和姓名发音?如果有的话,这些媒体文件位于什么地方?
- 源字段中是否使用标准代码,如用户部门或位置代码?如果使用了的话,用于映射这些代码的详细的用户友好信息(如部门名称或位置地址)位于什么地方?
- 个人档案条目中显示哪些数据字段,其中哪些可以由用户进行编辑?
确定并验证用户数据源对于 Profiles 设置来说至关重要。通常数据来自企业的 LDAP 目录,但是还需从其他位置(如公司的 HR 数据库)提取一些数据。
为了加快 Profiles 用户数据的载入速度,Lotus Connections 附带了 Tivoli Directory Integrator V6.1 副本和一套预构建的 Tivoli Directory Integrator 装配线(assembly line)、配置文件和命令行脚本。主要脚本用于从 Tivoli Directory Server V6.1 或 Microsoft Active Directory 2003 提取用户信息。其他脚本用于载入照片、用户姓名发音的 AVI 文件、位置代码的详细数据等。
还有一些供服务器模式下的 Tivoli Directory Integrator 使用的装配线,在进行更改时,使用这些装配线来轮询并同步源 LDAP 和 Profiles 数据存储。
如果用户数据源不在受支持的 LDAP 目录中,可以构建定制装配线来提取其他源的数据。嵌入式 TDI 连接器允许管理员读/写 LDAP 目录、关系型数据库、文件系统资源中的数据,也可以编写定制脚本,以便在将数据写入目标系统之前对其进行解析和操作。在很多场合下,只需几个小时即可创建并测试一个定制 TDI 装配线。
与数据源管理员协同工作同样很重要,从而确保 Lotus Connections 具有正确的数据访问权限,并且数据源管理员和 Lotus Connections 管理员之间对数据更新和同步达成一致。
虽然 Lotus Connections 提供了一套强大的社会网络工具,但要记住任何社会网络都不能脱离人员。那种认为实现工具后,企业人员会自动使用它的想法是错误的。虽然企业中的一些人可能拥有使用公共社会网络工具的经验,但其他人最初可能不会认识此类工具的价值并且不愿意改变他们的常规工作方式。这非常类似于企业在使用其它协作工具时的体验,如最初引入电子邮件或即时消息传递时。
成功采用新工具需要通过一个可靠的志愿者团队在企业中推广社会网络的使用。这个核心团队将成为企业社会网络的推广者并鼓励同事使用这些工具。通过正确推广,社会计算通常会得到传播;它将在团队和部门之间迅速传播,同时展示其业务价值和对于个人的价值。
成功部署的关键包括:
- 在企业中定义与社会网络相关的特定目标。
- 确定企业中的主要贡献者/拥护者,从而推广使用应用程序。
- 跟踪贡献者活动,设置每个人的每周实现目标。
- 及时提供反馈和评论(如果发现有人在关注他们,这些人会更加积极地参与活动)。
- 如果计划进行阶段性或试验展示,那么在企业中找到两个小组,需要在他们之间形成诚信工作关系,不过目前这些关系并不存在。
- 如果已经进行了安装,则使用 Activities 来交付任务。
- 鼓励拥护者向企业中的其他人宣传该产品。
- 在早期建立指导准则。创建带有相关书签的 “如何入门” 活动并且实现活动内容。同时,定义并发布有关正确使用和不正确使用的指导准则。
除了支持用户使用 Lotus Connections 之外,需要在规划阶段确定 Content and Community Manager 角色。这些角色是直接负责企业中社会网络的使用和管理的人员或小组。他们将完成以下工作:
- 开发和管理与社会网络相关的业务规划
- 经常监视并报告使用情况
- 向管理和参与者提供反馈
- 定义和管理使用指导准则
虽然 Lotus Connections 是一个新产品,它进行了全新设计来支持从小型部门系统到企业部署的各种部署选项。它提供了一个公共 API,允许企业快速集成 Lotus Connections 特性和 IT 环境中的其他组件。经过正确设计,企业可以开发满足业务需求的部署架构,并且有助于保证企业用户使用该技术。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14751907/viewspace-419001/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14751907/viewspace-419001/