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