在该步骤中,系统元素被分配给在上一步骤中定义的节点。可从逻辑和物理的角度描述部署。
逻辑部署中,逻辑元素(类、子系统或它们的实例)被映射到节点。其中可能包括控制线程。例如,逻辑部署可能声明:将 AuctionManager 子系统部署到应用程序服务器。
物理部署中,文件被映射到节点。例如,物理部署可能声明:将 CloseAuctionTimer.class 文件部署到 server76。
分布区域的总和可以且通常小于各部分的总和。 要使分布确实带来好处,需要执行工作并仔细规划。 当确定将哪些元素映射到哪些节点时,请考虑以下各项:
-
节点容量(根据内存和处理能力)
-
通信介质带宽(总线、LAN、WAN)
-
硬件和通信链路的可用性,重新路由
-
冗余及容错需求
-
响应时间需求
-
吞吐量需求
基于使跨网络通信量最小化的目的,将元素分配给节点;应将大量交互的元素分配到相同的节点中;而交互频率较低的元素则可驻留在不同的节点中。至关重要的决策(有时需要迭代)是在何处划定界限。在两个或更多节点上分布进程将要求对系统中进程间通信模式进行周密的检查。通常存在一种天真的观点:处理的分布可从一台机器上卸下工作并转移给另一台机器。实际上,若未仔细考虑进程和节点边界,额外的进程间通信工作负载将轻易地抵消由于工作负载分布而产生的所有好处。
示例
上一示例图 ATM 的部署视图,说明了将进程分配给 ATM 节点。存在单个进程(ATM 主程序),它又由三个独立的控制线程(客户接口、ATM 网络接口和设备控制器)组成。
某些环境提供了自动化和/或简化分布的机制。例如:
-
群集:群集是一组作为单元的服务器,一般包括诸如故障转移和负载均衡等功能。在此情况下,部署视图应描述是如何将系统元素分配给群集的,以及如何配置群集以将其映射到物理节点。
-
容器:在组件环境中,例如 J2EE、Microsoft .NET
等,组件将在名为容器的逻辑计算环境中执行。可将容器看作是“逻辑节点”。部署视图应描述是如何将系统元素部署到容器的,接着描述是如何将容器分配给物理节点的。
应将此类支持性分布机制的应用以及需要如何配置它们并映射到物理节点以满足分布需求作为部署视图的一部分加以记录。
|