Was ist Ubiquity?
Ubiquity soll die bestehenden Merkmale von Java ergänzen und zu einer plattformunabhängigen Abstraktion ausbauen, die den Standards der jeweiligen Plattform entspricht (native experience), damit Applikationen wirklich plattformübergreifend eingesetzt werden können, ohne die Benutzer der verschiedenen Plattformen vor den Kopf zu stossen oder zu verwirren.
Ubiquity wird zunächst für Mac OS X, Windows XP, Windows Vista und Linux realisiert. Es soll sowohl für Standalone- als auch für Webstart-Applikationen funktionieren. Die Architektur von Ubiquity ist aber so konzipert, dass weitere, noch unbekannte Plattformen hinzugefügt werden können, ohne Änderungen am bestehenden Code vorzunehmen. Die Funktionalität von Ubiquity umfasst u.a.:
- Speicherkonventionen;
- Menüs und Aktionen;
- erweiterte Drag-and-Drop-Funktionalität.
Auf Grund des Funktionsumfangs kann Ubiquity nicht "Pure Java" sein, sondern muss auch JNI-Funktionalität beinhalten, die allerdings für den Benutzer und den Programmierer unsichtbar ist. Dafür kommt das Projekt JNA in Frage.
Aus Programmiersicht bedeutet Ubiquity, dass man nicht mehr Code schreibt, der je nach Plattform unterschiedliche Aktionen ausführt und mit entsprechend unschönen Konditionalanweisungen bestreut ist.
Ubiquity wurde ursprünglich als Ergänzung zum Swing Application Framework (JSR-296) konzipiert, setzt dieses aber nicht voraus und kann in allen Java-Programmen benutzt werden.
Das Projekt hat Gemeinsamkeiten mit verschiedenen Projekten der Swing Labs sowie mit MRJ Adapter und wird diese wo sinnvoll auch nutzen.