[JSup] can be executed in various ways: * '''Stand-alone''': a single instance of the program provides both the graphic user interface (both desktop and web), the communication with devices (PLC, controllers, ...) and runs all the logic. * '''Server''': an instance of the program that only provides the communication with devices (PLC, controller, ...), runs the [Shared domain of JSup|Shared domain] logic, accepts connection from clients. Furthermore it provides the web interface. The server instances can be executed as a '''Windows service''', in that way it will run regardless of the logged on user (if any). * '''Client''': such JSup instance must be connected to (and depends on, for the [Shared domain of JSup|Shared domain]) a JSup server instance. The server instance can be run on the same PC or in a remote one; the connection is made via [wikipedia:TCP/IP], and the used bandwidth is very low. The ''Client'' instance provides the ''desktop'' graphic user interface (web interface is provided by the ''Server'' instance) and runs the [User domain of JSup|User domain] logic.