对企业级Java应用程序及其部署进行建模 - 编程入门网
很清楚了。这个图既说明了部署模块的定义,也说明了模块必须存在于其中的上下文。上下文提供了模块正确发挥功用所需的资源。这就告诉了SCM和生产团队要确保提供这些资源,否则软件就不会运行。
图4. 较好的可部署模块图 现在,对于任何必须为应用程序创建可执行环境的人,这个图都可以派上用场。现在,他们知道需要在环境中配置一个JMS队列和一个JDBC驱动程序,因为这是应用程序的需要。有关JMS队列和JDBC驱动程序的关键信息也包含在内。虽然我在这里没有对每一个细节都进行建模,但是通过对环境依赖性进行建模,我为SCM团队提供了询问其他问题的机会。此外,数据库管理员可能会喜欢看到这个图。他们很可能会提出有关客户数据库、索引、键之类的一些问题。 一个优秀的模型不只回答问题,它还会让人们思考和询问其他的问题。一开始,当您想建模来回答问题和记录决策时,这似乎有些奇怪。这没错,但是UML的设计目的不是对一切内容进行建模。某些内容,比如数据库设计,最好使用更加专业的工具进行建模。某些信息最好以纯文本格式进行定义。一个优秀的模型可作为企业其他部门进行具体思考和设计的出发点。 提示!——优秀的模型可以回答一些问题并提出一些其他的问题。 您可能已经注意到了,这些图中有些内容是相同的。每个图都有其特定的目的,并包含针对特定受众的消息。不能为了图本身而创建图,创建图是为了与预定的受众进行交流。每个图都应该包含一条有针对性的消息。这条消息可能是“下面是这个[概念|类|对象|节点]与其直接邻居的关系”,也可能是“下面是方法的行为”。就像所有的交流形式一样,如果没有特定的消息要传达,很可能是该消息的接收方根本无法理解您的消息。 提示!——每个图都应该有其特定的用途。 还要注意,在图4中,我避免对JMS队列和JDBC驱动程序的详细细节进行建模。JMS队列可以有另外的标记值,表示缓存大小、分页目录、启动时暂停的插入,等等。通常不会对这些数据建模,因为这类内容是随环境不同(也就是说,当把软件从测试环境转移到生产环境时)而不同的,而且这些值在应用程序调优过程中也会变化。提前指定它们的值通常不会带来什么好处。不过有一个例外:如果您的公司有这样一个策略——在进行性能调优之后采用最后的生产配置值(即,应用程序配置值),那么我将在模型中包含这些值。 部署图 出于某种原因,在大多数UML书籍中,部署图通常会受到轻视。在很多书中,有关部署图的章节只不过2到6页内容,而且只给出最简单的示例图。而我认为,这些图恰恰是UML中最重要的部分。这些图允许您表达一个软件系统或者甚至是整个IT部门的架构,而且在找出生产环境中性能问题的根源时,它们可能是一个关键因素。 一家典型的公司有很多环境:开发环境(至少一个)、测试环境(可能多于一个)、性能环境、登台环境,当然还有生产环境。许多企业还需要维护一个灾难恢复环境,以防自然或人为的灾难。但是,没有必要为所有这些环境维护部署图。开发、测试和性能环境通常变化得太快,以至于无法为部署在这些环境中的软件进行认真的建模。登台、生产和灾难恢复环境在本质上是(或者说应该是)类似的,因此只对生产环境建模通常就足以捕捉到部署空间的本质。 这正是UML 2.0真正的用武之地。从UML 2.0中的变化来看,显然很多人都觉得部署图相当重要。在项目的早期阶段,我建议在逻辑级别上对部署进行建模。我还建议在项目的最早期创建这些图。部署是项目规划的一个关键部分,而不是事后考虑。 我所看到的该领域中的部署图大多数止于逻辑模型。重要的是对所有系统部署进行建模,而不是单独对每个软件系统进行建模。筒仓应用程序大行其道的时代已经一去不复返了。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |