转自:http://www.ibm.com/developerworks/cn/rational/09/creatingphysicaltopologydiagramrsa/index.html
本文展示了,怎样使用 IBM® Rational® Software Architect 来创建一个部署拓扑图。在完成本文的学习之后,您将能够对 Java™ Enterprise Edition (JEE™)或者 Microsoft® .NET 的 Web 程序的物理部署进行建模。
部署拓扑图能够展示方案的软件和硬件是怎样部署和配置的。该图不但提供了一个强大的交流工具,以在基层的团队成员之间共享关键的部署信息,而且这种交流工具能够使不同的团队之间共享信息。
本文展示了怎样使用 IBM® Rational® Software Architect ,来创建部署拓扑图。其中的范例基于一个虚构的 Microsoft® .NET Web 程序,而不是 Java™ Enterprise Edition(JEE)Web 程序,因为 .NET 图展示了怎样创建和使用可再用的拓扑单元。它并没有显示在一个典型的 JEE Web 程序场景中。但是,在完成本文的学习后,您将能够为 JEE 或者 .NET Web 程序的物理部署建立模型。
本文的作者,假设您对拓扑建模已经很熟悉。如果您没有这方面的知识,那么我们建议您花费五分钟时间,来观看“使用拓扑编辑器管理部署结构 ”视频,或者完成“使用拓扑编辑器指南规划部署 ”的学习,这两个参考文件都包含在 IBM® Rational® Software Architect 的 Help 系统中。
作者使用 IBM ® Rational® Software Architect for WebSphere® Software,Version 7.5.4,以创建拓扑范例,并使用应用到 Rational Software Architect Standard Edition Version 7.5.4 相同的指导。但是,其中的操作步骤和屏幕截图与 7.5 版本中的早期版有稍微的不同。尽管如此,您还是可以将这些步骤和屏幕截图应用到早期的版本中。
本文介绍了怎样为虚拟的 JKE Furniture Catalog Web 程序建模。作为背景,Furniture Catalog 是一种使用 IBM® DB2® 数据库的 .NET Web 程序。本例中创建的部署拓扑记录了这些程序是怎样部署在产品环境中的。
正常情况下,程序部署团队开始创建逻辑模型,然后将逻辑模型和物理模型集合起来。但是,该文只关注创建部署拓扑。可以确定的是首先您需要一个部署拓扑图,但是解释怎样决定模型或者拓扑的层次超出了本文的讨论范围。同时,文中涵盖了怎样创建部署拓扑图的机理。
Rational Software Architect 拓扑图模型需要存储在一个项目中。作为一条通用的规则,拓扑图与方案的 UML 模型存储在一起。
图 1 包含了用于 JKE Furniture Catalog 的部署拓扑图的值。您需要完成四个区域以及值:
通常来说,Namespace 区域使用 Java ™ 包结构。该拓扑图是一种部署的拓扑图;因此,包的名字以 deployment 结尾。这种起名规则并不需要,但是出于稳定性的考虑还是很有用的。
Contract 区域被设置为“Make All Units Private By Default”,因为在创建部署拓扑图时,这是最佳的操作方式。部署拓扑图是一种低层次的拓扑图,通过将 Contract 区域设置为“Make All Units Private,”,Rational Software Architect 将会将所有的验证信息显示为错误而不是警告。
注意:
警告作为错误显示,因为警告可以通过将拓扑图导入到另一个拓扑图来得到解决,这个问题可以通过后一个拓扑图来来得到解决。但是,如果单元被标为“私人”,那么所有的问题必须在当前的拓扑图中得到解决,因为私人的单元在由另一个拓扑图导入时不能被访问。使用拓扑图上的“私人”政策,默认条件下会标记所有的私人单元,将警告转化为错误。
然后您会得到一个空白的部署拓扑图,该拓扑图显示了单个的拓扑图,这张图的名字与拓扑图模型的名字相同。
注意:
在硬盘上,图表文件与拓扑图文件是分开的。当您在使用版本控制系统时,您需要将两个文件都放置到版本控制系统中。
JKE Furniture Catalog 程序从名为 FURNDB 的 DB2 数据库中得到所有的信息。JKE 在 DB2 版本 8 中得到了标准化;因此,包含的拓扑图单元模板可以用于为数据库的部署建模。
有两种方法可以向拓扑图添加新单元。
通常来说,CTRL+T 选项是最快的方式,因为您可以输入单元的名字。这样可以帮您节省寻找配置板中单元的时间。
提示:
通常来说,在重命名单元时,保持 Link 为选中的 XXXX 属性状态。
现在您已经有了一个单元,它代表了存储数据的实际数据库。如果您对使用 DB2 很有经验,那么您就会知道数据库需要寄主在 DB2 上的实例机上。如果您不知道的话,Rational Software Architect 通过报告主机的错误来通知您出现的问题。您可以通过将鼠标停留在左下角红色的 X上,来看到这个主机的错误。
提示:
默认条件下位于中下部视角的 Topology Status 视图,是一个非常有用的视图,因为它显示出了所有图表的问题。该视图可以帮助您修复出现的错误,来成功地为拓扑图建模。
拖拉操作将会使 FURDB 单元寄主于 FURNINST 单元上。主机会修复 FURNDB 单元上的错误,而主机关系意味着数据库会在 DB2 实例内运行。
注意新创建的 FURNINST 单元会出现一个错误,说 DB2 Instance 需要位于 DB2 System 安装文件中。修复这个问题是非常容易的:
在创建 DB2 8 系统,并为系统上的 FURNINST DB2 实例创建主机之后,您的拓扑图现在看起来应该如图 3 所示。
不像 FURNDB 数据库那样,当这个数据库中寄主于 FURNINST DB2 数据库时,唯一的问题会得到解决,这里的 FURNINST DB2 实例仍然有尚未解决的问题。但是,此时这种问题还是可以接受的,因为在部署拓扑图进一步记录在 DB2 安装文件之后,问题自然会得到解决。
前面的章节记录了寄主于 FURNDB 数据库上 DB2 8 安装文件的拓扑图。本章节记录了物理服务器,该服务器寄主于前面章节中所记录的 DB2 安装文件中。但是,本段准备首先记录服务器,这样服务器就可以寄主 DB2 安装文件了。
JKE Furniture 会在 x86 Linux® 双核 CPUs 的服务器上运行它们的 DB2 安装文件。
注意:
服务器单元应该根据硬件模型名来进行命名,而不是根据它的主机名命名,因为主机名将会在操作系统单元中得到命名。
默认条件下,Rational Software Architect 将 x86 服务器记录为单个 CPU;因为,新创建的单元需要得到更新,以反映以下事实: JKE Furniture 将其当做一个双 CPU 的机器。CPU 的数量存储在单元 x86 服务器功能的属性中。
图 4 强调了以下步骤的序列:
一般来说,大多数的人想要使用 CPU 数量和服务器的内存容量。从 V7.5.1 Rational Software Architect 开始,以让属性显示在图表中。
图 5. Show Unit Presentation Details 视图
现在既然您已经记录了物理服务器,所以就该记录服务器上安装的操作系统了。
JKE Furniture 运行 SUSE Linux.
注意:
URI 属性用于识别 UNIX® 服务器硬盘 URI 的位置;我们所假设的在这个虚拟的 JKE Furniture 场景中是不太重要的。
新创建的操作系统需要位于一个服务器上。
furn-db.jke.com 服务器栈仍然显示为错误,将您的鼠标停留在栈的红色 Xs 上,将会显示出错误来自根用户账户单元。根用户账户需要拥有它自己的密码集;因此,记录根用户账户并不重要,我们将会从拓扑图中将其删除。
注意:
除了删除根用户单元,另外一个选项就是将根用户账户单元标记为公共可编辑状态,这将会将错误转化为警告。将单元标记为公共可编辑状态,意味着单元值可以通过导入的拓扑图来得到变更。
注意:
简单地使用 DEL 键将只会从图表中删除单元,而不是从拓扑图模型中删除。
服务器单元现在拥有零错误。但是,查看 Topology Status 视图将会揭示有一个主机单元错误。
在 Rational Software Architect 修复这个问题之后,图表看起来应该如图 7 所示。
图表中的双行箭头是一种提示:寄主于另一个单元上的单元。
DB2 栈上仍然有一系列需要处理的错误。
移到另一个错误上,停留在 DB2 System 的红色 X 上,意味着 classpath 条目已经设置成 Windows 路径。
注意:
通过“错误和快速修复“对话框修复问题的选择,是选择 DB2 System 单元,然后在 Properties 视图的单元不同功能上更新 classpath 属性。这与您对物理服务器的 CPU Count 和 Memory Size 属性所做的更改操作类似。
在解决所有的 classpath 错误之后,拓扑图就实现了零错误。
这将会更新图表,这样单元的所有属性将会在树视图中显示。树形结构在显示大量信息的同时,能够保持图表的简洁。在将 DB2 系统拖拉到 furn-db.jke.com 单元并重新设定大小之后,图表看起来应该如图 8 所示。
图 8.寄主于 Linux 操作系统上 DB2 数据库上的 IBM System x 3450 服务器
总会存在 Rational Software Architect 没有提供拓扑图模板的程序和技术域。例如,版本 7.5.4 并没有包含对 Microsoft® .NET 程序的拓扑建模模板。
JKE Furniture Catalog 是一个 Microsoft ASP.NET 程序。因此,支持 .NET 系统的拓扑单元必须得到创建。这将会花费一点时间,但是 Rational Software Architect 使再使用和共享单元变得更加容易。
本段关注需要处理 ASP.NET 平台的新拓扑图单元的创建。稍后的章节将会解释怎样让单元变得可再用。
JKE Furniture 寄主于它的 Microsoft® Windows® 2003 服务器上的 ASP.NET 程序。这意味着 JKE Furniture Catalog 将会是在 Microsoft® Internet Information Server(IIS) 6.0 上运行的 ASP.NET 2.0 程序。
现在单元精确地反应了外边的软件;从图表的可见视角来看,单元就是正确的了。但是,使用 Rational Software Architect 进行类别建模,单元知道什么是它们的需求以及功能。因此,接下来的步骤涉及到了记录 IIS 6.0 需求和功能。
将鼠标移到 IIS 6.0 单元的红色 X 上,揭示单元有一个位于操作系统的需求。尽管该需求在通常意义上讲是正确的,注意对 Linux 服务器上的主机 IIS 6.0 会有快速修复。这种快速修复并不真正有效的,这样单元的主机需求将会得到精简,以反映 IIS 需要寄主于 WindowsO/S 系统上(于是,有一些没有多少经验的人就不会计划将 IIS 寄主在 Linux 上了)。
图 1 显示了过程的屏幕截图,并强调显示了 Type Selector 按钮。
图 11. 将 Operating System 需求更新为 Windows
将鼠标停留在单元的红色 X 上,以显示更新错误的信息,而 Linux 服务器上主机 IIS 6.0 的快速修复并没有提供。
IIS 6.0 需求可以得到进一步的精简,以反映操作系统的支持版本,并在同一台机器上安装另一个 IIS 实例。但是,本文并没有深入分析这些细节。拥有 Windows O/S 的需求对于本文已经足够了。
需要更新的 IIS 6.0 单元的下一个部分,是单元的功能。IIS 6.0 寄主于 ASP.NET 2.0 Web 程序。为了记录与 IIS 一起运行的 JKE Furniture Catalog 程序,IIS 6.0 单元需要记录它的功能以寄主 ASP.NET 程序。
图 13 显示了需要的导航步骤。
在您完成以上的更新之后,ASP.NET 运行时属性看起来如图 15 所示。
像需求一样,功能会得到进一步的记录,但是功能现在已经得到了足够的记录,以便能够记录 JKE Furniture Catalog 程序。
您的图表看起来如图 16 所示。
图 16. 为 JKE Furniture 类别新创建的 Web app
JKE Web App 的外观现在就是合适的了。但是,它的需求需要得到更改,以反映程序的运行时需求。
单元的主机需求需要得到更新,以反映 ASP.NET 运行时需求。
通常来说,Web 程序现在部分需要 IIS 6.0 单元,因为需求类型匹配 IIS 6.0 单元的功能类型(核心功能)。但是,主机需求需要使用限制因素来进行进一步的精简。
这些约束与 IIS 6.0 单元的值相同。图 17 强调显示了需要的鼠标点击并显示了约束。
现在您已经满足了需求,确保 ASP.NET Web 构件寄主在 ISS 服务器(单元)上。
JKE 程序同样使用来自 FURNDB 数据库的数据,这样下一步就是记录这个需求。
您可以手动创建相应的需求以及功能,就像您对 ASP.NET 运行时所做的那样,但是创建相应的附件还有一种更加简单的方式。
提示:
在 Preferences 的 Topology Editor章节中,您可以配置 Rational Software Architect 以自动创建并匹配单个需求与功能之间的附件。选中 Create a link automatically when only one match exists 区域。推荐您选中这个区域,以处理 Version 7.5.4 中已知的缺陷。
图 18 显示了导航的路径。
在完成这个对话框之后,图表将会出现错误(见于图 19)。
JKE Furniture Catalog Web 程序的需求现在会得到全部的记录。
在您点击快速修复之后,图表现在看起来如图 20 所示。
图 20. 寄主在 ISS 6.0 并依赖 FURNDB 的 JKE Furniture Catalog Web app
现在在拓扑图上您已经记录了目录程序。最后的一步是记录它将会寄主在 Windows 服务器上,并在上面运行。
记录服务器及其操作系统的步骤,在 Host the database on a Linux server 章节中有所描述。因此,本章节将会只简洁地解释这些步骤;查看早一些的章节以得到细节信息。
JKE Furniture 在物理服务器上运行它的 Web 程序。物理服务器相似于数据库服务器。
此时,您的部署拓扑图已经实现了零错误,也就是完成了。最后的图表应该如图 21 所示。
部署拓扑图现在已经完成了。记录 ASP.NET 单元功能和需求的步骤,有一点费时,因为软件并没有包含 .NET 域的模板。但是,Rational Software Architect 使得使用可再用单元,以及共享配置板条目变得更加容易。
使用单元的最简单方式,是右键点击单元,并从下拉菜单中选择 Add to Palette 菜单项。但是,使用并共享单元的更好方式,是使用模板拓扑图。模板拓扑图更好,因为模板拓扑图可以存储,并在版本控制系统或者 IBM® Rational® Asset Manager 中,来得到存储和共享。
在本章节中,您可以创建两个模板拓扑结构:一个为 Internet Information Server 6.0 单元创建,一个为 ASP.NET 2.0 Web Component 单元创建。每一个模板都会产生其他人可以再使用的配置板项。
如果 Welcome to the Topology EditorHelp 文本出现在您的图表中,通过在右上角点击 X 来跳过该对话框。
模板拓扑图基本上可以像正常的拓扑图那样处理。关键的不同点,在于当有人从模板中使用配置板时,会创建一个保存整个图表 UI 格式的拷贝,并将其拷贝到其他的图表中。
早期创建的 ProductionDeployment 拓扑图有一些本模板需要的单元。
复制操作会创建 Internet Information Server 6.0 单元和 JKE Furniture Catalog Web App 单元。既然它是为 IIS 准备的模板,所以 IIS 模板并没有 JKE Furniture Catalog Web App 单元。
在 Web 程序的单元得到删除之后,图表会拥有 Internet Information Server 6.0 的单个单元,如 图 所示。
注意:
Rational Software Architect V7.5.1 有一个模板的漏洞,以点号码结尾(在 V7.5.4 中得到了修复)。因此,为了简化配置板项的使用,您可以将单元重命名为 Internet Information Server 6。
图 24. Internet Information Server 6 模板拓扑图
为 ASP.NET Web Component 创建一个模板拓扑图,非常相似于以下步骤。
利用该单元的最大差异,是需要重命名的单元,以及需要调整的需求。
在作出以上更改之后,模板拓扑图现在看起来如图 25 所示。
图 25. ASP.NET 2.0 Web Component 模板拓扑图
模板现在已经可以使用了,而配置板项可以通过配置板的 Local Extensions 折叠项中得到。如果需要做一些改进工作,那么这些模板可以马上进行再利用和更改。记住,如果模板得到了升级,那么早期模板创建的单元并没有随之得到升级。
如果您没有完成上面的所有步骤,那么您可以下载这篇文章的 Rational Software Architect 范例项目。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14780914/viewspace-622664/ ,如需转载,请注明出处,否则将追究法律责任。