Instrukcja
Transkrypt
Instrukcja
Instrukcja 6 marca 2014 Usługi strumieniowe Dane strumieniowe charakteryzują się następującymi cechami. • Bloki danych napływają w sposób ciągły. • System nie ma wpływu na kolejność napływających danych. • Strumień jest teoretycznie nieskończony. • Blok danych ze strumienia po przetworzeniu może zostać zarchiwizowany lub porzucony. Nie może on zostać przywrócony, chyba że znajduje się w pamięci podręcznej. Jej rozmiar jest zwykle dużo mniejszy od wielkości strumienia. Przetwarzanie danych strumieniowych ma bardzo wiele zastosowań. Poniżej omówiono kilka dziedzin, w których ten rodzaj danych jest stosowany. • Przetwarzanie danych audio/wideo. Jest to klasyczny przykład, kiedy dane występują w postaci strumieni. Usługi związane z przetwarzaniem tego typu danych mają zastosowanie zaczynając od monitorowania miejsc, przez rozrywkę, na obserwacjach astronomicznych kończąc. Oczywiście w zależności od zastosowania parametry strumieni będą różne. • Przetwarzanie danych telemetrycznych. W zagadnieniach związanych z monitorowaniem czy to warunków pogodowych , czy zanieczyszczenia powietrza lub prędkości pojazdów na drodze, efektem pomiarów jest strumień kolejnych wartości mierzonych parametrów. Wyniki pomiarów wymagają przetwarzania, a co najmniej przesłania i archiwizacji. • Przetwarzanie strumieni związanych z telemedycyną . Jest to dziedzina bardzo podobna do telemetrii, jednak ze względu na fakt, iż może od nich zależeć ludzkie zdrowie lub życie wymaga wydzielenia tej kategorii usług. Wymagania pozafunkcjonalne stawiane tym usługom są dużo bardziej restrykcyjne. Model strumieniowej usługi atomowej Na rysunku 1 przedstawiono przyjęty model komunikacyjny usługi strumieniowej. Wyszczególniono w nim dwa elementy. Usługę strumieniową, jako główny element wykonawczy oraz moduł zarządzania. Usługa strumieniowa posiada interfejsy wejściowe oraz interfejsy wyjściowe. Ich liczba zależy od konkretnej usługi. Usługa odbiera strumień danych na interfejsie wejściowym. Za pomocą interfejsu wyjściowego wysyła rezultat swojego działania. Jest on również strumieniem danych. Moduł zarządzania usługą odpowiada za utworzenie instancji przydzielonej do realizacji konkretnego zadania. Moduł ten może być udostępniony użytkownikowi w postaci usługi. Przez jej interfejs użytkownik wysyła żądanie uruchomienia instancji. W odpowiedzi otrzyma on adres na jaki może wysyłać strumień danych. Ponadto w żądaniu może zostać przekazana informacja, gdzie ma trafiać strumień wynikowy. O ile z interfejsem usługi wsadowej wiąże się wykorzystywanie jednego konkretnego protokołu, to interfejsy usługi strumieniowej mogą obsługiwać wiele formatów i protokołów. O tym jaki z nich będzie wykorzystywany może decydować użytkownik poprzez określenie tego w żądaniu. Oczywiście musi być on obsługiwany przez daną usługę. Tak zdefiniowany model usługi może być również wykorzystany do tworzenia usług nie tylko przetwarzających strumienie danych. Nic nie stoi na przeszkodzie aby do za pomocą klasycznego interfejsu uruchamiać instancje usługi, do której, poprzez interfejs wejściowy, wysłane zostanie porcja danych. Ponadto 1 =ÇGDQLH XUXFKRPLHQLD XV XJL VWUXPLHQLRZHM 8>\WNRZQLN 0RGX ]DU]ÇG]DQLD XV XJD ZVDGRZD 6WUXPLH GDQ\FK ,QWHUIHMV ZHM FLRZ\ 8V XJD VWUXPLHQLRZD ,QWHUIHMV Z\M FLRZ\ 6WUXPLH GDQ\FK Rysunek 1: Model komunikacji z usługą strumieniową. model ten daje większą elastyczność, gdyż rezultat nie musi być przesłany z powrotem do użytkownika. Można go przesłać w dowolne miejsce określone podczas uruchamiania instancji usługi. Parametry usługi strumieniowej Usługę strumieniową można scharakteryzować za pomocą następujących parametrów: funkcjonalnych • klasa usługi – opis funkcjonalny, • liczba wejść i wyjść, • typy i formaty danych wejściowych i wyjściowych, • adres interfejsu zarządzania, pozafunkcjonalnych • czas przetwarzania, • koszt, • i innych. Rozróżniono pojęcie typu i formatu danych strumieniowych. Typ danych jest to cecha opisująca jakie dane są obsługiwane przez dany interfejs. Czy jest to strumień audio, czy strumień zawierający ciągły pomiar temperatury. Formatem jest natomiast sposób reprezentacji tych danych w strumieniu. Przykładami formatów mogą być na przykład formaty wideo: MPEG-2, MPEG-4, itd. Strumieniowe usług złożone Strumieniowymi usługami złożonymi są usługi złożone, skomponowane z usług strumieniowych zgodnych z modelem zaprezentowanym w poprzednim podrozdziale. Z uwagi na fakt, iż strumieniowe usługi atomowe mogą przesyłać dane do innego miejsca niż to, z którego odebrały strumień wejściowy możliwe budowanie usług złożonych, które przesyłają dane bezpośrednio pomiędzy sobą oraz od źródła do celu. Kolejne usługi atomowe, należy jednak uruchomić za pomocą ich modułów zarządzania. Aby uprościć ten proces niezbędne jest wykorzystanie odpowiedniej usługi pośredniczącej. Powinna ona na podstawie określonych wymagań zbudować strumieniową usługę złożoną. Ponadto istotnym jest aspekt zarządzania zasobami wykorzystywanymi przez usługę złożoną, na co składają się zasoby wykorzystywane przez poszczególne usługi atomowe. Strumieniową usługę złożoną można opisać przy pomocy grafu. Węzłami tego grafu są opisy usług atomowych, źródeł danych oraz ich celów. Krawędziami tego grafu są połączenia odwzorowujące docelową strukturę połączeń, którymi mają być przesyłane dane strumieniowe. 2 Przykładowy przypadek użycia Budowana usługa złożona składa się z sześciu usług atomowych. Posiada ona jedno wejście oraz dwa wyjścia. Źródłem danych jest telefon komórkowy agregujący dane z czujników. W tym przypadku strumień z telefonu zawiera dane z akcelerometru, żyroskopu oraz magnetometru. Zadaniem usługi złożonej jest rozpoznanie i ocena poszczególnych uderzeń tenisisty. Pierwszą usługą atomową jest detektor uderzenia. Wybiera on ze strumienia z czujników fragmenty, które odpowiadają momentowi uderzenia. Usługa ta posiada jedno wejście oraz jedno wyjście. Uzyskiwany w efekcie operacji detekcji strumień należy przesłać do usługi obliczania kątów oraz klasyfikacji uderzenia. Z tego względu kolejną usługą jest rozdzielacz strumienia z detektora. Usługa te przesyła strumień otrzymany na wejściu do dwóch odbiorców. SURILO ]DZRGQLND 3DQHO WUHQHUD 2EOLF]DQLH NÇWµZ 7HOHIRQ NRPµUNRZ\ 'HWHNFMD XGHU]HQLD 5R]G]LHODQLH VWUXPLHQLD ] GHWHNWRUD 2FHQLDQLH VWUXPLHQLD 5R]G]LHODQLH RFHQLRQHJR VWUXPLHQLD .ODV\ILNDFMD XGHU]HQLD %D]D GDQ\FK Rysunek 2: Przykładowy graf usług aplikacji SmartFit – wspomaganie treningu tenisisty. Wykryte uderzenia poddawane są klasyfikacji. Do strumienia dodawane są informacje jakie uderzenie zostało wykonane, to znaczy czy był to forehand, backhand czy serwis. Równolegle inna usługa oblicza kąty obrotu związane z ruchem zawodnika. W efekcie powstaje strumień opisujący ruch zawodnika w postaci kątów. Do kolejnej usługi trafiają dwa strumienie, jeden opisujący ruch zawodnika w postaci kątów obrotu poszczególnych części ciała, drugi zaś zawierający strumień z czujników wzbogacony o informacje o typie uderzenia. Na podstawie tych dwóch strumieni uderzenie jest oceniane na zasadzie porównania z wzorcem ruchu dla danego profilu zawodnika. Instancja usługi oceniającej jest uruchamiana z parametrem zawierającym profil zawodnika. Strumień wyjściowy zawiera strumień pochodzący od klasyfikatora wzbogacony o ocenę. Tak przygotowany strumień rozdzielany jest w kolejnej usłudze, aby w efekcie z usługi złożonej przesyłane były dwa strumienie. Jeden z nich ma trafić do bazy danych celem archiwizacji, drugi zaś do trenera. Opis zadania Celem zadania jest opracowanie usług przetwarzających strumienie danych dla wybranych przypadków użycia. Etap 1 Pierwszym etapem realizacji zadania jest wybór przypadku użycia dla usługi złożonej. Przykładowe tematy: • Przetwarzanie dźwięku: – korektor graficzny dla strumienia audio (FFT -¿ zmienny obraz), – filtr pasmowo przepustowy (przedział zadawany jako parametr) dla strumienia audio, – konwerter formatów dla strumieni audio, – redukcja szumu (dowolną metodą) ze strumienia audio, – zmiana poziomu głośności, • Przetwarzanie obrazu: 3 – rozjaśnianie (ściemnianie) obrazu, – redukcja szumu ze strumienia wideo, • Rozdzielanie i synchronizacja strumieni audio i wideo (dwie usługi), • Telemetria: – analiza temperatury (z wielu źródeł) z alarmem stanów (przekroczenie jakiegoś poziomu skutkować powinno wygenerowaniem dodatkowego strumienia/zdarzenia), Etap 2 Kolejnym etapem powinno być zaprojektowanie usługi złożonej, to znaczy podział wymaganej funkcjonalności na podstawowe funkcje realizowane przez poszczególne usługi. Każda z usług powinna zostać opisana według schematu podanego powyżej(Parametry usługi strumieniowej ). Połączenia między usługami należy zobrazować w postaci grafu połączeń. Etap 3 Do zaprezentowania działania usługi złożonej niezbędne jest przygotowania źródła danych oraz interfejsu prezentującego wyniki. Źródło danych powinno mieć postać symulatora lub usługi strumieniującej pliki audio/wideo. Interfejs do prezentacji strumienia wyjściowego powinien być dostosowany do typu strumienia, to znaczy, że strumienie audio/wideo powinny być odtwarzane, a strumienie telemetryczne prezentowane w postaci ciągu próbek lub wykresów. Etap 4 Najważniejszym elementem jest przygotowanie (zaprogramowanie) usług. Powinny one korzystać z otrzymanego framework’u. 4