A Harness Control Application For Hand H
A Harness Control Application For Hand H
V.N. Alexandrov et al. (Eds.): ICCS 2001, LNCS 2073, pp. 367−374, 2001.
c Springer-Verlag Berlin Heidelberg 2001
368 T. Tyrakowski, V. Sunderam, and M. Migliardi
(e.g. it can not be assumed that a device is permanently connected to the Internet).
Therefore the mobile component of the system has to be designed with care so that the
majority of processing is performed on the system side and not at the hand-held.
We postulate that there exists the following four main modes of operation involving
mobile computers [6]:
In terms of Harness, modes three and four are of most significance. In the third
mode of operation, single users will connect to a back-end metacomputing system to
conduct experiments, simulations or indeed any other activity that requires more pro-
cessing power than is available at the hand-held [6]. Such powerful, heterogeneous
computational back-ends can be provided by a Harness DVM. As it will be shown later
in this document, the control of the DVM from a mobile device can be achieved with
little additional implementation.
With the current capabilities of the hand-held devices and the development tools
it’s not possible to run a fully functional Harness kernel in such a limited environment.
The first problem is the lack of a complete Java Virtual Machine for hand-held devices
(there is a very limited virtual machine called KVM, but it’s not powerful enough to run
a Harness kernel). Further challenges are presented by the limited resources available.
Therefore instead of extending Harness to hand-held devices, we propose a new design
for a control application that is suited to mobile computers. Using such an application,
a user of a hand-held device would be able to connect to the DVM, check it’s state and
modify some parameters. Due to technical issues (most notably object serialization and
de-serialization used heavily by Harness), the application must have a ‘proxy’ at the
Harness side. Thus, a specialized Harness plugin, which would translate requests from
the application to the internal Harness protocol and vice versa is required. Since the
application will be running on a limited device, the protocol between the mobile com-
puter and the proxy plugin has to be as simple as possible. The remainder of this paper
is structured as follows. Section 2 describes the application-plugin model more specifi-
cally, whilst in section 3 we present some conclusions about the possible functionality
of this model.
Harness DVM
kernel kernel
Palm/PalmOS
DVM
OS TCP/IP server
Harness ISP
control appl kernel kernel
Control plugin
Psion/EPOC
OS TCP/IP
Harness ISP
control appl
Internet
Compaq/Win CE
OS TCP/IP
Harness ISP
control appl
command test
Obtain an event
start application
Yes
Is it a STOP event?
event loop
No
Process event
stop application
Thus, currently it is easier to add some extra functionality to the proxy plug-in
and extend the hand-held-application-to-plugin protocol, than to implement a partially
Harness compliant module for hand-held devices.
With a relatively small effort it is possible to implement a control application and a
proxy plug-in. This will facilitate the following:
– query the status of the DVM (get a list of hosts, a list of plug-ins loaded at each
host and a list of the hosts available to grab),
– grab and release hosts,
– load and unload plugins,
– intercept some of the events (those which can be translated to a non-object form
and sent to the hand-held device),
– inject some user events (containing a string as payload).
This functionality offers a remote user good DVM control and limited control over
simulations. Note, that there are only two ways a user can start / stop / modify a sim-
ulation. First, is by loading and unloading plug-ins. This method is not convenient as
there is no way a user can provide or change the simulation parameters. The second
method is by injecting some user events. This permits the inclusion of some parameters
for the simulation and to control it more fluently, but the plugins, that do the simulation
itself have to be written in a specific way to understand those events and act on them
properly. The hand-held device can also receive some information from the plugins en-
rolled in the simulation. However, this information is usually simulation specific, and
too verbose to be shown to the user in a readable form. Nevertheless, to control a very
complicated simulation with large amounts of data, it is more appropriate to implement
a specialized simulation front-end for hand-held devices, which would be able to rep-
resent the simulation status in a graphical form. Such an application would work in the
same way as the DVM control application, but instead of connecting to a general DVM
proxy and using a standard protocol, it would connect to a specific simulation control
plugin and use the most convenient protocol.
USERS
John
John said: Hi! Paul
Paul said: Wait for the
picture! George
working on a common project will connect to a particular DVM they automatically will
be able to communicate with their co-workers.
The proxy plugin can translate user-generated events of the specified type (user
messages) into the format understandable by the control application. By extending the
control application we can offer the users the ability to talk to each other. This brings
the fourth mode of operation, described in section 1, into operation.
As an illustration, a possible GUI for the collaborative control application is shown
in fig 3. The plugin itself, apart from the functionality described earlier, will perform
the following activities:
– keep track of the users currently connected
– detect the additional types of events and take appropriate actions (translate the
event’s payload and send it to the message recipient or to all users if it is a broadcast
message)
– queue the user messages for each connected user separately (since the messages
will be sent to the user only when the control application asks for them, thus it is
possible that there are more than one message present between such requests).
5 Conclusions
The Harness control application for mobile devices is a powerful extension of the Har-
ness metacomputing system. The ability to check and change the DVM state and steer
374 T. Tyrakowski, V. Sunderam, and M. Migliardi
the simulation from different locations is a desired feature. Unfortunately the Java 2 Mi-
cro Edition architecture in it’s current development and hardware support stage is not
powerful enough to implement all of the features mentioned in [6]. Although facilities
exist in the Java 2 Micro Edition distribution to handle basic network connections, it is
not possible to serialize / de-serialize objects, which is a required feature to implement a
fully functional Harness extension. Nevertheless, the implementation of a simpler con-
trol application for mobile computers (the one described in the previous section) would
be particularly useful in terms of collaborative computing, and this can be implemented
on most hand-held computers using their native SDKs. Providing that the application is
designed to exploit the benefits of software re-use, it can be easily ported to the differ-
ent platforms by re-writing the communication and visualization modules. The use of
a simple text-based protocol guarantees that all platforms, which can handle network
connections, will also be able to communicate using this protocol.
In the near future the control application for the PalmOS platform will be imple-
mented. It can then be ported to the Psion/EPOC and Windows CE platforms. This
would comprehensively cover the majority of the hand-held computer market. Simul-
taneously, an alternative version in Java can be produced, since it is likely that Java 2
Micro Edition will also develop in parallel.
The prototype at first will handle only the DVM state tracking / control. At later
stages, the extended user collaboration functionality can be added to both the applica-
tion and the plugin, as described in section 4. The complete collaborative control ap-
plication can then be ported to different platforms and the Java front-end for desktops
workstations can be implemented.
References
1. A. Howlett and T. Tso and R. Critchlow and B. Winton. GNU Pilot SDK Tutorial. Palm
Computing Inc.
2. Curtis Sasaki. Java Technology And The New World Of Wireless Portals And M-commerce.
Sun’s Consumer Technologies, Sun Microsystems. available from: http://java.sun.com/
j2me/docs/html/mcommerce.html.
3. M. Migliardi and V. Sunderam. Heterogenous Distributed Virtual Machines In The Harness
Metacomputing Framework. In Proc. of the Eigth Heterogeneous Computing Workshop, April
1999.
4. M. Migliardi and V. Sunderam. The Harness Metacomputing Framework. In Proc. of the
Ninth SIAM Conference on Parallel Processing for Scientific Computing, March 1999.
5. Palm Computing Incorporated. PalmOS Software Documentation. available from:
http://www.palmos.com/dev/tech/docs/.
6. V. Sunderam and M. Migliardi. Mobile Interfaces To Metacomputing And Collaboration
Systems. Technical report, Emory University, 2000. A Proposal To The NSF.