在本文中,我们将详细介绍如何使用 IBM Integrated Solutions Console Toolkit 开发工具箱以及 IBM Rational Application Developer 来开发管理控制台模块,并且如何部署到 Integrated Solutions Console 集中控制台中。
在 "利用 Integrated Solutions Console构建综合的管理控制台应用" 一文中,我们详细介绍了 IBM 集成解决方案控制台 ISC(Integrated Solutions Console)的定义和体系结构,了解了一个 IBM Integrated Solutions Console 实例由一个 IBM Integrated Solutions Console 框架和一系列由 IBM Integrated Solutions Console 开发组和其它产品或解决方案提供者自己开发的管理控制台模块构成,控制台模块组件符合 JSR 168 规范,运行在 WebSphere Application Server 和 WebSphere Portal 的环境中,那么在本文中,我们将详细介绍如何使用 IBM Integrated Solutions Console Toolkit 开发工具箱以及 IBM Rational Application Developer 来开发管理控制台模块,并且如何部署到 Integrated Solutions Console 集中控制台中。
IBM Integrated Solutions Console Toolkit 简介
Integrated Solutions Console Toolkit V6 开发工具箱包含了开发管理控制台模块插件(Integrated Solutions Console plug-in),Integrated Solutions Console Runtime,开发者信息帮组中心(Developer Information Center)等组件,其中,IBM Integrated Solutions Console plug-in 开发工具插件可以方便地被集成到 Rational Application Developer 中,该插件可以方便地创建 Integrated Solutions Console 部署描述符,简化管理控制台模块的开发,它提供了以下主要功能:
1.提供了创建 Integrated Solutions Console 部署描述符的向导和编辑定义部署描述符的编辑器;
2.可以自动为每一个 Integrated Solutions Console 模块分配一个唯一的 ID,可以通过部署描述符编辑器来修改 ID;
3.通过部署描述符编辑器可以定义编辑页面的内容层次和导航树节点信息等,可以产生包含不同的行和列的页面布局,便于部署含有多个 portlet 的页面应用;


|
回页首 |
|
IBM Integrated Solutions Console Toolkit 的安装
利用 Integrated Solutions Console Toolkit plug-in 开发管理控制台模块插件和 IBM Rational Application Developer V6.0 来开发集中控制台模块,还需要用到 IBM WebSphere Portal 工具箱,这些工具可以参见参考资料获得。在得到 Integrated Solutions Console Runtime及Toolkit 的安装文件后,通过以下命令来进行 IBM Integrated Solutions Console Toolkit V6 的安装:
需要注意的是,如果是在类似远程终端连接中进行 Integrated Solution Console 开发工具箱的安装,需要在 run 后面指定 -console 选项。
在安装过程中,选择 "Rational Application Developer的Integrated Solutions Console插件" 功能部件,将 Integrated Solutions Console 插件安装到 IBM Rational Application Developer 中,如图示1 所示:
图示1:Integrated Solutions Console 工具箱组件选项
安装结束后,启动 Rational Application Developer6.0,从菜单栏选择 File > New > Project... ,会打开 New Project 向导,可以看到有 Integrated Solutions Console 应用模块向导,如图2 所示:
图示2:Integrated Solutions Console 模块向导


|
回页首 |
|
Integrated Solutions Console 管理控制台模块开发步骤
IBM集成解决方案控制台是基于 IBM WebSphere Application Server 和 IBM WebSphere Portal 等技术,采用诸如 Java、J2EE、XML、Eclipse 以及 JSR 168 Portlet API 等技术,将打包在多个控制台模块中的门户小应用程序(Portlets)在页面中进行聚合并将内容在一致的外观框架中进行显示,用户可以重用已投资开发的后台管理业务逻辑模块,将重心放在表示层的开发整合上。在多数情况下,控制台模块包含一组相关的 Portlet 应用,这些门户小应用程序提供了相关产品的业务逻辑和事务处理等管理功能,因此,Portlet 的开发对于构件控制台模块是十分关键的。由于 Integrated Solutions Console V6 支持 JSR 168 Portlet API 等工业标准技术,如不作特别说明,本文中 Portlet 应用都是基于 JSR 168 Portlet 标准。一个 Integrated Solutions Console 管理控制模块本身也是一种用于管理各种控制台资源的 Portlet 应用程序,它可以包含一个或多个门户小应用程序(Portlet)。使用 ntegrated Solutions Console plug-in 开发一个控制台模块,通常需要进行两个步骤的工作:
1. 构建一个 JSR 168 Portlet 项目,该 Portlet 项目主要处理业务逻辑和事务处理等管理功能,也可以重用已开发的 Portlet 应用;
2. 使用 Integrated Solutions Console plug-in 构建一个 Integrated Solutions Console 项目,将相关的 Portlet 项目集成到其中。
本文将主要介绍在 IBM Rational Application Developer 开发环境中,如何使用 Integrated Solutions Console plug-in 构建一个 Integrated Solutions Console 项目,并将相关的 Portlet 项目集成到其中,由于 JSR 168 Portlet 项目的开发不是本文的重点,故不作详细的介绍。文中将给出一个简单的 JSR 168 Portlet 项目,该 Portlet 只是简单的输出 Hello World 等信息,通过 Integrated Solutions Console plug-in 将该 Portlet 应用集成到管理控制台模块中,最后将该控制台模块部署到 Integrated Solutions Console 运行时环境中,需要注意的是,在实际应用中,被集成的 Portlet 应用主要是管理各种控制台资源的 Portlet 应用程序。下载本文章的示例 helloworld.war 文件。


|
回页首 |
|
Integrated Solutions Console plug-in 的使用
本节详细讲解如何利用 Integrated Solutions Console plug-in 构建一个 Integrated Solutions Console 项目。首先将被集成的 Portlet 应用导入到 IBM Rational Application Developer 开发环境中,本文给出了 Portlet 应用的源代码,读者也可以自己开发一个简单的 Portlet 应用项目用于集成。图3 是该 Portlet 应用 doView() 方法中的图示代码。
图示3: doView() 方法代码示例
接下来将要创建一个管理控制台模块项目,将该 Portlet 项目集成起来。在 IBM Rational Application Developer 开发环境中,从菜单栏选择 File > New > Project... ,打开 New Project 向导,可以看到有 Integrated Solutions Console 应用模块向导,创建一个 Integrated Solutions Console 模块项目。
(1)在填入完毕关于模块项目的元数据信息后就可以进行模块的创建,如图4 所示。
.Console module title: 此属性指定控制台模块的标题,本标题由 Integrated Solutions Console 在内部使用。
.Console module version: 此属性指定控制台模块的版本,格式为 major.minor,例如 1.0。
.Suite title: 此属性指定控制台模块所属套件的标题,此名称将显示在控制台"欢迎"页面上已部署套件的列表中。
.Suite ID: 此属性指定套件的标识。
.Suite version: 此属性指定套件的版本,格式为 major.minor。
图示4: 设置控制台模块项目的标识信息
(2)集成 Portlet 应用,在这一步,选择要集成到管理控制台模块重的 Portlet,也可以选择要重用的被打包的 Portlet 应用,在本例中,没有要重用的 Portlet 应用,如图5 所示。
图示5: 集成已有的 Portlet 到控制台模块
(3)接着指定用于对通过 Integrated Solutions Console 管理的资源执行操作的页面的标题。此标题将显示在控制台左部的标题导航栏上,这些标题也可以直接在部署描述符编辑器进行修改,如图6 所示。
图示6: 指定控制台模块的导航页
(4)当结束 Integrated Solutions Console plug-in 向导后,切换到部署描述符编辑器的 Portlet 页面,可以对管理控制台标识进行编辑,如图7 所示。
图示7: 部署描述符编辑器 Portlet 标签页
(5)切换到部署描述符编辑器的 Navigation 页面,可以对导航树进行编辑,如增加导航节点等,如图8 所示。
图示8: 部署描述符编辑器 Navigation 标签页
完成上述子步骤后一个管理控制台模块基本上就完成了,您会发现在 Portlet 项目中新增加了两个文件(component.xml和isc.xsd)。整个项目的文件层次结构如图9 所示。
图示9: 控制台模块项目的整体文件层次结构
.isc.xsd 用来描述 component 实例文档的模式文件。
.Integrated Solutions Console 部署描述符(component.xml)
此文件是控制台模块的核心部署描述符,在本例中不需要添加额外的信息,只使用默认生成的即可。理解控制台模块部署描述符 component.xml 文件对于定义和编辑控制台模块十分重要,下面结合本文中开发的控制台模块 HelloWorld 示例的部署描述符,讲解一下部署描述符的主要组成。
Integrated Solutions Console 部署描述符,定义了控制台应用模块的 UID,如何启动 Portlet,左部导航区的任务菜单项、Portlet 在哪个页面上显示以及控制台模块的访问控制权限等等。可以手工创建这个文件,也可以使用 IBM Integrated Solutions Console 开发工具箱的向导来创建。
图10 所示的是部署描述符的标题部分,定义了套件名称和版本。套件相当于控制台模块,表示一个管理控制台。一个管理控制台可以包含许多 Portlet;在本文例子中,只有一个 Portlet。最重要的部分是 <component> 标记中的 uid 属性。uid 属性必须是这个控制台的惟一标识符。它在 Integrated Solutions Console 中部署的所有组件模块中惟一地标识这个组件。
图示10: 部署描述符的标示片断1
下一部分是 <content-hierarchy>。这里定义左边导航树中的菜单项,如图11所示,<content-type name="workItemPage" supported-markup="html"> 定义一个页面和它支持的标记语言。HTML 是 Integrated Solutions Console V6 支持的惟一一种标记语言。<org-node uid="com.ibm.isc.HelloWorld.16814530472500056">,org-node 需要由它的 uid 属性惟一地标识。<title> 标记根据地区显示 org-node 的标题。<page> 标记定义 Portlet 将存在于哪个页面中,它也需要在它的 uid 属性中指定惟一标识符,与 org-node 相同,页面标题也是与地区相关的。<page-layout> 标记定义 Portlet 如何在页面中显示。它们只能按照 <row> 和 <columns> 显示。<Portlet> 标记指定 Portlet 的名称。部署描述符 component.xml 文件中的 ref 属性需要指向 Portlet.xml 文件中 <Portlet-app> 标记的 id 属性,加上 <Portlet-name>,因此,产生的标记是:<Portlet ref="helloworld.HelloWorldPortlet.b5d3ab28b0.HelloWorld"/>。
图示11: 部署描述符的标示片断2
至此,一个完整的 Integrated Solutions Console 模块实例就开发完毕了,在部署之前需要将它打包成标准的 J2EE War 文件。您可以使用IBM Rational Application Developer的导出向导,也可以使用JDK自带的JAR工具将开发完毕的集中控制台应用模块打包。


|
回页首 |
|
Integrated Solutions Console V6 的认证与授权
Integrated Solutions Console V6 的认证与授权机制是基于 IBM WebSphere Portal 的,WebSphere Application Server 处理了用户的认证请求,Integrated Solutions Console 重用了 Portal 的访问控制(access control)机制来授权用户浏览和使用 Integrated Solutions Console 的资源,这些资源可以是控制台上的页面,页面上的 Portlet,或者导航树上的节点等信息,控制台模块开发者可以在模块部署描述符中指定这些访问权限,当模块被部署到控制台中,这些权限自动生效。访问权限是基于角色的,每个角色定义了授权的用户可以对特定的资源进行特定动作的集合。关于 Integrated Solutions Console V6 的认证与授权机制的详细信息,可以参见参考资料中的 IBM 集成解决方案控制台及其相关技术等资料。
Integrated Solutions Console 管理控制模块部署将一个控制台应用模块部署到 Integrated Solutions Console 运行时环境中,通常需要做以下操作:
1. 安装 Integrated Solutions Console 运行时环境。 注:本文中开发的示例是基于 V6 版本的 Integrated Solutions Console 运行时环境。详细安装方法可以参见参考资料中的 IBM 集成解决方案控制台及其相关技术等资料。
2.将已经开发完毕的应用模块打包成为符合标准的 J2EE War 文件。
3.运行 ISCDeploy 命令脚本对该控制台模块组件进行部署。
Integrated Solutions Console 运行时环境安装完成后,可在 isc_root/PortalServer/bin 路径找到 startISC.bat(sh),stopISC.bat(sh),IscDeploy.bat(sh),IscRemove.bat(sh) 等常用命令用于启动服务和部署集中控制台模块。
注:isc_root为Integrated Solutions Console Runtime 的安装路径。
要部署集中控制台模块,需要先启动 Integrated Solutions Console V6 Runtime,然后用 IscDeploy 命令来部署集中控制台模块,如果部署成功,该命令返回值是 0;否则,将得到不同的返回值。在 Windows 操作系统中使用 IscDeploy.bat 命令,在 Linux 和 UNIX 等操作 系统中使用 IscDeploy.sh 命令。命令格式为:
IscDeploy.bat(sh) war_file userid password URL
|
其中:
war_file : WAR 文件的相对或绝对路径;
userid : Integrated Solutions Console Runtime 的管理员用户名;
password : Integrated Solutions Console Runtime 的管理员密码;
URL : http://localhost:8421/deploy/deploy;
图示12:模块部署命令
将一个控制台应用模块从 Integrated Solutions Console 运行时环境中移除,通常需要运行 IscRemove 命令,如果移除成功,该命令返回值是 0;否则,将得到不同的返回值。在 Windows 操作系统中使用 IscRemove.bat,在 Linux和 UNIX 系统中使用 IscRemove.sh。命令格式是:
IscRemove.bat(sh) component_uid userid password URL
|
其中:
component_uid:集中控制台模块组件的 UID;
userid :Integrated Solutions Console Runtime 的管理员用户名;
password :Integrated Solutions Console Runtime 的管理员密码;
URL :http://localhost:8421/deploy/deploy ;


|
回页首 |
|
总结
IBM 集成解决方案控制台提供了一个基于 Web 的集成多个产品和解决方案的管理和配置功能的统一框架,通过访问部署在 IBM 集成解决方案控制台之上的控制台应用模块,管理员可以更为有效地操作和管理企业内部的计算机运行环境等。而控制台应用模块的开发从某种意义上可以看作是对 Portlet 应用的重新打包,通过本文,读者可以了解到如何使用 IBM Integrated Solutions Console Toolkit 开发工具箱以及 IBM Rational Application Developer 来开发管理控制台模块,并且如何部署到 Integrated Solutions Console 集中控制台中。 |