System rozproszonej wizualizacji danych na urządzeniach mobilnych
Transkrypt
System rozproszonej wizualizacji danych na urządzeniach mobilnych
Instytut Badań Systemowych Polskiej Akademii Nauk Mgr inż. Maciej Pańka Uniwersyteckie Centrum Nowoczesnych Technologii Nauczania Uniwersytet Mikołaja Kopernika w Toruniu Streszczenie rozprawy doktorskiej System rozproszonej wizualizacji danych na urządzeniach mobilnych Promotor: dr hab. Piotr Bała, prof. UMK Warszawa, kwiecień, 2013 r. Wprowadzenie Zapotrzebowanie na moce obliczeniowe niezbędne do realizacji współczesnych badań, eksperymentów oraz symulacji prowadzonych z wykorzystaniem technologii informatycznych rośnie w bardzo szybkim tempie. Wiele spośród podejmowanych dziś aktywności naukowych jest na tyle skomplikowana, że do ich poprawnej realizacji wymagane są zaawansowane rozwiązania techniczne, często niedostępne w laboratoriach komputerowych realizujących je jednostek. Z tego powodu najbardziej złożone zadania są coraz częściej realizowane w centrach obliczeniowych, wyposażonych w specjalistyczne serwery, potrafiące sprawnie przetwarzać olbrzymie ilości danych. Zasoby, które powstają w wyniku tych obliczeń, mają najczęściej bardzo duże rozmiary, przez co ich swobodne przenoszenie pomiędzy różnymi systemami staje się utrudnione, a czasami wręcz niemożliwe. W efekcie, zgromadzone w ten sposób dane są przechowywane w miejscu, w którym zostały wygenerowane, a dostęp do nich jest realizowany wyłącznie za pośrednictwem sieci teleinformatycznej. Centralne przechowywanie danych bez wątpienia przynosi duże korzyści, przede wszystkim dzięki możliwościom stosunkowo łatwego zarządzania zgromadzonymi zasobami oraz ich udostępnianiu użytkownikom. Jednak w przypadku bardzo obszernych zbiorów okazuje się, że model ten posiada również szereg istotnych ograniczeń. Jednym z największych jest bez wątpienia brak efektywnych i uniwersalnych rozwiązań umożliwiających interaktywne analizowanie tych zasobów na odległość, bez konieczności pobierania ich w całości na lokalny komputer zainteresowanego użytkownika. Problem ten jest widoczny szczególnie podczas pracy z zasobami graficznymi, takimi jak zdjęcia, trójwymiarowe modele, czy też złożone animacje. Zdalna wizualizacja tego typu danych wymaga zazwyczaj nie tylko dostępu do dużych mocy obliczeniowych urządzenia, na którym są one przetwarzane, ale również szybkich łączy internetowych umożliwiających sprawną wymianę informacji pomiędzy serwerem a oddalonym od niego użytkownikiem. Problem zdalnej wizualizacji danych komplikuje się jeszcze bardziej w sytuacji, gdy ma ona być realizowana za pośrednictwem urządzeń o słabych parametrach technicznych, takich jak np. laptopy, tablety czy telefony komórkowe. Rynek rozwiązań mobilnych jest obecnie jednym z najszybciej rozwijających się sektorów całej branży teleinformatycznej, a same urządzenia przenośne stały się jednymi z najczęściej stosowanych narzędzi dostępu do informacji oraz komunikacji w Internecie. W naturalny sposób pojawia się dziś również po- trzeba wykorzystywania tych urządzeń do zdalnego przetwarzania oraz wizualizowania rozproszonych po świecie danych naukowych. Zdecydowana większość podejmowanych do tej pory prac nad zdalną wizualizacją danych zakładała konieczność dostępu do stosunkowo dużych mocy obliczeniowych po stronie urządzeń klienckich oraz szybkich łączy internetowych, niezbędnych szczególnie podczas przetwarzania złożonych modeli 3D oraz animacji. W środowisku mobilnym takie założenie jest niestety nieuzasadnione, ponieważ współczesne urządzenia przenośne nadal posiadają szereg ograniczeń technicznych w stosunku do swoich odpowiedników stacjonarnych. Wśród najważniejszych należy wymienić przede wszystkim niedostateczną szybkość procesora oraz układu graficznego, niewielką pojemność pamięci operacyjnej oraz dysku, krótką żywotność baterii czy też małe rozmiary ekranu. Sama komunikacja radiowa jest również dużo wolniejsza i bardziej podatna na zakłócenia niż transmisja danych w sieciach kablowych. Problemy badawcze oraz główna teza rozprawy Głównym celem rozprawy było przeprowadzenie kompleksowej analizy problemu zdalnej wizualizacji danych na urządzeniach mobilnych oraz zaprojektowanie i stworzenie systemu informatycznego, który w efektywny sposób umożliwiałby jej realizację. W pierwszej kolejności została przeprowadzona wstępna analiza zagadnienia, która pozwoliła na zlokalizowanie najważniejszych czynników mających wpływ na sprawność przetwarzania rozproszonych zasobów. Pokazała ona, że głównymi problemami są przede wszystkim ograniczenia przepustowości łączy internetowych, potrzebnych do szybkiego przesyłania dużych ilości danych pomiędzy serwerem i urządzeniem mobilnym, a także zapotrzebowanie na moce obliczeniowe niezbędne do ich późniejszego przetworzenia. Brak odpowiednich warunków technicznych w obu tych aspektach może w znaczący sposób spowalniać przebieg obliczeń, wpływając tym samym negatywnie na poziom interakcji użytkownika z systemem. Sprawnie działający system zdalnej wizualizacji danych wymaga bardzo małych opóźnień pomiędzy wysłaniem zapytania do serwera a wyświetleniem wyników graficznych na ekran. Tylko w taki sposób można zapewnić komfort pracy porównywalny do wizualizacji zasobów lokalnych. Powyższa, wstępna analiza problematyki rozproszonej wizualizacji danych na urządzeniach mobilnych została opisana w pierwszym rozdziale rozprawy. Na podstawie dokonanej analizy zostały w nim zdefiniowane również główne problemy badawcze, tj.: • Na ile możliwa jest efektywna wizualizacja rozproszonych danych różnego typu, realizowana w czasie rzeczywistym za pośrednictwem powszechnie dostępnych urządzeń mobilnych, takich jak laptopy, tablety oraz telefony komórkowe? • Jakie korzyści przynosi wykorzystanie transmisji strumieniowej oraz kodeków wideo podczas zdalnej wizualizacji danych? • Na ile możliwa jest sprawna współpraca wielu użytkowników mobilnych jednocześnie, skoncentrowana wokół rozproszonych zasobów graficznych? W celu rozwiązania postawionych problemów badawczych w ramach rozprawy zostały przeprowadzone następujące działania: • Dokonanie szczegółowej analizy problematyki zdalnej wizualizacji danych, obejmującej m.in. porównanie najważniejszych prac badawczych przeprowadzonych do tej pory w tym zakresie. • Zaprojektowanie oraz implementacja rozproszonego systemu informatycznego, bazującego na strumieniowej transmisji sekwencji wideo w Internecie, który umożliwia zdalną wizualizację danych na urządzeniach mobilnych. • Przeprowadzenie testów wydajności poszczególnych modułów aplikacji serwera. • Przeprowadzenie pomiarów wydajności aplikacji klienckiej uruchamianej na kilku wybranych modelach popularnych urządzeń mobilnych. • Przeprowadzenie analizy jakościowej funkcjonowania systemu z poziomu użytkownika mobilnego. • Przeprowadzenie analizy porównawczej wybranych algorytmów kompresji danych graficznych pod kątem możliwości ich wykorzystania w zaprojektowanym systemie. Została też sformułowana główna teza pracy, mówiąca że „możliwa jest efektywna, zespołowa wizualizacja rozproszonych danych różnego typu, realizowana w czasie rzeczywi- stym za pośrednictwem powszechnie dostępnych urządzeń mobilnych w oparciu o zaprojektowany system informatyczny”. Przegląd badań z zakresu zdalnej wizualizacji danych W drugim rozdziale rozprawy została dokonana dalsza, bardziej szczegółowa analiza problematyki zdalnej wizualizacji danych, obejmująca przede wszystkim przegląd innych prac oraz badań naukowych przeprowadzonych do tej pory w tym zakresie. Pozwoliła ona na wyróżnienie trzech podstawowych modeli zdalnej wizualizacji danych, zależnych od typu przetwarzanych zasobów, miejsca realizacji obliczeń oraz zastosowanej technologii transmisji pomiędzy serwerem a aplikacją użytkownika: 1. Strumieniowanie pojedynczych obiektów oraz całych scen 3D i ich lokalna wizualizacja na urządzeniu użytkownika. Poszczególne obiekty są przesyłane w kolejności zależnej od ich położenia na scenie. Początkowo przesyłane są jedynie widoczne obiekty znajdujące się na pierwszym planie, a kolejne, oddalone lub ukryte elementy są dosyłane na bieżąco w trakcie trwania sesji. Do transmisji pojedynczych obiektów stosowane są najczęściej różnorodne techniki przyrostowej transmisji trójwymiarowego modelu. W pierwszej kolejności przesyłany jest jedynie ogólny zarys bryły, a brakujące szczegóły są stopniowo dosyłane i na bieżąco dodawane do sceny. 2. Transmisja danych oraz ich lokalna wizualizacja z wykorzystaniem standardu VRML. Format VRML (ang. Virtual Reality Modeling Language) został stworzony z myślą o łatwym prezentowaniu oraz przenoszeniu trójwymiarowych danych za pośrednictwem sieci komputerowych. W formacie VRML poszczególne obiekty sceny są reprezentowane za pomocą odpowiednio sformatowanych plików tekstowych, które zawierają opisy takich elementów jak geometria modeli, ich tekstury, zastosowane transformacje, oświetlenie czy też cienie. Kształty poszczególnych obiektów są definiowane w trójwymiarowym układzie współrzędnych, na bazie pewnych brył elementarnych, takich jak stożki, sfery czy sześciany. Za pomocą odpowiednich transformacji bryły te mogą być niemal dowolnie modelowane, skalowane oraz rozmieszczane w obrębie sceny. 3. Strumieniowanie pojedynczych zdjęć cyfrowych lub ich całych sekwencji, wygenerowanych zdalnie na serwerze. W tym modelu wszystkie zdalne zasoby są w całości przetwarzane po stronie serwera, generującego na ich podstawie poszczególne wizualizacje. Przygotowane w ten sposób modele są automatycznie rzutowane do postaci sekwencji zdjęć, reprezentujących poszczególne widoki trójwymiarowej sceny, np. rotacje obiektów, zbliżenia, kolejne klatki animacji, itd. Obrazy te są w dalszej kolejności przesyłane do aplikacji klienckiej, której jedynym zadaniem jest ich odpowiednie zaprezentowanie na ekranie użytkownika. Architektura zaprojektowanego systemu zdalnej wizualizacji danych Przeprowadzona w dwóch pierwszych rozdziałach analiza problemu zdalnej wizualizacji danych pozwoliła na zlokalizowanie największych trudności, które pojawiają się podczas projektowania tego typu systemów informatycznych. Projekt dobrze funkcjonującego systemu zdalnej wizualizacji danych wymaga w pierwszej kolejności wyboru odpowiedniego modelu przetwarzania zasobów. Mając na uwadze ograniczenia techniczne, zarówno współczesnych urządzeń przenośnych, jak i samych sieci radiowych, najlepszym rozwiązaniem w opinii autora wydaje się być podejście, w którym wszystkie skomplikowane zadania są realizowane po stronie serwera, a do użytkownika przesyłane są jedynie końcowe wyniki obliczeń, reprezentowane w formie serii zdjęć. Takie podejście do problemu zdalnej wizualizacji danych nie tylko w istotny sposób redukuje zapotrzebowanie na moce obliczeniowe urządzeń klienckich, ale przy zastosowaniu odpowiednich algorytmów kompresji ogranicza również zdecydowanie ilość danych przesyłanych pomiędzy serwerem a użytkownikiem. Aby rozwiązać postawione problemy badawcze został zaprojektowany od podstaw rozproszony system informatyczny, bazujący na opisanym wyżej modelu przetwarzania zasobów, którego architektura została szczegółowo opisana w trzecim rozdziale rozprawy. Najważniejsze zadania, które spełnia ten system obejmują przede wszystkim: • Możliwość w pełni interaktywnej wizualizacji danych, przechowywanych zdalnie na rozproszonych serwerach, bez konieczności ich wcześniejszego pobierania na urządzenia użytkowników. • Przeniesienie wszystkich złożonych zadań obliczeniowych na stronę aplikacji serwera. • Wsparcie dla różnych typów danych, począwszy od prostych zdjęć, przez sekwencje wideo, trójwymiarowe modele, aż po animacje 2D oraz 3D. • Możliwość dowolnego manipulowania zdalnymi zasobami przez użytkowników, obejmująca m.in. zbliżenia sceny, obroty brył, czy też kontrolowanie przebiegu animacji. • Możliwość wizualizowania danych pochodzących z różnych źródeł, m.in. przechowywanych na dyskach lokalnych oraz sieciowych, w bazach danych, czy też odczytywanych w czasie rzeczywistym ze specjalistycznych serwerów wizualizacyjnych oraz różnorodnych urządzeń pomiarowych. • Możliwość zdalnego wizualizowania danych przez wiele osób jednocześnie, bez zaburzania płynności pracy całego systemu. • Możliwość synchronicznej współpracy użytkowników na odległość oraz ich zespołowej wizualizacji rozproszonych zasobów. • Dostępność systemu za pośrednictwem słabszych obliczeniowo urządzeń mobilnych, takich jak laptopy, netbooki, tablety oraz telefony komórkowe - z jednoczesnym zachowaniem kompatybilności ze wszystkimi popularnymi systemami desktopowymi. Zaprojektowany przez autora system składa się z działającej w środowisku rozproszonym aplikacji serwera oraz z oprogramowania klienckiego, które może być uruchamiane na różnorodnych urządzeniach mobilnych. Głównym zadaniem aplikacji serwera jest przetwarzanie w czasie rzeczywistym sekwencji obrazów graficznych, ich kompresowanie oraz sukcesywne przekazywanie do użytkowników końcowych. Została ona podzielona na moduły, z których każdy może być uruchamiany na osobnej maszynie. Poszczególne moduły są odpowiedzialne za realizację różnych zadań, m.in. za zarządzanie sesjami użytkowników, komunikację ze źródłami danych, czy też odpowiednie przetwarzanie i kompresję obrazów. Pojedyncza sesja wizualizacyjna może być tym samym obsługiwana przez kilka maszyn jednocześnie, które w sposób równoległy realizują przydzielone im zadania, wymieniając się na bieżąco wynikami cząstkowymi. W zależności od aktualnego obciążenia poszczególnych modułów, kolejne maszyny obsługujące daną sesję wizualizacyjną są przydzielane użytkownikowi w sposób dynamiczny, zapewniając tym samym odpowiedni balans całego układu oraz zwiększając jego odporność na ewentualne awarie. Aplikacja serwera składa się z trzech elementów: kontrolera sesji, klastra obliczeniowego, który może składać się z większej liczby pojedynczych jednostek, a także z jednego lub większej liczby źródeł danych (rysunek 1). Rysunek 1: Ogólny schemat budowy systemu. Poszczególni użytkownicy systemu komunikują się wyłącznie z kontrolerem sesji, który pośredniczy w wymianie danych pomiędzy aplikacją kliencką a pozostałymi elementami układu. Kontroler sesji przechowuje też szczegółowe informacje dotyczące poszczególnych jednostek obliczeniowych, wchodzących w skład klastra oraz lokalizację źródeł danych. W zależności od aktualnej liczby połączeń kontroler przydziela każdemu nowemu użytkownikowi najmniej obciążoną w danym momencie jednostkę obliczeniową, która jest odpowiedzialna za dalszą obsługę jego sesji wizualizacyjnej. Kolejne polecenia użytkownika, takie jak obroty trójwymiarowej bryły czy zbliżenia ekranu są w czasie rzeczywistym przesyłane przez aplikację kliencką do kontrolera sesji, który przekazuje je dalej do wybranej jednostki obliczeniowej. Ta na ich podstawie pobiera zasoby z odpowiedniego źródła, przetwarza je zależnie od aktualnych potrzeb i generuje kolejne klatki obrazu, reprezentującego wyniki wizuali- zacji. Tak przygotowane sekwencje są w dalszej kolejności kompresowane za pomocą kodeka wideo i przekazywane z powrotem do kontrolera sesji, a stamtąd do użytkownika. Pojedyncza jednostka obliczeniowa, wchodząca w skład klastra składa się z dwóch modułów: renderującego oraz kodującego. Moduł renderujący pełni rolę interfejsu pomiędzy jednostką kodującą a źródłem danych. Z kolei maszyna kodująca jest odpowiedzialna za bieżące przetwarzanie oraz kompresję obrazów, odczytywanych z serwera renderującego. W celu zapewnienia możliwie najwyższej wydajności systemu oba moduły powinny być uruchamiane na oddzielnych serwerach (rysunek 2). Komunikacja sieciowa pomiędzy poszczególnymi modułami serwera, jak również sama transmisja sekwencji wideo do użytkownika są realizowane za pomocą technik strumieniowych. Dzięki temu aplikacja serwera może równolegle realizować niektóre obliczenia i w czasie rzeczywistym przekazywać do użytkownika cząstkowe wyniki wizualizacji. Jakość transmisji wideo jest dynamicznie dostosowywana w module kodującym do parametrów technicznych każdego urządzenia mobilnego z osobna oraz aktualnie dostępnej przepustowości łącza, mierzonej na bieżąco w trakcie trwania sesji wizualizacyjnej. Rysunek 2: Obieg sekwencji obrazów pomiędzy poszczególnymi modułami systemu. Oprócz indywidualnej wizualizacji danych system pozwala również na łączenie wielu użytkowników w pojedyncze sesje. W ramach tych sesji mają oni możliwość wspólnego przeglądania rozproszonych zasobów oraz prowadzenia dyskusji na odległość za pośrednictwem wbudowanego modułu kolaboracyjnego. Najważniejszą funkcją, jaką w tym zakresie oferuje system jest przede wszystkim synchronizacja w czasie rzeczywistym obrazu wygenerowanego przez serwer pomiędzy wszystkich uczestników sesji, z jednoczesnym zapewnieniem komunikacji głosowej oraz wideokonferencyjnej. Rozdzielczości poszczególnych sekwencji wideo są automatycznie skalowane przez serwer, dzięki czemu każdy z uczestników spotkania otrzymuje obraz indywidualnie dostosowany do parametrów technicznych posiadanego urządzenia. W trakcie spotkań użytkownicy mogą też przełączać się w tzw. tryb pracy indywidualnej. Będąc w tym trybie mają oni możliwość w pełni interaktywnej, samodzielnej pracy ze zdalnymi zasobami, które stanowią temat aktualnej sesji wizualizacyjnej (np. w celu analizowania ich pod innym kątem), słuchając jednocześnie dyskusji prowadzonej pomiędzy pozostałymi uczestnikami spotkania. Przebieg badań W ramach rozprawy zostały przeprowadzone dogłębne pomiary wydajności poszczególnych elementów zaprojektowanego systemu. Wyniki zanotowane w trakcie tych badań zostały szczegółowo opisane w czwartym rozdziale pracy. Badania zostały podzielone na sześć etapów: 1. W pierwszej kolejności zostały porównane rozmiary wejściowych danych graficznych, uzyskane w wyniku kompresji za pomocą algorytmu JPEG oraz dwóch kodeków wideo: Sorenson Spark (będącego nieznacznie zmodyfikowaną wersją algorytmu H.263) oraz H.264. Sprawdzona została również szybkość kodowania poszczególnych sekwencji. 2. Następnie została zmierzona wydajność pracy modułu renderującego, w trakcie równoległego przetwarzania danych pochodzących z różnych źródeł: a. zewnętrznego serwera wizualizacyjnego, który generował kolejne klatki obrazu w czasie rzeczywistym, b. sekwencji pojedynczych zdjęć, wczytywanych na bieżąco z lokalnego dysku modułu renderującego, c. sekwencji obrazów, zakodowanych wcześniej przy pomocy kodeka wideo, przechowywanych na lokalnym dysku serwera w formie pojedynczego pliku. 3. Kolejne strumienie danych, przygotowywane przez moduł renderujący, są zawsze przekazywane do drugiego z serwerów jednostki obliczeniowej, gdzie następuje ich dalsza obróbka. Dlatego w kolejnym etapie badań została zmierzona wydajność pracy modułu kodującego w trakcie równoległego przetwarzania wielu sekwencji wideo jednocześnie. Ten moduł jest najbardziej wymagającym obliczeniowo elementem całego systemu. 4. Zakodowane strumienie wideo są w dalszej kolejności przekazywane do kontrolera sesji, zaprojektowanego z myślą o obsłudze wielu użytkowników oraz jednostek obliczeniowych jednocześnie. W kolejnym etapie badań została zatem zmierzona wydajność również tego elementu, sprawdzona przy różnych konfiguracjach liczby połączeń oraz natężenia ruchu sieciowego. 5. W dalszej kolejności zostały zmierzone opóźnienia, występujące w transmisji danych pomiędzy serwerem a urządzeniem mobilnym. Obok jakości kodowanego obrazu i wydajności poszczególnych modułów aplikacji serwera, właśnie ten parametr ma kluczowe znaczenie dla sprawności działania całego układu oraz odpowiedniego poziomu interakcji użytkownika z systemem. 6. Na sam koniec zostało również przetestowane działanie aplikacji klienckiej, uruchamianej na różnych typach urządzeń mobilnych. Jej praca została sprawdzona podczas dekodowania sekwencji audio-wideo, odczytywanych strumieniowo z kontrolera sesji, a także podczas kodowania sygnałów przechwytywanych z kamery oraz mikrofonu użytkownika. Badania zostały przeprowadzone dla różnych konfiguracji rozdzielczości ekranu (320x180, 640x360, 800x450, 1024x576 oraz 1280x720 pikseli) oraz poziomów kompresji danych (256, 512 oraz 1024 kb/s). Analizie porównawczej zostały poddane dwa wyżej wymienione kodeki wideo, tj. Sorenson Spark oraz H.264. Algorytmy te różnią się między sobą poziomem uzyskiwanej kompresji danych oraz zapotrzebowaniem na moce obliczeniowe zarówno na etapie kodowania, jak i dekodowania sekwencji obrazów. Do testów zostały wykorzystane trzy serwery oraz kilka wybranych urządzeń mobilnych, m.in. telefon komórkowy, tablety oraz laptop, wyposażone w różne systemy operacyjne (Android, iOS, Windows oraz Mac OS X). Pomiary zostały przeprowadzone kolejno dla trzech odmiennych sekwencji danych obrazowych (animacji), różniących się między sobą poziomem szczegółowości prezentowanej sceny. Wszystkie badania zostały przeprowadzone dla różnej liczby równoległych zadań realizowanych po stronie serwera (sesji wizualizacyjnych), co pozwoliło na dogłębne sprawdzenie wydajności systemu podczas jednoczesnej obsługi wielu użytkowników. Wnioski z badań oraz rozwiązanie problemów badawczych Przeprowadzone w rozprawie badania pokazały, że zaprojektowany przez autora system umożliwia sprawną wizualizację danych za pośrednictwem różnorodnych urządzeń mobilnych. Niezależnie od użytego kodeka obraz wideo był odtwarzany bardzo płynnie na wszystkich testowanych urządzeniach, a zanotowane opóźnienia były niewielkie, nie przekraczając zazwyczaj jednej sekundy. Taki czas reakcji systemu jest praktyce wystarczający do zapewnienia w pełni interaktywnej wizualizacji danych. Wszystkie urządzenia mobilne bez większych problemów poradziły sobie również z jednoczesnym kodowaniem oraz dekodowaniem sekwencji wideo. Po stronie aplikacji serwera obsługa pojedynczej sesji wizualizacyjnej przebiegała sprawnie we wszystkich przetestowanych konfiguracjach, niezależnie od rozdzielczości ekranu oraz użytego algorytmu kompresji wideo. Wraz z uruchamianiem kolejnych sesji wizualizacyjnych można było zaobserwować rosnące różnice pomiędzy wynikami zanotowanymi dla obu testowanych kodeków. Mniej wymagający obliczeniowo algorytm Sorenson Spark zapewniał płynne kodowanie obrazu w czasie rzeczywistym (powyżej 15 klatek na sekundę) oraz niewielkie opóźnienia (poniżej 1 sekundy) prawie we wszystkich sprawdzonych konfiguracjach, niezależnie od liczby równoległych sesji wizualizacyjnych. Z kolei algorytm H.264 umożliwiał większą redukcję rozmiaru danych, jednak zużywał do tego celu zdecydowanie więcej mocy obliczeniowych serwera kodującego. Podczas przetwarzania obrazów w wysokiej rozdzielczości (1280x720 pikseli) wpływało to momentami niekorzystnie na płynność odtwarzania danych na urządzeniu mobilnym, szczególnie w przypadku obsługi większej liczby sesji przez pojedynczy serwer. Należy jednak podkreślić, że we wszystkich przeprowadzonych pomiarach serwer kodujący był sztucznie obciążany do granic możliwości, kompresując niemal bez przerwy bardzo złożone sekwencje graficzne. Można więc zakładać, że w realnych warunkach byłby on w stanie obsłużyć za pomocą obu algorytmów zdecydowanie większą liczbę osób niż ta, która została zanotowana podczas przeprowadzonych pomiarów. Szczegółowe podsumowanie badań zostało zamieszczone w piątym rozdziale rozprawy. W rozdziale tym została również przeprowadzona analiza zanotowanych wyników, która pokazała, że uzyskana wysoka wydajność systemu była możliwa głównie dzięki: • Wykorzystaniu odpowiedniego modelu zdalnego przetwarzania danych, w którym niemal wszystkie skomplikowane obliczenia są realizowane po stronie serwera, a do użytkownika przesyłane są wyłącznie ostateczne wyniki wizualizacji. • Zastosowaniu do kompresji sekwencji graficznych zaawansowanych kodeków wideo, wykorzystujących predykcję międzyobrazową, które istotnie zmniejszają liczbę danych przesyłanych pomiędzy serwerem a aplikacją kliencką. • Zastosowaniu algorytmów dynamicznej zmiany rozdzielczości oraz jakości kodowanego obrazu, które dostosowują generowane strumienie wizyjne do indywidualnych parametrów technicznych poszczególnych urządzeń mobilnych oraz aktualnie dostępnej przepustowości łącza sieciowego. • Zastosowaniu rozproszonej architektury aplikacji serwera, która umożliwia jednoczesną obsługę wielu użytkowników mobilnych, dzięki: o Rozdzieleniu najbardziej złożonych zadań pomiędzy różne, równolegle pracujące serwery, które na bieżąco wymieniają się między sobą cząstkowymi wynikami obliczeń (generowanie oraz wstępne przetwarzanie sekwencji graficznych, skalowanie i kompresja wideo, dystrybucja strumieni wizyjnych pomiędzy użytkowników). o Wykorzystaniu mechanizmu dynamicznego przydzielania użytkownikom najmniej obciążonych w danej chwili jednostek obliczeniowych. • Zastosowaniu strumieniowej transmisji danych, zarówno pomiędzy poszczególnymi modułami aplikacji serwera, jak i na drodze do użytkownika mobilnego. W połączeniu z opisaną wcześniej rozproszoną architekturą systemu pozwoliło to istotnie zredukować czas oczekiwania na odczyt danych z serwera, dając tym samym możliwość w pełni interaktywnej wizualizacji danych. W ostatniej części rozdziału udzielono też odpowiedzi na postawione wcześniej hipotezy badawcze, tj.: • Możliwa jest efektywna, w pełni interaktywna wizualizacja rozproszonych danych różnego typu (2D, 3D, 4D) za pośrednictwem urządzeń mobilnych. • Wykorzystanie transmisji strumieniowej oraz kodeków wideo pozwala istotnie zmniejszyć ilość danych przesyłanych pomiędzy serwerem a użytkownikiem mobilnym oraz zredukować czas oczekiwania na zaprezentowanie wyników wizualizacji, zapewniając tym samym wysoki poziom interakcji użytkownika ze zdalnymi zasobami. Zastosowanie transmisji strumieniowej pomiędzy poszczególnymi modułami aplikacji serwera pozwala lepiej zbalansować pracę systemu, umożliwiając tym samym równoległą obsługę dużej liczby sesji wizualizacyjnych. • W oparciu o zaproponowany model przetwarzania danych możliwa jest synchroniczna współpraca wielu użytkowników mobilnych jednocześnie, skoncentrowana wokół rozproszonych zasobów graficznych. Rozwiązanie powyższych problemów badawczych umożliwiło tym samym potwierdzenie głównej tezy rozprawy, która została sformułowana w pierwszym rozdziale, mówiącej że „możliwa jest efektywna, zespołowa wizualizacja rozproszonych danych różnego typu, realizowana w czasie rzeczywistym za pośrednictwem powszechnie dostępnych urządzeń mobilnych w oparciu o zaprojektowany system informatyczny”.