Zum Überblick der jetzige Workflow:
- Der Nutzer (Wissenschaftler) erstellt ein ZIP-Archiv (*.cm Dateien und *.fasta Dateien sowei eine optionale para.txt welche die Kommandozeilenparameter für einzelne oder alle cm/fasta Kombinationen enthält)
- Das Archiv wird per FTP in das Inputverzeichnis des Nutzers auf den RNA Server kopiert
- (Job-Forecaster): Der Server überprüft alle 10min ob ein neues Archiv hochgeladen wurde und erstellt für jede cm/fasta Kombination innerhalb des Archivs einen forecast (unter Beachtung der para.txt)
- (Job-Generator): Der Server prüft alle 10min ob neue BOINC-Jobs erzeugt werden müssen, wenn ja dann prüft er ob ein neues Archiv hochgeladen wurde und dafür schon der komplette forecast erzeugt wurde, wenn ja dann werden für alle cm/fasta Kombinationen innerhalb des Archivs BOINC-Jobs erzeugt. Dabei werden die Grenzwerte zur Bündelung, wie bereits diskutiert, berücksichtigt.
Wie man leicht sieht ist das Erstellen des Archivs und das Hochladen per FTP der bisher nicht automatisierte Teil dieses Workflows. Wenn wir also das UserJobSubmission Web-Interface so gestalten, dass wir dabei ein ZIP-Archiv im richtigen Format erzeugen, müssen wir den restlichen Workflow nicht ändern und können sogar den bisherigen Teil (per FTP hochgeladenes Archiv) beibehalten.
Das Web-Interface was wir in Berlin entwickelt hatten erlaubt nur das hochladen einer .cm und einer .fasta Datei. Das ist zwar akzeptabel aber würde nicht den Workflow wie oben beschrieben unterstützen. Wir müssen also in dem neuen Interface die (weitere) Möglichkeit schaffen mehrere *.cm und mehrere *.fasta Dateien hochzuladen die dann überprüft und in ein Archiv gepackt werden.
Was wir also bräuchten ist ein Web-Interface was eine oder mehrere *.cm und *.fasta Dateien akzeptiert sowie die Eingabe (Auswahl?) der Parameter für diese Batch ermöglicht. Die Überprüfung der cm und fasta Dateien kann entweder beim hochladen oder in einem Zwischenschritt erfolgen je nachdem wie das Interface implementiert wird. Eventuell könnte man dem User eine Staging Area (oder Sandbox) anbieten wo er cm und fasta Dateien hochladen kann (per WebInterface), die Dateien validiert werden und erst dann die Batch erzeugt wird (also die ZIP-Datei welche dann an den Job-forecaster übergeben wird).
Der neue Workflow könnte also wie folgt aussehen:
- Der Nutzer lädt seine *.cm und *.fasta Dateien per WebInterface auf den Server
- (RNA-Validierer): Der Server prüft nach dem hochladen einer *.cm oder *.fasta Datei in die Sandbox eines Nutzers die Datei. Ist alles ok wird die Datei akzeptiert, stimmt etwas nicht bekommt der Nutzer eine Nachricht (entweder Mail, PM oder Text im Browser je nach Implementierung)
- Der Nutzer hat alle Dateien hochgeladen und alle Parameter eingegeben, er gibt jetzt die Batch in Auftrag (dabei wird ein ZIP-Archiv erzeugt und vom Server in das input-Verzeichnis des Nutzers gelegt)
- (Job-Forecaster): Der Server überprüft alle 10min ob ein neues Archiv im input Verzeichnis der Nutzer erzeugt wurde und erstellt für jede cm/fasta Kombination innerhalb des Archivs einen forecast (unter Beachtung der para.txt)
- (Job-Generator): Der Server prüft alle 10min ob neue BOINC-Jobs erzeugt werden müssen, wenn ja dann prüft er ob ein neues Archiv im input Verzeichnis der Nutzer erzeugt wurde und dafür schon der komplette forecast erzeugt wurde, wenn ja dann werden für alle cm/fasta Kombinationen innerhalb des Archivs BOINC-Jobs erzeugt. Dabei werden die Grenzwerte zur Bündelung, wie bereits diskutiert, berücksichtigt.
@Michael: Du bist ja der Hauptnutzer von RNAWorld und kennst dich mit der Wissenschaftlichen Seite aus. Welche Anwendungsfälle siehst du am weitesten verbreitet bzw. würdest du gern haben? Das hochladen einer einzelnen cm/fasta Kombination oder von mehreren? Das automatische durchlaufen der Pipeline oder Anpassung der Dateien zwischen den einzelnen Anwendungen weil man schon bestimmte Dinge ausschließen kann?


