UML--部署图详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/cold___play/article/details/102737167

部署图

部署图用来描述业务过程中的组织机构和资源。

部署图的含义

部署图(Deployment Diagram)描述了一个系统运行时的硬件节点,以及在这些节点上运行的软件构件将在何处物理地运行和它们将如何彼此通信的静态视图。

在一个部署图中,包含了两种基本的模型元素:节点(Node)和节点之间的连接(Connection)。在每一个模型中仅包含一个部署图。如下图所示,是一个系统部署图。
在这里插入图片描述

图中包含了客户端、服务器端、数据库服务器和打印机等节点,其中客户端和服务器端通过HTTP方式连接,服务器端与数据库服务器通过JDBC方式连接,客户端中拥有IE7.0进程,服务器端中拥有IIS 6.0进程,数据库服务器为Oracle 9i。

在Rose中可以表示的节点类型包括两种,分别是处理器(Processor)节点和设备(Device)节点。

处理器节点是指那些本身具有计算能力,能够执行各种软件节点,例如,服务器、工作站等这些都是具有处理能力的机器。在UML中,处理器的表示形式如下图:
在这里插入图片描述

在处理器的命名方面,每一个处理器都有一个与其他处理器相区别的名称,处理器的命名没有任何限制,因为处理器通常表示一个硬件设备而不是软件实体。

由于处理器是具有处理能力的机器,所以在描述处理器方面应当包含处理器的调度(Scheduling)和进程(Process)。调度是指在处理器处理其进程中为实现一定的目的而对共同使用的资源进行时间分配。有时候我们需要指定该处理器的调度方式,从而处理达到最优或比较优的效果。

在Rose中,对处理器的调度方式默认包含以下几种:

名称 含义
Preemptive 抢占式,高优先级的进程可以抢占低优先级的进程。默认选项
Nonpreemptive 无优先方式,进程没有优先级,当前进程在执行完毕以后再执行下一个进程
Cyclic 循环调度,进程循环控制,每一个进程都有一定的时间,超过时间或执行完毕后交给下一个进程执行
Executive 使用某种计算算法控制进程调度
Manual 用户手动计划进行调度

进程表示一个单独的控制线程,是系统中一个重量级的并发和执行单元。例如,一个构件图中的主程序和一个协作图中的主动对象都是一个进程。在一个处理器中可以包含许多个进程,要使用特定的调度方式执行这些进程,一个显示调度方式和进程内容的处理器如下图所示:
在这里插入图片描述
在该图中,处理器的进程调度方式为“Nonpreemptive”,包含的进程为“ProcessA”和“ProcessB”。

设备节点是指那些本身不具备处理能力的节点。通常情况下都是通过其借口为外部提供某些服务,例如打印机、扫描仪等。每一个设备如同处理器一样都要有一个与其他设备相区别的名称,当然有时候设备的命名可以相对抽象一些,例如调节器或终端等。在UML中,设备的表示形式如下图所示:
在这里插入图片描述
连接用来表示两个节点之间的硬件连接。节点之间的连接可以通过光缆等方式直接相连接,或者通过卫星等方式非直接连接,但是通常连接都是双向的。在UML中,连接使用一个实线表示,在实线上可以添加连接的名称和构造型。连接的名称和构造型都是可选的。如下图所示:
在这里插入图片描述

在连接中支持一个或多个通信协议,它们每一个都可以使用一个关于连接的构造型来描述。如上图所示,该部署图中包含了HTTP和JDBC等协议。

常用通信协议:

名称 含义
HTTP 超文本传输协议
JDBC Java数据库连接,一套为数据库存取编写的Java API
ODBC 开放式数据库连接,一套微软的数据库存取应用编程接口
RMI 远程通信协议,一个Java的远程调用通信协议
RPC 远程过程调用通信协议
同步 同步连接,发送发必须等到接收方的反馈信息后才能再发送消息
异步 异步连接,发送方不需要等待接收方的反馈信息就能再发送消息
Web Service 经由诸如SOAP和UDDI的Web Service协议的通信

部署图表示该软件系统是如何部署到硬件环境中的,显示了该系统不同的构件将在何处物理地运行,以及它们将如何彼此通信。系统的开发人员和部署人员可以很好地利用这种图去了解系统的物理运行情况。其实在一些情况下,比如,如果我么开发的软甲系统只需要运行在一台计算机上,并且这台计算机使用的是标准设备,不需要其他的辅助这杯,这个时候甚至不需要去为它画出系统的部署图。部署图只需要给那些复杂的物理运行情况进行建模,比如说分布式系统等。系统的部署人员可以根据部署图了解系统的部署情况。

在部署图中显示了系统的硬件、安装在硬件上的软件以及用于连接硬件的各种协议和中间件等。我们可以将创建一个部署模型的目的概括如下。

  • 描述一个具体应用的主要部署结构。通过对各种硬件和在硬件中的软甲,以及各种连接协议的显示,可以很好地描述系统是如何部署的。
  • 平衡系统运行时的计算资源分布。运行时,在节点中包含的各个构件和对象是可以静态分配的,可以在节点间迁移。如果含有依赖关系的构件实力放置在不同节点上,通过部署图可以展示出在执行过程中的瓶颈。
  • 部署图也可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种相关硬件和软件的系统运行模型。

猜你喜欢

转载自blog.csdn.net/cold___play/article/details/102737167