previous next Up Title Contents Index

3.4 Implementation des MOBILE-Systems

Das MOBILE-System ist hauptsächlich in Java implementiert, deshalb soll diese Programmiersprache an dieser Stelle kurz erläutert werden. Java ist eine plattformunabhängige, klassenbasierte, objektorientierte Programmiersprache. Wesentliche Eigenschaften von Java sind:
* Klassen können von genau einer Klasse erben, jedoch nicht von mehreren. Als Ersatz für Mehrfacherbung gibt es die Möglichkeit, sogenannte interfaces zu implementieren.
* Methoden können überladen werden.
* Java wird durch einen Java-Compiler (javac) in einen plattformunabhängigen Zwischencode (Bytecode) übersetzt, der von einer sogenannten virtual machine (VM) zur Laufzeit interpretiert wird. Dieses Konzept wird ergänzt durch Just In Time Compiler (JIT-Compiler), die den Bytecode unmittelbar vor seiner Ausführung in plattformabhängigen, sogenannten native Code übersetzen. Bei wiederholter Ausführung desselben Codestücks kann so ein erheblicher Performanzgewinn erzielt werden.
* Die Sprache wird durch umfangreiche Klassen-Bibliotheken (packages) ergänzt. Die VM, die Bibliotheken und einige Werkzeuge bilden zusammen das sogenenannte Java-Development-Kit (JDK). Das JDK macht seit seiner Entstehung eine immer noch rasche Entwicklung durch. Java ist in Bezug auf seine Eigenschaften stark von der jeweils zur Verfügung stehenden JDK-Version abhängig.
* Teil der Sprache ist die Dokumentation mittels besonderer Kommentare, die vom Werkzeug javadoc ausgewertet und in Hypertext Markup Language (HTML ) übersetzt werden, so daß sie mit einem WWW-Browser gesichtet werden können.[11]
* im Sprachumfang enthalten und durch die VM unterstützt ist das Ausführen nebenläufiger Prozesse (Multithreading).
Die Spezifikation der Sprache Java findet sich in[GJS96]. Umfangreiche Dokumentation zu Java und der JDK ist unter[Sun98] zu finden. Eine deutschsprachige Einführung in Java bietet[MSS96]. Daneben gibt es zahlreiche WWW-Seiten mit Einführungen, darunter das von Sun herausgegebene Tutorial, welches über[Sun98] zugänglich ist.
Auf der Sun wird die JDK 1.1.4, auf dem Macintosh die zur JDK 1.1.3 kompatible Macintosh Runtime For Java verwendet.
Atomare Bausteine werden als Java-Klassen implementiert. Die Implementationsspezifikation dazu befindet sich in[Müg97].
Wesentliche Elemente der Spezifikation sind:
1. Bausteine können über Ports mit anderen Bausteinen kommunizieren. Dazu wird zur Experimentinstantiierungszeit ein Ausgabeport des produzierenden Bausteins an einen Eingabeport eines diese Daten konsumierenden Ports geknüpft. Die Ports sind Zugänge zu Datenpuffern, über die die Kommunikation zur Experimentlaufzeit asynchron ablaufen kann.
2. Zur Instantiierungszeit werden die Parameter eines Bausteins bestimmt.
3. Über die Ports können MSL-Daten-Objekte ausgetauscht werden. MSL-Daten-Objekte sind instantiierte MSL-Daten-Typen. MSL-Daten-Typen sind von der Klasse Mobile.MSL.MSLData abgeleitet.
Es sind einfache Daten-Typen verfügbar wie RealNumber, Text und Boolean oder komplexe Daten-Typen wie Matrizen, Tabellen und Zeitreihen.
4. Parameter sind ebenfalls MSL-Daten-Objekte.
5. Bausteine kapseln ihre Funktionalität, so daß für andere Bausteine nur Ein- bzw. Ausgabeports sichtbar sind.
Im Inneren der Bausteine können zum Beispiel Simulationsmodelle oder Auswertungmethoden - zu denen auch Visualisierungsmethoden zählen - ablaufen. Diese sind Objekte der Klassen Simulator bzw. Evaluator. Auch die Vorgänge des Erzeugens bzw. Bereitstellens sowie des Aufzeichnens von Daten werden in einem Baustein gekapselt. Dies sind Objekte der Klassen Generator bzw. Recorder.
In der Programmiersprache C oder C++ implementierte Simulationsmodelle können über das Java Native Interface (vgl.[Ste97]) in einem Baustein gekapselt werden. In weiteren Programmiersprachen geschriebene Modelle können angebunden werden, sofern wie es für diese eine Programmierschnittstelle zu C gibt.
6. Bausteine werden nebenläufig ausgeführt.
7. Die serialisierte Ausführungsreihenfolge von Bausteinen ist nicht festgelegt, insbesondere, da sie in unterschiedlichen Experimenten Verwendung finden können.
8. Bausteine werden in der Objektbank (ObjectBase) gespeichert. In ihr werden neben den Bausteinen auch die MSL-Daten-Objekte gespeichert.


[11] Die für das Mobile-System automatisch erstellte Dokumentation ist unter[Müg97] und[Hup98a] verfügbar.


previous next Up Title Contents Index