I am trying to understand how a deployment diagram works by making one and reading up on it. I have come across multiple different (contradicting) statements or I am flat out misunderstanding them. According to Lucidcharts an artifact would be "A product developed by the software, symbolized by a rectangle with the name and the word “artifact” enclosed by double arrows." and a component would be "A rectangle with two tabs that indicates a software element."
My first question would be: What's the difference between the 2? Both are software, unless a physical component developed by the written software could also be classified as an artifact.
Now on to the contradiction(?): According to sparxsystems an artifact is: "An Artifact is any physical piece of information used or produced by a system". So according to the second quote, an artifact cannot be a software, since it's "any physical piece of information used or produced by a system". So for example: A database server should be classified as an artifact, even though other sources state that a database server should be a node.
According to lucidcharts (at the bottom of the page this example is mentioned) a browser is considered as a device (node), whereas I would consider it a component. Afterall, it's a software element. It's a piece of software which isn't a physical or software product created by one of my softwares and therefore shouldn't be an artifact either. According to sparxsystems a node is: "A Node is a physical piece of equipment on which the system is deployed, such as a workgroup server or workstation". How is a browser a physical piece of equipment?
https://www.lucidchart.com/pages/uml-deployment-diagram
So my question is:
Can someone explain what a node is, what an artifact is and what a component is and what the differences would be between these? I have a difficult time grasping the concept.