Prezentace úkolu číslo 1
FTP server a FTP klient
Jakub Holý, Michal Sluštík, Ondřej Průcha, Milan Víšek ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
FTP server pro obsluhu velkého počtu požadavků Prezentace systému
Ondřej Průcha, Milan Víšek ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Obsah • Zadání - server • Technologie • Design systému • Schéma • Stav implementace • Závěr první části • Zadání – klient • Technologie • Design systému • Schéma • Závěr Ondřej Průcha, Milan Víšek – server ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Zadání • Více vláknový server • 1 serverové vlákno obsluhuje více požadavků • FTP funkce (navazování, ukončování, základní příkazy) • Práce s daty (vytváření adresářů, přejmenování, mazání) • Logování spojení • Konzolové rozhraní
Ondřej Průcha, Milan Víšek – server ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Technologie • Jazyk C, C++ • Framework Qt
Ondřej Průcha, Milan Víšek - server ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Design systému Komponenty • listenThread (QTCPServer) – příchozí připojení • acceptionThread (QThread) – odmítá / přijímá a zařazuje požadavky do fronty • reqQueue (QQueue) – prioritní fronta požadavků • serveTimer (QTimer) – timer maximální délky zpracování • serverThreadPool (QThreadPool) – správa obsluhujících vláken • serveThread (QThread) – obsluhující vlákno • cacheFileIn (QCache) – vyrovnávací paměť pro soubory • cacheFileOut (QCache) – vyrovnávací paměť pro soubory • fileThread (QThread) – vlákno pro nahrávání / ukládání z a do cache
Ondřej Průcha, Milan Víšek - server ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Timer
listenThread
reqQueue
serveThread Pool
serveThread
cache
fileThread
Ondřej Průcha, Milan Víšek - server ČVUT Fakulta elektrotechnická, Praha
cache
fileThread
Y36API – Aplikační rozhraní OS
Implementace V současné době naimplementováno: - ListenThread - ReqQueue - queueItem - částečně přenos dat - částečně acceptionThread - funkční nevláknový testovací FTP server se základní funkčností
Ondřej Průcha, Milan Víšek ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Konec první části prezentace Nějaké dotazy?
Ondřej Průcha, Milan Víšek ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
FTP klient s grafickým uživatelským rozhraním Prezentace systému
Jakub Holý, Michal Sluštík ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Zadání • QT GUI • Více přenosů zároveň • Možnost nastavení počtu těchto přenosů • Práce s daty (upload, download, přejmenování, mazání) • Rozhraní s dvěma panely(lokální, FTP) • Informace o probíhajících přenosech
Jakub Holý, Michal Sluštík ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Technologie • Jazyk C, C++ • QT Creator
Jakub Holý, Michal Sluštík ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Design systému Komponenty • Connection – zajištuje spojení s FTP serverem • Panel – vlastní GUI klienta(lokální a FTP seznam souborů, tlačítka, informace o jednotlivých přenosech) •TransferQueueItem – fronta souborů čekajících na přenos • QxFtp – rozšířená třída QFtp, přidány sloty a signály umožnující více přenosů
Jakub Holý, Michal Sluštík ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
QxFtp
Connection
Main
Panel
TransferQueueItem
Jakub Holý, Michal Sluštík ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Implementace V současné době naimplementováno: - připojování k FTP serveru - nastavení maximálního počtu přenosů - přejmenování souboru nebo složky - mazání souborů - upload - informace o přenosech - částečně download - částečně mazání celých složek
Jakub Holý, Michal Sluštík ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS
Konec Děkujeme za pozornost Nějaké dotazy?
Ondřej Průcha, Milan Víšek, Jakub Holý, Michal Sluštík ČVUT Fakulta elektrotechnická, Praha
Y36API – Aplikační rozhraní OS