Share on facebook
Share on twitter
Share on linkedin
Share on xing

Bachelorthesen Teil 5: Johannes über Peer-to-Peer-Audiokommunikation

Letzte Woche hat Euch Jonas an dieser Stelle einen kleinen Einblick in das umfangreiche Thema Event Sourcing gegeben. Im letzten Teil unserer Reihe zu den Bachelorthesen spricht Johannes heute darüber, wie er Peer-to-Peer Audiokommunikation in einer Accesibility-App umgesetzt hat.

Was war das Thema meiner Bachelorthesis und wie kam es dazu?

Telefonieren kennen wir alle. Telefonieren ohne Empfang leider auch. Genauso die Problematik, sich bei hoher Lautstärke zu unterhalten und den anderen nicht zu verstehen. Ein Lösungsansatz für diese Punkte, ist das Telefonieren über ein lokales Netz. Diesem Thema habe ich mich in meiner Bachelorthesis gewidmet: Peer-to-Peer-Audiokommunikation in einer Accessibility-App. Mit der Thematik hatte ich mich bisher eigentlich nicht wirklich befasst und fand die Idee sehr spannend, als ich mit Thomas über mögliche Bachelorthesis-Themen nachdachte.

Welchem konkreten Problem habe ich mich gewidmet?

Wie oben beschrieben habe ich mich einem sehr konkreten Use Case gewidmet: Zwei (oder mehrere) Menschen möchten sich unterhalten, verstehen sich aber aufgrund hoher Lautstärke nicht. Also könnten sie auf einen anderen Kommunikationskanal – bspw. ihr Smartphone – zurückgreifen, haben aber keinen Empfang. Diese temporäre Einschränkung kann an jedem Ort vorkommen, der sehr laut ist und an dem man schlechten oder keinen Empfang hat– einem Konzert, einem Festival oder einem Kellerclub. Mit einem lokalen Netzwerk kann ich dem Empfangsproblem entgegenwirken und durch ein Headset die Lautstärke-Problematik lösen. So weit, so gut. Doch welches lokale Netz eignet sich nun für dieses Vorhaben und wie setzt man das Ganze dann am besten um?

Wie bin ich vorgegangen?

Ich habe mich also zuerst mit der Thematik des lokalen Netzes an sich beschäftigt. Ich bin ich in die Theorie abgetaucht, habe Beiträge gelesen, Wikis durchforstet und Vorträge angeschaut – dabei habe ich mich im Detail in die verschiedenen WLAN-Standards (vor allem den IEEE 802.11) eingelesen und ziemlich viel Zeit damit verbracht, zu ermitteln, welche Standards sich für mein Vorhaben eignen.

Grundsätzlich wären vier Möglichkeiten, Verbindungen mit WLAN herzustellen, in Frage gekommen:

  1. Infrastruktur-Modus: In diesem Modus gibt es einen Access-Point und X Geräte, die sich mit diesem verbinden können. (klassische Router-Situation in jedem Heimnetzwerk oder ein Hotspot bei einem Smartphone)
    Beispielhafte Darstellung eines Netzes im Infrastruktur-Modus
  2. Ad-Hoc-Modus: In diesem Modus kann sich jeder mit jedem verbinden. Alle Geräte sind also gleich und keines nimmt eine Sonderrolle ein.
    Beispielhafte Darstellung eines Netzes im Ad-Hoc-Modus
  3. Mesh-Modus: Dieser Modus funktioniert, etwas vereinfacht, wie der Ad-Hoc-Modus, nur wird er um den Aspekt der Weiterleitung erweitert. Ein Teilnehmer kann die Reichweite des Netzwerkes erweitern, indem er Nachrichten an andere Teilnehmer weiterleitet, mit denen er verbunden ist – der Sender aber nicht.
  4. Wi-Fi Direct-Modus: Dieser Modus gehört nicht wirklich zu den drei oberen Modi, er baut aber auf dem Infrastruktur-Modus auf und gehört auch nicht zum 802.11-Standard, zu dem die anderen drei gehören.
    Die wichtigste Änderung, die er mit sich bringt, ist dabei, dass ein Gerät – und zwar bevor es sich mit einem anderen verbindet – anhand eines sogenannten Service-Angebots des anderen Gerätes feststellen kann, welche Funktionen dieses Gerät im Moment bereitstellt. Beispielsweise kann ein Drucker zum einen definieren, dass er ein Drucker ist und mit welchem Protokoll er angesprochen werden kann.

Die Entscheidung für eine Möglichkeit war dann nicht so schwer: Der Ad-Hoc-Modus und der Mesh-Modus sind – zumindest ohne die verlinkten Workarounds – für Android nicht verfügbar. Und der Infrastruktur-Modus wäre nur über die Hot-Spot-Funktion von Android realisierbar, was wiederum zur Folge hätte, dass ein Gerät dann mit keinem anderen Netz verbunden sein könnte und zudem seine Internetverbindung teilen würde. Also habe ich mich – ein bisschen notgedrungen – für die vierte Möglichkeit, also den Wi-Fi Direct-Modus entschieden.

Als nächstes galt es dann die folgenden Probleme zu lösen: Wie erstelle ich aus den Aufnahmen der Mikrofone einen Audio-Stream und wie spiele ich diesen dann wieder ab? Wie versende ich diese über das Netzwerk? Und, was auch nicht ganz einfach war, wie stelle ich fest welches Paket zu welchem Stream gehört? (Ein Stream bedeutet dabei, dass ich Teile der Nachricht in kleine Netzwerkpakete verpacke und diese versende.)

Zu guter Letzt habe ich getestet, getestet und getestet. Auch wenn mit WLAN im 2,4 GHz-Bereich grundsätzlich ein paar hundert Meter möglich wären, beträgt die realistische Reichweite, durch Wände, Mauern und andere Störungen nur wenige Meter. In meinen Tests wollte ich herausfinden, wie viele Geräte ich miteinander verbinden kann und wie weit ich sie voneinander entfernt platzieren kann. Also wie wirkt sich die Distanz und die Anzahl der Teilnehmer auf die Gesprächsqualität aus? Die Tests habe ich auf freier Fläche und mit dem gleichen Gerät durchgeführt, um möglichst unverfälschte Ergebnisse zu bekommen.

Zu welchem Ergebnis bin ich gekommen?

Entwickelt habe ich eine prototypische Android-App, die immer dann eingesetzt werden kann, wenn man sich sieht, aber nicht hören kann. Und somit für diese temporäre Einschränkung eine Lösung bietet.

Die Ergebnisse meiner Tests haben ergeben, dass ich zwei bis drei Geräte bis zu 40 Meter (und vermutlich auch mehr) entfernt voneinander platzieren kann und trotzdem eine gute Gesprächsqualität gewährleisten kann (auf freier Fläche wohlgemerkt).

Testergebnis zu 15 Meter und 2 DevicesTestergebnis zu 15 Meter und 3 Devices

 

Was mich etwas überrascht hat ist, dass die Distanz fast keine Auswirkung auf die Verzögerung hat, die durch das Streamen entsteht. Die Distanz äußert sich eigentlich nur darin, dass mehr Pakete verlorenen gehen – aber dieser Qualitätsverlust ist für das normale Gehör fast nicht feststellbar. Was man aber beispielsweise in den Diagrammen oben erkennen kann, ist, dass deutlich mehr Unregelmäßigkeiten beim Versenden der Pakete auftreten, wenn mehr Geräte beteiligt sind. Diese Unregelmäßigkeiten könnten bei hoher Belastung für kurze Aussetzer im Ton verantwortlich werden.

Für den Use Case Festival bietet sich mein Prototyp bis zu 20, 30 Meter weit reichen kann also definitiv an.

Und die Rolle der fluidmobile in meiner Bachelor-Phase?

Wie Jonas, Jonas und Max bin auch ich schon viele Jahre Teil der fluidfamilie und als sich die Möglichkeit bot, hier auch meine Thesis zu schreiben, war ich sofort begeistert. Der Input, den mir gerade Thomas in der anfänglichen Recherchephase und beim Treffen von Schlüsselentscheidungen gegeben hat, war dann auch ungemein wertvoll für mich. Während der Thesis habe ich allerdings gemerkt, dass ich im Büro, neben den anderen, die an Projekten arbeiten nicht wirklich in Ruhe schreiben kann – im Gegensatz zu bspw. Jonas und Max, die viel lieber im Büro geschrieben haben als zu Hause. Ich hab das Thema bei Thomas und Christoph angesprochen und zu meiner Erleichterung haben wir eine Lösung gefunden, die voll und ganz auf meine Thesis-Bedürfnisse zugeschnitten war.

Wie geht es für mich weiter?

Nachdem ich die Thesis nun abgegeben habe (und ein, zwei Tage durchgeatmet habe), freue ich mich darauf, die fluidmobile ab 01. September als Mobile Developer unterstützen zu können. Und mein neu erworbenes Wissen über lokale Netzwerke kann ich hier sicherlich auch bald einbringen. Vielleicht auf einer fluidparty, auf einem Festivalgelände oder bei unserem Sommerfest dieses Jahr. 😉

Top Posts

WAS MACHT fluidmobile?

fluidmobile ist eine App-Agentur aus Karlsruhe, die sich auf die Entwicklung nativer Android und iOS Apps spezialisiert hat. Bei der Entwicklung liegt der Fokus auf einer nutzerfreundlichen Bedienoberfläche, wodurch Apps entstehen, die Nutzer lieben.

fluidmobile steht für apps, that users love.

Johannes Doll

Johannes Doll

Johannes ist bei uns als Mobile Developer tätig. Ganz nach der Devise “Mobile muss schnell, einfach und unkompliziert sein” möchte er mit seiner Leidenschaft die App-Welt ein Stück besser machen. Wie er das anstellt, verrät er hier auf unserem Blog.
Digitale Transformation
Mitarbeiter für die digitale Transformation begeistern

Ob zu Hause, bei der Arbeit oder unterwegs: In allen Bereich des Lebens spürt man die Schnelllebigkeit der Gesellschaft und die rasante Weiterentwicklung der Technologie. Dabei werden Personen in zwei Gruppen unterteilt: Die einen lassen sich auf die neuen Erfindungen ein und von den Stromschnellen des digitalen Zeitalters mitreißen. Die anderen hingegen

Weiterlesen »
Mobiles Bezahlen
Wie sicher ist mobiles Bezahlen per App wirklich?

Die Wahrscheinlichkeit, dass Sie um Geld zu überweisen mit dem fertig ausgefüllten Überweisungsschein zur Bank gehen und dort abgeben, ist verschwindend gering. Die meisten von Ihnen werden Ihre Bankangelegenheiten online erledigen und ein Teil wird gar alles von dem Smartphone aus regeln. Nun kommt der neue Trend aus den USA rüber geschwappt,

Weiterlesen »
Scroll to Top