转载

将 Docker 集成到 IBM Operational Decision Manager 环境中

简介

容器在开发流程的许多方面得到了广泛使用,比如开发、测试和部署,它是一种轻量型的虚拟化方法。Docker 是一个在 Linux 上实现基于容器的虚拟化的开放平台,是容器技术的一种流行解决方案。您可能想知道,“我在使用 IBM ODM 开发应用程序时能否使用 Docker ?” 例如,您可能想使用 Docker 快速设置一个干净的 Rule Execution Server,将它用于测试。答案是可以 - 只要您在一个 Docker 容器中安装并配置了 IBM ODM。

试用 Business Rules 服务

在业务策略变更时,花更少时间来记录和测试。 来自 Bluemix 的 Business Rules 服务 通过保持业务逻辑与应用程序逻辑分离,最大限度地减少代码更改。免费试用该服务!

IBM ODM 包含三个主要组件:规则、事件和洞察。您可以在一个托管受支持的第三方应用服务器的 Docker 容器中配置规则组件(Rule Execution Server 和 Decision Center)。事实上,Docker Hub(Docker 镜像的公共注册表)包含一个用于 WebSphere Liberty 服务器的 Docker 镜像,它是一个可用于 IBM ODM 的受支持的应用服务器。您可以根据可用于 WebSphere Liberty 服务器的 Docker 镜像来构建规则组件的 Docker 镜像。

本教程将展示构建一个镜像的详细步骤,可将此作为在 IBM ODM 应用程序开发流程中使用 Docker 的起点。

在编写本文时,Docker Engine 的最新版本是 1.8.1,IBM ODM 的最新版本是 8.7.1。所有步骤都已在一个 Ubuntu 14.04 虚拟机上的这些版本中进行了测试。

回页首

将 Docker 安装在 Ubuntu 上

因为 Docker 环境在快速变化,所以请使用 安装在 Ubuntu 上 在线 Docker 文档来了解将 Docker 安装在 Ubuntu 操作系统上的最新操作说明。

回页首

准备所需的文件

依据 IBM ODM 文档 在 Liberty 配置文件 8.5.5.4 上配置 ,完成以下步骤,在 WebSphere Liberty 上配置 Rule Execution Server 和 Decision Center:

  1. 准备数据库,包括数据库驱动程序和初始数据。(根据您的数据库,步骤可能会有所不同。对于本教程中的示例,可以使用 derby.jar 文件作为数据库驱动程序,使用 data.tar.gz 文件作为数据库,二者都包含在 “下载” 部分的code_sample.zip文件中。)
  2. 将相关的 Web 归档 (WAR) 文件复制到 Liberty_profile_directory/usr/servers/server_name/apps
  3. 更新

    Liberty_profile_directory/usr/servers/server_name/server.xml 上的服务器配置文件。

为在一个 WebSphere Liberty 服务器上配置的 Rule Execution Server 和 Decision Center 构建 Docker 镜像之前,完成这些步骤。

所需的 WAR 文件

要在 WebSphere Liberty 上配置 Rule Execution Server 和 Decision Center,需要使用以下文件:

  • 包含 Rule Execution Server 控制台的 res.war 文件
  • 包含托管透明决策服务的 DecisionService.war 文件
  • 包含 Enterprise 控制台的 teamserver.war 文件
  • 包含 Business 控制台的 decisioncenter.war 文件
  • 用于提供测试和模拟特性的 testing.warDecisionRunner.war 文件

在使用 JBoss, Tomcat, Oracle WebLogic, or WebSphere Liberty Profile 选项安装 IBM ODM V8.7.1 的服务器上,在以下位置找到所需的 WAR 文件:

  • installation_directory/executionserver/applicationservers/WLP855/res.war
  • installation_directory/executionserver/applicationservers/WLP855/DecisionService.war
  • installation_directory/teamserver/applicationservers/WLP855/teamserver.war
  • installation_directory/teamserver/applicationservers/WLP855/decisioncenter.war
  • installation_directory/executionserver/applicationservers/WLP855/testing.war
  • installation_directory/executionserver/applicationservers/WLP855/DecisionRunner.war

数据库文件

本教程使用 Derby 作为 Rule Execution Server 和 Decision Center 的数据库。“下载” 部分的code_sample.zip文件中提供了一个 Derby 数据库驱动程序示例( derby.jar 文件)。

如果没有提供初始数据库,在首次访问 Rule Execution Server 控制台或 Decision Center 控制台时,会为您打开 Installation Setting 向导来初始化该数据库。要在学习本教程时绕过此任务,可以下载初始 Derby 数据库,其中包含 Decision Center 中的一个示例规则项目( data.tar.gz 文件)。请参见 “下载” 部分的code_sample.zip文件。

server.xml 文件

server.xml 文件是 WebSphere Liberty 中的服务器配置文件。对于 Rule Execution Server 和 Decision Center,可将以下配置包含在 server.xml 文件中:

  • 所需的特性
  • WebSphere Libert 服务器监听的地址和端口号
  • 数据来源
  • Web 应用程序的用户和组
  • Web 应用程序信息

IBM 知识中心中的 IBM Operational Decision Manager 文档中的以下主题展示了可放入 server.xml 文件中的示例配置:

  • 下载 Rule Execution Server 管理 WAR
  • 部署托管透明决策服务
  • 创建用户和组
  • 声明新组
  • 部署 Decision Center WAR 文件
  • 部署测试和模拟归档文件

“下载” 部分的code_sample.zip文件中提供了一个包含所有必要配置的示例 server.xml 配置文件。

Dockerfile

要使用 Docker 构建镜像,需要准备一个包含构建该镜像所需的所有指令的 Dockerfile。Dockerfile 是一个文本文档,包含可以在命令行上调用来组装镜像的所有命令。“下载” 部分的code_sample.zip文件中提供了一个示例 Dockerfile。

示例 Dockerfile 的内容类似于下面这个示例:

# ODM 8.7.1 on liberty 8.5.5.5 with derby database   #   # VERSION               1.0   FROM websphere-liberty:8.5.5   MAINTAINER Ming Li <lmming@cn.ibm.com>    # accept license by default   ENV LICENSE=accept    # Deploy database driver for derby   COPY derby.jar /opt/ibm/wlp/usr/shared/resources/derby/    # Init derby database   ADD data.tar.gz opt/ibm/wlp/usr/shared/resources/    # Deploy the war files for RES and DC   COPY apps /opt/ibm/wlp/usr/servers/defaultServer/apps/    # Update server configuration   COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/

回页首

构建 Docker 镜像

所有必要文件都准备好后,即可为 Rule Execution Server 和 Decision Center 构建 Docker 镜像。

准备 build 文件夹

构建 Docker 镜像时,Docker 会将您运行这些命令时所在的目录的所有文件转移到 Docker 服务器。因此,您需要创建一个仅包含构建镜像所需的文件的文件夹。

完成以下步骤:

  1. 创建一个用于构建镜像的空文件夹(例如将它命名为 build )。
  2. 创建一个 build/apps 子文件夹来包含所有 WAR 文件。
  3. 将前几步中收集的 6 个 WAR 文件复制到 build/apps 子文件夹
  4. 将下载的示例文件 derby.jardata.tar.gzDockerfileserver.xml 复制到 build 文件夹。

build 文件夹的结构然后类似于图 1 中的示例:

图 1. build 文件夹结构示例

将 Docker 集成到 IBM Operational Decision Manager 环境中

构建镜像

在准备好 build 文件夹后,就可以构建 Docker 镜像了。首先,使用下面的命令从 DockerHub 拉取 websphere-liberty 镜像:

docker pull websphere-liberty:8.5.5

然后,将当前目录更改为 build 文件夹,使用下面这个命令构建镜像:

docker build – t odm871 .

按照图 2 中的示例操作。

图 2. 构建 Docker 镜像的示例命令

将 Docker 集成到 IBM Operational Decision Manager 环境中

寻找一条 Successfully built xxxxxx 消息。然后运行下面这个命令:

docker images

我们将会创建一个新的 odm871 镜像,如图 3 所示。

图 3. 示例 Docker 镜像列表

将 Docker 集成到 IBM Operational Decision Manager 环境中

回页首

验证 Docker 镜像

现在验证 IBM ODM V8.7.1 中的 Rule Execution Server 和 Decision Center 是否已正确配置并在 Docker 容器中正常运行。

首先,使用下面的命令从 odm871 镜像启动一个容器:

docker run – p 9080:9080 – p 9443:9443 odm871

在图 4 中的日志中,可以看到服务器已成功启动。

图 4. 在 Docker 容器中运行 IBM ODM 时的示例日志

将 Docker 集成到 IBM Operational Decision Manager 环境中

然后,完成以下步骤,从一个 Web 浏览器验证 Rule Execution Server:

  1. 在您的浏览器中通过托管服务器上的 http://server_address:9080/res 根 URL 进入 res ,并登录到 Rule Execution Server 控制台(用户名: resAdmin ,密码: resAdmin

    )。

    登录后,Rule Execution Server 控制台将会打开。

    如果使用了代码示例中提供的初始数据库,则不需要运行 Installation Settings 向导来再次初始化 Rule Execution Server 的数据库。(但是,在自己的环境中执行这些步骤时,您会注意到,在登录到 Rule Execution Server 后,如果数据库未初始化,则会打开 Installation Settings 向导窗口。)

  2. 在 Diagnostics 选项卡中,单击 Run Diagnostics 。如图 5 所示,您会看到所有诊断测试都已通过。对 Local XU connectivityXU MBean connectivity 的测试处于警告状态。这些警告是正常的,因为没有对 Java™SE 执行单元 (XU) 使用任何 JNDI 名称。

    图 5. Rule Execution Server 诊断结果

    将 Docker 集成到 IBM Operational Decision Manager 环境中

    点击查看大图

    关闭 [x]

    图 5. Rule Execution Server 诊断结果

    将 Docker 集成到 IBM Operational Decision Manager 环境中

完成以下步骤,从 Web 服务器验证 Decision Center:

  1. 在您的浏览器中通过托管服务器上的 http://server_address:9080/teamserver 根 URL 进入 teamserver 来打开 Decision Center Enterprise 控制台。然后登录到控制台(用户名: rtsAdmin ,密码: rtsAdmin

    )。

    您会看到一个类似图 6 中的示例的 Decision Center。

    图 6. Decision Center Enterprise 控制台

    将 Docker 集成到 IBM Operational Decision Manager 环境中

    点击查看大图

    关闭 [x]

    图 6. Decision Center Enterprise 控制台

    将 Docker 集成到 IBM Operational Decision Manager 环境中

  2. configure 选项卡上,单击 Diagnostics 。如图 7 所示,您会看到所有诊断测试都已通过。

    图 7. Decision Center 诊断结果

    将 Docker 集成到 IBM Operational Decision Manager 环境中
  3. 在浏览器中通过托管服务器上的 http://server_address:9080/decisioncenter 根 URL 进入 decisioncenter 来打开 Decision Center Business 控制台。然后登录到 Decision Center Business 控制台(用户名: rtsAdmin ,密码: rtsAdmin

    )。

    您会看到一个类似图 8 中的示例的窗口。

    图 8. Decision Center Business 控制台

    将 Docker 集成到 IBM Operational Decision Manager 环境中

    点击查看大图

    关闭 [x]

    图 8. Decision Center Business 控制台

    将 Docker 集成到 IBM Operational Decision Manager 环境中

回页首

结束语

本教程介绍了如何构建一个 Docker 镜像来将用于 IBM ODM V8.7.1 的 Rule Execution Server 和 Decision Center 安装在 WebSphere Liberty 服务器上。您学习了如何在一个来自 Docker 镜像的容器中运行 Rule Execution Server 和 Decision Center。

本教程中的示例是在 IBM ODM 应用程序开发流程中使用 Docker 的起点。您可以使用一个类似的镜像来设置一个干净的 Rule Execution Server 服务器用于测试或开发。或者,您可以根据它来构建您自己的自定义 Docker 镜像。

您可以应用在本教程中学到的技术来为另一个服务器(比如 Tomcat 或 JBoss)上的 Rule Execution Server 和 Decision Center 构建您自己的 Docker 镜像,或使用另一个支持的数据库(比如 DB2 或 Oracle)构建您自己的 Docker 镜像。

致谢

感谢 Jian Feng Cai、Guang Ying Yuan 和 Tim Poultney 的审阅、贡献和评论。

回页首

下载

描述 名字 大小
代码示例 code_sample.zip 4016KB
原文  http://www.ibm.com/developerworks/cn/bpm/bpmjournal/1512_li-trs/1512_li.html?ca=drs-
正文到此结束
Loading...