A node is a platform that can execute programs. There are two types: physical and virtual.
Note: nodes can also be devices with limited or no processing power such as printers, terminals, etc.
A physical platform consists of a computer plus an operating system. For example:
UNIX/desktop
Windows/server
Windows/PDA
A virtual platform is a node simulation program running on a physical platform. We say that the virtual platform is hosted by the physical platform.
Virtual platforms are often designed as component containers. This means they manage third-party components. Managing components may include providing communication, lifecycle, discovery, and transaction services. The container may also specify a standard interface definition language (for example: WSDL, IDL, DCOM).
Examples of component containers (virtual platforms) include: J2SE, J2EE, .NET, MySQL.
We can regard a node such as UNIX/desktop as a class of computers. A node instance is a specific member of a node class. For example, a network may consist of three instances of the UNIX/desktop class: node1: UNIX/desktop, node2: UNIX/desktop, and node3: UNIX/desktop.
Nodes can be linked by communication channels. A communication channel can be stereotyped by the type of communication protocol nodes use to communicate over it.
Examples of communication protocols include:
<<RS-232>>
<<Ethernet>>, <<Token Ring>>
<<TCP/IP>, <<UDP/IP>>
<<FTP>>, <<HTTP>>, <<Telnet>>
<<SOAP>>, <<JDBC>>, <<RMI>>,
<<CNP>>
Component instances are manifested by artifacts. Artifacts are usually files (for example: .class, .jar, .exe, etc.) Often the distinction between component instance and artifact is not worth making.
Artifacts are deployed on nodes.
A deployment diagram consists of node instances, links, dependencies, and artifacts.
Although component instances don't usually appear in deployment diagrams, I find if useful to show them anyway. In fact, I would probably eliminate the artifacts and just show component instances being deployed directly on nodes.
More examples can be found in nodes.uml.