As defined in the specification, a deployment artifact represents the executable for materializing instances of a node. However, the definition cannot be applied to the following cases in which two logically separated nodes are instantiated by one deployment artifact.
A web service supported by an appserver and a DB server is developed for small- and medium-sized enterprises. Since it is a very small web application, the application server and the DB server can be hosted on one virtual machine. Therefore, one virtual machine (VM) image installing Linux OS, Tomcat and MySQL can be used to deploy the appserver and the DB server. However, developers have to define two node types in TOSCA for the appserver and DB server respectively, since they are logically separated two nodes. But these two nodes reference the same deployment artifact. The artifact should be imported for just once, and then both nodes are instantiated.
My question is: is it necessary to define several node types which are logically separated but are physically instantiated by one deployment artifact? Or just define one node type to include all?