App-Aufbau

Aus Rechenkraft
Zur Navigation springen Zur Suche springen

Dieser Artikel soll die Voraussetzungen und den grundlegenden Aufbau von wissenschaftlichen Anwendungen für BOINC darlegen, um dementsprechend eigene Apps erstellen zu können oder die Apps externer Partner anzupassen.

Was noch fehlt: Links zur BOINC-API mit Tips zur Implementation

Voraussetzungen

Lizenz

Die Anwendungen (Applications), mit denen Daten ausgewertet oder berechnet werden sollen, werden an Freiwillige auf der ganzen Welt per Internet verteilt. Dazu ist es für den Projektbetreiber zwingend notwendig für diese Art der Softwarenutzung eine passende und gültige Lizenz der Anwendung zu besitzen. Geeignet sind Programme, die selbst geschrieben wurden und keine fremden Code-bestandteile und Bibliotheken nutzen. Weiterhin sind Open-Source Projekte meistens geeignet, sofern die verwendete Lizenz die Weiterverbreitung erlaubt und angegeben ist. Eine Offenlegung des verwendeten Quellcodes ist bei vielen Lizenzen erforderlich. Beim Einsatz von Kaufsoftware und lizenzierten Bestandteilen müssen die gewährten Lizenzen auf den Einsatz unter verteiltem Rechnen geprüft werden.

Selbstlauffähigkeit

Die Computerumgebungen, auf denen die Anwendung laufen wird, sind äußerst heterogen. Es besteht eine sehr große Vielfalt an verwendeter Hardware, Software und Betriebssystemen, so dass zu keinem Zeitpunkt davon ausgegangen werden kann, dass ein geeignetes oder getestetes Umfeld vorgefunden werden kann. Ebenfalls ist die Erreichbarkeit der zur Verfügung gestellten Rechner nicht vorhersagbar und kann stark schwanken. Manche Freiwillige stellen Ihren Rechner nur während der Arbeitszeit zur Verfügung, manche nur Abends und ein kleiner Teil lässt die Rechner ständig laufen. Der Projektbetreiber hat dafür zu sorgen, dass alle benötigten Bibliotheken oder benötigte Software an den Freiwilligen verteilt werden und das diese ohne Installation genutzt werden können. Als Beispiel kann die Java-Runtime-Environment für das jeweilige Betriebssystem mitgesendet werden, auf das dann vom in Java geschrieben App zurückgegriffen werden kann. Somit ist gewährleistet dass Java in der gewünschten Version vorhanden ist.

Manuelle Eingaben

Zur Selbstlauffähigkeit gehört auch, dass der Benutzer nicht gezwungen ist aktiv Eingaben vorzunehmen. Diese würde den Programmablauf behindern und den Ablauf solange stoppen, bis Eingaben gemacht wurden. Zusätzlich ist dieses eine Fehlerquelle. Sollte so etwas doch unbedingt nötig sein ist ein Projekt ähnlich Stardust@home oder Zooniverse zu erstellen.

Speicherstellen

Die Anwendung sollte in regelmäßigen Abständen während der Berechnung eine Sicherung des aktuellen Fortschritts anlegen, von der im Falle eines unerwarteten Programmabbruchs (Ausschalten des Rechners, Beenden der Berechnungen) die Berechnung fortgesetzt werden kann (Checkpoints). Dauert die Berechnung mehrere Tage oder sogar Wochen dann ist das senden von Zwischenergebnissen an den Server zu empfehlen (Trickle-Funktion). Sollte der Freiwillige die Berechnung abbrechen kann diese vom Projektbetreiber erneut eingestellt und an einen anderen Freiwilligen verteilt werden.

Fortschrittsausgabe

Die Anwendung sollte in regelmäßigen Abständen über den Fortschritt der Berechnung oder Analyse berichten. Idealerweise über die BOINC-API oder eine Textdatei mit Werten zwischen 0 und 1. Dies setzt voraus das die Dauer des Vorgangs entsprechend vorhergesagt werden kann. Dies ist auch zum erstellen der Arbeitspakete erforderlich.

Aufbau

Hier sollten vielleicht Tips zur Implementation der BOINC-API und des Wrappers stehen.