[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI SERVEROVÁ ČÁST] [Aktualizace dokumentu: 27.8.2011 3:02:37 Verze dokumentu: 1.0
Obsah Obsah....................................................................................................................................................... 2 1.
Struktura databáze a souborů ......................................................................................................... 3
2.
Soubor registerdevice.php .............................................................................................................. 4
3.
Tabulka registered_devices ............................................................................................................. 4
4.
updatedevice.php............................................................................................................................ 4
5.
Tabulka devices_update_files ......................................................................................................... 5
6.
Tabulka devices_update_time ........................................................................................................ 5
7.
Tabulka devices_update_play ......................................................................................................... 6
8.
report.php ....................................................................................................................................... 6
9.
Tabulka files_in_device ................................................................................................................... 7
10.
Struktura XML pro potvrzení akce. .............................................................................................. 8
11.
Struktura XML pro aktualizaci. .................................................................................................... 8
12.
Registrované zařízení v redakčním systému. ............................................................................ 12
13.
Detail zařízení v redakčním systému. ........................................................................................ 13
14.
Soubory na serveru v redakčním systému. ............................................................................... 14
15.
Seznam skladem a souborů v redakčním systému. ................................................................... 15
16.
Hromadná aktualizace v redakčním systému. ........................................................................... 16
17.
Historie dokumentu................................................................................................................... 17
1. Struktura databáze a souborů
2. Soubor registerdevice.php Tento soubor registruje zařízení do redakčního systému. Parametry:
type – označuje typ zařízení, zpravidla se bude jednat o text v délce maximálně 20 znaků
ui - označuje unikátní identifikační číslo zařízení, není předem známo kolik znaků muže nebo bude řetězec obsahovat.
Zařízení se registruje do tabulky registered_devices viz.: Tabulka registered_devices. Soubor vrací XML viz.: Aplikace bude reportovat na server stav aktualizace. Reportování může probíhat najednou nebo i postupně. Reportování probíhá pomocí reportovacího linku, příklade je zde:
report.php?ui=0102OSAAS23231IW&playlist=done&download=all Povinný parametr je UI, který obsahuje unikátní číslo přístroje. Volitelné parametry:
playlist – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
filefordownload - v případě, že stažení souboru proběhlo v pořádku true, jinak false. o
downloadedfile – doplňkový parametr, umožnuje reportovat jméno souboru.
filefordelete – v případě, že soubor byl smazán true, jinak false. o
deletedfile – doplňkový parametr, umožnuje reportovat jméno souboru.
timeforupdate – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
timeforstart – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
startdelay – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
playnow - hodnota true v případě, že vše proběhlo v pořádku, jinak false.
stopnow – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
PHP soubor musí být schopen zpracovávat všechny povinné i volitelné parametry ať budou zadávány postupně nebo všechny najednou. Výsledek aktualizace bude nahráván podle do příslušných tabulek do sloupce ReportResult viz.: Tabulka devices_update_files, Tabulka devices_update_time a Tabulka devices_update_play. V případě, že filefordownload bude mít true, tak bude přidán záznam do tabulky files_in_device viz.: Tabulka files_in_device.
V případě, že filefordelete bude mít true, tak bude smazán příslušný záznam (dle názvu souboru) z tabulky files_in_device viz.: Tabulka files_in_device. V případě, že playlist bude true, tak bude příslušný obsah z tabulky update_files překopírován do tabulky files_in_device viz.: Tabulka files_in_device. Aktualizuje se last_update a report_result v tabulce registered_devices, viz.: Tabulka registered_devices. Report_result bude true jen v případě, že vše proběhlo v pořádku.
3. Tabulka files_in_device Obsahuje aktuální soubory v zařízení a informaci o tom, zda jsou v playlistu či ne. Struktura:
File_ID – typ integer, délka 11. Jedná se o primární klíč s AI.
Device_ID – ID zařízení viz.: Tabulka registered_devices
Filename – typ varchar, délka 100. Název souboru včetně přípony, příklad: „movie.mov“.
Name – typ text. Název souboru, který se zobrazuje uživatelům.
InPlaylist – typ boolean, délka 1. Pokud je soubor v playlistu, tak je tu true. Jinak false.
PlaylistOrder – typ integer, délka 11. Určuje pořadí souboru v playlistu. Podle tohoto pořadí bude playlist vygenerován a seřazen.
StartDelay – typ integer, délka 7. Obsahuje zpoždění přehrávání od StartTime v sekundách. Výchozí hodnota je 0. Hodnota se zapíše pouze do položky, která má PlaylistOrder = 1.
Struktura XML pro potvrzení akce.
4. Tabulka registered_devices Tabulka obsahuje informace o registrovaném zařízení. Struktura tabulky:
Device_ID – typ integer, délka 11. Jedná se o primární klíč s AI.
UI – typ text. Jedná se o unikátní číslo zařízení.
Type – typ varchar, délka 20. Je zde uložen typ zařízení, typ zařízení je definován až při registraci, nikde nemáme seznam známých typů.
Name – typ varchar, délka 100. Je zde uložen název zařízení, tento název je definován skrze redakční systém, výchozí hodnota je „device“ spolu s ID, příklad je „device 1“.
Registered – typ datetime. Jedná se o čas, kdy bylo zařízení registrováno.
LastUpdate – typ datetime. Jedná se o čas, kdy bylo zařízení naposledy aktualizováno.
Report result – typ boolean, délka 1. True je v případě, že aktualizace proběhla v pořádku a false je v případě, že aktualizace někde selhala.
5. updatedevice.php Tento soubor zajišťuje aktualizaci zařízení. Vrací XML viz.: Struktura XML pro aktualizaci. Soubor je generovaný z tabulek viz.: Tabulka devices_update_files, Tabulka devices_update_time a Tabulka devices_update_play. Soubor si najde nejdříve patřičné Device_ID v tabulce viz.: Tabulka registered_devices podle UI. A pak si podle Device_ID a prázdného hodnoty sloupce ReportResult najde data k aktualizaci. Parametry:
ui - označuje unikátní identifikační číslo zařízení, není předem známo kolik znaků muže nebo bude řetězec obsahovat.
6. Tabulka devices_update_files Obsahuje data ke generování XML souboru pro aktualizaci souborů a playlistu. Tabulka bude před každou novou aktualizací vyprázdněna (data budou vymazána). V databázi se tak budou nacházet pouze informace o současném stavu a ne o minulosti. Struktura:
Update_FID – typ integer, délka 11. Jedná se o primární klíč s AI.
Device_ID – ID zařízení viz.: Tabulka registered_devices
Filename – typ varchar, délka 100. Název souboru včetně přípony, příklad: „movie.mov“.
Filesize – typ text. Velikost souboru v kilobajtech.
Name – typ text. Název souboru, který se zobrazuje uživatelům.
InPlaylist – typ boolean, délka 1. Pokud je soubor v playlistu, tak je tu true. Jinak false.
PlaylistOrder – typ integer, délka 11. Určuje pořadí souboru v playlistu. Podle tohoto pořadí bude playlist vygenerován a seřazen v XML souboru do playlist tagu.
DownloadAction – typ boolean, délka 1. Pokud je soubor určený pro stažení do zařízení, tak tu bude true. Jinak false. Soubor se bude vyskytovat ve filesfordownload tagu v XML.
DeleteAction – typ boolean, délka 1. Pokud je soubor určený pro smazání v zařízení, tak tu bude true. Jinak false. Soubor se bude vyskytovat ve filesfordelete tagu v XML.
ReportResult – typ integer, délka 1. Pokud aktualizace proběhla úspěšně, tak tu bude 1. Při neúspěchu 0. Výchozí hodnota tu bude prázdný znak – prázdný znak znamená, že soubor ještě nebyl aktualizován.
7. Tabulka devices_update_time Obsahuje data ke generování XML souboru pro aktualizaci časů. Tabulka bude před každou novou aktualizací vyprázdněna (data budou vymazána). V databázi se tak budou nacházet pouze informace o současném stavu a ne o minulosti. Struktura:
Update_TID – typ integer, délka 11. Jedná se o primární klíč s AI.
Device_ID – ID zařízení viz.: Tabulka registered_devices.
StartUpdateTime – typ time. Obsahuje začátek časového úseku pro aktualizaci. Údaj bude v timeforupdate tagu v XML.
StopUpdateTime – typ time. Obsahuje konec časového úseku pro aktualizaci. Údaj bude v timeforupdate tagu v XML.
StartTime – typ time. Obsahuje začátek přehrávání. Údaj bude v timeforstart tagu.
StartDelay – typ integer, délka 7. Obsahuje zpoždění přehrávání od StartTime v sekundách. Údaj bude v startdelay tagu v XML.
ReportResult – typ integer, délka 1. Pokud aktualizace proběhla úspěšně, tak tu bude 1. Při neúspěchu 0. Výchozí hodnota tu bude prázdný znak – prázdný znak znamená, že soubor ještě nebyl aktualizován.
8. Tabulka devices_update_play Obsahuje data ke generování XML souboru pro spuštění/zastavení přehrávání. Tabulka bude před každou novou aktualizací vyprázdněna (data budou vymazána). V databázi se tak budou nacházet pouze informace o současném stavu a ne o minulosti. Struktura:
Update_PID – typ integer, délka 11. Jedná se o primární klíč s AI.
Device_ID – ID zařízení viz.: Tabulka registered_devices.
PlayNow – typ boolean, délka 1. Pokud má zařízení začít s přehráváním, tak tu bude true. Jinak false. Hodnota se bude vyskytovat v playnow tagu v XML.
StopNow – typ boolean, délka 1. Pokud má zařízení zastavit přehrávání, tak tu bude true. Jinak false. Soubor se bude vyskytovat v stopnow tagu v XML.
ReportResult – typ integer, délka 1. Pokud aktualizace proběhla úspěšně, tak tu bude 1. Při neúspěchu 0. Výchozí hodnota tu bude prázdný znak – prázdný znak znamená, že soubor ještě nebyl aktualizován.
9. report.php Aplikace bude reportovat na server stav aktualizace. Reportování může probíhat najednou nebo i postupně. Reportování probíhá pomocí reportovacího linku, příklade je zde:
report.php?ui=0102OSAAS23231IW&playlist=done&download=all Povinný parametr je UI, který obsahuje unikátní číslo přístroje. Volitelné parametry:
playlist – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
filefordownload - v případě, že stažení souboru proběhlo v pořádku true, jinak false. o
downloadedfile – doplňkový parametr, umožnuje reportovat jméno souboru.
filefordelete – v případě, že soubor byl smazán true, jinak false. o
deletedfile – doplňkový parametr, umožnuje reportovat jméno souboru.
timeforupdate – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
timeforstart – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
startdelay – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
playnow - hodnota true v případě, že vše proběhlo v pořádku, jinak false.
stopnow – hodnota true v případě, že vše proběhlo v pořádku, jinak false.
PHP soubor musí být schopen zpracovávat všechny povinné i volitelné parametry ať budou zadávány postupně nebo všechny najednou. Výsledek aktualizace bude nahráván podle do příslušných tabulek do sloupce ReportResult viz.: Tabulka devices_update_files, Tabulka devices_update_time a Tabulka devices_update_play. V případě, že filefordownload bude mít true, tak bude přidán záznam do tabulky files_in_device viz.: Tabulka files_in_device. V případě, že filefordelete bude mít true, tak bude smazán příslušný záznam (dle názvu souboru) z tabulky files_in_device viz.: Tabulka files_in_device. V případě, že playlist bude true, tak bude příslušný obsah z tabulky update_files překopírován do tabulky files_in_device viz.: Tabulka files_in_device. Aktualizuje se last_update a report_result v tabulce registered_devices, viz.: Tabulka registered_devices. Report_result bude true jen v případě, že vše proběhlo v pořádku.
10.
Tabulka files_in_device
Obsahuje aktuální soubory v zařízení a informaci o tom, zda jsou v playlistu či ne. Struktura:
File_ID – typ integer, délka 11. Jedná se o primární klíč s AI.
Device_ID – ID zařízení viz.: Tabulka registered_devices
Filename – typ varchar, délka 100. Název souboru včetně přípony, příklad: „movie.mov“.
Name – typ text. Název souboru, který se zobrazuje uživatelům.
InPlaylist – typ boolean, délka 1. Pokud je soubor v playlistu, tak je tu true. Jinak false.
PlaylistOrder – typ integer, délka 11. Určuje pořadí souboru v playlistu. Podle tohoto pořadí bude playlist vygenerován a seřazen.
StartDelay – typ integer, délka 7. Obsahuje zpoždění přehrávání od StartTime v sekundách. Výchozí hodnota je 0. Hodnota se zapíše pouze do položky, která má PlaylistOrder = 1.
11. Struktura XML pro potvrzení akce. <xml>
true hodnoty actionresult:
true – dotaz dopadne dobře
false – dotaz nedopadne dobře
12. Struktura XML pro aktualizaci. <xml>
animace.mp4 animace animace.mp4 animace
animace.mp4 155200 animace.mp4 155200 animace.mp4 animace.mp4
<start> 12:15:12 <stop> 18:15:18 08:01:01 <startdelay> 3600
true <stopnow> false přehled kořenových tagů:
playlist – seznam videi pro přehrávání. o
value
filename - jméno souboru
name - jméno, které bude zobrazeno
filesfordownload - seznam souboru ke stažení. o
file
filename - jméno souboru
filesize - velikost v kilobajtech
filesfordelete – seznam souborů ke smazání. o
filename - jméno souboru
timeforupdate – obsahuje čas začátku a konce povoleného dotazování na server ohledně aktualizace. Je to z důvodů, že chceme ať se aplikace aktualizuje mimo provozní dobu restaurace. Od toho času začíná 5 minutová perioda pro aktualizaci (na straně zařízení).
timeforstart – čas od kdy se mají začít přehrávat videa, je to třeba čas otevření restaurace atd.
startdelay – zpoždění v sekundách od timeforstart, tato hodnota tam je pro případ, že budeme chtít spustit nějaké video třeba o 5 vteřin později než předchozí.
playnow - true v případě, že chceme pustit video teď hned, false v opačném případě.
stopnow – true v případě, že chceme zastavit video teď hned, false v opačném případě.
XML soubor může obsahovat všechny tagy nebo jen některé (Kořenové tagy můžou být prázdné v případě, že neobsahuji nic k aktualizaci.).
13. Registrované zařízení v redakčním systému.
Obrázek je pouze ilustrační. Přibude nová sekce v redakčním systému a to "vzdálená správa zařízení". Na úvodní stránce jsou zobrazena všechna registrovaná zařízení, zobrazená je tedy kategorie "registrované zařízení". Akce "upravit" zobrazuje detail zařízení a tak ve finální implementaci bude tato akce přejmenována na "zobraz detail". Po kliku na tuto akci se zobrazí nové okno s detailem zařízení viz.: Detail zařízení v redakčním systému. Sloupec "název" obsahuje hodnotu ze sloupce name z tabulky registered_devices, viz.: Tabulka registered_devices. Sloupec "#" obsahuje hodnotu ze sloupce Device_ID z tabulky registered_devices, viz.: Tabulka registered_devices. Akce budou tyto:
smazat - zařízení bude smazáno (odregistrováno).
zobraz detail - zobrazí se detail zařízení viz.: Detail zařízení v redakčním systému.
14.
Detail zařízení v redakčním systému.
Obrázek je pouze ilustrační. Obrazovka bude obsahovat tyto karty: obecné - obsahuje upravovatelné informace o názvu a typu zařízení. Neupravovatelné informace o DeviceID a UI. seznam skladem a souborů - obsahuje řaditelný seznam souborů, který je sezařen podle PlaylistOrder (část aktivního playlistu). Informace pocházejí z tabulky files_in_device, viz.: Tabulka files_in_device. Soubory, které nemají PlaylistOrder jsou řazeny abecedně a nacházejí se pod soubory sezařenými podle PlaylistOrder (část souborů). Mezi oběma skupinami je mezera, aby se zvýraznilo, které soubory jsou součástí aktuálního playlistu a které ne. Soubory lze mezi skupinami libovolně přetahovat a libovolně je řadit. Lze označit soubory ke smazání ze zařízení, ale jen ty, které se nacházejí mimo část aktivního playlistu. Jako inspirace pro design okna může sloužit design okna z kapitoly: Hromadná aktualizace v redakčním systému. V horní části se nachází možnost nastavení zpoždění od základního času spuštění a také možnost nastavení základního času spuštění. výsledek aktualizace - obsahuje seznam položek z tabulek: devices_update_files, devices_update_time a devices_update_play - viz.: Tabulka devices_update_files, Tabulka devices_update_time a Tabulka devices_update_play. V případě, že seznam bude obsahovat nějakou položku z hodnotou false, tak bude u této položky v akcích tlačítko "přidat do nové aktualizace". Stránka bude obsahovat i datum poslední aktualizace z tabulky registered_devices. viz.:Tabulka registered_devices. Spodní tlačítka budou tyto: aktualizovat a zavřít - provede se aktualizace zařízení, uloží se všechny změny a zároveň se zavře okno.
zavřít - neprovede se aktualizace zařízení, uloží se všechny změny (mimo změn v aktualizaci) a zároveň se zavře okno. zrušit - neprovede se aktualizace zařízení, neuloží se změny a zároveň se zavře okno.
15. Soubory na serveru v redakčním systému.
Obrázek je pouze ilustrační. V knihovně přibude další kategorie a to video. Současný princip knihovny zůstane zachován. Náhled u videa nebude generován, místo náhledu se bude zobrazovat výchozí ikonka typu souboru. Grafik musí dodat výchozí ikonky pro jednotlivé typy video souborů.
16. Seznam skladem a souborů v redakčním systému.
Obrázek je pouze ilustrační. Tato obrazovka slouží k lehčímu porovnávání seznamů skladeb v jednotlivých zařízeních. Obrazovka obsahuje rozbalitelný seznam všech seznamů skladeb. Seznam je řazen nejdříve podle typu a pak podle zpoždění startu. Lze tak díky tomu snadno získat obrázek jak budou videa přehrávána. Jako název seznamu byl použit název zařízení ve kterém se daný seznam nachází. Seznam nelze editovat, lze ho jen prohlížet. Akce jsou zobrazeny jen v řádcích, kde je zobrazen název seznamu skladem. Po rozbalení seznamu se změní ikonka z plusu na mínus a zobrazí se příslušný seznam. Akce bude pouze jedna a to tato:
upravit - zobrazí se záložka seznam skladem a souborů z Detail zařízení v redakčním systému. a to pro dané zařízení k níž náleží daný seznam skladeb.
17. Hromadná aktualizace v redakčním systému.
Obrázek je pouze ilustrační. Tato obrazovka slouží k hromadné aktualizaci zařízení podle typu zařízení. Načítá se vždy poslední verze playlistu pro zvolený typ zařízení. Potřebné údaje se berou z tabulek registered_devices a files_in_device. Typ zařízení se volí pomocí rozbalovacího menu v levém horním rohu. Údaje do toho menu jsou automaticky načítána a filtrována z tabulky registered_devices. V horní časti je načtená poslední verze playlistu (část aktivního playlistu) a ve spodní části jsou ostatní soubory (část souborů), které se nenacházejí v playlistu, ale jsou uloženy v knihovně ve složce video. Pokud bude soubor přetažen z vrchní časti (část aktivního playlistu) do spodní části (část souborů), tak bude automaticky označen jako soubor ke smazání v zařízeních, kde se vyskytuje. Tlačítko aktualizovat se nachází v pravé horní části, po jeho zmáčknutí dojde k vygenerování aktualizačních seznamů pro jednotlivá zařízení pod zvoleným typem. Možnost nastavení základního času spuštění se nachází v levém horním rohu pod rozbalovacím seznamem s typem zařízení a je realizována skrze rozbalovací nabídky. Možnost nastavení zpoždění od základního času spuštění není na této obrazovce dostupná. Lze to ručně dostavit v nastaveních pro jednotlivá zařízení.
18. Historie dokumentu 1.0 - původní zadání.