Finalni implementace reseni integrace PT
Z VirtlabWiki
Obsah |
Úvod
Tento dokument sepisuji hlavně jako doplnění toho co není popsáno v textu mé diplomové práce. Přeci jen jsem ne všechny věci věděl již při odevzdávání textu DP. Jako primární zdroj však může sloužit text práce dostupný v informačních zdrojích.
Jak je popsáno v teoretické části je projekt rozdělen na dvě samostatně fungující části. Jedna se stará o komunikaci s klientem (PTServer) a druhá o převody rámců (PTBridge). Vše je v jazyce C++.
Provoz
Pro úspěšné provozování PTServeru je potřeba knihovna gSOAP, (http://sourceforge.net/projects/gsoap2/) pro nekomerční použití je tato knihovna zdarma. Momentálně používám verzi 2.7.17, která je nejaktuálnější. Verze knihovny, která je v depozitářích Debianu (2.7.9l) není kompatibilní. Aby bylo možno vygenerovat potřebné Proxy třídy bylo potřeba vložit oba WSDL soubory do jednoho hlavičkového souboru. Tím se dá vyhnout mnoha chybám, které se mi projevily. Pomocí této knihovny je vypracován SOAP klient pro posílání žádostí řídícímu serveru. Ten musí komunikovat přes šifrovaný protokol SSL, proto je potřeba mít gSOAP přeložen s podporou OpenSSL a rovněž připojit knihovny SSL a Crypto. Dále je zde SOAP server, který naslouchá na nastaveném portu pro příjem zpráv o aktivaci linky a ukončení rezervace z řídícího serveru.
Úprava SOAP
Protože je možné, že bude otřeba rovněž v budoucnu upravit SOAP část této aplikace přídávám zde i popis jak to vše provést. Nejjednoduší cesta je nejspíše úprava WSDL souboru. A následné znovuvygenerování všech potřebných tříd a hlaviček. Překlad do hlavičkového souboru, který pak zpracovává generátor tříd se provede příkazem
wsdl2h -o soap.h PTServer.wsdl Virtlab.wsdl
Přičemž PTServer.wsdl a Virtlab.wsdl jsou soubory popisující SOAP protokol na strane PTServeru a Virtlabu Dále je pak nutno z tohoto souboru znovu vygenerovat všechny potřebné třídy. To se provede příkazem:
soapcpp2 -i soap.h -I/usr/local/share/gsoap/import/ -x
Parametrem -i určíme vstupní soubor, parametr -I určuje cestu do složky kde máme gSOAP jelikož pro kompilaci je potřeb hlavička stlvector.h a parametrem -x jen říkáme, aby se negenerovali vzorové zprávy.
Věci nutné k dořešení:
- ošetření neočekávaných vstupů (i SOAP)
- otestování v zátěži
- integrace do nové architektury řídícího serveru
- využití zpráv MU PortInfo pro zpříjemnění uživatelské práce
Zdroje:
Integrace distribuované laboratoře počítačových sítí se simulátorem PacketTracer. Diplomová práce. FEI VŠB-TU Ostrava, 2010.