Java für Embedded Systems

Werbung
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Marc Balmer, micro systems
marc@msys.ch
25. April 2001
Java für Embedded Systems
Java für Embedded Systems
• ...
• Cyberflex Smart Card
• iButton
• Java-Ring
• TINI Board
• Palm PDA
Marc Balmer, marc@msys.ch
Java-fähige Embedded Systems
Java für Embedded Systems
• PDA
• Handy
Marc Balmer, marc@msys.ch
Consumer Produkte, z.B.:
• Einspritzsteuerung für Benzinmotoren
• Billetautomat
• Datenerfassung
Steuer- und Kontrollrechner, z.B.:
Embedded Systems
Java für Embedded Systems
Flash-ROM
Marc Balmer, marc@msys.ch
Keine externen Speicher wie Festplatten
Wenige Bytes bis einige Megabytes (typ. 4- 8 MB)
Speicher
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Prozessor wird oft in einen stromsparenden Sleepmode versetzt
Langsame Prozessoren, 20 MHz Taktfrequenz ist bereits komfortabel
Rechnerleistung
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Vernünftige Antwortzeiten (der Fokus eines Benutzers ist u.U. ganz auf das Gerät
gerichtet)
Absolute Zuverlässigkeit
Anforderungen
Limitiertes oder gar kein User Interface
User Interface
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Java aus Embedded Systems Sicht
Java für Embedded Systems
Marc Balmer, marc@msys.ch
• Instruktionen und implizite Instruktionen sind von Bedeutung
• Programme werden grösser und langsamer
• Einfach zu implementieren
Die virtuelle Maschine: Ein stack-basierter
Rechner ohne Register
Java für Embedded Systems
• Gut komprimierbar
• Big-Endian
Marc Balmer, marc@msys.ch
• Enthät Bytecodes uns symbolische Information
• Portables Binärformat
Java Classfiles
Java für Embedded Systems
• Langsame Array-Initialisierung
• Symbolische Namensauflösung
• Synchronisation
Marc Balmer, marc@msys.ch
• Sicherheitsüberprüfung des Bytecode
• Viele Laufzeitüberprüfungen
• Keine Pointer
Nicht weil Java interpretiert ist, sondern wegen Eigenschaften der Java Umgebung an
und für sich:
Warum ist Java langsam?
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Objekte werden evt. gar nie freigegeben, es keine Regeln für die Garbage Collection
Keine Kontrolle über die Speicherallokation (nur ein Heap)
Garbage Collection benötigt Rechenzeit
Nachteile
Objekte werden automatisch dealloziert
Objekte werden nie zu früh dealloziert
Vorteile
Garbage Collection
Java für Embedded Systems
Marc Balmer, marc@msys.ch
• Das Modell separieren (Model/View/Controller-Paradigma)
• Auf Performanz hin programmieren
• Weniger Speicher verwenden
• Kleinere Anwendungen schreiben
• Anwendungen vereinfachen
• Rechenintensive Aufgaben auf den Server verlegen
Programmierstrategien
Java für Embedded Systems
Marc Balmer, marc@msys.ch
• Die Kuaui VM (KVM) für 16- und 32-Bit Rechner mit wenig Speicher
• Die Classic VM für 32-Bit Rechner mit viel Speicher
J2ME
• Die HotSpot VM
• Die Classic VM
J2SE
Eine neue virtuelle Maschine
Die Java 2 Micro Edition
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Neue Klassen für Embedded Systems
Reengineering bestehender Klassen
Neue und veränderte Klassen
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Vollständiger Java Support plus alle CLDC Klassen
Die Connected Device Configuration
Vollständige JVM mit Ausnahmen
Volle Sprachumfang mit Ausnahmen
Die Connected Limited Device Configuration
Konfigurationen
Java für Embedded Systems
Support für HTTP etc.
Mobile Information Device
MID Profile
Marc Balmer, marc@msys.ch
Anwendungspezifische Klassen innerhalb einer Konfiguration
Profile
Java für Embedded Systems
Marc Balmer, marc@msys.ch
Keine Benutzerdefinierten Klassenlader
Multidimensionale Arrays sind optional
Bytecode pre-verification ausserhalb der VM
Kein JNI
Keine Object Finalization
Long Integer und Floating Point Unterstützung ist optional
Die KVM
Java für Embedded Systems
Marc Balmer, marc@msys.ch
“Using Java for embedded systems means to live on the bleeding
edge. And it’s not called the bleeding edge for nothing.”
Java ist für Embedded Systems der falsche Ansatz
Die Java Technologie für Embedded Systems ist unausgereift, zu langsam, zu Speicherintensiv
Java kann für Embedded Systems zum jetzigen Zeitpunkt (2001) nicht sinnvoll eingesetzt werden
Schlussfolgerung
Herunterladen