Skip to content
Artur Puzio edited this page Jan 22, 2016 · 27 revisions

sMusic

Idea projektu

sMusic jest autorskim oprogramowaniem udostępnionym na licencji ruchu wolnego oprogramowania służącym do zdalnego sterowania szkolnym radiowęzłem przez aplikację webową dostosowaną do urządzeń mobilnych. Dzięki temu uprawniony użytkownik może przygotować listę odtwarzania i ustawić jej automatyczne odtwarzanie na określony przedział czasu. Konwencjonalne zarządzanie radiowęzłem wymaga stworzenia ograniczonej grupy osób z fizycznym dostępem do sprzętu i ogranicza wpływ społeczności odtwarzaną muzykę. W sMusic każda klasa szkolna będzie mogła uczestniczyć w tworzeniu playlist i tworzyć audycje dla radiowęzła. Dostępne na rynku oprogramowanie do zarządzania odtwarzaniem muzyki, zakłada jednego użytkownika, nie daje możliwości automatycznego zatrzymywania odtwarzania na czas lekcji i automatycznego startu playlisty na przerwie, ani sterowania komputerem radiowęzła znajdującym się za firewall-em. W naszym rozwiązaniu zastosujemy serwer pośredni, do którego to będzie łączył się radiowęzeł i będzie on umożliwiał wygodny podział uprawnień. Jednym z założeń projektowych jest również wysoka odporność na błędy. Komputer radiowęzła musi sobie poradzić z chwilowym brakiem zasilania (automatyczny restart i przywrócenie połączenia z serwerem) i utratą połączenia z serwerem(respektowanie rozpoczęcia się lekcji pomimo braku kontaktu z serwerem i próby odzyskania tego kontaktu). Zaproponowane rozwiązanie daje możliwość współpracy z innymi szkołami. W przypadku chęci wprowadzenia tego rozwiązania w innych szkołach nie ma konieczności tworzenia całej infrastruktury od początku, a wystarczy zainstalować nasze oprogramowanie sterujące na komputerze tamtejszego radiowęzła.

Motywacja

Radiowęzeł w naszej szkole był sterowany przez małą grupę uczniów, co ograniczało wpływ społeczności szkoły na odtwarzaną muzykę. Tradycyjne rozwiązanie jest też kłopotliwe dla opiekujących się radiowęzłem uczniów. Jeśli na danej przerwie ma być odtwarzana muzyka uczeń musi stawić się w radiowęźle włączyć sprzęt, pilnować odtwarzania i zdążyć na lekcję. Zaproponowane przez nas rozwiązanie eliminuje wszystkie te problemy.

Rozwój

Nasze oprogramowanie umożliwia łatwe dodawanie kolejnych modułów. Już kilka dni przyszedł do nas kolega zainteresowany stworzeniem modułu do streamowania muzyki z wejścia audio dowolnego komputera do radiowęzła. Umożliwi to zaspokojenie potrzeby kolegi odtwarzającego muzykę z magnetofonu.

Inspiracja

Postanowiliśmy rozwiązać nękające wszystkie szkoły problemy z obsługą radiowęzła. Dostrzegliśmy możliwość połączenia tradycyjnej aparatury z urządzeniem mobilnym dzięki użyciu technologii sieciowych. Chcieliśmy się dowiedzieć jakie gusta muzyczne mają nasi uczniowie i zaangażować ich do aktywności muzycznej. Przez stronę będzie można głosować na utwory z każdej listy, tworzyć toplisty. Będzie można promować utwory i audycje stworzone przez uczniów.

Aktualny stan projektu

Projekt jest aktualnie we wczesnej fazie beta. Powstała pełna dokumentacja projektowa określająca zawierająca koncepcję, protokół wymiany

Cel projektu

sMusic ma przede wszystkim służyć polskim szkołom dając możliwość zdalnej kontroli nad muzyką odtwarzaną w szkolnych radiowęzłach

Udostępniał będzie intuicyjną, responsywną (przystosowaną do poprawnej pracy na wszystkich urządzeniach) aplikację WWW zapewniającą kontrolę nad odtwarzaniem muzyki (głośność, przełączenie na ręczną kontrolę pozwalającą na bezpośrednią kontrolę nad odtwarzaczem). Automatyczna kontrola będzie polegała na ładowaniu kolejki odtwarzania na przerwie z kalendarza playlist tworzonego za pomocą tej aplikacji.

Kalendarz będzie miał możliwość ustawienia uprawnień dla każdego użytkownika systemu, tak, aby dana osoba mogła stworzyć własną playlistę na wybraną przerwę. Konta w serwisie będą synchronizowane z szkolnym serwerem LDAP, więc nie będzie potrzeby zakładania dodatkowego konta.

W dalszym stadium projektu dodamy także możliwość rejestracji za pomocą adresu email, aby umożliwić korzystanie z systemu także szkołom, które nie posiadają usługi katalogowej.

Projekt został stworzony z myślą o unowocześnieniu działania szkolnych radiowęzłów poprzez możliwość uruchamiania już wcześniej przygotowanych playlist (mogą one być także moderowane przez odpowiednie osoby) oraz możliwość zdalnej kontroli nad odtwarzaniem. To rozwiązanie umożliwia uczniom także swego rodzaju demokrację w wybieraniu utworów.

Maszyny, na których będzie oparty system

SERWER - komputer hostujący usługi TCP i HTTP, najlepiej, jeśli posiada publiczne IP

RADIO - komputer podłączony do głośników, musi osiągać w sieci SERWER

Komponenty systemu

  • Działające na RADIO
  • Działające na SERWER
    • Aplikacja WWW udostępniający interfejs
    • Serwis TCP udostępniający dane z SERWER i stanowiący proxy w połączeniach między aplikacją WWW a RADIO

Działanie połączenia

Opis protokołu Radiowęzeł-Serwer 0.2

Opis idei połączeń:

Opisy połączeń

  1. Połączenie nawiązywane przez RADIO uruchomione przez cały czas, od uruchomienia systemu
    • Przesyłane dane:
      • Handshake uwierzytelniający klienta jako RADIO lub WWW
      • Asynchroniczne zapytania od RADIA do SERWER i przekazywane przez serwer zapytania od WWW do RADIA oraz odpowiedzi.
  2. Połączenie nawiązywane przez instancję serwisu WWW z serwisem TCP na SERWER na czas działania instancji WWW (czyli do załadowania strony)
    • Przesyłane dane:
      • Zapytania od serwisu WWW do RADIO są przesyłane do usługi TCP na SERWER i przesłane dalej do RADIO
      • Odpowiedzi od RADIO są przesyłane do odpowiedniej instancji WWW (w oparciu o klucz msgid)
  3. Połączenie przez powłokę systemową serwisu TCP na RADIO z odtwarzaczem CMUS
    • Przesyłane dane:
      • Zapytania wysyłane od klienta TCP RADIO do odtwarzacza CMUS za pomocą cmus-remote.
      • Odpowiedzi są odbierane z STDOUT(np. cmus-remote -Q) lub z plików tekstowych (np. aktualna playlista)
  4. Jedyne połączenie TCP przez które RADIO bezpośrednio wysyła zapytania do SERWER
    • Przesyłane dane:
      • Zapytania wysyłane od RADIO do SERWER - zapytania o playlistę na daną przerwę, o zawartość bazy danych itd.
      • Odpowiedzi na zapytania RADIO
  5. Połączenie nawiązywane przez WWW z RADIO na czas ładowania strony
    • Przesyłane dane:
      • Zapytania o kolejkę, odtwarzany utwór, status odtwarzacza
      • Polecenia zmiany głośności, kolejki, pauzowanie odtwarzania na żądanie użytkownika serwisu WWW
      • Odpowiedzi od RADIO wysyłane do WWW