Subject: Johnny Talker - rewolucja w tworzeniu aplikacji VoIP?
Witam
Może temat wiadomości jest trochę przesadzony, ale przez ostatnie pół roku tworzyłem narzędzie, które w zamierzeniach może znacznie uprościć i przyśpieszyć tworzenie aplikacji VoIP.
Trochę wstępu
Osoba chcąca napisac program do rozmow glosowych musiałby wykazać się naprawdę rozległą, interdyscyplinarną wiedzą. Oprócz rzeczy natychmiastowo kojarzących się z VoIP takich jak przetwarzanie sygnału mowy (np. kodowanie i dekodowanie strumienia, niwelowanie zakłóceń oraz zaginięć próbek) i komunikacja sieciowa (np. nawiązywanie połączeń bezpośrednich lub przez serwer pośredniczący, dbanie o dostarczanie pakietów i składanie strumienia w zamierzonej kolejności) informatyk musi sobie radzić z szeregiem innych aspektów, które najchętniej by pominął.
Zagadnienia równoległości wykonywanych zadań (m. in. tworzenie wątków, komunikacja między procesowa), współpraca ze sprzętowymi urządzeniami dźwiękowymi (m. in. nagrywanie i odtwarzanie dźwięku przez kartę dźwiękową), czy dbanie o przenośność między systemami i platformami potrafi pochłonąć dużo czasu i zasobów ludzkich.
Dopiero na końcu deweloper zmaga się z rzeczami, dzięki którym jego produkt może być wyjątkowy, jak dodatkowa, oryginalna funkcjonalność oraz wygodny i intuicyjny interfejs użytkownika.
Wizja
Moim pomysłem było stworzenie „czarnej skrzynki”, która zajęłaby się wszystkimi niskopoziomowymi procesami, uwalniając od nich twórcę końcowej aplikacji. Takie narzędzie brałoby na siebie wszystkie aspekty związane z VoIPem, udostępniając wygodny, dobrze zaprojektowany i udokumentowany interfejs komunikacji. Dzięki temu programista mógłby skupić się jedynie na tym, co naprawdę go interesuje i wyróżni jego produkt od konkurencji.
W mojej - może trochę idyllicznej - wizji, napisanie programu do komunikacji dźwiękowej lub dodanie takiej funkcjonalności do już istniejącej aplikacji zajmującej się czymś innym (np. komunikatora sieciowego) jest bardzo szybkie i nie wymaga zaawansowanych zdolności programistycznych. Wychodzę z założenia, że jeżeli nie udało się przyjąć jednego standardu komunikacji na poziomie komitetu standaryzacyjnego, to można spróbować to osiągnąć, dając deweloperom wygodne, niskopoziomowe narzędzie (ang. back-end), wykorzystujące jeden z popularniejszych na świecie protokołów VoIP, które przez powszechność używania automatycznie stałoby się światowym standardem (wiem, optymista ze mnie
).
Realizacja
Wyżej opisaną wizję starałem się urzeczywistnić tworząc narzędzie o nazwie "Johnny Talker". Ma ono trochę specyficzną budowę i zasadniczo składa się z dwóch części.
Pierwszą z nich jest działająca w formie demona w pełni funkcjonalna aplikacja Voice over IP. Umożliwia ona wykonywanie wszelkich czynności związanych z dzwonieniem (inicjowanie rozmowy, odbieranie połączenia, rejestrację na serwerze, itp.). Aplikacja ta działa cały czas w tle i jest w pełni niezależna od docelowego oprogramowania, na którym pracuje użytkownik. Stanowi ona rdzeń całego systemu.
Drugą cześć stanowi biblioteka kliencka, która realizuje (maskuje) połączenie z serwerem. Jest ono realizowane przy pomocy soketów Unixowych. Dla programisty piszącego własny program VoIP (przy wykorzystaniu mojego narzędzia), komunikacja z demonem jest w pełni przezroczysta i nie różni się
niczym od pracy z klasyczną, wbudowaną biblioteką. Przy zachowaniu tej wygody oferowane są zalety mojego rozwiązania.
Pomimo włożych wielu godzin pracy projekt znajduje się na razie w wersji przeznaczonej (właściwie) tylko dla programistów. Zdecydowałem się jednak ogłosić jego istnienie, gdyż uważam, że opinie osób, które planują używać mojego narzędzia powinny w dużym stopniu wpływać na kierunek jego rozwoju.
Zapraszam do obejrzenia przykładowego i minimalnego kodu tworzący klienta VoIP.
Zapraszam więc wszystkich zainteresowanych rozwijaniem i wykorzystywaniem tego projektu w swoich programach do wypowiedzenia się na ten temat na liście mailingowej projektu (dostępnej także przez NNTP - Gmane), ewentualnie tu, na forum.
Program jest na wolnej licencji i nie ukrywam, że tworzyłem go z myślą o wykorzystaniu w komunikatorach internetowych (np. w Psi
).
Więcej informacji można znaleźć na stronie projektu: http://johnny.wit.edu.pl/
UWAGA. To jest pierwsze (no moze drugie) publiczne ogłoszenie mojego projektu, gdyż uważam, że w Polsce jest wielu zdolnych programistów związanych z ruchem FLOSS, Jabberem, czy Psi. Chciałbym usłyszeć Wasze opinie na temat projektu przed szerszym rozgłoszeniem go (aby móc wcześniej poprawić ewentualne krytyczne błędy). Proszę więc na razie (do niedzieli) nie rozpowszechniać informacji o narzędziu w innych miejscach (planuję to zrobić za kilka dni).
Czekam na Wasze opinie (i informacje o błędach na stronie!)
Marcin Zajączkowski
Posta tego wrzucilem na forum.jabberpl.org, jednak pomimo tego, ze pare osob weszlo na strone projektu, nikt sie nie wypowiedzial. Moze tutaj ktos nowy (i ambitny) przeczyta go i zainteresuje sie tematem.
Może temat wiadomości jest trochę przesadzony, ale przez ostatnie pół roku tworzyłem narzędzie, które w zamierzeniach może znacznie uprościć i przyśpieszyć tworzenie aplikacji VoIP.
Trochę wstępu
Osoba chcąca napisac program do rozmow glosowych musiałby wykazać się naprawdę rozległą, interdyscyplinarną wiedzą. Oprócz rzeczy natychmiastowo kojarzących się z VoIP takich jak przetwarzanie sygnału mowy (np. kodowanie i dekodowanie strumienia, niwelowanie zakłóceń oraz zaginięć próbek) i komunikacja sieciowa (np. nawiązywanie połączeń bezpośrednich lub przez serwer pośredniczący, dbanie o dostarczanie pakietów i składanie strumienia w zamierzonej kolejności) informatyk musi sobie radzić z szeregiem innych aspektów, które najchętniej by pominął.
Zagadnienia równoległości wykonywanych zadań (m. in. tworzenie wątków, komunikacja między procesowa), współpraca ze sprzętowymi urządzeniami dźwiękowymi (m. in. nagrywanie i odtwarzanie dźwięku przez kartę dźwiękową), czy dbanie o przenośność między systemami i platformami potrafi pochłonąć dużo czasu i zasobów ludzkich.
Dopiero na końcu deweloper zmaga się z rzeczami, dzięki którym jego produkt może być wyjątkowy, jak dodatkowa, oryginalna funkcjonalność oraz wygodny i intuicyjny interfejs użytkownika.
Wizja
Moim pomysłem było stworzenie „czarnej skrzynki”, która zajęłaby się wszystkimi niskopoziomowymi procesami, uwalniając od nich twórcę końcowej aplikacji. Takie narzędzie brałoby na siebie wszystkie aspekty związane z VoIPem, udostępniając wygodny, dobrze zaprojektowany i udokumentowany interfejs komunikacji. Dzięki temu programista mógłby skupić się jedynie na tym, co naprawdę go interesuje i wyróżni jego produkt od konkurencji.
W mojej - może trochę idyllicznej - wizji, napisanie programu do komunikacji dźwiękowej lub dodanie takiej funkcjonalności do już istniejącej aplikacji zajmującej się czymś innym (np. komunikatora sieciowego) jest bardzo szybkie i nie wymaga zaawansowanych zdolności programistycznych. Wychodzę z założenia, że jeżeli nie udało się przyjąć jednego standardu komunikacji na poziomie komitetu standaryzacyjnego, to można spróbować to osiągnąć, dając deweloperom wygodne, niskopoziomowe narzędzie (ang. back-end), wykorzystujące jeden z popularniejszych na świecie protokołów VoIP, które przez powszechność używania automatycznie stałoby się światowym standardem (wiem, optymista ze mnie
).Realizacja
Wyżej opisaną wizję starałem się urzeczywistnić tworząc narzędzie o nazwie "Johnny Talker". Ma ono trochę specyficzną budowę i zasadniczo składa się z dwóch części.
Pierwszą z nich jest działająca w formie demona w pełni funkcjonalna aplikacja Voice over IP. Umożliwia ona wykonywanie wszelkich czynności związanych z dzwonieniem (inicjowanie rozmowy, odbieranie połączenia, rejestrację na serwerze, itp.). Aplikacja ta działa cały czas w tle i jest w pełni niezależna od docelowego oprogramowania, na którym pracuje użytkownik. Stanowi ona rdzeń całego systemu.
Drugą cześć stanowi biblioteka kliencka, która realizuje (maskuje) połączenie z serwerem. Jest ono realizowane przy pomocy soketów Unixowych. Dla programisty piszącego własny program VoIP (przy wykorzystaniu mojego narzędzia), komunikacja z demonem jest w pełni przezroczysta i nie różni się
niczym od pracy z klasyczną, wbudowaną biblioteką. Przy zachowaniu tej wygody oferowane są zalety mojego rozwiązania.
Pomimo włożych wielu godzin pracy projekt znajduje się na razie w wersji przeznaczonej (właściwie) tylko dla programistów. Zdecydowałem się jednak ogłosić jego istnienie, gdyż uważam, że opinie osób, które planują używać mojego narzędzia powinny w dużym stopniu wpływać na kierunek jego rozwoju.
Zapraszam do obejrzenia przykładowego i minimalnego kodu tworzący klienta VoIP.
Zapraszam więc wszystkich zainteresowanych rozwijaniem i wykorzystywaniem tego projektu w swoich programach do wypowiedzenia się na ten temat na liście mailingowej projektu (dostępnej także przez NNTP - Gmane), ewentualnie tu, na forum.
Program jest na wolnej licencji i nie ukrywam, że tworzyłem go z myślą o wykorzystaniu w komunikatorach internetowych (np. w Psi
).Więcej informacji można znaleźć na stronie projektu: http://johnny.wit.edu.pl/
UWAGA. To jest pierwsze (no moze drugie) publiczne ogłoszenie mojego projektu, gdyż uważam, że w Polsce jest wielu zdolnych programistów związanych z ruchem FLOSS, Jabberem, czy Psi. Chciałbym usłyszeć Wasze opinie na temat projektu przed szerszym rozgłoszeniem go (aby móc wcześniej poprawić ewentualne krytyczne błędy). Proszę więc na razie (do niedzieli) nie rozpowszechniać informacji o narzędziu w innych miejscach (planuję to zrobić za kilka dni).
Czekam na Wasze opinie (i informacje o błędach na stronie!)
Marcin Zajączkowski


Szpak
Show profile
Link to this post