Vysoké Učení Technické V Brně
Total Page:16
File Type:pdf, Size:1020Kb
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Digital library of Brno University of Technology VYSOKÉ U ČENÍ TECHNICKÉ V BRN Ě BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMA ČNÍCH TECHNOLOGIÍ ÚSTAV INFORMA ČNÍCH SYSTÉM Ů FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS NNTP SERVER JAKO SLUŽBA PRO SYSTÉMY ZALOŽENÉ NA TECHNOLOGII WINDOWS-NT DIPLOMOVÁ PRÁCE MASTER‘S THESIS AUTOR PRÁCE BC. JOSEF LOUPANEC AUTHOR BRNO 2007 VYSOKÉ U ČENÍ TECHNICKÉ V BRN Ě BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMA ČNÍCH TECHNOLOGIÍ ÚSTAV INFORMA ČNÍCH SYSTÉM Ů FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS NNTP SERVER JAKO SLUŽBA PRO SYSTÉMY ZALOŽENÉ NA TECHNOLOGII WINDOWS-NT NNTP SERVER AS A WINDOWS NETWORK SERVICE DIPLOMOVÁ PRÁCE MASTER‘S THESIS AUTOR PRÁCE BC. JOSEF LOUPANEC AUTHOR VEDOUCÍ PRÁCE ING. PAVEL O ČENÁŠEK SUPERVISOR BRNO 2007 NNTP server jako služba pro systémy založené na technologii Windows-NT Vedoucí: Očenášek Pavel, Ing., UIFS FIT VUT Přihlášen: Loupanec Josef, Bc. Zadání: 1. Seznamte se s protokoly NNTP, HTTP, případně s jejich zabezpečenými variantami, podle příslušných RFC. 2. Seznamte se s možnostmi tvorby aplikací v prostředí Windows-NT (resp. Win- XP). Především se zaměřte na implementaci služeb (services). 3. Navrhněte vlastní diskuzní server umožňující práci s uvedenými protokoly. Server bude umět pracovat s lokálními diskuzními složkami (víceuživatelský přístup) a případně předávat požadavky na vzdálené diskuzní servery. 4. Donávrhu zahrňte vzdálené stahování diskuzních příspěvků z jiných serverů. 5. Navržený server implemetujte jakoslužbu pro prostředí Win-NT. 6. Zhodnoťte dosažené výsledky a diskutujte další možnosti rozšíření. Část požadovaná pro obhajobu SP: Body 1 - 4. Kategorie: Počítačové sítě Operační systém: Windows-NT (Win2000, WinXP, ...) Literatura: • Příslušná RFC k jednotlivým protokolů s formátům zpráv. • Dále dle doporučení vedoucího práce. Komentář: Server musí podporovat autentizaci uživatele. Abstrakt: Tato práce se zabývá analýzou požadavk ů, návrhem a implementací internetového diskusního serveru. Přesn ěji řečeno, jedná se o server spravující diskusní skupiny s p řísp ěvky a zajiš ťující jejich dostupnost prost řednictvím protokolu NNTP a HTTP. Server podporuje autentizaci uživatele a disponuje volitelným proxy módem, kdy jsou všechny NNTP požadavky p řeposílány na vzdálený NNTP diskusní server. Sou částí programu je též mechanismus zajiš ťující stahování p řísp ěvk ů ze vzdálených NNTP server ů a tím pádem plnící distribu ční funkci. Aplikace je ur čena pro opera ční systémy MS Windows po čínaje verzí NT a vyšší. Program pob ěží jako služba NT a je konfigurovatelný prost řednictvím grafického uživatelského rozhranní. V dokumentu jsou také obsaženy teoretické informace nutné pro praktické zvládnutí výše uvedených krok ů. Klí čová slova: Rela ční databáze, HTTP protokol, NNTP protokol, proxy server, regulární výraz, formát diskusního přísp ěvku, služba Windows, SQL, MySQL, server, diskusní skupina, distribuce, HTML, port, URL, vlákno, service control manager, relace, primární klí č, Abstract: This work includes specification and analysis of requirements, design and implementation of the internet news server. The server controls newsgroups and associated news. It provides availability of the articles by NNTP protocol and HTTP protocol (by web interface). The server supports a user authentication and an optional proxy mode, when all NNTP requests are resent to another remote NNTP server. A mechanism that provides news-downloading from remote NNTP servers and performs distribution function is included too. The application is designed to run on MS Windows NT (and higher version) as a NT service. The server is configurable by a graphic user interface. The work also includes theoretical information needed for successful accomplishment of the above-mentioned requirements. Key Words: Relation Database, HTTP, NNTP, proxy server, regular expression, news format, Windows service, SQL, MySQL server, newsgroup, distribution, HTML, port, URI, thread, service control manager, relation, primary key Josef Loupanec: NNTP server jako služba pro systémy založené na technologii Windows NT, diplomová práce, Brno, FIT VUT v Brn ě, 2007 Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatn ě pod vedením Ing. Pavla O čenáška. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal . Obsah Úvod ..................................................................................................................................................3 Up řesn ění požadavk ů..........................................................................................................................3 Teoretické informace ..........................................................................................................................4 NNTP protokol...............................................................................................................................4 Úvod ..........................................................................................................................................4 NNTP P řehled............................................................................................................................5 WILDMAT formát.....................................................................................................................5 Příkazy administrace sezení........................................................................................................6 Příkazy pro zasílání a stahování článk ů.......................................................................................7 Příkazy pro autentizaci .............................................................................................................15 Odpov ědi NNTP Serveru..........................................................................................................15 Formát diskusních p řísp ěvk ů ........................................................................................................17 Popis HTTP protokolu..................................................................................................................18 Úvod ........................................................................................................................................18 Požadavky................................................................................................................................18 Odpov ědi..................................................................................................................................19 URL.........................................................................................................................................20 Pole v hlavi čkách .....................................................................................................................20 Spojení:....................................................................................................................................22 Služby systému Windows NT .......................................................................................................22 Rela ční databáze...........................................................................................................................23 Úvod ........................................................................................................................................23 SQL .........................................................................................................................................24 Regulární výrazy ..........................................................................................................................24 Návrh systému..................................................................................................................................25 Návrh struktury aplikace...............................................................................................................25 Návrh NNTP rozhraní...................................................................................................................27 Návrh HTTP rozhraní...................................................................................................................28 Návrh konfigura čního rozhraní .....................................................................................................29 Návrh automatizovaného NNTP klienta........................................................................................29 Návrh databáze.............................................................................................................................30 Implementace systému......................................................................................................................30 Implementace NNTP rozhraní.......................................................................................................31 1 Popis t řídy NNTPServer...........................................................................................................31 Popis t řídy SocketHandler ........................................................................................................32 Popis t řídy NNTPProxy............................................................................................................33 Popis t řídy Head.......................................................................................................................33