级别: 中级 王 夕宁 (wangxn@cn.ibm.com), 高级软件工程师, IBM 何 蕾 (heleihl@cn.ibm.com), 资深软件工程师, IBM
2009 年 2 月 12 日
本系列基于电信行业中的实例应用,针对业务模型的生命周期治理展开讨论,本篇是该系列中之一,侧重于如何定义 WSRR 中支持的基于本体的业务模型,并以此定制自定义用户 Web 界面,从而更好地展示业务数据。在下一篇文章中,将会讲述如何定义生命周期,并重点讨论如何基于策略实现生命周期的治理,并且通过一个示例讲述如何基于定制的用户界面进行生命周期的治理。
引言
随着面向服务的体系架构(Service-Oriented Architecture,SOA)的出现,服务正越来越被视为一项主要企业资产。这种业务和 IT 的以服务为中心的观点的转换带来了对跨越组织生态系统(由多个参与者、流程和系统组成)管理和促进服务相关信息和元数据的全面解决方案的需求。
面对日益激烈的全方位市场竞争,欲克服原有语音、资源业务的日益饱和的压力,就必须在数据增值服务的新一轮竞争中胜出,而这样就要求现有的电信运营商从横向开发客户新业务需求的服务,而且还要从纵向发展高端用户,推出更具有吸引力的增值服务,提高竞争力、增加客户满意度、减少客户流失、提高效益。要实现新业务和数据增值服务,就必然要不断有新技术、新业务和新应用的投入,但是随着不断从原有传统的语音业务向 IP 业务、内容提供业务到应用访问业务的开展,这样就导致网络的日益复杂、应用技术架构的日益复杂、可能造成重复建设和效率低下、造成投资和运营成本的增加,因此就拥有一个统一的面向服务的数据业务平台对于电信运营商来说意义重大,而其中对增值业务系统的生命周期管理尤为重要。
作为 SOA 治理的一部分,定义、管理和执行业务服务的生命周期是不可或缺的。生命周期是跟业务需求息息相关的,针对增值业务服务的具体特点,运营商的管理平台应提供统一的接口,完成服务供应商的业务申请、开通、变更、注销以及业务资费的统一管理。
单从服务供应商的注册新业务角度分析,应需要经过一系列的流程,例如登录申请业务界面,身份认证、填写业务类别、资费信息等,新业务测试、测试通过以及更新业务信息等。本系列将通过电信行业中的案例,讲述 IBM WebSphere Service Registry & Repository(简称为 WSRR) 6.2 为了支持服务生命周期而提供的功能。
WSRR 中的业务模型
定义 WSRR 支持的业务模型
当数据业务逐渐成熟并且进入稳步发展的阶段,衍生在其之上的增值业务也随着备受重视。对电信运营商来说,那些越来越多的服务供应商的加入,势必对其管理体系及管理平台造成更为严峻的挑战。众所周知,电信行业中的业务模型纷繁复杂并且快速变化,本案例无意去分析这些复杂的业务情况,而只是通过选择其中的数据增值业务进行业务建模,以说明如何基于 WSRR 对这些业务对象进行生命周期治理。
如下所示,
表 1
和
表 2
分别列出了其中的服务供应商(Service Provider)和数据增值业务(Data Value-added
Service)的某些属性。
表 1 服务供应商属性列表
| 属性名称 | 数据类型 | 备注 |
|---|
| 标识 ID | 字符串 | 表示服务供应商代号; |
|---|
| 名称 | 字符串 | 表示服务供应商名称; |
|---|
| 规模(人数) | 整数 | 表示服务供应商公司的人数规模; |
|---|
| 所属城市 | 字符串 | 表示服务供应商公司所在的城市,界面提供相关城市的列表; |
|---|
| 是否上市 | 布尔值 | 用于说明该服务供应商是否属于上市公司,默认值为 false; |
|---|
| 网站 | 字符串 | 该服务供应商的网站地址 |
|---|
表 2 数据增值业务属性列表
| 属性名称 | 数据类型 | 备注 |
|---|
| 标识 ID | 字符串 | 表示数据增值业务代号; |
|---|
| 名称 | 字符串 | 表示数据增值业务名称; |
|---|
| 服务内容 | 字符串 | 表示数据增值业务的具体服务内容; |
|---|
| 收费价格 | 双精度浮点数 | 表示数据增值业务的收费价格; |
|---|
| 是否支持个性化订阅 | 布尔值 | 用于说明该数据增值业务是否支持个性化订阅,默认值为 true; |
|---|
| 生效时间 | 日期时间 | 用于说明该数据增值业务的生效时间 |
|---|
| 失效时间 | 日期时间 | 用于说明该数据增值业务的失效时间 |
|---|
基于本体 OWL 实现业务模型系统
IBM WebSphere Service Registry &
Repository 不但提供了 Web 服务元数据的业务模型及其治理,而且还允许用户自定义企业组织内的业务领域模型。WSRR 针对以下几个方面提供了业务建模的能力,具体表现为:
- 扩展模板的输入功能。
- 能更灵活地对业务对象进行建模。
- 在创建这些业务对象的实例时能提供额外的验证功能。
- 提供扩展的输入功能,以允许在创建和更新时可以验证属性和关系。
WSRR 所支持的业务模型文件是基于 W3C 组织的 Web 本体语言(Web Ontology Language,
OWL)标准。本文并不详细介绍如何编写一个基于 OWL 的业务模型文件,右边的 工具条 给出了基本的概念,读者可以参阅 WSRR 的信息中心或 W3C 官方网站上的介绍。
值得一提的是,当前 WSRR 已经支持了以下数据类型的定义:
 |
Web 本体语言的基本概念及资源
- Web 本体语言 OWL 是一种定义和实例化 Web 本体的语言。" 本体 " 这个术语来自于哲学,它是研究世界上的各种实体以及他们是怎么关联的科学。
- 一个 OWL 本体中的大部分元素是由类(class)、属性(property)、类的实例(instance)以及这些实例间的关系构成的。
- OWL 构建在 RDF 的顶端之上,与 RDF 有很多相似之处,但是较之 RDF,OWL 是一门具有更强机器解释能力的更强大的语言,并且拥有更大的词汇表以及更强大的语言。
- OWL 由 XML 来编写,通过使用 XML,OWL 信息可在使用不同类型的操作系统和应用语言的不同类型的计算机之间进行交换。
- OWL 拥有三种子语言:OWL Lite、OWL DL ( 包含 OWL Lite) 以及 OWL Full ( 包含 OWL DL)。
- 参考文献 中列出了 OWL 相关的一些链接。
|
|
- http://www.w3.org/2001/XMLSchema#string
- http://www.w3.org/2001/XMLSchema#integer
- http://www.w3.org/2001/XMLSchema#short
- http://www.w3.org/2001/XMLSchema#long
- http://www.w3.org/2001/XMLSchema#float
- http://www.w3.org/2001/XMLSchema#double
- http://www.w3.org/2001/XMLSchema#anyURI
- http://www.w3.org/2001/XMLSchema#boolean
- http://www.w3.org/2001/XMLSchema#date
- http://www.w3.org/2001/XMLSchema#dateTime
- http://www.w3.org/2001/XMLSchema#time
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration
Profile 下的 Business Model Systems 菜单项,并点击右侧页面中的 Load
Business Model
System 按钮,导入下载列表中的业务模型文件 BusinessModel.owl(位于 /Business
Model Ontology 目录下),如
图 1
所示。
图 1 上传业务模型系统
点击确认按钮,页面跳转到业务模型系统列表界面,如
图 2
所示,数据增值业务模型成功地被载入 WSRR 中。
图 2 载入数据增值业务模型
基于业务模型定制 WSRR 用户界面
WSRR 提供了一个基于 Web 的用户界面,如
图 3
所示该 Web 界面包括了三个部分:顶部的横幅、左边的导航树以及右边的工作区。WSRR 提供的该 Web 用户界面不但给出了 Web 服务元数据如 Web 服务描述文档 WSDL、XML 模式定义文档 XSD 及 Web 服务策略 WS-Policy 等的视图展示,而且也给出了用户自定义数据模型的通用视图展示。但这种通用视图展示的界面尽管可以描述全部的业务数据,但可能不是用户期望看到的界面。
图 3 WSRR 提供的 Web 界面
幸运的是,WSRR 提供了一套用于定制 Web 用户界面的机制,具体的表现为通过使用一系列的 Web 界面定义文件定义导航树和工作区内的内容界面。用户可以定制这些 Web 界面定义文件,以便提供更适合展示业务数据的视图。当前 WSRR 提供了六种用于定义 Web 界面的 XML 文件,具体如下:
1)透视图 Perspective
不同的透视图对应不同的多个相关联的数据显示视图,而每一个透视图关联了一个导航栏定义文件、一系列的详细视图定义文件以及一系列的集合视图定义文件。
2)导航树 Navigation tree
导航树定义文件中指定了位于左边导航栏内的树状结构。
3)视图查询 View query
一个视图查询定义文件指定了一个关于 WSRR 数据的查询。当用户点击导航树的叶节点链接时,该查询的结果将会显示到右边工作区的集合视图中。
4)详细视图 Detail view
详细视图用于展示 WSRR 中的 Web 服务元数据或业务数据模型对应的某一个实例对象的具体内容。每一个实例对象的属性名称及其数据类型都被定义在基于 Ontology 本体论的业务模型文件中,这些属性决定了详细视图的具体显示内容。
5)集合视图 Collection view
集合视图用于展示 WSRR 中的 Web 服务元数据或业务数据模型对应的实例对象的集合。在集合视图的列表中,用户可自定义要显示的属性。另外,用户还可以定制集合视图界面中要显示的按钮。
6)主页面 Home page
每一个透视图都有一个对应的主页面,该主页面用于提供一些便捷的链接、功能列表等,以便于用户快速发现并使用这些功能。
此外,WSRR 还提供了多语言国际化和本地化的支持。WSRR 通过使用资源绑定机制为消息定位本地值,对应不同语言的属性文件可以打包到同一个 JAR 文件中。每一个使用该资源的界面定义元素都会有一个特定的属性 resource-bundle-name 定位资源绑定文件,同时还会包含另外一个属性 message-key 指定使用的消息关键字。
上述六个 Web 界面定义文件和资源绑定文件并不是孤立的,有些文件可能会引用到其他的文件内容。它们之间存在着如
图 4
所示的关系。
图 4 Web 界面定义文件和资源绑定文件之间的关系
透视图
如上所示,每一个透视图定义文件指定了导航树、主页面、详细视图以及集合视图等其它定义内容,因此透视图往往成为定制用户界面的起始点。不同的透视图将不同的一个导航树、一个主页面、多个详细视图及多个集合视图组织在一起,每一个透视图定义文件中都引用到了导航树的定义名称、主页面的定义名称以及详细视图与集合视图的显示类型和视图定义之间的映射关系。此外,透视图还指定了以下内容:
- 1)用户是否可以保存通过查询向导创建的查询;
- 2)使用一个或多个过滤器重定义集合视图;
- 3)是否在该透视图中启用过滤功能;
既然透视图是为不同的用户角色定义的,因此它本身也被设计为面向角色的,也就是说不同的用户登录到 WSRR 的 Web 控制台界面后,根据该用户对应的权限,系统会计算出一个透视图列表并显示到页面的左上方列表中。切换到不同的透视图,整个页面会显示不同的布局和内容。值得一提的是,当用户新添加一个透视图、或者删除一个已存在的透视图时,都必须刷新 Web 浏览器才能看到更新后的透视图列表。
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration
Profile-> Web UI Configuration 下的
Perspectives 菜单项,并点击右侧页面中的 Load UI Perspective
Definition 按钮,导入下载列表中的透视图定义文件 SampleEndUserPerspective.xml(位于 /Web
UI/ Perspective 目录下)。你可以使用省略后缀的文件名作为透视图配置项的名称,如
图 5
所示。
图 5 配置透视图
导航树
导航树定义文件指定了导航树的名称以及结构,每一个导航树是由多个可以嵌套的节点组成的。这些节点既可以通过指定属性 forward 引用一个页面的链接,如指向查询界面等,还可以通过指定属性 view-query-id 引用视图查询定义文件中定义的查询名称。
一个导航树定义文件只能包含唯一的导航树定义内容,并且定义名称必须是唯一的。
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration
Profile-> Web UI Configuration 下的 Navigation
Trees 菜单项,并点击右侧页面中的 Load UI Navigation Tree
Definition 按钮,导入下载列表中的导航树定义文件 SampleEndUserNavigationTree.xml(位于 /WebUI/
Navigation Tree 目录下)。你可以使用省略后缀的文件名作为导航树配置项的名称,如
图 6
所示。
图 6 配置导航树
主页面
每一个透视图都有属于自己的主页面,以便于用户自定义页面的布局、显示的内容等。每一个主页面是由以下几部分面板构成的,如
表 3
所示:
表 3 主页面面板
| 面板名称 | 说明 |
|---|
| 欢迎 | 显示主页面标题以及欢迎的文字 |
|---|
| 业务对象 |
列出存储在 WSRR 中的业务模型模板的名称。点击其中的任一个名称,将会显示所有由该模板创建的概念对象。
|
|---|
| 保存的查询 | 列出保存在 WSRR 中的查询的名称。点击每一个查询名称,将会显示查询的结果内容。 |
|---|
| 自定义的对象集合链接 | 列出指定类型的对象集合。点击每一个对象名称,将会显示该对象的集合列表。 |
|---|
| 上传文档 | 提供允许用户上传文档的便捷方式 |
|---|
| 按分类浏览 | 允许用户显示指定的分类 |
|---|
| 引用 | 显示引用信息的一些链接 URL |
|---|
| 关于 | 显示 WSRR 产品的相关信息,如版本号、版权信息等。 |
|---|
如 图 7 所示,整个主页面是由多个部分组成的,每一个部分分别位于不同的页面位置。
图 7 主页面
每一个面板提供了不同的定制能力,如
表 4
所示:
表 4 面板提供的定制能力
| 面板名称 | 定制能力 |
|---|
| 欢迎 | 可以修改主页面标题、欢迎的文字或者背景图片,但不能删除该欢迎面板。 |
|---|
| 业务对象 | 可以修改标题和图标,但不能直接修改面板显示的内容。该面板将动态列出存储在 WSRR 中的业务模型模板的名称。当然用户可以在页面中去掉该面板。 |
|---|
| 保存的查询 | 可以修改标题和图标,但不能直接修改面板显示的内容。该面板将动态列出保存在 WSRR 中的查询的名称。当然用户可以在页面中去掉该面板。 |
|---|
| 自定义的对象集合链接 | 可以任意增加或删除指定类型的对象集合面板,还可以指定自定义的标题和图标。同样地也不能直接修改面板显示的内容。 |
|---|
| 上传文档 | 不能定制该面板,但可以在页面中去掉该部分。 |
|---|
| 按分类浏览 | 不能直接修改面板显示的内容,该面板将动态列出允许用户显示指定的分类。 |
|---|
| 引用 | 可以任意增加或删除该类型面板;对于每一个面板,可以修改标题和图标,还可以修改显示引用信息的链接 URL 及其图标。 |
|---|
| 关于 | 不能定制或删除该面板。 |
|---|
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration Profile-> Web UI Configuration 下的 Home Pages 菜单项,并点击右侧页面中的 Load UI Home Page Definition 按钮,导入下载列表中的主页面定义文件 SampleEndUserHomePage.xml(位于 /WebUI/ Home Page 目录下)。你可以使用省略后缀的文件名作为主页面配置项的名称,如 图 8 所示。
图 8 配置主页面
视图查询定义
一个视图查询定义文件指定了一个关于 WSRR 数据的查询。当用户点击导航树的叶节点链接时,该查询的结果将会显示到右边工作区的集合视图中。每一个视图查询定义了唯一的 ID、显示类型名称以及查询的参数等,其中显示类型名称用于与集合视图相关联。如 清单 1 代
码所示,定义了 ID 为 showService_Providers、显示类型为 allService_Providers 以及能查询类型为 http://www.ibm.com/xmlns/telecom/sample/SampleBusinessModel #Service_Provider 的普通实体。
清单 1 视图查询定义代码
<ViewQueryDefinitionSet
xmlns="http://www.ibm.com/xmlns/prod/serviceregistry/6/0/ViewQueryDefinitionSet"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xalan="http://xml.apache.org/xslt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.ibm.com/xmlns/prod/serviceregistry/6/0/ViewQueryDefinitionSet
../../schemas/ViewQueryDefinitionSet.xsd">
<QueryDefinitions>
<!-- 视图查询定义的 ID 为 showService_Providers -->
<Query id="showService_Providers">
<!-- 对象类型为 GenericObject -->
<ObjectType>GenericObject</ObjectType>
<!-- 显示类型为 allService_Providers -->
<DisplayType>allService_Providers</DisplayType>
<!-- 查询类型为 http://www.ibm.com/xmlns/telecom/sample/SampleBusinessModel
# Service_Provider -->
<Property name="primaryType" value =
"http://www.ibm.com/xmlns/telecom/sample/SampleBusinessModel #Service_Provider"/>
</Query>
</QueryDefinitions>
</ViewQueryDefinitionSet> |
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration Profile-> Web UI Configuration 下的 View Queries 菜单项,并点击右侧页面中的 Load UI View Query Definition 按钮,导入下载列表中的视图查询定义文件 SampleProfileViewQuery.xml(位于 /WebUI/ View Query 目录下)。你可以使用省略后缀的文件名作为视图查询配置项的名称。如 图 9 所示的是导入后的视图查询定义文件的内容。
图 9 配置视图查询定义
集合视图定义
集合视图用于展示 WSRR 中的 Web 服务元数据或业务数据模型对应的实例对象的集合。在集合视图的列表中,用户可自定义要显示的属性,这些属性还可以被指定作为一个指向其他页面的链接。例如 清单 2 代码描述了指向详细视图的链接。
清单 2 指向详细视图的链接代码
<column-definition filterable="true">
<heading-message message-key="collection.view.column.name"/>
<property-name>name</property-name>
<!-- 指向详细视图的链接 -->
<action>ViewDetail</action>
</column-definition> |
其中,元素 action 描述了点击该属性所执行的动作,即跳转到对应的界面。
另外,用户还可以通过元素“button-definition”定制集合视图界面中要显示的按钮。如 清单 3 代码所示。
清单 3 定制集合视图界面中要显示的按钮
<button-definitions>
<button-definition>
<button-message message-key="collectionButton.createService_Provider"
resource-bundle-name="SampleProfileResources"/>
<!-- 创建类型为 http://www.ibm.com/xmlns/telecom/sample/SampleBusinessModel
#Service_Provider 的对象 -->
<button-action>createGenericObject</button-action>
<model-reference>
http://www.ibm.com/xmlns/telecom/sample/SampleBusinessModel#Service_Provider
</model-reference>
</button-definition>
<button-definition>
<!-- 删除实例对象 -->
<button-message message-key="collectionButton.deleteItems"/>
<button-action>deleteItems</button-action>
</button-definition>
<button-definition>
<!-- 为实例对象增加属性 -->
<button-message message-key="collectionButton.addProperties"/>
<button-action>addProperty</button-action>
</button-definition>
</button-definitions> |
其中,元素 button-action 描述了点击该按钮所执行的动作,如上述代码中元素值为 createGenericObject 的按钮描述了创建类型为元素 model-reference 的值即 http://www.ibm.com/xmlns/telecom/sample/SampleBusinessModel#Service_Provider 的对象。而元素值为 deleteItems 和 addProperty 的按钮则分别指删除实例对象和为实例对象增加属性。
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration Profile-> Web UI Configuration 下的 Collection Views 菜单项,并点击右侧页面中的 Load UI Collection View Definition 按钮,导入下载列表中的集合视图定义文件 Service_Provider_CollectionView.xml、ValueAddedService_CollectionView.xml(位于 /WebUI/Collection View 目录下)。你可以使用省略后缀的文件名作为集合视图配置项的名称,如 图 10 所示。
图 10 集合视图定义
详细视图定义
详细视图用于展示 WSRR 中的 Web 服务元数据或业务数据模型对应的某一个实例对象的具体内容。每一个实例对象的属性名称及其数据类型都被定义在基于 Ontology 本体论的业务模型文件中,这些属性决定了详细视图的具体显示内容。
在该详细视图对应的透视图定义文件中,通过元素 view-mapping 将显示类型和详细视图定义名称相关联,从而使得详细视图能够按照对应的显示类型显示属性及其他详细内容。
每一个详细视图可以包含多个选项卡,例如用于显示属性的选项卡、用于进行影响分析的选项卡以及治理功能选项卡等。如 清单 4 代码所示,用于显示属性的选项卡
包括了定义一般的属性显示(如名称、描述等),也包括了定义附加的属性显示(如图形显示域、关联关系显示域以及分类显示域等)。
清单 4 详细视图定义代码
<detail-view-definition......>
......
<!-- 用于显示属性的选项卡 -->
<tab-definition show-type-properties="false"
tab-action="ViewDetailContent" tab-name="details">
<tab-title-message message-key="detail.details"/>
<!-- 定义一般的属性显示 -->
<general-properties>
<!-- 其他属性显示域,此处省略 -->
......
</general-properties>
<!-- 定义附加的属性显示 -->
<additional-properties>
<heading-message message-key="detail.view.links"/>
<!-- 图形显示域 -->
<property>
<action>ViewGraph</action>
<property-messages>
<property-message message-key="detail.view.graph.view"/>
<field-help-message message-key="detail.view.graph.view.field.help"/>
</property-messages>
</property>
</additional-properties>
<remaining-properties expanded="false">
<heading-message message-key="detail.view.additional.properties"/>
</remaining-properties>
<!-- 关联关系显示域 -->
<relationships>
<heading-message message-key="detail.view.relationships"/>
<exclude-list>
<list-item>predecessors</list-item>
<list-item>template</list-item>
</exclude-list>
</relationships>
<!-- 分类显示域 -->
<classifications>
<heading-message message-key="detail.view.classifications"/>
</classifications>
</tab-definition>
</detail-view-definition> |
此外,还包括了定义用于进行影响分析的选项卡、用于治理功能选项卡,如 清单 5 代码所示。
清单 5 详细视图定义代码 - 影响分析、治理功能选项卡
<detail-view-definition......>
......
<!-- 用于进行影响分析的选项卡 -->
<tab-definition tab-action="ImpactAnalysisDetail" tab-name="impactanalysis">
<tab-title-message message-key="detail.impactAnalysis"/>
<general-properties>
<heading-message message-key="detail.view.impactAnalysis"/>
</general-properties>
</tab-definition>
<!-- 用于治理功能选项卡 -->
<tab-definition tab-action="GovernanceDetail" tab-name="governance">
< tab-title-message message-key="detail.governance" />
<general-properties>
<heading-message message-key="detail.view.governance"/>
</general-properties>
</tab-definition>
</detail-view-definition> |
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration Profile-> Web UI Configuration 下的 Detail View s 菜单项,并点击右侧页面中的 Load UI Detail View Definition 按钮,导入下载列表中的详细视图定义文件 Service_Provider_DetailView.xml、ValueAddedService_DetailView.xml(位于 /WebUI/ Detail View 目录下)。你可以使用省略后缀的文件名作为详细视图配置项的名称,如 图 11 所示。
图 11 详细视图定义
资源绑定
WSRR Web 用户界面定义文件使用资源绑定机制为消息定位本地值,对应不同语言的属性文件可以打包到同一个 JAR 文件中。每一个使用该资源的界面定义元素都会有一个特定的属性 resource-bundle-name 定位资源绑定文件,同时还会包含另外一个属性 message-key 指定使用的消息关键字。例如,如下代码描述了详细视图中用户自定义属性的资源绑定:
<property-message message-key="detail.view.Service_Provider.Service_Provider_Property_ID" resource-bundle-name="SampleProfileResources"/>
其中,属性 message-key 定义了要查找关键字为 detail.view.Service_Provider.Service_Provider_Property_ID 的属性值,而属性 resource-bundle-name 定义了要绑定的资源,如果不指定值的话,系统默认为使用 WSRR 提供的资源绑定 com.ibm.sr.ui.resources.ApplicationResources。
切换到配置(Configuration)视图,点击左侧导航树中的 Active Configuration Profile-> Web UI Configuration 下的 Resource JARs 菜单项,并点击右侧页面中的 Load UI Resource Bundle JAR 按钮,导入下载列表中的资源绑定文件 SampleProfileResources.jar(位于 /WebUI/ Resource Bundle 目录下)。由于上述六个 Web 用户界面定义文件都使用 SampleProfileResources 作为定位资源文件的标识,因此也必须使用相同的名称作为资源绑定配置项的名称,如 图 12 所示。
图 12 配置资源绑定
该资源绑定文件是一个 JAR 文件,可以用如 WinZIP、WinRAR 等解压缩工具打开。打开后,你将会看到其中包含了两个属性文件,分别 SampleProfileResources.properties 和 SampleProfileResources_zh.properties。前者中定义了英文的属性值,后者中定义的则是中文的属性值。你可以修改其中的属性值,然后把修改后的属性文件替换资源绑定文件包含的同名文件。值得一提的是,资源绑定文件中包含的属性文件一定是经过 Unicode 编码后的,否则界面将会显示出乱码。你可以从下载列表中得到 Unicode 编码前的属性文件 SampleProfileResources.properties 和 SampleProfileResources_zh.properties,位于 /WebUI/ Resource Bundle 目录下。打开 SampleProfileResources_zh.properties 文件,可以看到里面包含了中文属性值,如 图 13 所示。
图 13 中文属性文件
修改后使用 Java SDK 中提供的一个工具 native2ascii 进行编码转换。具体的编码原理和 native2ascii 的使用方法,在此不必赘述,用户可以参考 Java SDK 的说明文档。
定制后的用户界面
上传完 Web 界面定义文件和资源绑定文件之后,刷新浏览器即可看到定制后的新界面。如 图 14 所示,透视图列表中新添名为 Sample End User 的选项。
图 14 定制后的透视图列表
选择该项后点击 Go 按钮,页面跳转到如图 图 15 所示的主页面。其中,左边部分为定制后的导航树。
图 15 定制后的主页面
点击导航树中的“服务供应商”项,右边出现如图 图 16 所示的服务供应商集合列表。
图 16 服务供应商集合列表
结束语
本系列基于电信行业中的实例应用,针对业务模型的生命周期治理展开讨论,本篇是该系列中之一,侧重于如何定义 WSRR 中支持的基于本体的业务模型,并以此定制自定义用户 Web 界面,从而更好地展示业务数据。在下一篇文章中,将会讲述如何定义生命周期,并重点讨论如何基于策略实现生命周期的治理,并且通过一个示例讲述如何基于定制的用户界面进行生命周期的治理。
声明:本文仅代表作者个人的观点,与 IBM 公司的立场无关。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| 业务模型文件 | BusinessModelOntology.zip | 12KB | HTTP |
|---|
| Web 界面定义文件 | WebUI.zip | 2KB | HTTP |
|---|
参考资料
作者简介  | 
|  | 王夕宁:IBM 中国软件开发实验室 SOA (中国)设计中心的高级软件工程师,目前从事于 SOA Policy 及 SOA Governance 相关的工作,并参与了 WSRR 产品开发及其相关客户项目。他的主要技能和专长包括 SOA、Web 服务、J2EE、业务流程、模型驱动技术以及 Eclipse 开发等领域。可以通过 wangxn@cn.ibm.com 联系他。 |
 | 
|  | 何蕾,IBM 中国软件开发实验室 SOA 设计中心资深软件工程师。参与了 IBM 在全球的第一个 SOA Reference 案例(美国汽车零售巨头 Pep Boys SOA 解决方案),主要负责企业级商务流程的设计与实现,负责了多个 SOA 项目的设计与实施。同时对 IBM 产品有丰富经验,负责了 Tivoli Deploy Planner 产品的早期设计与开发;负责 Rational Asset Management 产品的设计与开发。对 SOA、ESB、SCA、Web Service、J2EE、MDA、ABD 有深入了解。 |
对本文的评价
|