Java als Integrationsplattform/Java im Embedded-Markt

Profile für Geräteklassen verringern Ressourcenbedarf

24.09.1999
MÜNCHEN (CW) - Nach vier Jahren hat sich Java nicht nur bei Web- und Desktop-Anwendungen einen Namen gemacht, sondern faßt auch für Embedded-Systeme Fuß. Was nicht weiter verwundert, da Java als objektorientierte Sprache aufgrund von Charakteristika wie etwa Portabilität, Plattformunabhängigkeit oder Sicherheit die richtigen Voraussetzungen erfüllt, um Embedded-Systeme jeder Größe zum Laufen zu bringen - von der Waschmaschine über Router und Handys bis hin zu Konsumelektronikgeräten, wie unlängst auf der IFA in Berlin zu sehen war.

Eingebettete Systeme weisen normalerweise eine eng begrenzte Funktionalität auf, das heißt sie werden für genau definierte Aufgaben entwickelt. Sie sind extrem zuverlässig und für eine hohe Lebensdauer konzipiert, arbeiten mit Mikroprozessoren mit relativ niedrigen Taktfrequenzen und verfügen aus Platzgründen meistens über geringe Speicherkapazität. Hersteller von Embedded-Geräten integrieren oft ein Echtzeitbetriebssystem (RTOS) von Herstellern wie etwa QNX, um den Anforderungen an Performance und Platzvorgaben gerecht zu werden. Entwickelt werden sie heute überwiegend in C oder C++. Da diese Programmiersprachen aufgrund des expliziten Speicher-Managements leicht zu Fehlern verführen und nicht über eine so umfangreiche Standardbibliothek verfügen wie Java, sind bei steigenden Kundenwünschen lange Entwicklungszeiten und hohe Entwicklungskosten an der Tagesordnung. Bei der Entwicklung für verschiedene Prozessortypen oder Betriebssysteme verzögert die relativ schlechte Portabilität von C und C++ die Marktreife des Geräts.

Damit liegt es nahe, daß Hersteller von Embedded-Systemen neue Wege in der Entwicklung suchen, um dem Druck seitens des Marktes und der Kunden zu begegnen. Ein offeneres, auf Standards basierendes Programmiermodell, das Kosten senkt und Zeit spart, ist gefragt. Was schon bei Desktop- und Server-Applikationen für Java spricht, ist auch bei eingebetteten Systemen von Vorteil: Eigenschaften wie Portabilität, Einfachheit, Sicherheit und Plattformunabhängigkeit sowie die objektorientierte Natur von Java scheinen für die Programmierung von Embedded-Systemen wie geschaffen.

Sun konzipierte ursprünglich speziell für diesen Markt die Varianten "Embedded Java" und "Personal Java". Auf der diesjährigen Entwicklerkonferenz Java One in San Franzisko wurde ein modifiziertes Einsatzmodell für Java präsentiert. Dieses positioniert die Java-Platform neu für die jeweiligen Anwendungsgebiete. Sun unterteilt damit sein Angebot und auch den Markt in drei Segmente - mit der "Smartcard Edi- tion" sind es sogar vier.

Java gibt es zukünftig in den Varianten "Java 2 Enterprise Edition" (J2EE), "Java 2 Standard Edition" (J2SE ) und "Java 2 Micro Edition" (J2ME). Alle drei Ausführungen nutzen Java Virtual Machines (JVMs), die sich jedoch in Leistungsumfang, Performance und Speicherbedarf unterscheiden: Während J2SE für den Desktop-Bereich und J2EE für Server-Umgebungen konzipiert ist, eignet sich J2ME speziell für Embedded-Systeme.

J2ME definiert vier Kernbibliotheken, die jeder Hersteller in seine J2ME-Ausführung packen muß. Optional darf jeder Anbieter Erweiterungen in Form separater Klassen hinzufügen. Eingeführt wurde das Konzept maßgeschneiderter Profile für unterschiedliche Zielgeräte wie Fernseher, Web-Telefon, Bordcomputer für Autos oder Handhelds. Zur Programmierung eines Fernsehgeräts mit Java verwendet der Entwickler jetzt einfach das TV-Profil und nutzt die spezifischen Klassen, um etwa die Menüführung zu gestalten. Sun hat damit erkannt, daß Embedded-Systeme andere Voraussetzungen haben als Desktop- oder Internet-Geräte. Aufgrund verschiedener Plattformen und deren unterschiedlichen Eigenschaften muß sich Java an die Gegebenheiten im Embedded-Business anpassen - nicht umgekehrt. Die vormaligen eigenständigen Varianten Embedded Java und Personal Java werden zukünftig zu spezifischen Profilen von J2ME.

Der Slogan heißt nun nicht mehr "Write Once, Run Any- where", sondern eher "Schreibe einmal und laß dein Programm auf allen Geräten eines Typus laufen". Einmal mit Hilfe des Handy-Profils programmiert, läuft ein Java-Programm auch auf allen anderen Handys. Damit liegt der Fokus nun klar auf dem Zielgerät. Bis jetzt mußte auf einem kleinen Gerät das komplette Abstact Window Toollkit (AWT) Library laufen, was einer der Gründe für die zögernde Akzeptanz von Java im Embedded-Markt war. Geräte ließen sich damit zum Teil nicht mehr nutzen. Die Klassenbibliotheken und Virtual Machine waren zu groß, um kleine Applikationen problemlos zu entwickeln. Die neue JVM von Sun, deren Speicherbedarf mit ungefähr 20 KB um einiges kleiner ist als die VM für den Desktop, sowie die Neueinteilung der Programmiersprache markieren deutliche Fortschritte bei der Nutzung für Kleingeräte, besonders für Konsumelektronik. Für Bereiche wie etwa die industrielle Automatisierung war auch Embedded Java kein Problem.

Auf der Java One war die erste Implementierung von J2ME für die "Palm Plattform" zu sehen. Die Software-Entwicklungsumgebung "Code Warrior" von Metrowerks, mit der alle Applikationen für die Palm Plattform programmiert werden, unterstützt bereits J2ME. Metrowerks plant, die J2ME-Unterstützung in die nächste Version von "Code Warrior für Palm" zu integrieren.

Unter den Entwicklungs-Tools für Java hat der Embedded-Entwickler derzeit die Wahl zwischen "Jbuilder" von Inprise, "Visual Café" von Symantec und "Code Warrior" von Metrowerks. Die Unterschiede sind schnell erklärt: Inprise und Symantec konzentrieren sich ganz auf J2SE und J2EE, während sich Metrowerks vorrangig auf J2SE und J2ME ausrichtet. Dies erklärt auch das Interesse von Motorola an der Tools-Company, die kürzlich ein Übernahmeangebot des Chip-Herstellers erhielt.

Speicherbedarf von Java überfordert Kleinstgeräte

Bei aller Begeisterung in der Entwicklergemeinde für die Einfachheit, gute Architektur und die Netzwerkfunktionen von Java ist die Sprache im Embedded-Bereich noch nicht ganz den Kinderschuhen entwachsen. Performance und Effizienz sind noch nicht ausgereift. Während Java für den Enterprise- und Desktop-Bereich die nötige Ablaufgeschwindigkeit erbringt, wird es im Embedded-Bereich noch ein wenig dauern. Das Größenproblem hat Sun ebenfalls erkannt und versucht, über den Ansatz der J2ME-Profile möglichst nur die wirklich benötigten Klassen auf die jeweiligen Geräte zu bringen.

Andererseits gibt es aber durchaus Kleingeräte, die die volle Funktionalität von Java nutzen können. Auf Embedded-Systemen mit einer Speicherausstattung von zirka 500 KB bis zu einem Megabyte sowie einer Motorola-CPU vom Typ 68xxx ist Java - wenn auch in begrenztem Umfang - lauffähig. Der Palm beispielsweise arbeitet mit dem Prozessor "68328 Dragon Ball", der nicht gerade eine der leistungsstärksten auf dem Markt ist. Applikationen für Palm haben eine Größe von höchsten 64 KB, die Virtual Machine kommt damit aus.

In besonderem Maße werden diejenigen Geräte von Java profitieren, die eine Netzwerkverbindung brauchen. Wenn sie über eine Virtual Machine und ein Profil verfügt, kann jede benötigte Software heruntergeladen werden. Was wir in Zukunft sehen werden, sind sogenannte "Low Level Applikations-Server", die lediglich als Schnittstelle zu Thin Clients, die auf Embedded-Geräten laufen, dienen. Egal ob Handy, PDA, Industriesteuerung oder ATM Switch - jedes Gerät, das einen gewissen Grad an Sicherheit benötigt und Software dynamisch laden muß, wird von Java profitieren. Denkbar sind zum Beispiel das Upgrade eines ATM Switches mit neuen Features bei laufendem Betrieb oder der Verbindungsaufbau von Handheld Devices zum Server für das wöchentliche Update. Mobilfunkanbieter werden Java nutzen, um neue Dienste anzubieten. Handys werden in nicht allzu ferner Zeit Datenbanken in der Firma abfragen können. Ist der Anwender auf der Suche nach einer bestimmten Telefonnummer, die nicht in seinem Handy-Speicher vorliegt, gibt es mehrere Varianten. Entweder schlägt er mittels Java Applet auf der unternehmenseigenen Web-Site nach, um die Telefonnummer zu finden, oder er aktualisiert sein Adreßbuch im Handy automatisch über das unternehmensweite Adreßbuch. Vorstellbar wäre zudem die Verbindung über das Handy zu anderen Mitarbeitern, ähnlich einem LAN im Unternehmen. Gerade für den Embedded-Bereich bietet ein dynamisches Software-Update große Vorteile. Ein einmal fertiggestelltes Gerät soll nie wieder manuell umkonfiguriert werden müssen.

Angeklickt

Ging es am Anfang noch hauptsächlich um die Nutzung von Java am Desktop, bevorzugt in Form von Applets, so propagiert Sun seine Programmiersprache mittlerweile für den Einsatz am Server und in Kleingeräten. Während eine neue Generation von Applikations-Servern die Sun-Technik bereits nutzt, ging es im Embedded-Markt nur langsam voran. Schuld daran waren unter anderem die zu hohen Hardware-Anforderungen von Personal Java und Embedded Java. Einen entscheidenden Fortschritt soll nun deren Nachfolger Java 2 Micro Edition mittels maßgeschneiderter Profile für bestimmte Geräteklassen bringen.