SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4828|回复: 1

[推荐] 通过将 RSA数据导入RSA来开发和自动化部署计划

[复制链接]
发表于 2012-6-23 10:21:34 | 显示全部楼层 |阅读模式
本帖最后由 技术狂人 于 2012-6-23 10:43 编辑 . V! A' @4 k' m3 e7 o  v* ?
' \% p$ u/ k, A) A! @! f$ v& w
本文将介绍使用企业架构制定投资决策的功能性设计,以及如何使用该数据对实际系统作出部署变更。对该功能的支持通过集成 IBM® Rational® System Architect 与 IBM® Rational® Software Architect 中所包含的 Extensions for Deployment Planning and Automation Planning 工具而提供。" ?% D( X. J/ R8 Y
. ?# q& \5 a% a
本文第一节会解释如何将企业架构数据用作开发部署计划和自动化部署起点的场景。第二节解释如何将数据从 Rational System Architect 导入到 Rational Software Architect 的场景。
& y' M2 U% _$ m' f
: M: s& _6 v+ |& K- q在部署计划及自动化的情况下,应用程序顾问是 Rational System Architect 的主要用户,而 IT 管理顾问是 Rational Software Architect 的主要用户。本文中的用例描述了一个典型的场景,其中应用程序顾问制定所需要的变更决策,以尽量减少因结束支持或灾难恢复计划所造成的风险。在落实这些计划时,IT 管理顾问从 Rational System Architect 获取其输入,并使用 Rational Software Architect 计划变更。他们可以使用 Rational Software Architect 自动化其变更的部署。在变更已执行并确认后,最新的部署数据会被发送回 Rational System Architect,以更新当前模型。* |9 D5 v' ]! ?  v7 s

. L, [) T# X% Z5 z注:
" |/ e- L: j3 C+ S, J! r# V5 H6 l本文的其余部分指的是以下两个人和角色:+ }; A$ R2 F" r; W  B7 T4 d+ e
  • Adam,是一个应用程序顾问,他使用 Rational System Architect 识别受到硬件或软件合并决策影响的系统。
    2 Y1 Z; q. J1 V9 h0 w2 H. N
  • Isabell,是一个 IT 管理顾问,他使用 Rational Software Architect 和 IBM® Rational® Automation Framework for WebSphere® 脚本处理部署。" J$ ^( v4 V6 T  M% T
从实质上说,就是在 Rational System Architect 中制定 “什么” 决策,以及在 Rational Software Architect 中 “如何” 制定和实施决策。$ _) p+ ~' F9 [1 Q. ?1 N' I
0 E4 Y$ S/ n" T, g
从实质上说,就是在 Rational System Architect 中制定 “什么” 决策,以及在 Rational Software Architect 中 “如何” 制定和实施决策。当变更完成时,这些工具再次同步,使最新的更新在这两个工具中都可用。
' p. ?7 ]5 ?: _4 K- z
% q# i8 p5 J; S8 H* U! _一般概念2 C7 R" E5 N' I, h4 P2 t2 ^8 V: r9 R

# ^# {3 {1 t: K$ i7 v本节概述了与 IT 部署相关的 Rational System Architect 和 Rational Software Architect 功能。它也概述了如何集成这两个工具。5 J; H+ ]' H, V* a% u
Rational System Architect 中的企业 IT 架构) k5 O2 f# r. D

2 V7 g: i+ k6 i  |. G0 sRational System Architect 是企业架构管理软件。典型的用户是企业架构师,他们拥有企业的业务视图以及支持这些业务需求的技术解决方案。您可以使用该工具根据预定义的分析生成受影响系统的热点图(例如,一个受许可证结束日期、灾难管理计划或类似情况影响的系统热点图)。您也可以使用 Rational System Architect 绘制不同类型的图表,利用它们描述 IT 资产。最适合本文所述的用例图表是网络概念 (Network Concept) 图表。图 1 显示了一个样例图表。
( e; Q( W7 V& x
  C7 D/ O3 ?  h+ r  ?# k  v图 1. Rational System Architect 中的 Network Concept 图表8 ?, t+ G  Y& C: s% c6 d+ N: I! ]

! i4 t6 J* j. x9 f) t! q3 ^Rational Software Architect 中的 IT 架构8 ]9 I0 o* i5 l
Rational Software Architect 提供 Deployment Planning and Automation 组件,IT 架构师可以使用这些组件计划并自动化应用程序的部署。IT 架构师可以创建一个拓扑,并将部署元素添加到该拓扑中,从而创建一个部署模型。也可以在该拓扑中建立部署元素之间的关系。该拓扑也提供一个机制,绑定某个元素的功能与某个相关元素的需求。例如,一个 Java Enterprise Edition (JEE) 服务器的托管功能可以用来作为一个托管 myapplication.ear 文件的需求。+ N9 Y) n( k. N1 i, j- C4 U
' y4 D) x5 ]1 P' i" b
Deployment Planning and Automation 组件非常灵活,足以涵盖信息的广度(如,中间件服务器、数据库等详细信息)和信息的深度(如,端口配置、主机名称、中间件服务器版本,以及应用程序 EAR 组件及其内容)。这种灵活性有助于使用 IBM Rational Automation Framework for WebSphere 等部署自动化框架来实现自动化部署。
" T: O- R- y5 b* P; X3 i! r+ I! g0 X( F  e+ \% b1 M: J
图 2. Rational Software Architect 中的部署建模图表7 P( m7 a0 v: M' C7 M! A8 o* h
9 L+ w8 x- h1 ?: E
使用该拓扑创建模型后,可以使用 Rational Automation Framework for WebSphere 实现部署的自动化。部署工程师可以利用软件架构师所设计的拓扑来生成一个可执行的项目,并将其发布到自动化框架中,以协助部署工作。该项目是脚本的有序调用,这些脚本中的参数源自于拓扑。然后,这些脚本可以在必须部署该应用程序的服务器上运行。
* Q% D4 Q( t- A4 b
1 ^" O* s$ k2 B- s9 z! r9 rRational Software Architect 可以发现已部署系统的当前状态(原样),方式是连接到 IBM® Tivoli® Application Dependency Discovery Manager(有时缩写为 TADDM),该工具使用有或无代理的发现技术提取企业中正在运行的现有系统的有关信息。然后,这些数据被聚合到 Configuration Management Database (CMDB) 中,在该数据库中 Rational Software Architect 可以连接到预定的部署,并为其提取相关的比特。实际上,原样数据可以作为 IT 架构师规划其环境变更的起点。" O$ L5 J$ W: t$ N, U' B, @
/ z6 C. H8 X0 @. g3 C+ r% T+ ?
Rational Software Architect 和 Rational System Architect 集成的概述
& ~/ c% A$ h" p# N+ Q, t) B! k8 y0 C
; W0 h3 D% e; T* A  r7 y: z% K以下是简短的摘要:
' U# M, K* A/ }8 ^( u. O
  • 企业架构师可以从 Rational System Architect 中将与部署相关的信息导出为 XML。
  • 在 Rational Software Architect 中,软件架构师可以定义一个 Java Emitter Template (JET),描述如何转换 XML 和填充拓扑元素。
  • 然后,软件架构师选中系统架构师的 XML 并运行一个 JET 转换,以填充拓扑及其相关图表。- r5 [/ I' p# I% U. M8 M6 \
如图 3 所示,Rational System Architect 将数据维护成 SADefinition,它可以被导出为 XML。项定义模板会将其转换成 Rational Software Architect 内部的 Topology 对象。0 v/ B6 P* N4 ]" t& H& p4 N
/ n( S5 ?+ o6 c) G6 K0 N
图 3. Rational Software Architect 和 Rational System Architect 集成的概述  v4 ~" D  t5 F- `
, T3 p- y/ j9 `& n* |, O* B$ g
例如,如清单 1 所示,系统架构示例或 SA-XML 指定了内存、处理器类型以及一些其他元素(如图 4 所示)。
  E0 J: \0 e1 @5 O: j# m9 y  Q6 W9 W6 F5 L0 \% x/ d
图 4. 显示 RAM 的 Rational System Architect 定义
' ^- A- H  Z7 N4 F, Z4 h$ Y4 I
! {9 b: f8 f% h0 g9 H# {/ g: Z
% ]; c* O; C* F/ ^清单 1. 摘自 Rational System Architect 定义的 RAM
  1. <SAProperty SAPrpName="Maximum Installed RAM" SAPrpValue="16GB"6 M* ]8 P5 A- L! _# G
  2.     SAPrpEditType="1" SAPrpLength="50" />& c6 t/ ?/ K/ y3 r3 C! |! s, f+ ]
复制代码
<SAProperty SAPrpName="Brand" SAPrpValue=""IBM Power Series"">
/ N0 D9 w$ N7 I5 t: d使用以下 JET 实例,使用导入资源的信息填充 Rational Software Architect 拓扑对象。关键部分:  ^, |$ ]( |% Z1 B

1 X, f( l) l+ |7 O+ I清单 2. JET 标记代码摘录
  1. <deploy:set name="memorySize" value= '$definition/SAProperty[@SAPrpName="RAM"]
    3 j. d* N* m% b; Z- b3 y
  2. /@SAPrpValue' /> <deploy:set name="cpuType" value='$definition/SAProperty' E1 h$ a, @, G$ B- k+ w) i% q
  3. [@SAPrpName="Processor Type"]/@SAPrpValue' /> <deploy:set name="manufacturer" . J4 `" W" T. L
  4. value='$definition/SAProperty[@SAPrpName="Brand"]/@SAPrpValue' />
    $ G3 X" d! d) d" w) u3 g' M
复制代码
图 5. Rational Software Architect JET 标记
! N4 b" N; Y( j9 F2 m3 s0 P! t
4 I8 Z% |8 O, v* b- P然后,新添加的属性在 Rational Software Architect 中显示为拓扑元素的属性,如图 6 所示。- J( O' E* v, D1 F* j& U0 ?  |  ]  N

' w' i3 |9 y/ M, G图 6. Rational Software Architect Property 视图
, w' n! Y# m2 b8 E

* e9 l) t" m: n8 R- w; L集成场景
. H& Q( V: x3 y  D. z! [/ ]& C: i! r
5 \' f  w. s1 Q- W( r6 [本节介绍以下工作流:! F  b7 [: v6 ^* j, K6 {
  • 与所有利益相关者沟通对 Rational System Architect 部署的变更
  • 计划在 Rational Software Architect 中的部署变更。
  • 通过 CSV Import 或 IBM® Tivoli® Application Dependency Discovery Manager 发现部署的当前状态。
  • 使用 Rational Software Architect 自动化和部署变更。
  • 更新模型中 IT 部署的当前状态。
    ! l( \& }7 U9 n; G8 G& P
您可以重用在 Rational System Architect 和 Rational Software Architect 中已提供的功能处理该工作流,对这些产品进行最少的变更。/ a/ [0 Y/ X$ J) O+ j1 Z

6 P9 b& w0 B" T3 l以下用例列表包括,IT 系统相关的信息需要从 Rational System Architect 共享到 Rational Software Architect,以及在 Rational Software Architect 中实现计划的进一步操作。
( m2 ^8 w$ ^% n
% Y/ ]) p2 g1 {# a4 o3 W硬件或软件的 EOL 或 EOS* f* v& M- O/ F& g( E) D! T! h

5 z6 V! m4 V# s1 s该用例涵盖了针对生命周期结束 (EOL) 或销售周期结束 (EOS) 情况进行影响分析的场景,以及对已部署环境作出变更时要遵循的工作流。
1 n( Z; a* c* Z) X; c' L# S6 @9 d3 g2 W! X: }3 T
操作者
$ P, B, j. q, F
' V3 e% }: N5 N! G9 h5 k  E  A应用程序顾问(在本例中是 Adam)使用 Rational System Architect 识别有什么系统受到硬件或软件的 EOL 或 EOS 影响。(参阅 参考资料 中的链接,获取有关该角色的更多信息)。# Y$ r$ ?. w0 F  M7 s

% b0 N0 z5 k9 m5 J; gIT 管理顾问(在本文中是 Isabell)通过使用 Rational Software Architect 和 Rational Automation Framework for WebSphere 脚本对部署作出变更。, b& o7 E$ O( [& D$ y

7 n; c0 _0 i1 ?1 R# ^背景
- F5 `% G& W" V  q0 `3 @# d. p) n( ~6 M! R8 z
Adam 已在 Rational System Architect 对硬件或软件的 EOL 或 EOS 执行了影响分析。他拥有一个从分析生成的热点图,识别需要迁移的系统,以管理软件或硬件的 EOL 或 EOS。Isabell 使用 SA-XML 从 Rational System Architect 获得部署数据。她使用以下用例来实现建议的变更。
# T4 K6 G9 f6 i: Z  Z$ m) F( |$ A) D  u/ u1 W. p6 M" t
事件流 % r1 k, w: o* w" b  M
/ \+ E' _  L; N1 E: j( _
  • Adam 将应用程序的当前逻辑模型导出为一个 XML 文件(在本例中是 SA-XML 格式)。
  • Isabell 准备一个 JET 来将 XML 导入为 Rational Software Architect 中的一个逻辑模型。
  • Isabell 使用一个 JET 转换项目和模板,将该逻辑模型导入为一个网络概念图表 (Network Concept Diagram)。
  • Isabell 编辑该概念图表,以添加更多部署模型元素,如操作系统版本、应用程序服务器等。
  • Isabell 在 Rational Software Architect 中编辑 Concept 模型,以开发部署模型并生成部署脚本。
  • Isabell 运行脚本,以使部署变更在实际环境中生效。
  • Isabell 在 Rational Software Architect 中发现当前部署状态,并协调环境的变更。
    & E0 J) ]4 q: y: w
( n4 w, n8 o/ J
完成后   D9 Q+ U2 l- W' J5 D8 e  |, p

6 E- m. \* u( a; Q! P) Z6 `! F在 Rational System Architect 中针对硬件或软件的 EOL 或 EOF 所识别的变更,被识别并根据计划进行部署。可选:
6 \. l% y8 _# C. ?# @( `) k0 A% {* ~3 Z
  • Isabell 将部署模型导出为一个 XML 文件。
  • Adam 导入部署模型并更新它所维护的数据。% ?9 U+ f. d8 g5 ^7 n6 r
在收购过程中的硬件或软件整合& a: K) z" f/ g/ p0 J4 ^
该用例涵盖的场景是,应用顾问整合作为收购一部分的硬件和软件。他删除重复的服务,并规划一个整合的部署环境。与 IT 管理顾问沟通 Rational System Architect 中的新部署计划,IT 管理顾问使用 Rational Software Architect 向下钻取该计划,并部署新环境。- e8 n& f2 D( E
" `( ?6 g, H* T  J
操作者
" Q9 A! D7 V1 [4 E* `+ `1 a# \
( t- ]# J# \2 x: c' ?' |! K应用程序顾问 (Adam) 使用 Rational System Architect 识别有什么系统受到硬件或软件平台的战略性合并决策的影响。
% ~- f4 G# `) e: O+ Z- ?# K5 oIT 管理顾问 (Isabell) 使用 Rational Software Architect 和 Rational Automation Framework for WebSphere 脚本来计划并作出部署变更。$ k& B) [$ v7 t6 c2 x
3 x+ `( E8 p/ y6 w' c
背景
& }9 c9 j* I: `6 a6 q& s$ ^
" L7 c0 G8 Y. a% _7 V* oAdam 已执行一个影响分析,并生成系统的热点图,将这些系统合并为单一系统具有重要的战略意义。Isabell 将热点图作为一个输入,识别需要合并的节点,并执行变更。% c; m' |2 N4 {# `/ M: ^% S' Y

& r! M& p( _: p! c( X事件流 * U* }3 N% h4 `9 S6 I

' N; R! ~# a* x: F9 i# Q8 o" \4 _
  • Adam 将要实现的新部署模型导出为一个 XML 文件。
  • Isabell 准备用于将新部署模型导入到 Rational Software Architect 的 JET 文件。请参阅 5 J# k8 ?4 w$ J6 s; n0 s* P
    “WebSphere Application Server 域中的模板” 链接,了解用于开发模板的标记。
  • Isabell 使用 Rational Software Architect 的 XML 导入选项和 Java Emitter 将 XML 内容导入到 Rational Software Architect 中的一个网络概念图表中。导入的内容将显示为拓扑中的概念单元。
  • Isabell 也通过 CSV 或从 TADDM 服务器(如果存在)将当前部署状态导入到一个新的拓扑图。
  • Isabell 将网络概念图中的概念元素链接到导入的当前状态元素,并生成部署脚本。
  • Isabell 运行脚本,使部署变更在实际环境中生效。
  • Isabell 在 Rational Software Architect 中发现当前部署状态,并协调环境的变更。: t; ?' B3 p* h3 w6 n( t. s/ @+ x

  N* C& }6 n6 y9 i  r完成后   t/ `$ [  q, [/ Q

+ Q7 [8 {* [- [3 h根据计划对在 Rational System Architect 中针对硬件或软件整合所识别的变更进行部署。可选:. q+ o# O0 |1 j' z6 t. ^
  • Isabell 将部署模型导出为一个 XML 文件。
  • Adam 导入部署模型并更新它所维护的数据。
    7 g7 I; N- |6 \+ e1 a( k3 @

& f. \" X5 W. \灾难恢复
: P- i$ [. c) d- L! Q1 r' S8 _# K+ Z/ d5 J7 A
该用例介绍的场景是,应用程序顾问实现一个灾难恢复计划并识别需要恢复的环境。2 J7 j" }7 c" @& V. Z! k& P
0 H- Q1 u0 e" K* C- P) A
操作者 0 v. ]4 E; ?( X5 B  c0 l' \
& C3 o1 _! i% n% _& C1 Q
应用程序顾问负责识别有什么系统受到灾难的影响,以及什么系统需要使用灾难恢复计划进行恢复。
: G  W# D7 x4 r2 ~7 I6 K8 ~+ [1 zIT 管理顾问负责使用 Rational Software Architect 和 Rational Automation Framework for WebSphere 脚本计划并执行部署变更。8 i- b! E8 Q) u4 P" B% ~
% ^( ^& }3 @) s; C. J
背景
* g+ J  C, b+ X5 G' s3 M% t0 ]4 b( [4 ?0 V! ]; I, a4 `+ p
Adam 已根据灾难管理计划识别需要恢复的系统。该计划识别备份系统的位置,以及哪些备份系统在灾难过程中应该发挥作用。Isabell 将该数据作为输入,识别需要复制的节点,并自动化部署变更。2 A! O, B* K# {6 D' f
) g& y  U; F/ f* D. c: Q. A/ E
事件流
/ U0 M  q& A& r! G, H6 n3 ^+ z5 v- ^( [4 n
  • Adam 从 Rational System Architect 导出要被恢复的环境部署模型。
  • Isabell 准备一个 JET 文件,将部署模型导入到一个新的拓扑图表。
  • 根据在所导入的拓扑模型中提供的详细信息,IT 管理顾问将更多详细信息添加到所导入的模型,如实际计算机名称、操作系统版本、应用程序服务器版本等等。
  • Isabell 通过 CSV 导入或 Rational Software Architect 的 TADDM 发现功能获取环境的当前状态。
  • Isabell 对拓扑执行相应的变更,并生成部署脚本。
  • Isabell 运行脚本,使部署变更在实际环境中生效。
  • Isabell 在 Rational Software Architect 中发现当前部署状态,并协调环境的变更。8 D3 W# B* D6 E, [/ u. s( R. r
( e, f3 s+ T+ T; N
完成后
/ F$ I8 E* T  s  |1 x9 [9 ~( k) Z( u4 @% R, f3 M7 }- Z; S
根据计划对在 Rational System Architect 中针对硬件或软件整合所识别的变更进行部署。可选:! p  K! j; N$ A5 R( I
  • Isabell 将部署模型导出为一个 XML 文件。
  • Adam 导入部署模型并更新它所维护的数据。
    ( C. n7 P3 b; r. X( n' b7 g/ {6 D

# d3 _5 t- X# }0 _" J
一个典型的集成4 L6 |7 E, C( @

& A7 G' x( o. G  TAdam 将对以下几种数据感兴趣并希望影响它们:
$ j2 g0 I$ U9 d$ Y; w9 ^) j' |
  • 硬件服务器(IP、CPU、内存和架构类型)
  • 操作系统 (OS)
  • 中间件软件和版本
  • 在这些中间件服务器上安装的应用程序
  • 数据库和软件版本
  • 网络详细信息:防火墙、负载均衡器、路由器、VLAN 等等。
    9 z0 ?& ?# u: c" F; C
, e! N' n1 `; O
注:
, I; f4 G& m; q: s) h7 T2 r* T即使还有其他部署数据(如集群、防火墙或负载均衡器),但它们已超出本文所关注的集成范围。
3 `) i; E; S% MRational System Architect 图表选择 Rational System Architect 拥有一些图表可以描绘企业 IT 或系统架构,如网络概念图表、子系统 (Sub-system) 图表和系统架构 (System Architecture) 图表。本文所提供的样例使用网络概念图表,因为它是各用例的根源。* D( `' G# V& w3 j" K  _7 d3 N* z. i
5 M- j& l9 S' I! t) s
0 g3 Q* R3 ^* T2 c& ^
网络概念图表拥有在该场景中所必需的一组最详细的信息。& ?3 W9 H; D  k) x/ X$ Y  C- t) u0 b

% ?+ ^8 m: X. Z$ d+ J( KRational System Architect 中的步骤 ( k' f6 X1 E# l8 E8 G8 e

. ]# P# G' i* Y( j- ^. U( l在 Rational System Architect 中,您现在已引入了以下变更:7 I2 j8 S1 ]. e, ]! y# y
  • 已添加一些自定义服务器元素,包括 WebSphere Application Server 和 Tomcat HTTP 服务器(其详细信息已超出本文的范围)。0 x4 e% P: U. {& j3 S/ m
注: ! m6 Q' I1 Y  g% P9 Z4 ?! F
图 7 显示了为中间件和服务器新添加的 Rational System Architect 菜单项:JBoss、Tomcat 和 WebSphere。
8 i0 X  ?% Q+ ?7 V) Z9 }5 s, Q" T7 S; j' {
图 7. 显示新添加的菜单项的 Rational System Architect
, h; M: l1 R0 C( r  z2 f5 R; I/ T# y1 v7 B/ X
  • 已添加的一些操作系统的自定义元素(参见图 8),如 Microsoft Windows 2008 Server、Linux 和 Solaris。! u& }5 d/ m6 n+ p/ ]

7 f' R  l" i: y) i图 8. 为操作系统新添加的菜单项
; c, J& g0 \' @  Q" s5 S. w
' d  s8 }' s# i6 G1 Q/ x$ {
  • 已添加的一些自定义数据库元素,如 DB2、IBM® DB2® 数据库和 Oracle Database Server,等等。
    ; U+ ^. i4 `& y* R7 m0 C: r' Q

, N, n2 w7 R+ Z图 9. 新添加的数据库菜单项
' L3 Z, O! w5 v- v! F2 }5 I
1 q5 }% [7 `, k) |3 K
  • 创建了一个网络概念图表。) _% T( D1 n  {( P% l
0 v/ n# M7 R2 E7 [- m! p+ c- f% U
图 10. Rational System Architect 的 New Diagram 向导
. a# f" \! \- ^1 ]5 E5 N4 C
2 Q; p& q: ^3 T+ E( d6 J/ \% |$ c
  • 已添加网络元素到概念图表,以使用以下元素创建一个企业 Web 应用程序的概念模型:客户端、一个 HTTP 服务器、一个应用程序服务器和一个数据库服务器。还添加了主机元素、这些服务器的操作系统元素,及其数据库计算机的链接。
    5 `, k% e2 r& Y$ Z" B# R

+ D  G& K% f- c" q+ j' d3 }6 V图 11. Rational System Architect 中的网络概念图表* F! ~/ K- K" G7 Y5 ?+ R! r
, n7 _+ l1 a- i7 Q3 H
+ s+ \. a$ b1 H5 {) K7 K5 r, W) ?1 M1 b
  • 已将网络概念图表导出为一个 SA-XML 文件。
    $ F( o/ O3 F( o5 a1 H, S/ k0 g
8 O* [1 j  Q- D) x  R/ K1 ~! h6 T
图 12. Rational System Architect 的 Export XML 对话窗口
$ R  @( z% z7 Q8 A2 s
  • SA-XML 格式拥有两个关键标记:SADiagram 和 SADefinition。
    + T4 O1 T4 v! b. |$ P9 m' j* Z- l( r
    • SADiagram 的构建要使用其自身的属性以及一组 SASymbol 标记与 UI 特定的元素。
    • SADefinition 拥有特定于模型元素的元素。它是使用其自身的属性和若干个 SAProperty 标记进行构建的。
        X: k8 h7 J8 y: _
清单 3 显示了这两种标记的样例。# ~8 I! I6 m4 v
  K: ^* f: f! [; p8 ], W+ V1 d% v
清单 3. SADiagram 和 SADefiniton 代码
  1. <SADiagram SAObjId="_234" SAObjName="Network-concept-karthik"- s0 Z! a  A$ {. \9 s, S4 M- ]
  2. SAObjMinorTypeName="Network Concept" SAObjMinorTypeNum="88"
    ; r6 l7 O0 x9 {% ?6 P( X
  3. 8 L0 z1 x2 f: B, w& `( y
  4. </SADiagram>/ A  O4 _8 J) f4 A1 d
  5. <SADefinition SAObjId="_276" SAObjName="Webserver01"
    ; ?- j0 N5 o! e! X2 x: N
  6. 5 l4 w4 q' E. i! K
  7. ; E; V! Q8 f) w; [: V6 e% t+ r3 @
复制代码
Rational Software Architect 中的步骤
2 O* O7 p0 l, _# R' F8 J
  • 创建一个新的 JET 转换项目。
    2 _) u, }8 `2 u( w9 n4 D

4 `/ Z/ u: U) N, _- t& h图 13. 创建一个 JET 转换项目对话窗口: \8 E5 t& q0 g8 Q0 g3 ~2 _
  • 编辑 mainlinks.jet 文件,以开发一个可以迭代整个 SA-XML 的模板,并使用 Rational Software Architect 拓扑标记库导入模型元素。模型元素信息中有一部分在 SADiagram 标记中,另一部分则在 SADefinition 标记中。数据必须从这两个标记及其属性中提取,以生成部署。模板的第一步是使用 c:iterate 标记迭代全部带有 SASymbol 标记的元素,并将属性读到变量中。
  • JET 的第一步是使用 c:iterate 标记迭代全部带有 SASymbol 标记的元素,并将属性读取到变量中。
    6 N. Q3 u8 W% X
. M/ E0 Z& z, c) ?3 x& t! B
表 1. 迭代 SA-XML 的 JET 标记% o! B& A- j+ H; M- c2 U
元素描述
<c:iterate select="//SASymbol" var="symbol"> 针对 SASymbol 标记开头的所有元素启动一个迭代。
<c:setVariable select="$symbol/@SAObjMinorTypeName" var="minortypename" /> 将 SAObjMinorTypeName 的值设置到 minortypename 变量中。@attribute 名称查询将返回属性的值
<c:setVariable select='$symbol/SAProperty[@SAPrpName="Stereotype"]/@SAPrpValue' var="isServerMachine" /> 读取属性名为 Stereotype 的属性值。
  • 在 Rational Software Architect 中创建部署拓扑元素,使用 JET <deploy:template> 和 <deploy:unit> 标记(参见清单 4)。
    * D! _; t8 Y% F7 R3 v. |+ z9 X
- q7 g1 N& C  ]7 q
清单 4. 创建拓扑元素的样例 JET 标记
  1. <deploy:template topology="$TargetObject" id="server.intel_x86.infra">% K' K$ p9 B* B4 [3 ~7 w" ]
  2. <deploy:unit var="server" type="server.X86ServerUnit" name="{$serverName}">! b# k1 s  H( ?, x7 c6 O; D. g
复制代码
您可以在 “WebSphere Application Server 域中的模板”(参见本文的 参考资料 小节中的链接)中找到创建拓扑元素需要使用的 ID。! ]' b2 E6 _7 s) x, h! A  u8 Z
清单 5 是 JET 的样例脚本,它导入了一个计算机服务器。5 [% d4 |$ K3 Z  T, R' N  B6 U

/ n7 I$ a! q( v清单 5. Rational Software Architect JET 脚本样例
  1. <c:iterate select="//SASymbol" var="symbol">
    7 w* P  ~$ B1 `# V, {7 ?
  2. <c:setVariable select="$symbol/@SAObjMinorTypeName" var="minortypename" />' G9 ~- J! [* X$ I# U1 ^( K
  3. <c:setVariable select="$symbol/@SAObjName" var="serverName" />
    % \% ^" N6 f5 n- X
  4. <c:setVariable select='$symbol/SAProperty[@SAPrpName="Stereotype"]/@SAPrpValue'
    ; y/ e  ?! j/ {( \- D
  5.      var="isServerMachine" />
      O( s8 U3 J! i/ ~6 z" p: d  h) D* F
  6. <c:setVariable select="//SADefinition[@SAObjName='{$serverName}']" var="definition" />
    / q7 l) q/ A6 g2 x) j" B% R
  7.                                 ) J2 E8 }' N% y* o  H) |3 A# K
  8. <%-- Create a Server Machine component, represented as WebServer01 in the diagram --%>; `7 z7 [# w& Z3 a
  9. <c:if test="$isServerMachine='Server Machine' and $minortypename='Computer'"  >
    . Z' g/ F2 _: {; p3 t* m: G/ y3 L
  10.         <deploy:template topology="$TargetObject" id="server.intel_x86.infra">" O6 o$ ~1 z5 G! J4 p1 \3 m' @, ?
  11.                 <deploy:unit var="server" type="server.X86ServerUnit" ; N: T0 y' c: |; Z3 \( J
  12.             displayName="{$serverName}" name="{$serverName}">
    9 o1 T5 m4 X% H1 v, P% I
  13.                 <%-- Create a capability on the newly created Power Server unit --%>
    8 s, R2 B. |" K' ~
  14.                         <deploy:capability owner="$server" type="server.X86Server"  
    . Q4 f; w9 z5 Q( W% M: y; L, C
  15.                 name="x86 Server" preferNameMatch="false" linkType="any">* Q# s, y' l# q/ E2 u- ~
  16.                         <%-- Set the capabilities attributes --%>6 P3 k  e  K4 l2 o; y4 x  w
  17.                                 <deploy:set name="memorySize" value= $ ~; o7 g  S" P: `# _6 z
  18.                    '$definition/SAProperty[@SAPrpName="RAM"]/@SAPrpValue' />  j- P& ?1 Z* R1 Q8 Z
  19.                                 <deploy:set name="cpuType" value= ! w3 X$ P3 z1 Y" _6 t
  20.                     '$definition/SAProperty[@SAPrpName="Processor Type"]/@SAPrpValue' />6 h/ m1 t; b) @5 i) K
  21.                                 <deploy:set name="manufacturer"
    ! E8 }4 Z1 S: f* {
  22.                      value= '$definition/SAProperty[@SAPrpName="Brand"]/@SAPrpValue' />
    ( _/ r; u/ w! C2 g- D
  23.                         </deploy:capability>
    9 a7 H1 _) R: y$ R& b0 U% H& H2 t& H
  24.                 </deploy:unit>               
    ' g& w2 q! y, \. Z& ]: y8 _2 \
  25.         </deploy:template>
    ! d, {7 ]4 b% [, ?4 v
  26. </c:if>& {/ W* S2 ]0 a# C" t
复制代码
  • 创建一个新的拓扑项目,其中包括一个 blank_topology。
  • 为模板创建一个 Run Configuration,以 SA-XML 作为输入。
  • 以 SA-XML 作为输入,运行 JET,如上图所示。4 g0 w8 D( z( P; t; q

: u  k/ F# t. b; Q3 x  {1 m( e图 14. Run Configuration 对话窗口4 c/ o3 X# ^" p& T% J

; s8 |  d/ S" k/ T( O% ]" Z" J. D. W" m! p7 @: ?7 c9 }8 X! q
  • 当您已完成运行模板时,在 Rational Software Architect 的 Project Explorer 中刷新该拓扑项目,查看导入的元素在该项目中是否可用。
    - n. \% n3 }% R- w  o

+ b& Q% k% u2 N( K图 15. Rational Software Architect Project Explorer 选项卡视图
/ R  A) E9 M& ]0 S$ n
  • 转到您完成步骤 8 时所打开的拓扑图表,在该图表上单击右键,并从上下文菜单中选择 Arrange All。图表会重新排列,如图 16 所示。
    5 r1 K9 C7 H( S. G& G" }8 o

/ a8 v% w$ O- H0 i! V8 b图 16. 显示导入的单元的拓扑图表; Z& J) w# ~6 m- `- Q
  • 使用 Problems Resolver 对话窗口完成以下任务:2 E; K" e$ a( {: g: f. J4 T
    • 设置操作系统中的主机名称。
    • 为 WebSphere 设置安装目录,以及 WebSphere Application Server 主页目录。
      6 @  I& h* v: h0 g3 q
' a$ _" U  }% O5 Y6 n' C+ d$ U- t
图 17. 拓扑图表及错误修正对话窗口& T8 Z5 E' `5 q& D

& Q  ~! W1 y* B
( D" o; f& ~) C9 c  [) @# Z
  • 解决所有错误后,使用 Properties 页面设置每个模型元素的图片。; N7 i9 d5 z: S6 s7 m. g5 y2 v  m  R
: c4 T% J. M8 @2 l4 o9 ]
图 18. 部署单元的属性表4 l$ W" K5 ?7 J/ K6 K$ R

/ y- i' D' W# R" `由此产生的拓扑图表如图 19 所示。% t: F6 i2 ~# m5 r# m* W
' G6 u' _3 L+ E' ]7 p& w
图 19. 已完成的部署拓扑2 b+ x7 _' P% G% A) u

1 b) q! g6 s: q, e7 S0 }* n8 D
  • 使用 Rational Software Architect 中的 Extension for Automation Planning 为这些项目生成并运行 RAFW 部署脚本。
  • 通过 Tivoli (TADDM) 集成或 CSV 导入器重新导入部署数据。9 d8 F. `# b. c4 O1 u9 M" E0 g( k* G


$ k! ~. T6 B( k) K& B$ C" P8 w+ e# }2 i; a
结束语& F  r2 O) a- M$ t8 l1 ?" N& k
这种方法均为业务和技术决策者提供了他们各自领域的正确信息和工具。它使信息从业务决策流到技术决策,并实现部署决策的自动化。
( Q/ X- y4 G1 T本文 下载 小节中的样例 Java Emitter Template 为开发环境特定的模板提供一个良好的开端。下载小节中还包括了来自 Rational System Architect 的 XML 输入文件。本文所提及的 URL 提供了标记和单元 ID 的列表,您可以使用它们从 Rational System Architect 导入部署模型元素。
3 q9 H6 H' s8 _+ S7 ?# B请务必参阅 参考资料 小节,获取更多有用的信息。( |  \4 c" |- t& e0 F

5 [7 |4 w9 C5 @( N0 h
- t, l% ^4 {5 q1 I' F

9 i. @& @  l8 {下载
, Y6 Z* y% S9 @. S  |# c% I0 ~
描述名字大小下载方法
JET 模板JET 样例12HTTP
来自 Rational System Architect 的 XML 输入文件代码清单2HTTP

3 V% M, ?3 U5 H- }+ e7 b# c
$ Q" p% \, L# @7 d$ E* G

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 发表于 2012-6-23 10:31:25 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-1-20 23:45 , Processed in 0.087393 second(s), 8 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表