© Excellent backgrounds/Shutterstock.com
Java Magazin
Komponenten- und Dependency-Management für JavaScript

Struktur ins Chaos

Auf JavaScript/HTML und HTML5 basierende Webapplikationen bieten maximale Erreichbarkeit, vor allem durch ihre Cross-Plattform- bzw. Multi-Device-Fähigkeiten. Eine Herausforderung ist allerdings die Erstellung von technologisch nachhaltigen und wartbaren Lösungen in diesem Umfeld: JavaScript fehlen Konzepte zur klaren Definition von Komponenten sowie ein dynamisches Lifecycle- und Dependency-Management. Mit OSGi steht ein bewährter konzeptioneller Ansatz für eine dynamische System-modularisierung zur Verfügung.

Christian Elfers, Marko Reiprecht, Oliver Meyer


Bekannte Implementierungen für die Java-Plattform, wie etwa Eclipse Equinox oder Apache Felix, liegen vor und zeigen, dass OSGi für Desktop- und Serveranwendungen gleichermaßen einsetzbar ist. Da für JavaScript bislang keine Implementierungen existieren, entstand bei der con terra GmbH im Zuge der Entwicklung von „map.apps“ (Kasten „Hintergrundinfo: ‚maps.apps‘“) eine Umsetzung ausgewählter und zentraler OSGi-Spezifikationen in JavaScript. Auf dieser Basis können auch komplexere Webapplikationen sehr gut erstellt werden.

Webapplikationen werden heutzutage nicht mehr nur für den Webbrowser erstellt, sondern übernehmen zunehmend Aufgaben von Desktop- oder mobilen Applikationen. Frühere technologische Limitierungen werden nach und nach aufgehoben. Hier sind zum einen die Öffnung des Zugriffs auf Systemfunktionen über JavaScript-APIs, z. B. in Windows 8, oder der Zugriff auf native Systemfunktionen von Smartphones/Tablets über Apache Cordova zu nennen. Zum anderen ergänzt HTML5 neue Möglichkeiten wie Offlineunterstützung und Web Storage. Mit CSS3 existieren neue Gestaltungsmöglichkeiten für User-Interface-Elemente. Damit sind Technologien wie JavaScript/HTML5 nicht länger nur Technologien für das Web, sondern bieten das Potenzial, aus einer Plattform Anwendungen für Web, Desktop oder Mobile zu erstellen. Der Technologie fehlen jedoch wichtige Konzepte zur Modularisierung und Dynamisierung. Kernaspekte sind:

Definition von Komponenten zur Kapselung von Funktionalität und Reduktion der KomplexitätDeklaration der Eigenschaften und Abhängigkeiten von Funktionen Lifecycle-Management von Komponenten (Starten, Stoppen, Löschen, Hinzufügen, Konfigurieren)Verfügbarmachung von Funktionen über definierte Schnittstellen zur Abstraktion und Entkopplung inklusive deklarativem und dynamischem LinkingDynamisierung: transparentes Laden und Konfigurieren der erforderlichen Komponenten basierend auf Kontextinformationen (Laufzeitumgebung, Art der Anwendung, Inhalte etc.)

Mit diesen Konzepten kann eine wartungsarme, offene und erweiterbare Plattform aufgebaut werden, aus deren Modulen sich verschiedenste Anwendungen für Web, Desktop und Mobile zusammensetzen lassen. Dieser Bedarf ist nicht neu, und so gibt es mit OSGi [1] bereits eine bewährte konzeptionelle Lösung für die Java-Plattform.

Im Kontext der Produkterstellung „map.apps“ wurden ausgewählte OSGi-Spezifikationen nach JavaScript portiert und damit Kernaspekte der OSGi-Plattform in Browserumgebungen zur Verfügung gestellt.

...

Java Magazin
Komponenten- und Dependency-Management für JavaScript

Struktur ins Chaos

Auf JavaScript/HTML und HTML5 basierende Webapplikationen bieten maximale Erreichbarkeit, vor allem durch ihre Cross-Plattform- bzw. Multi-Device-Fähigkeiten. Eine Herausforderung ist allerdings die Erstellung von technologisch nachhaltigen und wartbaren Lösungen in diesem Umfeld: JavaScript fehlen Konzepte zur klaren Definition von Komponenten sowie ein dynamisches Lifecycle- und Dependency-Management. Mit OSGi steht ein bewährter konzeptioneller Ansatz für eine dynamische System-modularisierung zur Verfügung.

Christian Elfers, Marko Reiprecht, Oliver Meyer


Bekannte Implementierungen für die Java-Plattform, wie etwa Eclipse Equinox oder Apache Felix, liegen vor und zeigen, dass OSGi für Desktop- und Serveranwendungen gleichermaßen einsetzbar ist. Da für JavaScript bislang keine Implementierungen existieren, entstand bei der con terra GmbH im Zuge der Entwicklung von „map.apps“ (Kasten „Hintergrundinfo: ‚maps.apps‘“) eine Umsetzung ausgewählter und zentraler OSGi-Spezifikationen in JavaScript. Auf dieser Basis können auch komplexere Webapplikationen sehr gut erstellt werden.

Webapplikationen werden heutzutage nicht mehr nur für den Webbrowser erstellt, sondern übernehmen zunehmend Aufgaben von Desktop- oder mobilen Applikationen. Frühere technologische Limitierungen werden nach und nach aufgehoben. Hier sind zum einen die Öffnung des Zugriffs auf Systemfunktionen über JavaScript-APIs, z. B. in Windows 8, oder der Zugriff auf native Systemfunktionen von Smartphones/Tablets über Apache Cordova zu nennen. Zum anderen ergänzt HTML5 neue Möglichkeiten wie Offlineunterstützung und Web Storage. Mit CSS3 existieren neue Gestaltungsmöglichkeiten für User-Interface-Elemente. Damit sind Technologien wie JavaScript/HTML5 nicht länger nur Technologien für das Web, sondern bieten das Potenzial, aus einer Plattform Anwendungen für Web, Desktop oder Mobile zu erstellen. Der Technologie fehlen jedoch wichtige Konzepte zur Modularisierung und Dynamisierung. Kernaspekte sind:

Definition von Komponenten zur Kapselung von Funktionalität und Reduktion der KomplexitätDeklaration der Eigenschaften und Abhängigkeiten von Funktionen Lifecycle-Management von Komponenten (Starten, Stoppen, Löschen, Hinzufügen, Konfigurieren)Verfügbarmachung von Funktionen über definierte Schnittstellen zur Abstraktion und Entkopplung inklusive deklarativem und dynamischem LinkingDynamisierung: transparentes Laden und Konfigurieren der erforderlichen Komponenten basierend auf Kontextinformationen (Laufzeitumgebung, Art der Anwendung, Inhalte etc.)

Mit diesen Konzepten kann eine wartungsarme, offene und erweiterbare Plattform aufgebaut werden, aus deren Modulen sich verschiedenste Anwendungen für Web, Desktop und Mobile zusammensetzen lassen. Dieser Bedarf ist nicht neu, und so gibt es mit OSGi [1] bereits eine bewährte konzeptionelle Lösung für die Java-Plattform.

Im Kontext der Produkterstellung „map.apps“ wurden ausgewählte OSGi-Spezifikationen nach JavaScript portiert und damit Kernaspekte der OSGi-Plattform in Browserumgebungen zur Verfügung gestellt.

...

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