Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an agreed UML diagram style for documenting or illustrating the role of (Docker) containers in a system architecture specification? [closed]

I'm planning to draw some UML structure diagrams that illustrate the place of Docker images (or containers, in deployment diagrams) in the overall structure of the software I am architecting. I'm interested in illustrating the contents of containers, the mapping of network ports and other interfaces and the way multiple containers inter-operate.

My problem space is that of distributed, event-based systems (DEBS), so I expect that most of my containers will have message queues coming in and going out. Another part of my architecture involves the use of an in-memory data grid, which will span across many containers across multiple nodes in a cluster.

How can this be modeled with UML ? If it can't, is there anything planned in UML to address such distribution issues ?

like image 922
Bert Hooyman Avatar asked Jul 08 '16 15:07

Bert Hooyman


People also ask

Which UML diagram should I use?

There are a few UML diagrams that are used in most situations in software development or systems modeling, including IT infrastructure and business systems. The top three UML diagrams that you should get comfortable with include use case diagrams, class diagrams (if you are a programmer), and sequence diagrams.

Which UML diagram would you use to show the relationship in time among various objects including function calls and responses?

Timing diagrams are very similar to sequence diagrams. They represent the behavior of objects in a given time frame. If it's only one object, the diagram is straightforward. But, if there is more than one object is involved, a Timing diagram is used to show interactions between objects during that time frame.

What is the purpose of UML diagram in project documentation?

Importance of UML Diagram UML diagrams can be used as a way to visualize a project before it takes place or as documentation for a project afterward. But the overall goal of UML diagrams is to allow teams to visualize how a project is or will be working, and they can be used in any field, not just software engineering.

How many types of UML diagrams are most useful for system Modelling?

For everyday use, three types of UML diagrams are the most popular: Class diagram. Object diagram. Sequence diagram.


1 Answers

You want to represent docker containers and how they deploy your data grids. But you also want to show how this is related to your software architecture.

I think you should first have a look a deployment diagrams. These are best suited for representing the execution of your system across hardware and software environments:

  • here an example showing how to represent docker hosts, and images with "nodes" and communication paths
  • here an example showing how to further represent the inside of a node with "artifacts" such as for example components, which could represent your data-grid components linked across several nodes, and message queue if it's an independent component.
  • here a nice overview of the notation. Interesting in your case: you could also show the deployment of a artifact accross several nodes with a dependency arrow to the nodes. This would make the diagram focusing on how your components are distributed, keeping artifacts on one side and execution environment on the other, avoid over-inflated 3D node boxes.

The component architecture could then be described in a component diagram, as pointed out by Thomas Kilian in his comment. For the sake of completeness: see here or here.

Finally, you could explain the relationship between your high-level independent components and your detailed classes by using the composite structure diagram.

like image 71
Christophe Avatar answered Nov 19 '22 23:11

Christophe