and users. This results in a typical Distributed System modelling problem and involves
the support and integration of aspects such as: data distribution and transparent access,
security aspects, fault tolerance, and name and location management. These problems
are well identified and studied in proper literature [1]. Other issues arise due to the pos-
sible use of mobile client platforms. They concern communication problems such as,
network location management or data synchronization, and have been subject of study
in the area of Mobile Computing [2][3].
In this paper a distributed system for an academic campus environment will be stud-
ied. In section 2 the issue of non-native application execution is examined, for which a
number of technological alternatives are listed and briefly assessed. In section 3 the ar-
chitectural design of the system is presented, together with a brief description of MoNet
design methodology, followed by the results of its design steps. Section 4 shortly de-
scribes the developed proof-of-concept platform and subsequent lessons learned. Fi-
nally, section 5 enumerates major conclusions.
2 Using non-native applications
A survey made on the technological solutions for the execution of non-native applica-
tions shows that these solutions fit in four different main approaches (more details in
chapter 3 of [4]):
1. Exporting the application user interface—which assumes running the application
on its native platform and redirecting its user interface to the client, either directly
using built-in windows systems mechanisms, or indirectly using proxy entities;
2. Running platform independent applications—developing applications in program-
ming languages that generate platform-independent code;
3. Platform emulation—running non-native applications on a emulator of the native
platform;
4. Process migration—migrating processes via specific operating system mechanisms
allowing application processes to move and run on other platforms.
Direct mechanisms for exporting the application user interface inherently restrict
themselves to a family of operating systems (and sometimes not even the entire fam-
ily). In order to support different families of operating systems indirect exporting mech-
anisms ought to be adopted. Java programming language has been widely accepted for
the development of platform-independent code. Of course, but unfortunately, Java does
not easily integrate software that is already compiled for other platforms. Emulation
technology lacks the efficiency and performance of the natively running application.
Plus, most of times, it is not technically possible to emulate every feature of the native
platform. Migration of application processes, between different operating system fami-
lies, is out of the question since it raises extremely complex problems due to operating
systems software complexity and architectural differences.
This leaded us to elect the indirect way of exporting the application user interface
to the client device as the most suitable technique for universal access to heterogeneous
computer applications.
61