# Online Operating System

Das Online Operating System (kurz: OOS) ist ein freier und mehrsprachiger Web-Desktop, der JavaScript und Ajax benutzt. Alle vorhandenen Komponenten (Fenster, Controls, Event-Mechanismen usw.) wurden auf Basis des reBOX Frameworks (von der österreichischen Firma iCUBE Network Solutions) erstellt.

## Über das Projekt

Das OOS stellt eine Online-Plattform zur Verfügung, die das Look-&-Feel von klassischen Desktops (wie Windows, macOS, KDE, GNOME) und Desktopanwendungen (Microsoft Word, Thunderbird u. a.) nachahmt. Neben dem Grundsystem (Desktop, Benutzer- und Rechteverwaltung, Eventhandling usw.) besteht es zusätzlich aus einer Reihe von Applikationen die mit Hilfe des reBOX Frameworks entwickelt wurden.
Das Projekt wird (teilweise) von der Internet Stiftung über Förderungen finanziert. Am 1. August 2008 haben sich bereits mehr als 20.000 Benutzer der OOS Community angeschlossen und etwa 1.500 Personen verwenden das OOS regelmäßig. Mittlerweile wurde das Projekt eingestellt und die Website ist nicht mehr aufrufbar.

## Geschichte

Die Entwicklung von OOS begann im Jahr 2006 von iCUBE Network Solutions, gefolgt von einem ersten Beta-Release 2006. Durch seinen frühen Start kann das OOS zusammen mit youOS und eyeos als erste Anwendung (Webtop) seiner Art angesehen werden. Die erste Vollversion des OOS (inkl. Mehrsprachigkeit, Dateisystem und ein Basisset an Applikationen) wurde im März 2007 auf der ITnT Austria ausgestellt. Der Beta-Status wurde ein halbes Jahr später (Oktober 2007) aufgehoben. Die erste stabile Version (1.0.0) wurde im Juli 2007 veröffentlicht. Das OOS und die darin enthaltenen Applikationen haben mehrere Auszeichnungen erhalten (siehe). Zusätzlich zu den Auszeichnungen wurde das OOS bekannt durch seinen Fokus auf die Community und Kollaboration (siehe).
Obwohl das OOS ursprünglich nur für den deutschen Markt entwickelt worden ist, werden bereits drei Sprachen unterstützt (Deutsch, Englisch und Spanisch). Das OOS hat den deutschsprachigen Raum bereits nach seiner ersten stabilen Version verlassen (für Beispiele siehe auch or).
Die zuletzt bekannte Version von OOS ist 1.3.01 (vom 1. August 2008). Mittlerweile wurde das Projekt eingestellt und die Website ist nicht mehr aufrufbar.

## Technologischer Hintergrund

Das OOS wurde vollständig in JavaScript entwickelt und verwendet lediglich DHTML Techniken um (theoretisch) in jedem verfügbaren Browser zu funktionieren (aktuell wird Firefox und Internet Explorer 7 unterstützt). Das System implementiert eine State of the Art Webapplikation. Die Kommunikation zwischen Client (Browser) und Server (Tomcat) findet asynchron mithilfe von Ajax statt. Das Ziel ist es einem Benutzer die Möglichkeiten direkt im Browser anzubieten, die man (bis heute) nur von Desktopanwendungen kennt, was der grundlegende Gedanke von allen Web-Desktops ist.
Typisch für diese Art von Webanwendungen sind der globale Einsatz von JavaScript-on-Demand-Techniken, die es erlauben, das Projekt in kleine Teile zu unterteilen, um diese bei Bedarf nachladen zu können.
Basierend auf den besprochenen Technologien und Möglichkeiten wird reBOX für die Erstellung von Applikationen verwendet. reBOX ist eine flexible und einfach erweiterbare API (inkl. eines Sets an GUI Komponenten, Kommunikationsmechanismen und Serverapplikationen die verschiedene Webservices anbieten).
Das OOS beruht auf einem Basisframework, welches es einem Entwickler ermöglicht jede JavaScript Applikation (basierend auf reBOX) laufen zu lassen. Die grafische Oberfläche ähnelt sehr stark dem eines Windows-Desktops. Es existiert ein Startmenü, eine Taskkbar und ein Desktophintergrund. Alle Applikationen laufen in dieser Umgebung. Serverseitig kommen Java Webservices zum Einsatz, welche als Schnittstelle zwischen dem Client und Server dienen. Es kommt eine relationale Datenbank (MySQL) zum Einsatz.
OOS stellt eine integrierte Entwicklungsumgebung (IDE) zur Verfügung, die es jedem Entwickler ermöglicht eigene reBOX Applikationen für das OOS zu entwickeln und zu publizieren (siehe weiter unten im Kapitel Entwicklung von Applikationen).

## Lizenz

Alle Applikationen, die in OOS vorhanden sind, unterstehen der EUPL Lizenz.
Die reBOX IDE steht für die Entwicklung von Applikationen für das OOS zur freien Verfügung.

## Features

Neben den Möglichkeiten des Basissystems (Mehrsprachigkeit, Theme- und Styleunterstützung, Benutzer- und Dateiverwaltung, Applikationen etc.) bietet das OOS weitere frei verfügbare Dienste an.
* Integrierte und flexible Datenhaltung (bis zu 1 GB pro Benutzer)
** Zugriff auf die Dateien auch über HTTP und FTP
** Benutzerbasierte Dateiverwaltung und Sharing
** WebDAV Zugriff
** Dokumentenverwaltung (inkl. Versionskontrolle und Sperren von Dateien)
* Bildbearbeitung
* Kostenlose OOS Subdomäne: <benutzername>.oos.cc für Homepages und einer Bildergalerie
* Eine integrierte Entwicklungsumgebung (IDE) mit deren Hilfe Applikationen für das OOS entwickelt werden können
* Https für sichere Kommunikation zwischen Client und Server
In den kommenden Releases liegt der Fokus auf Sicherheit. Es wird versucht anonyme Kommunikation zu gewährleisten (surfen im Internet mit Hilfe des in OOS integrierten Browsers, abrufen der Mails etc.) sowie verschlüsselte Ablage der privaten Daten.

## Entwicklung von Applikationen

Vor dem Beginn der Entwicklung des OOS war es für das Projekt wichtig, eine flexible und einfach erweiterbare API (reBOX) zur Verfügung zu stellen, mit deren Hilfe Applikationen entwickelt werden können. Durch die Entkopplung von API und notwendigem JavaScript Know-how ist es mit reBOX möglich, Anwendungen zu schreiben, die sehr nahe an die Syntax und Funktionalität von Java heranreichen: Elemente und Komponenten können wie bei jeder anderen High-Level objektorientierten Programmiersprache eingesetzt und verwendet werden, ohne sich mit divs oder Browserspezifika auskennen zu müssen. Das Framework bietet zudem die Funktionalität für asynchrone Kommunikation, Mehrsprachigkeit und Style- und Themeverwaltung.
Um nun Applikationen (auf Basis von reBOX) für das OOS entwickeln zu können, existiert die „Developer Suite“ im OOS, mit deren Hilfe sich auf einfache Art und Weise Anwendungen schreiben lassen. Jeder Benutzer kann damit seine eigenen Programme erstellen und verwalten. Aktuell werden zusätzliche Features wie Autovervollständigung und Outlining unterstützt. In einer der folgenden Releases ist geplant, einen visuellen GUI Editor anzubieten mit dessen Hilfe sich die grafische Oberfläche einer Anwendung direkt im Browser „zusammenklicken“ lässt, so wie man es von Visual Studio und Eclipse kennt.