门 户 解 决 方 案 平 台 转 换 的 技 术 可 行 性 报 告 目 录
1 概 述... 3 2 关 键 技 术 点 移 植 验 证 过 程 和 解 决 方 案...3 2.1 采 用 SSH 及 Ext 开 源 框 架 的 应 用... 3 2.2 采 用 页 面 流 技 术 和 FLEX 的 Anychart 组 件 的 图 表 应 用...4 2.2 Portal 与 已 有 Web 应 用 的 整 合... 5 2.3 权 限...5 2.4 性 能...6 3 结 论...6 4. 附 录 一 WebLogic 应 用 移 植 步 骤...7 4.1 环 境 准 备...7 4.2 应 用 迁 移...7 4.3 部 署 至 WAS6.1... 12 5. 附 录 二 WebSphere Portal Web Application Integrator 整 合 步 骤...22
1 概 述 2 关 键 技 术 点 移 植 验 证 过 程 和 解 决 方 案 2.1 采 用 SSH 及 Ext 开 源 框 架 的 应 用 原 有 解 决 方 案 中 有 很 大 一 部 分 是 采 用 了 Struts, Spring, Hibernate 以 及 Ext 等 开 源 的 框 架, 如 标 杆 项 应 用 维 度 管 理 应 用 等 一 方 面 由 于 此 类 应 用 所 占 比 重 较 大, 另 一 方 面, 由 于 在 WebSphere 和 WebLogic 部 署 使 用 了 以 上 开 源 框 架 的 应 用 时 配 置 有 较 大 不 同, 因 此 技 术 验 证 中 重 点 对 此 进 行 了 测 试 考 虑 到 推 荐 客 户 近 期 使 用 的 WebSphere Portal 底 层 平 台 WebSphere Application Server 的 版 本 为 6.1.x, 因 此 技 术 验 证 在 Websphere 6.1.0.29 上 进 行, 数 据 库 仍 然 采 用 客 户 熟 悉 的 Oracle 10g. 利 用 WebSphere 提 供 的 开 发 工 具 Rational Application Server 对 从 WebLogic 平 台 导 出 的 Web 应 用 的.war 进 行 简 单 的 处 理 后, 就 可 以 直 接 安 装 在 配 置 好 了 连 接 Oracle 数 据 库 源 的 WebSphere Application Server 之 上, 运 行 结 果 与 在 WebLogic 之 上 完 全 一 样 详 细 配 置 步 骤 见 附 件 一 2.2 采 用 页 面 流 技 术 和 FLEX 的 Anychart 组 件 的 图 表 应 用 原 有 门 户 解 决 方 案 中 另 外 一 部 分 重 要 应 用 是 图 表 应 用 如 显 示 电 厂 生 产 情 况 的 仪 表 盘 应 用, 主 要 采 用 的 是 页 面 流 技 术 和 FLEX 的 AnyChart 组 件 使 用 FLEX 的 AnyChart 组 件 制 作 报 表 主 要 是 以 一 个.swf 文 件 作 为 对 象, 数 据 和 设 置 存 放 在.xml 文 件 中, 然 后 在.html 文 件 里 通 过 javascript 来 调 用, 生 成 动 态 图 像, 所 采 用 的 技 术 都 是 通 用 的 web 技 术, 完 全 跨 平 台 和 跨 浏 览 器, 所 以 无 论 是 采 用 WebLogic 还 是 WebSphere, 使 用 方 式 完 全 一 样, 与 平 台 没 有 关 系 而 页 面 流 技 术 最 早 是 BEA 所 采 用,2004 年 BEA 和 Apache 共 同 宣 布 了 一 个 共 同 的 开 源 项 目 Beehive, 来 简 化 J2EE 和 Web Service 开 发, 支 持 Java Page Flow (JPF) 技 术 ( 也 称 NetUI) 因 此, 对 于 采 用 页 面 流 技 术 的 WebLogic 应 用, 我 们 可 以 考 虑 将 Weblogic 相 关 的 私 有.jar 包 为 Apache Beehive 的 开 源.jar 包, 使 之 能 在 WebSphere 平 台 上 能 正 确 运 行 基 于 以 上 分 析, 我 们 进 行 了 实 验, 对 一 个 已 有 的.war 包 进 行 改 造, 具 体 操 作 见 附 件 一 的 4.2.2 章 节 实 验 结 果 表 明, 经 过 以 上 简 单 改 造 后 的 原 有 解 决 方 案 中 的 图 表 应 用 在 WebSphere Portal Server 底 层 应 用 服 务 器 WebSphere Application Server 上 运 行 正 常
2.2 Portal 与 已 有 Web 应 用 的 整 合 对 于 以 上 运 行 在 底 层 应 用 服 务 器 上 的 Web 应 用, 要 使 之 变 为 门 户 中 的 可 操 作 组 件, 需 要 整 合 到 WebSphere Portal 中 因 此, 我 们 根 据 IBM 的 建 议 采 用 了 两 种 方 式 进 行 验 证 : 1. 使 用 产 品 自 带 的 WebPage Portlet WebPage Portlet 采 用 IFrame 技 术, 使 用 时 只 需 要 配 置 URL 地 址 小 窗 口 的 长 度 和 高 度 等 Iframe 参 数, 就 可 以 将 已 有 的 Web 应 用 封 装 到 门 户 页 面 上 的 一 个 Portlet 窗 口 中 我 们 对 之 前 成 功 移 植 的 维 度 管 理 应 用 按 此 种 方 式 进 行 了 整 合, 达 到 了 预 期 结 果 只 是 在 整 合 过 程 中 需 要 调 试 几 次 窗 口 的 长 度 和 高 度 参 数 设 置 才 能 达 到 比 较 满 意 的 结 果 2. 使 用 WebSphere Portal 展 现 REST 服 务 的 Web Application Integrator Web Application Integrator 是 从 IBM Portal catalog 上 下 载 回 来 的 一 个 专 门 用 来 整 合 B/S 应 用 的 解 决 方 案 该 方 案 的 主 要 思 路 是 在 待 整 合 的 B/S 应 用 的 页 面 源 码 中 插 入 一 小 段 由 WebSphere Portal 生 成 的 调 用 WebSphere Portal 外 观 的 REST 服 务 的 javascript 代 码, 使 得 待 整 合 的 B/S 应 用 呈 现 出 门 户 系 统 的 导 航 条, 使 之 具 备 与 门 户 系 统 完 全 一 致 的 外 观 我 们 也 对 之 前 移 植 成 功 的 维 度 管 理 应 用 进 行 了 测 试, 发 现 此 应 用 由 于 自 身 原 本 没 有 横 向 导 航, 所 以 使 用 此 种 方 法 加 入 门 户 的 导 航 后 效 果 非 常 不 错 具 体 操 作 过 程 如 附 件 二 所 示 2.3 权 限 考 虑 到 客 户 使 用 Domino 做 为 办 公 自 动 化 应 用 的 底 层 平 台, 而 且 Domino 中 的 已 有 用 户 信 息 比 较 完 整, 我 们 建 议 直 接 采 用 Domino 提 供 的 LDAP 服 务 为 门 户 系 统 提 供 用 户 管 理 WebSphere Portal 支 持 Domino 做 为 后 端 的 用 户 存 储, 通 过 配 置 即 可 实 现, 并 且 在 国 内 有 很 多 用 户 案 例, 安 装 文 档 齐 备, 因 此 此 点 没 有 进 行 测 试 在 WebSphere Portal 上 的 权 限 管 理 主 要 针 对 门 户 中 的 资 源 如 Portlet 应 用 页 面 Web 模 块 等 进 行, 按 照 用 户 组 的 方 式 进 行 管 理, 采 用 了 角 色 的 模 式, 易 于 理 解 权 限 设 置 过 程 就 是 将 组 加 入 到 资 源 对 应 的 各 个 角 色 上 即 可 如 下 图 所 示, 在 WebSphere Portal 的 管 理 界 面 上 提 供 了 资 源 许 可 权 和 用 户 和 组 许 可 权 两 个 视 图 来 查 看 和 设 置 权 限, 方 便 易 用
而 对 于 应 用 内 部 的 权 限 和 Portal 权 限 的 一 致 性 问 题, 仍 可 按 原 有 方 法 来 进 行 处 理 在 WebSphere 平 台 上, 当 前 用 户 ID 主 要 是 调 用 HTTPRequest 对 象 或 者 PortletRequest 对 象 的 getremoteuser 方 法 来 获 得, 这 与 WebLogic 平 台 上 的 方 法 完 全 一 样, 因 此 之 前 运 行 在 WebLogic 平 台 之 上 的 应 用 内 部 的 权 限 仍 可 按 原 来 的 方 式 进 行 处 理, 无 需 变 动 2.4 性 能 IBM WebSphere Portal Server 支 持 群 集 技 术 ( 支 持 服 务 器 的 纵 向 和 横 向 扩 充 ), 保 证 系 统 的 高 可 用 和 高 性 能, 并 有 大 量 的 大 用 户 量 的 用 户 使 用 案 例, 如 IBM 公 司 的 内 部 门 户 系 统 基 于 WebSphere Portal 构 建, 支 持 全 球 40 多 万 员 工 使 用 因 此, 我 们 认 为 只 要 在 规 划 期 进 行 了 正 确 的 软 硬 件 配 置, 自 行 开 发 的 门 户 应 用 遵 循 相 关 的 最 佳 实 践, 基 于 IBM WebSphere Portal Server 搭 建 的 门 户 系 统 不 会 存 在 性 能 问 题 3 结 论 经 过 以 上 的 技 术 验 证 和 技 术 实 现 分 析, 从 技 术 的 角 度, 我 们 认 为 基 于 Weblogic 的 门 户 解 决 方 案 的 现 有 资 产 可 以 平 滑 移 植 到 IBM WebSphere Portal 平 台 上 此 外, 具 体 到 中 电 投 门 户 项 目, 还 可 以 利 用 WebSphere Portal 产 品 的 特 点, 如 对 Web2.0 的 支 持 丰 富 的 整 合 Portlets 快 速 的 开 发 工 具 等 实 现 更 好 的 用 户 体 验 和 更 多 的 功 能
4. 附 录 一 WebLogic 应 用 移 植 步 骤 4.1 环 境 准 备 4.1.1 开 发 环 境 RAD 7.5.4 4.1.2 运 行 环 境 WebSphere Application Server 6.1.0.29 Oracle 10g 4.1.3 技 术 准 备 WAS 6.1 信 息 中 心 :http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp 4.2 应 用 迁 移 4.2.1 标 杆 项 维 度 管 理 (Ext Struts Struts Spring+Hibernate) Spring+Hibernate) 1. 将 Demo.war 导 入 RAD 中
2. 编 辑 ibm-web-ext.xmi
autorequestencoding="true" autoresponseencoding="true"
3. 导 出 war 文 件
4.2.2 页 面 流 AnyChart(Apache Beehive) 导 入 导 出 war 包 过 程 同 上 注 意 : 需 要 对 Beehive 的 类 包 进 行 替 换, 去 除 原 weblogic-controls.jar weblogic-netui.jar weblogic-webservice-control.jar wlcommons-logging.jar, 使 用 apache-beehive-1.0-lib.zip 中 相 应 jar 包 代 替 ( 下 载 : http://beehive.apache.org/releases/release-1.0.cgi) 4.3 部 署 至 WAS6.1 4.3.1 配 置 JVM 注, 该 步 骤 可 省 略, 使 用 native2ascii 命 令 将 struts.properties log4j.properties 文 件 进 行 编 码 转 换 1. 在 管 理 控 制 台 中, 单 击 服 务 器 > 应 用 程 序 服 务 器 > server 然 后, 在 服 务 器 基 础 结 构 下, 单 击 Java 和 进 程 管 理 > 进 程 定 义 2. 选 择 Java 虚 拟 机 3. 设 置 通 用 JVM 参 数 为 -Ddefault.client.encoding=UTF-8 -Dfile.encoding=UTF-8
4.3.2 配 置 Web 容 器 属 性 1. 服 务 器 > 应 用 程 序 服 务 器 > [ 选 择 所 使 用 的 服 务 器 ] > Web 容 器 设 置 > Web 容 器 > 定 制 属 性, 2. 增 加 名 称 为 com.ibm.ws.webcontainer.invokefilterscompatibility 的 定 制 属 性, 值 为 true 3. 在 控 制 台 任 务 栏 上 单 击 保 存 重 新 启 动 应 用 程 序 服 务 器 4.3.3 配 置 数 据 源 1. 创 建 新 的 J2C 认 证 数 据 条 目 a) 单 击 安 全 性 > 安 全 管 理 应 用 程 序 和 基 础 结 构 b) 在 Java 认 证 和 授 权 服 务 下, 单 击 J2C 认 证 数 据 显 示 J2C 认 证 数 据 条 目 面 板 c) 单 击 新 建 输 入 唯 一 别 名 有 效 用 户 标 识 有 效 密 码 和 简 短 描 述 ( 可 选 ) d) 单 击 确 定 或 应 用 e) 单 击 保 存
2. 创 建 JDBC 提 供 程 序 a) 单 击 资 源 > JDBC > JDBC 提 供 程 序 选 择 作 用 域, 应 用 程 序 将 可 以 在 该 作 用 域 中 使 用 该 JDBC 提 供 程 序 b) 单 击 新 建 此 操 作 将 启 动 创 建 新 JDBC 提 供 程 序 向 导 c) 如 果 应 用 程 序 不 要 求 连 接 支 持 两 阶 段 落 实 事 务, 请 选 择 连 接 池 数 据 源 然 而, 如 果 应 用 程 序 要 求 连 接 支 持 两 阶 段 落 实 事 务, 那 么 选 择 XA 数 据 源 单 击 下 一 步 以 查 看 输 入 数 据 库 类 路 径 信 息 向 导 页 面
d) 单 击 下 一 步 以 查 看 JDBC 提 供 程 序 设 置 摘 要 单 击 完 成 3. 配 置 数 据 源 a) 单 击 资 源 > JDBC > 数 据 源 b) 选 择 作 用 域, 应 用 程 序 将 可 以 在 该 作 用 域 中 使 用 该 数 据 源 单 击 新 建 此 操 作 将 启 动 创 建 数 据 源 向 导 并 显 示 输 入 基 本 数 据 源 信 息 页
c) 在 数 据 源 名 字 段 中 输 入 数 据 源 名 在 JNDI 名 称 字 段 中 输 入 Java 命 名 和 目 录 接 口 (JNDI) 名 称 应 用 程 序 服 务 器 使 用 该 JNDI 名 称 来 将 应 用 程 序 资 源 引 用 与 此 数 据 源 绑 定 设 置 组 件 管 理 的 别 名 以 保 护 数 据 源 的 安 全 单 击 下 一 步 以 查 看 选 择 JDBC 提 供 程 序 向 导 页 面
d) 单 击 下 一 步 现 在, 您 将 看 到 标 题 为 输 入 特 定 于 数 据 库 的 数 据 源 属 性 的 面 板 单 击 完 成 以 保 存 配 置 并 退 出 向 导 ( 如 果 容 器 管 理 的 持 久 性 (CMP) 企 业 bean 必 须 访 问 此 数 据 源, 请 单 击 在 容 器 管 理 的 持 久 性 (CMP CMP) 中 使 用 此 数 据 源 ) 4.3.4 部 署 应 用 程 序 1. 单 击 应 用 程 序 > 安 装 新 的 应 用 程 序 a) 指 定 源 企 业 应 用 程 序 文 件, 指 定 上 下 文 根 单 击 下 一 步
b) 在 准 备 安 装 应 用 程 序 页 上 根 据 应 用 程 序 的 需 要 指 定 值 ( 各 选 项 请 参 考 : http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websp here.base.doc/info/aes/ae/urun_rapp_installoptions.html) c) 选 择 将 要 安 装 应 用 程 序 模 块 的 单 元 节 点 和 服 务 器 :
d) 点 击 下 一 步 至 总 结, 点 击 完 成, 将 更 改 保 存 至 配 置
2. 启 动 应 用 程 序, 单 击 应 用 程 序 > 企 业 应 用 程 序 选 中 要 启 动 或 停 止 的 应 用 程 序 的 复 选 框 单 击 启 动 3. 访 问 页 面 测 试 : 5. 附 录 二 WebSphere Portal Web Application Integrator 整 合 步 骤 1. 解 压 缩 从 IBM Portal Catalog 下 载 回 来 的 webappintegrator_for_portal_6_1_0_3.zip 文 件 到 临 时 目 录 如 c:\lxh
2. 拷 贝 C:\lxh\wai_install\deployWebAppIntegrator.xml 文 件 到 <WP_INSTALL_DIR>\wp_profile\ConfigEngine\config\includes 目 录 3. 确 保 门 户 服 务 器 已 启 动, 在 <WP_INSTALL_DIR>\wp_profile\ConfigEngine\ 目 录 下 执 行 ConfigEngine.bat deploy-webappintegrator -DWasPassword=passw0rd -DPortalAdminPwd=passw0rd -DWebAppIntegratorLocation=c:\lxh\wai_install 此 时 可 以 在 管 理 页 面 上 看 到 新 加 入 的 WAI Portlet, 如 红 框 中 所 示 4. 进 入 门 户 网 站 管 理 界 面, 在 相 应 位 置 ( 如 内 容 根 -> 主 页 下 ) 下 点 击 " 新 建 URL", 新 建 一 个 URL 5. 设 置 新 建 URL 的 属 性 如 下, 注 意 红 色 部 分 的 设 置
6. 将 新 建 URL 的 标 识 拷 入 到 Web Application Integrator Portlet 的 输 入 框 中, 并 点 击 Generate HTML<scrip> tag 按 钮
7. 将 生 成 的 html 代 码 片 段 拷 贝 出 来, 黏 贴 到 你 所 要 整 合 的 web 应 用 html 页 面 的 <body> 后, 如 Quickr 的 <Quickr_INSTALLDIR>/wp_profile/installedApps/wps.ear/wps.war/themes/html/QPG/default.js p 文 件 中