A methodology for dynamic (i.e., run-time) uploading and execution of
applications and drivers between devices (e.g., between "client" device
and one or more (host) devices), in a fully automated manner, is
described. The device which is to be hosted (e.g., the "client" device)
initially probes its environment to determine which device or devices it
is attached to (e.g., the "host" device(s)). Once it has correctly
discerned the relevant host or target device(s), the client device
includes the capability of immediately sending out (i.e., uploading) a
particular driver or application (i.e., object or file of interest) for
placement, and ultimately execution, at the host device. Once the
particular object or file of interest has been "injected" into the host
device and is executing, the client device may simply revert to a
"listening mode" in which it waits to be told what to do (i.e., receive
commands from the application or driver which is now executing at the
host device). This approach is particularly well-suited for devices which
serve as "add-on" devices (clients) to other devices (hosts) that are
"smarter," for instance, including more processing capability and/or
memory. In this scenario, the client device enters into a dialog with a
device with more resources for the purpose of harnessing the resources of
the host device for operating the client or add-on device. The client
device is, using this approach, able to start running (i.e.,
driver-directed operation) immediately upon attachment to a host device
that can be identified.