Mit J2ME ins Internet

Mit J2ME ins Internet

Tam Hanna


In einigen Bereichen „tickt“ J2ME komplett anders als der große Bruder. Der Grund dafür ist die minimale Performance der damaligen Mobilcomputer – wir haben im ersten Teil der Serie festgestellt, dass J2ME samt einiger MIDlets in weniger als 5 MB Speicher untergebracht werden kann.

Record Management System

Das Realisieren eines Dateisystems stellt einen nicht unwesentlichen Overhead dar. Alte Handcomputer verwendeten deshalb statt FAT eine Art Datenbanksystem, das die Daten der Anwendungen flach (also ohne Ordner) in einzelnen Datenbankeinträgen vorhielt.

Bei J2ME ging Sun mit dem Record Management System, kurz RMS, einen ähnlichen Weg. Der unter javax.microedition.rms findbare Namensraum besteht aus einer Klasse und vier Interfaces. Am wichtigsten ist die RecordStore-Klasse, die wie die von Symbian her bekannte FileServer-Klasse den Zugriff auf das zugrunde liegende Dateisystem regelt.

Dabei kommen fünf Regeln zum Einsatz: Die erste besagt, dass ein MIDlet nur auf seine eigenen Daten zugreifen darf. Es ist also nicht möglich, auf die von einer anderen MIDlet-Suite erstellten Record Stores zurückzugreifen, um so applikationsübergreifende Workflows zu realisieren.

Die Dateinamen der einzelnen Record Stores müssen auf MIDlet-Suite-Ebene einzigartig sein. Sie umfassen bis zu 32 Unicode-Zeichen und sind – auch hier hält man sich streng an die Java-Konventionen – Case-sensitive. Jeder Zugriff auf den Record Store inkrementiert die Versionsnummer desselben, die einzelnen Records werden durch einzigartige IDs identifiziert. Ärgerlicherweise ist der Record Store nicht Thread-safe. Wer ein multithreaded MIDlet realisiert, muss sich also selbst um die Synchronisierung kümmern.

Das Interface RecordComparator definiert eine Hilfsklasse, die die einzelnen Records der Applikation miteinander vergleicht. Das ermöglicht Sun das Anbieten von generischen Algorithmen – die Vergleichsintelligenz wird vom Entwickler durch eine eigene Methode beigesteuert. Der RecordFilter arbeitet nach demselben Schema – er ermöglicht es, beim Durchlaufen einer Datenbank nur die relevanten Einträge anzuzeigen. Das eigentliche Durchlaufen ist die Aufgabe der Record­Enumeration.

Zu guter Letzt erlaubt der RecordListener das Überwachen einer Datenbank. Seine Methoden werden immer dann aufgerufen, wenn sich etwas ändert – so kann ein Prozess auf einen anderen achten.

Datenbank herbei!

Doch damit erst genug der Theorie – unsere erste Datenbank will erstellt werden. Das Beispiel SuSJ2ME4 besteht aus mehre...

Mit J2ME ins Internet

Mit J2ME ins Internet

Tam Hanna


In einigen Bereichen „tickt“ J2ME komplett anders als der große Bruder. Der Grund dafür ist die minimale Performance der damaligen Mobilcomputer – wir haben im ersten Teil der Serie festgestellt, dass J2ME samt einiger MIDlets in weniger als 5 MB Speicher untergebracht werden kann.

Record Management System

Das Realisieren eines Dateisystems stellt einen nicht unwesentlichen Overhead dar. Alte Handcomputer verwendeten deshalb statt FAT eine Art Datenbanksystem, das die Daten der Anwendungen flach (also ohne Ordner) in einzelnen Datenbankeinträgen vorhielt.

Bei J2ME ging Sun mit dem Record Management System, kurz RMS, einen ähnlichen Weg. Der unter javax.microedition.rms findbare Namensraum besteht aus einer Klasse und vier Interfaces. Am wichtigsten ist die RecordStore-Klasse, die wie die von Symbian her bekannte FileServer-Klasse den Zugriff auf das zugrunde liegende Dateisystem regelt.

Dabei kommen fünf Regeln zum Einsatz: Die erste besagt, dass ein MIDlet nur auf seine eigenen Daten zugreifen darf. Es ist also nicht möglich, auf die von einer anderen MIDlet-Suite erstellten Record Stores zurückzugreifen, um so applikationsübergreifende Workflows zu realisieren.

Die Dateinamen der einzelnen Record Stores müssen auf MIDlet-Suite-Ebene einzigartig sein. Sie umfassen bis zu 32 Unicode-Zeichen und sind – auch hier hält man sich streng an die Java-Konventionen – Case-sensitive. Jeder Zugriff auf den Record Store inkrementiert die Versionsnummer desselben, die einzelnen Records werden durch einzigartige IDs identifiziert. Ärgerlicherweise ist der Record Store nicht Thread-safe. Wer ein multithreaded MIDlet realisiert, muss sich also selbst um die Synchronisierung kümmern.

Das Interface RecordComparator definiert eine Hilfsklasse, die die einzelnen Records der Applikation miteinander vergleicht. Das ermöglicht Sun das Anbieten von generischen Algorithmen – die Vergleichsintelligenz wird vom Entwickler durch eine eigene Methode beigesteuert. Der RecordFilter arbeitet nach demselben Schema – er ermöglicht es, beim Durchlaufen einer Datenbank nur die relevanten Einträge anzuzeigen. Das eigentliche Durchlaufen ist die Aufgabe der Record­Enumeration.

Zu guter Letzt erlaubt der RecordListener das Überwachen einer Datenbank. Seine Methoden werden immer dann aufgerufen, wenn sich etwas ändert – so kann ein Prozess auf einen anderen achten.

Datenbank herbei!

Doch damit erst genug der Theorie – unsere erste Datenbank will erstellt werden. Das Beispiel SuSJ2ME4 besteht aus mehre...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang