Abstract
Mozart is a distributed programming platform
for a multi paradigm language named Oz. Its network layer is a message passing
service to higher layers which run protocols to maintain the state of
distributed entities.
This thesis presents the design,
implementation and evaluation of a new network layer for Mozart. While
reviewing the problems of the old network layer, a new model was designed and
implemented. Solutions provided are a more efficient usage of file descriptors
and similar resources, less fragmented sending of data, leaner memory usage,
improved multiplexing over communication channels and a monitor mechanism for
error handling.
The distribution models of a few other
languages were also studied and the demands on a message passing service were
investigated. It turns out that the many different aspects of a multi paradigm
language also require more of such a service. Still a small comparative test
shows that the performance of the network layer of Mozart is competitive with,
or even higher than the performance of Java’s RMI, that uses a more simplistic
message passing service.
Table of Contents
1 Introduction............................................................................................................ 1
2 Distribution models of
Mozart and other Distributed Languages..................... 1
2.1 Conventional distribution
models.................................................................... 1
2.2 Network Transparency..................................................................................... 2
3 Network layers....................................................................................................... 3
3.1 The network layer of
Java's RMI..................................................................... 4
3.2 The network layer of
Mozart............................................................................ 5
4 Problems addressed with the
new design............................................................. 6
5 Design and implementation
of the new Network Layer..................................... 7
5.1 Definition of the new
model............................................................................ 7
5.2 Connecting to a remote
site.............................................................................. 9
5.3 Passing Messages............................................................................................ 17
5.4 Priorities.......................................................................................................... 19
5.5 Acknowledgements and
retransmission......................................................... 20
5.6 Garbagecollection and
references................................................................... 21
5.7 Resource caching............................................................................................ 22
5.8 Error handling................................................................................................. 23
5.9 Logging.......................................................................................................... 23
6 Evaluation............................................................................................................. 24
6.1 Evaluation of the performance
of the new vs. the old design........................ 24
6.2 A comparison with Java's
RMI...................................................................... 28
7 Future work......................................................................................................... 29
8 Conclusions........................................................................................................... 29
Appendix A: Evaluation test code........................................................................... 30
Appendix B: Interfaces............................................................................................ 33
References................................................................................................................. 37
No comments:
Post a Comment