Vertrieb & Personal - webMUSIC aus technischer Sicht

webMUSIC aus technischer Sicht


Dieser Einführungsartikel erklärt Euch den softwaretechnischen Background von webMUSIC. Ihr erfahrt hier mehr über das Zusammenspiel von Client und Server.


webMUSIC ist ein System, um gemeinsam über das web Musik zu machen. Dies funktioniert auf Ebene von Projekten, welche gegründet werden, und für die sich Musiker bewerben können. Es gibt viele Community Funktionen (Projektverwaltung, Chat, Forum und Messaging), welche über Xoops 2.24 realisiert werden. Xoops ist ein Content Management System auf Basis eines php Webservers. Es enthält viele Grundfunktionalitäten, welche webmusic nutzt und durch ein eigenes Modul ergänzt hat. Ihr befindet Euch im Moment auf solch einer xoops Plattform. Schaut euch um und entdeckt, was das System zu bieten hat! Unter folgenden Links könnt ihr Euch über Xoops informieren: Xoops Homepage (englisch)
deutschsprachige Xoops Community
Xoops API für Entwickler
deutscher xoops Leitartikel Xoops bietet eine saubere Strukturierung und legt den gesamten Quellcode offen. Somit können Fehler leichter entdeckt und korrigiert werden. Es besitzt fertige Objkete für typische Aufgaben eines CMS (Templates, Formulargenerierung, Datenbankzugriff, E-Mail Versand...) Eine zweite Aufgabe für webmusic ist die Synchronisation von Audio- und Projektdateien. Die Dateien werden dazu zentral auf einem Server abgelegt und von allen Projektteilnehmern gemeinsam genutzt. Änderungen werden mit Hilfe eines Clients hoch- und runtergeladen. Ein typisches Problem dabei - die Synchronisationskonflikte bei gemeinsam genutzten Verzeichnissen - können dadurch zuverlässig gelöst werden. Dazu verfügt der Client über einen Mechanismus, um Dateiänderungen zu erkennen und automatisch eine sinnvolle Synchronisationsaktion vorzuschlagen. Mit Hilfe eines Vergleichs von MD5 Schlüsseln können Dateiänderungen erkannt und behandelt werden. Der anfallende Traffic ist dabei natürlich ein Problem. Traffic kostet Geld, und das ist auch nicht wegzureden. Um aber trotzdem möglichst vielen Usern die Möglichkeit zu geben, online Musik zu machen, haben wir folgende Variante umgesetzt: Es gibt die Möglichkeit der "Premiummitgliedschaft" bei homerecording.de. Gegen eine Gebühr von 12,- Euro pro Halbjahr (also umgerechnet 2,- Euro pro Monat) haben diese Mitglieder die Möglichkeit, neben anderen Zusatzfeatures von homerecording.de ihre eigenen Projekte gründen zu dürfen.
Nicht-zahlende Mitglieder dürfen aber daran teilnehmen. Wenn Traffic Reserven vorhanden sind, wird es freie Projekte für Alle geben. Zudem ist die webmusic Software frei, darf also auf anderen Servern installiert werden. Vorraussetzung dabei ist natürlich, dass die Verwendung auf anderen Servern nicht Teil eines kostenpflichtigen Dienstes ist. Der Client ist eine eigenständige Java Anwendung (kein Applet) und kommuniziert mit Hilfe der XML-RPC Schnittstelle mit dem oben beschriebenen Xoops Modul. Die Kommunikation erfolgt per XML-Kodierung von Funktionsaufrufen und Versand per HTTP, regulär über Port 80. Der Up- und Download erfolgt dagegen mit Hilfe des Jakarta HTTP Moduls für Java über den HTTP POST Standard. Links zu den benutzten Technologien: Java
XML-RPC
Jakarta Commons Http Client
die aktuelle webMUSIC Software herunterladen Auf dem Server ist ebenfalls eine XML-RPC Schnittstelle implementiert. Der php Server speichert die Informationen über die aktuellen Dateien in einer mySQL Datenbank. Hier sind auch Benutzer- und Projektdaten hinterlegt, welche vom Client über die besagte XML-RPC Schnittstelle abgerufen werden. Es ist in Zukunft geplant, dass der Client die Daten komprimiert überträgt, um Traffic zu sparen. Es gibt dazu diverse Bibliotheken, welche Audiodateien verlustfrei komprimieren (z.B. monkeyss audio, flac). Doch es eignen sich nur "stream"-bare Algorithmen dafür, z.B. flac. Der flac encode ist leider nur in C++ verfügbar, weshalb es notwendig sein wird, einen JNI Wrapper darum zu schreiben. FLAC homepage
jflac (Java Adaption von Flac, ohne Encoder) Wenn Ihr Lust habt, in dem Projekt mitzuwirken, dann schaut euch die Seite an, schaut, was ihr daran gerne verbessern oder einbauen würdet. Ihr könnt auch per Mail Vorschläge, Ideen und Fragen loswerden. Es gibt hier noch genügend spannende Aufgaben, die zu lösen sind. Schreibt eine
Mail an [EMAIL]webmusic@homerecording.de[/email]. Ihr könnt auf Anfrage den Quellcode über CVS oder per Mail erhalten.