
Wprowadzenie
My (główni programiści](/dokumentacja/pytania-i-odpowiedzi#bigbluebutton-committer)) wydaliśmy naszą pierwszą wersję BigBlueButton 12 czerwca 2009.
Od lata 2009 mieliśmy wiele wydań BigBlueButton, każde z nich było ulepszeniem poprzedniego, a każde odzwierciedlało dążenie głównych programistów do zbudowania solidnego produktu. Począwszy od BigBlueButton 2.0, nasze informacje o wydaniu znajdują się na GitHub.
Uważamy, że BigBlueButton jest produktem. Prowadzimy proces rozwoju, aby zapewnić dostarczenie platformy czasu rzeczywistego, która jest zarówno łatwa w obsłudze dla użytkowników końcowych, jak i solidna do rozbudowy dla programistów.
Ten dokument przedstawia naszą mapę drogową na przyszłość dla BigBlueButton.
Przedstawione tutaj wymagania w dużej mierze wynikają z naszego rynku docelowego: nauki on-line. Często jesteśmy również pytani: „Dlaczego skupiacie się tylko na jednym rynku – czy nie zdajesz sobie sprawy, że BigBlueButton byłby świetny dla rynków X, Y i Z?” Zdajemy sobie sprawę, że podstawowe funkcje – współdzielony czat, prezentacja, głos, wideo i komputer stacjonarny – to te same podstawowe funkcje na wielu rynkach (w tym nauka on-line). Wierzymy, że koncentrując się i dostarczając światowej klasy produkt do nauki on-line, w istocie dostarczymy światowej klasy rozwiązanie także na inne rynki.
Jakie są wymagania dotyczące nauki on-line? Na najwyższym poziomie ma zapewnić uczniom zdalnym wysokiej jakości naukę. Innymi słowy, myślimy o BigBlueButton w kategoriach: „Jak możemy sprawić, że nauka on-line będzie bardziej skuteczna dla nauczycieli i uczniów?”
W każdym wdrożeniu BigBlueButton istnieje pięć odrębnych ról: nauczyciel, uczeń, administrator, wsparcie i programista. Każda osoba ma zadanie do wykonania; każda osoba ma swoje własne historie użytkowników:
-
Jako nauczyciel chcę skutecznie przekazywać moje treści w sposób maksymalizujący naukę i zaangażowanie uczniów. Chcę zajęć interaktywnych, a nie tylko wykładu jednostronnego (chociaż zdarzają się przypadki, gdy zajęcia są większe, że wykłady jednostronne mają sens).
-
Jako uczeń chcę efektywnie uczyć się materiału, aby móc zdobywać nowe umiejętności i (w przypadku większości uczniów uczęszczających do instytucji edukacyjnej) uzyskiwać dobre oceny, które pomogą w budowaniu lepszej kariery. Chcę mieć możliwość interakcji z instruktorem (indywidualnie lub podczas zajęć). Chcę uzyskać dostęp do nagranych treści, które pomogą mi w nauce i stosowaniu pojęć.
-
Jako administrator chcę mieć łatwy dostęp do BigBlueButton z systemu zarządzania nauką (LMS) mojej instytucji edukacyjnej.
-
Jako menedżer wsparcia chcę, aby BigBlueButton był łatwy w nauczaniu i wsparciu, dzięki czemu mogę osiągnąć wysoki poziom zadowolenia moich użytkowników i obniżyć wysiłek (i koszty) w zakresie wsparcia w porównaniu z innymi opcjami.
-
Jako programista chcę zainstalować BigBlueButton w 30 minut (lub mniej). Chcę móc zintegrować BigBlueButton z moim produktem w mniej niż cztery godziny, aby móc wspólnie z innymi odkrywać jego wartość.
Miarą naszego sukcesu jest łatwość, z jaką umożliwiamy każdej osobie wykonanie jej pracy. Mamy także cele, które nie są specyficzne dla żadnej roli; raczej stanowią one podstawę wszystkich wymagań.
-
Stabilność - Zależy nam na solidnej stabilności dla użytkowników. W tym celu przeprowadzamy szeroko zakrojone testy każdej wersji. Przykład: BigBlueButton 0.80 miał cztery wersje beta i trzy wersje kandydatów do wydania w ciągu czterech miesięcy, BigBlueButton 0.81 miał pięć miesięcy testów beta, a BigBlueButton 0.9.1 miał pięć miesięcy testów beta. Oprócz testowania przez firmy komercyjne obsługujące BigBlueButton, uruchamiamy także serwer demonstracyjny BigBlueButton przez tygodnie bez ponownego uruchamiania.
-
Użyteczność — Użyteczność dotyczy wszystkich aspektów produktu skierowanych do człowieka, w tym jakości dźwięku i obrazu. Chcemy, aby nowi użytkownicy mieli bardzo pozytywne doświadczenia. W każdym wydaniu wiele wysiłku włożono w użyteczność. Wierzymy, że jeśli uda nam się dodać funkcje, a jednocześnie sprawić, że doświadczenia użytkownika będą bardziej spójne i eleganckie, zmierzamy we właściwym kierunku.
-
Modułowość - BigBlueButton to duża aplikacja z wieloma komponentami. Stale poszukujemy możliwości zmniejszenia sprzężeń pomiędzy komponentami. Dobrym przykładem jest integracja z FreeSWITCH, która odbywa się całkowicie poprzez protokół inicjowania sesji (SIP) i warstwę gniazda zdarzeń FreeSWITCH — dzięki temu FreeSWITCH może działać na zupełnie innym serwerze, jeśli chcesz.
-
Jakość kodu - Stale się uczymy w miarę ewolucji BigBlueButton i stale wykorzystujemy nasze zwiększone umiejętności do refaktoryzacji i przepisywania komponentów w miarę rozszerzania zestawu funkcji i [architektury] BigBlueButton (/development/architecture). Wiemy, że aby inni programiści mogli wnieść swój wkład (i wypuścić solidny produkt), kod BigBlueButton musi być łatwy w utrzymaniu.
-
Skalowalność - Budujemy BigBlueButton tak, aby był środowiskiem wysoce współpracującym. Nasze przypadki zastosowań to: jeden na jednego (np. korepetycje lub coaching uczniów), współpraca w małych grupach i jeden na wielu (zalecamy maksymalnie 100 użytkowników w jednej sesji). Nawet w trybie jeden do wielu możesz mieć 20 użytkowników, którzy będą współużytkować kamery internetowe i wszyscy będą mogli rozmawiać. Innymi słowy, nie stworzyliśmy aplikacji typu webinar, która ograniczałaby użytkowanie. Mimo to myślimy o skalowalności w każdym wydaniu i dodajemy (i refaktoryzujemy) produkt, aby ją zwiększyć.
-
API - BigBlueButton zapewnia proste API do integracji, a prostota jest dobra. Interfejs API umożliwił rosnącą listę integracji innych firm z innymi produktami typu open source.
Oczywiście nie jesteśmy w stanie zrobić wszystkiego w jednym wydaniu. Jeśli przeczytasz informacje o wersji, zobaczysz, że czasami wdrażamy funkcje etapami — np. nagrywanie i odtwarzanie są wydawane najpierw w celu przechwytywania slajdów (wersja 0.80), następnie w postaci przechwytywania całej zawartości (wersja 0.81), a następnie za pomocą przycisku Rozpocznij/Zatrzymaj nagrywanie (wersja 0.9.1) dla moderatora.
Poniższe sekcje przedstawiają (w dowolnej kolejności) plan działania dla BigBlueButton. Jeśli zastanawiasz się, w jaki sposób wybierana jest dana funkcja, zobacz jak ustalamy priorytety funkcji w każdej wersji.
Jeśli masz uwagi na temat tego dokumentu, prześlij je na listę mailingową BigBlueButton-dev.
Funkcje podstawowe
W tej sekcji opisano ulepszenia rdzenia BigBlueButton.
Pokaż miniatury slajdów
W tej chwili nawigacja po slajdach nie wyświetla miniatur podczas korzystania z menu slajdów w celu przejścia do określonych slajdów.
Zarządzanie kamerami internetowymi
Klient Flash umożliwiał użytkownikom indywidualne zamykanie kamer internetowych. Ta funkcja nie jest jeszcze zaimplementowana w kliencie HTML5.
Nie można kliknąć łączy w slajdach
Podczas przesyłania slajdów z klikalnymi łączami można je kliknąć w kliencie Flash. Obecnie nie można ich kliknąć w kliencie HTML5.
Pokaż miniatury slajdów
W tej chwili nawigacja po slajdach nie wyświetla miniatur podczas korzystania z menu slajdów w celu przejścia do określonych slajdów.
Wymagania ogólne
Poniższe elementy nie dotyczą żadnej pojedynczej funkcji, ale dotyczą raczej ogólnej jakości projektu.
Środowisko programistyczne
Konfiguracja środowiska programistycznego powinna być możliwa w czasie krótszym niż 30 minut. W najnowszej wersji poczyniliśmy postępy w tym zakresie (zobacz programowanie dla BigBlueButton).
Moglibyśmy to ułatwić, tworząc kontener Docker dla BigBlueButton.
Dokumentacja
Upewnij się, że wszystkie klasy w BigBlueButton, zarówno na serwerze (Java), jak i kliencie (ActionScript) - mają wystarczającą dokumentację Javadoc, aby programista mógł zrozumieć swoją rolę w stosunku do innych.
Upewnij się, że wszystkie klasy są udokumentowane na poziomie, na którym inny programista mógłby zrozumieć ich intencje. Twórz łatwą w obsłudze dokumentację, która umożliwi innym programistom zrozumienie projektu i przeznaczenia kodu.
Zgodność
Udostępnianie ekranu na urządzeniach mobilnych dla systemów iOS i Android. (patrz 8576)
Stabilność
Zamknij wszystkie problemy krytyczne, wysokiej i średniej stabilności. Ogólnie rzecz biorąc, należy kontynuować testowanie, aby upewnić się, że każde wydanie jest bardziej stabilne niż poprzednie.
Testowanie jednostkowe
Dodaj test jednostkowy do podstawowych modułów (głos, wideo, czat, prezentacja i udostępnianie pulpitu) posiada testy jednostkowe w celu sprawdzenia ich funkcjonalności.
Środowisko programistyczne powinno umożliwiać programistom przeprowadzanie testów jednostkowych w celu sprawdzenia zgodności.
Testowanie integracyjne
API powinno posiadać kompletny zestaw testów w celu weryfikacji stabilności i zgodności z dokumentacją.
Testowanie warunków skrajnych
Sprawdź, czy serwer BigBlueButton może działać pod dużym obciążeniem z dużą liczbą użytkowników przez 48 godzin bez żadnej awarii.
BigBlueButton jest obecnie testowany przez społeczność, firmy komercyjne korzystające z BigBlueButton i programistów. Aby zapewnić odpowiednie testowanie, nasze cykle wydawania wersji beta obejmują miesiące.
Posiadanie powtarzalnego środowiska testów warunków skrajnych może pomóc nam skrócić cykle wydawnicze.
API
Dodaj wywołanie API, aby umożliwić aplikacjom zewnętrznym wstrzykiwanie wiadomości do okna czatu (patrz 1660).
Dodaj wywołanie API, aby umożliwić zewnętrznej aplikacji przesłanie nowej prezentacji.
Narzędzia do rozwiązywania problemów
Dodaj więcej możliwości do bbb-conf, aby zmienić poziomy rejestrowania wszystkich aplikacji, ułatwiając wykrywanie błędów (1661).
Inne obszary do zbadania
H.323
Umożliwiłoby to BigBlueButton integrację z innymi komercyjnymi systemami konferencyjnymi obsługującymi H.323
Rest API
Utwórz API oparte na resztach dla BigBlueButton, które implementuje wszystkie bieżące [wywołania API] BigBlueButton (/development/api). Ułatwiłoby to integrację innych aplikacji z BigBlueButton.