常见 PHP 服务器应用程序的 UML 部署图

UML deployment diagram for a common PHP server application

让我们假设您想要使用 UML 2 部署图可视化一个常见的 PHP 服务器应用程序,以供在此领域知识不多的人使用。这样一个常见的应用程序可能有三个设备节点(数据库服务器、Web 服务器和客户端)和四个执行环境节点(关系数据库管理系统、Web 服务器、PHP 解释器和 Web 浏览器)。在 "PHP Interpreter" 内部可能有一个公共组件 "Application",在执行环境 "Web Browser" 内部可能有三个工件(HTML、CSS 和 JavaScript ).

由于 PHP 支持许多不同的协议和 RDBMS,"PHP Interpreter" 节点和 "Relational Database Management System" 节点之间通信的通用说明符不能用具体协议标记,所以我们主要可以说它是底层设备节点 "Database Server" 和 "Web Server" 之间的 TCP/IP;但事件并不总是如此(想想套接字)。在执行环境节点 "Web Server" 和 "Web Browser" 之间是 HTTP。有什么好! :D。关于 RDBMS 和应用程序组件之间的通信,它是 SQL,但这不是协议,结果接口取决于下划线驱动程序。也没有给出单独实例上的三个设备节点。关于 Web 浏览器的组件 "Application" 的端口和接口又如何呢?我们可以在这里指定更具体的内容吗?

所以我的问题是,考虑到我在上一段中的注释,一个正确且总体上平衡良好的图表会是什么样子?

你可以做的是创建一些概览图,将上面的混合点亮,如下所示:

可以看到机器本身有一个IP连接,当然可以承载很多协议。您不必显示将通过此 IP 连接传输的内容。如果需要,您可以创建另一个图表,其中列出所有支持的协议作为此处实现的接口。这可能会让 messy/tricky 显示出来,并且有一些很明显的东西很容易被丢弃。

此外,您可以看到您有一个 RDBMS 和一个 Web 服务器,它们 运行 在不同的监狱中。在这里你可以看到他们为他们用来交谈的对象提供了端口。这里也没有显示他们与谁以及如何交谈。这可以再次进入另一个图表,如下所示:

长话短说:您不会创建一个图表来显示内部的所有内容,但您会为不同的方面创建不同的图表 - 您可以从一些概览图中获得。