TinyRMI

Die
Kertasarie VM wird durch eine eigene Middleware-Implementierung vervollständigt.
Es handelt sich dabei um eine Variante der Remote Method Invocation
(RMI), die besonders für den Einsatz in eingebetteten
Systemen entworfen wurde. TinyRMI stellt dabei den Großteil
der Funktionalität der Referenzimplementierung zur Verfügung
belegt aber nur ca. 1/4 des Speicherplatzes (s. folgende Abbildung).

Speicherplatzverbrauch

Die Speicherplatz-Einspaarung wird noch deutlicher sichtbar, wenn
man nicht nur die Klassen für RMI selber betrachtet, sondern
auch die benutzten API Klassen mit hinzurechnet. In Zusammenarbeit
mit der Kertasarie VM reduziert sich der Gesamtspeicherplatzbedarf
von etwas über 700KB auf nur knapp 150KB.

Bei solchen Einspaarungen besteht leicht die Gefahr, dass man Speicherplatz
gegen Rechenleistung eintauscht. Bei TinyRMI ist aber das Gegenteil
der Fall, wie die folgenden Abbildungen zeigen.

Performance

Bei wenigen
Parametern und ohne Rückgabewert ist TinyRMI schneller als die
Referenzimplementierung. Obwohl NinjaRMI in diesem Fall etwas schneller
ist, fällt die erheblich höhere Streuung der NinjRMI Messungen
auf. Dies bedeutet, dass die Kommunikationszeiten bei NinjaRMI (und
auch bei der Referenzimplementierung) schlechter vorherzusagen sind.

Bei großem
Parametersatz schneidet TinyRMI besser ab als NinjaRMI und die Referenzimplementierung.
Auch hier liegt die Varianz der Kommunikationszeiten erheblich unter
der Varianz der anderen Varianten.

Fehlende Funktionalität
Bei der Implementierung von TinyRMI wurde im wesentlichen auf das
Activation API und Distributed Garbage Collection verzichtet. Diese
beiden Eigenschaften werden aber in eingebetteten Systemen typischerweise
nicht gebraucht.