下面的说明假设您运行在安装了预配置组件的WorkplaceCollaborationServices2.5或WorkplaceServicesExpress2.5。这必须在WebSphereApplicationServer5.0.2.6和WebSpherePortal5.0.2.2之上运行。此外,您还需要一个开发环境,例如RationalApplicationDeveloper6.0或Eclipse3.0(可以从Eclipse网站的下载页面免费下载。)在本文中,我们假设您使用Eclipse作为开发环境。
典型的ManagedClient更新站点由用于功能部件和插件的文件夹、一个名为site.xml的manifest文件以及其他文件夹组成。这些文件夹中包括用户可以下载到本地计算机上的文件。图2展示了一个ManagedClient更新站点例子的结构:
默认情况下,ManagedClient更新站点的结构由site.xml文件来控制。这个文件存放在你的IBMHTTPServer(IHS)安装目录中。(后面会有更详细的介绍)
在开始之前,让我们花点时间澄清一下功能部件和插件之间的关系。如前所述,功能部件包含插件(有时候还包含其他功能部件)。这使得用户能够更容易地下载和管理成组的相关插件——不是逐个下载这些插件,事实上只需下载这个功能部件。Eclipse将解析功能部件中的manifest文件,并下载相应的插件。Eclipse还使用“功能部件”作为管理其配置的单位。您可以安装、卸载和禁用各个功能部件。
由于ManagedClient更新站点和Eclipse更新站点完全相同,因此我们使用Eclipse中的UpdateSiteProject功能部件来为示例应用程序创建更新站点。为此,打开EclipsePDE(PluginDevelopmentEnvironment)并选择File-New-Project-Plug-indevelopment-UpdateSiteProject。这时会出现NewUpdateSiteWizard向导:
Projectname标识更新站点。当您选择"Generateawebpagelisting..."复选框时,这个名称将出现在由向导生成的Web页面上。Projectcontents标识更新站点的位置。您应该将它设置为\htdocs\en_US\lwpupdate\wct,这个路径位于Workplace服务器上的IHS安装目录中。Generateawebpagelistingallavailablefeatureswithinthesite生成一个html文件,该文件列出更新站点内所有可用的功能部件和插件(参见图4)。这只支持Web浏览器。
图4.更新站点上的功能部件和插件

Webresourceslocation默认情况下设为web。单击Finish使Eclipse创建更新站点项目。接着,打开更新站点并双击左侧导航器中的site.xml。然后选择编辑器中的Features标签页。这将显示SiteManifest编辑器:
图5.SiteManifest编辑器

SiteManifest编辑器使您可以选择和组织您想要放在更新站点上的功能部件。为此,单击Add显示可用的功能部件列表。
图6.选择功能部件

SiteManifest编辑器列出当前工作区内的所有功能部件。(注意,具有不同版本号的功能部件被视作不同的功能部件。)选择您想要添加到更新站点的功能部件。然后使用NewCategory按钮创建您想要显示在更新站点上的类别,并将所选的功能部件放入到这些类别中。(在内部,这将更新site.xml文件,即更新站点的manifest文件。site.xml文件控制在更新站点上列出哪些功能部件和类别。这些类别用于将一批功能部件成组放在一起。)完成这些后,单击BuildAll创建更新站点。
为构建更新站点,Eclipse解析包含在每个功能部件中的manifest文件(feature.xml),以判断与每个功能部件相关的插件是哪些。然后,Eclipse构建每个功能部件和插件的.jar文件,并将它们放在更新站点上。之后,当用户从更新站点下载功能部件时,这些.jar文件(包括相关插件的.jar文件)将被装载到他们本地的客户机上。
为了检查新的更新站点,打开Eclipse,然后选择Help-SoftwareUpdates-Findandinstall-Searchfornewfeatureforinstall。接着输入更新站点的目录。假设您选中了图3中的"Generateawebpagelisting…"复选框,您也可以通过在浏览器中打开其URL来浏览更新站点(例如http://hangsu.ibmirl.lan/lwpupdate/wct/index.html)。
编辑site.xml
新的更新站点包含一个名为Plugins的文件夹,该文件夹包含每个版本的插件的所有jar文件。还有一个名为Features的文件夹,用于存储用于下载的功能部件。
注:在大多数情况下,用户不应该直接下载各个插件。为了得到特定的功能,应下载包含这些插件的功能部件。
您也可以手动地将功能部件添加到更新站点中,方法是编辑site.xml文件。例如,下面这段代码将添加功能部件features/com.ibm.wct.sample.feature_1.0.0。如果将这段代码添加到site.xml,那么就会把features/com.ibm.wct.sample.feature_1.0.0添加到更新站点上的可用功能部件列表中:
<featureurl="features/com.ibm.wct.sample.feature_1.0.0.jarid="com.ibm.wct.sample.feature"version="1.0.0"><categoryname="WCT"/></feature>
|
URL是功能部件所在的位置,id是feature.xml中的id设置。categoryname标识该功能部件所在的更新站点类别。
您可以通过类别浏览更新站点。默认情况下,site.xml包括一个名为WCT的类别。通过编辑site.xml,也可以添加其他类别。例如,下面的代码将添加一个名为WCTSample的类别:
<category-defname="WCTSample"label="WCTSample"><description>IBMWorkplaceManagedClientsampleapplications</description></category-def>
|
切换栏中的更新站点图标
还应考虑ManagedClient图形化图标,这虽然是个小问题,但是也很重要。这个图标将出现在ManagedClient的切换栏中。对应于这个图标的文件是一个.png文件,它应该存储在HTTP服务器上的lwpupdate目录中。这个.png文件的尺寸应该是34x32象素。
创建预配置页面
如前所述,在Workplace中设置自动更新过程需要两个主要步骤。第一个步骤我们已经处理好了——创建更新站点。现在我们要将注意力转移到第二个步骤,即在Workplace服务器上创建预配置页面。当客户机连接到Workplace预配置服务器时,服务器从预配置页面取相关的参数(我们在后面会加以讨论)以及预配置页面上的“placeholder”portlets。当客户机启动时,它发送一条请求到服务器,以获取由预配置页面提供的RCPML和placeholderportlets。在对客户机请求的响应中,Workplace服务器使用RCPML生成一个manifest文件,在文件中提供可用应用程序列表。客户机使用manifest来决定它需要从安装站点下载哪些应用程序,并将其提供给用户。
在本节中,我们将创建一个预配置页面,其中包含一个placeholderportlet。这个portlet包含在服务器站点上生成RCPML所需的信息。我们提供了一个示例脚本,您可以下载和运行这个脚本,以便创建自己的预配置页面。(如果对于我们在本节中使用的术语您有需要帮助的地方,请参阅WebSpherePortal文档。)
当在服务器上安装预配置组件时,会出现一个新的名为WCTPlaceHolder的可用portlet。在呈现应用程序的页面上将使用这个placeholderportlet的一个或多个副本。在门户术语中,portlet的副本被称为“具体portlet实例(concreteportletinstance)”。每个placeholderportlet都配置了必需的参数,以便在应用程序中呈现一个视图。
门户上有一个特殊的页面,它有一个单名lwp.WorkPlaceRCPPages。服务器上表示客户机应用程序的页面都是作为lwp.WorkPlaceRCPPages页面的子页面创建的。lwp.WorkPlaceRCPPages的默认位置是在门户服务器的根页级。
现在必须得到placeholderportlet的一个副本(这个副本称为“concrete”副本),并添加描述ManagedClient中相应视图的属性的参数(大小、位置,等等)。大多数RCPMLmanifest文件是从包含在portlet中的参数生成的,而预配置页面本身也有一些重要的参数,例如图标在切换栏中的显示(参阅前一节)。ManagedClient还使用预配置页面的标题作为应用程序标题,这个标题将出现在客户机应用程序切换栏中图标的下方。
注:一开始,管理员以外的人不能访问新页面和新创建的具体portlet,所以需要修改对页面和portlet的访问权,以允许用户访问该页面。例如,您可以在用户角色成员列表中添加"allauthenticatedportalusers"。(请参考WebSpherePortal管理文档了解关于设置对页面的访问控制的信息。)而且,请记得在创建该页面时,选择SupportRCPMLinAdvanced选项。
下面是对于placeholderportlet的每个副本都必须配置的一组参数:
rcpView是plugin.xml中的视图id。ratio是视图的大小。id.Feature_x是包含该视图的功能部件的id。version.Feature_x是所需功能部件的版本。match.Feature_x定义portlet的兼容性。visible控制视图的可见性。例如,完整的portlet设置差不多是这样的:
图7.Portlet设置

请参阅WebSpherePortal管理文档以了解关于复制和配置portlet的信息。为方便起见,我们提供了一个XML访问脚本,这个脚本可以和portalXML访问实用程序一起用来创建一个页面,这个页面包含placeholderportlet的一个新副本,并带有配置好的参数。
接下来,在Workplace服务器上运行XMLAccess实用程序。这样您便可以在服务器的远程运行脚本。在我们的例子中,我们将运行一个脚本,该脚本将创建placeholderportlet的一个包含所需参数的具体portlet,并将其放在一个预配置页面上,然后设置对页面和portlet的访问控制。(要了解关于XMLAccess的更多信息,请参阅WebSpherePortalInfoCenter。)完整的示例脚本代码在thissidefile中。
关于该脚本代码有一些事情要注意一下。脚本请求元素中的create-oids="true"
选项指示服务器为该脚本所创建的每个资源生成新的objectid值,从而创建新的资源,而不是覆盖已有的资源(除非指定了和服务器上已有资源的uniquename相同的uniquename)。如果已经存在相同的uniquename,那么就会更新服务器资源,而不是创建一个新的资源。
Uniquename
是每个资源的用户指定标识符。这就可能导致命名冲突。当出现命名冲突时,XMLAccess将直接覆盖所有资源,之前不会发出询问。所以您需要小心对待uniquename。您可以使用下面这个简单的XMLAccess脚本来导出RCP根页下的所有内容,并检查命名冲突:
<?xmlversion="1.0"encoding="UTF-8"?><requestxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="PortalConfig_1.2.xsd"type="export"transaction-level="none"><portalaction="locate"><content-nodeaction="export"uniquename="lwp.WorkPlaceRCPPages"export-descendants="true"/></portal></request>
|
输出包含随预配置组件附带的应用程序,所以,当您准备将目光转移到更复杂的应用程序时,这个输出文件是一个很好的例子。
如果您想从一个客户机上运行XMLAccess脚本,那么需要从<LWPServer安装目录>\PortalServer\bin复制tools.jar文件。这样客户机上的JVM就可以使用它。然后运行命令行:
javaw-classpathtools.jarcom.ibm.wps.xmlaccess.XmlAccess-in<your_script_name>-out<output_script_name>-user<User_Name>-pwd<Password>-url<Your_Server_address(IP)>:9081/lwp/config
|
这个命令行适用于Windows;在其他平台上的运行也是类似的。
<output_script_name>
设置的是XMLAccess的输出。它是一个XMLAccess脚本,它也可以作为输入脚本,例如,当您从服务器上导出一个文件时,可以使用该输出文件来存储它,或者将它复制到另一个服务器。在这种情况下,我们的脚本是一个更新操作,输出文件只显示结果。您可以期望看到一个静态元素,例如<statuselement="all"result="ok"/>
,这表明一切运行正常。操作细节记录在输出文件开头部分的XML注释中。记住,您需要虚拟资源Portal的Administrator角色才能使用XMLAccess实用程序。
结束语
现在是时候检查结果了。从Workplace服务器下载和运行ManagedClient。您应该看到如下所示的页面:
图8.示例WorkplaceManagedClient页面

注意左侧导航器底端亮绿色的"Hi"图标。这表示我们的示例应用程序,这个应用程序已通过自动部署系统成功地部署到ManagedClient上。这是一个非常简单的应用程序,它仅仅由一个图标和一个视图组成。然而,它足以演示如何用这个部署系统来部署应用程序和其他更新。
在本文中,我们解释了设置部署系统的基本流程,这个系统用于为WorkplaceManagedClient用户自动部署更新。我们描述了其中涉及的两大步骤:在Eclipse中建立一个更新站点,以及在Workplace中创建一个预配置页面。您可以按照我们的例子来设置您自己的应用程序,以便帮助您在扩张Workplace社区时,管理和控制更新及部署过程。
来源:互连网