Raport dotyczący przeprowadzonych zmian w aplikacji



Podobne dokumenty
B Instrukcja do ćwiczenia

INTENSE PLATFORM Zmiany w wersji Wersja 7.2

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Jak rozpocząć pracę? Mapa

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Pomoc dla systemu WordPress

Moduł mapowania danych

Program do wagi SmartScale

System imed24 Instrukcja Moduł Analizy i raporty

Wykaz zmian w programie SysLoger

1. Opis. 2. Wymagania sprzętowe:

Instrukcja obsługi Konfigurator MLAN-1000

REFERAT PRACY DYPLOMOWEJ

Wykaz zmian w programie SysLoger

Zmiany w programie VinCent 1.29

Konwerter XML Dla Programów Symfonia Kadry i Płace oraz Forte Kadry i Płace

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

Instrukcja użytkowania oprogramowania SZOB PRO

BANK GOSPODARSTWA KRAJOWEGO. w systemie BGK@24BIZNES

Instrukcja użytkownika

Jednolity Plik Kontrolny dla ewidencji zakupu i sprzedaży VAT wg wersji 17 deklaracji VAT-7

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Podstawy technologii WWW

INSTRUKCJA INSTALACJI I OBSŁUGI ZBIORCZE E-DEKLARCJE. dla Kadr Plac i ZUS PRO

Dokumentacja SMS przez FTP

1 Moduł Modbus ASCII/RTU 3

Moduł mapowania danych

Wykaz zmian w programie SysLoger

Przed przystąpieniem do czytania dokumentu, proszę o zapoznanie się z podstawowym dokumentem Instrukcja obsługi AZU dla użytkownika zewnętrznego.

Przed przystąpieniem do czytania dokumentu, proszę o zapoznanie się z podstawowym dokumentem Instrukcja obsługi AZU dla użytkownika zewnętrznego.

4. Podstawowa konfiguracja

Wybrane zmiany wprowadzone w pakiecie Oprogramowanie: SyriuszStd

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

16) Wprowadzenie do raportowania Rave

PROFINETSET narzędzie konfiguracyjne dla sieci PROFINET

Praca z systemem POL-on. Zaznaczanie toków do eksportu.

Instrukcja obsługi DHL KONWERTER 1.6

Instrukcja pobierania informacji o Masowych Płatnościach Przychodzących w systemie BOŚBank24 iboss

Rys. 1. Sieć uczelniana

Dodatek. Instrukcja instalacji i konfiguracji. dla Subiekt nexo. Wersja:

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Instrukcja obsługi Multiconverter 2.0

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

System harmonogramowania produkcji KbRS

finiownia loginów. W zależności od ustawionej opcji użytkownik login:

Moduł raportowy systemu MGśP. Dokumentacja użytkownika

MODUŁ INTEGRUJĄCY ELEKTRONICZNEGO NADAWCĘ Z WF-MAG SPIS TREŚCI

System obsługi wag suwnicowych

Spis treści. 1 Moduł Modbus TCP 4

UpSoft RCP wersja

Wprowadzenie do projektu QualitySpy

KS-ZSA. Korporacyjne grupy towarowe

Straszyński Kołodziejczyk, Paweł Straszyński. Wszelkie prawa zastrzeżone. FoamPro. Instrukcja obsługi

Zapytania i wstawianie etykiet z bazy danych do rysunku

Spis treści MONITOR PRACY... 4

Instrukcja obsługi. Helpdesk. Styczeń 2018

QualitySpy moduł reports

ECDL Advanced Moduł AM4 Arkusze kalkulacyjne Syllabus, wersja 2.0

enova Analizy Wielowymiarowe podręcznik Użytkownika (9.1)

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

INSTRUKCJA OBSŁUGI SUPLEMENT

Praca z systemem POL-on. Zaznaczanie toków do eksportu.

Wykaz zmian w programie SysLoger

Wnioski i dyspozycje elektroniczne. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

Aleksander Galisz. Gf aktura 1.0. Podręcznik użytkownika

Scenariusze obsługi danych MPZP

Opis modułu pl.id w programie Komornik SQL-VAT

Moduł rozliczeń w WinUcz (od wersji 18.40)

7. zainstalowane oprogramowanie zarządzane stacje robocze

Załącznik nr 18 do OPZ - oprogramowanie zarządzania siecią

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS

Podręcznik użytkownika Publikujący aplikacji Wykaz2

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Wybrane zmiany wprowadzone w pakiecie Oprogramowanie: WUP-Viator

Załącznik nr 6 do SIWZ. Wygląd istniejącego interfejsu graficznego programu IntegraLight

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

Konfiguracja programu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

1.1 Ustawienie adresów IP oraz masek portów routera za pomocą konsoli

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Import danych z plików Excel. (pracownicy, limity urlopowe i inne)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Ceneo. (Moduł Magento) v.1.5.0

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Planowanie zajęć równoległych i mieszanych

System do projektowania i dokumentowania sieci komputerowych Projekt konceptualny

Przewodnik użytkownika (instrukcja) AutoMagicTest

Nie przegrzewaj mózgu wrzuć dane do bazy!

Raporty systemowe. Omówienie funkcjonalności. Spis treści

Instrukcja użytkownika ARSoft-WZ3

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

enova Systemowe Kolorowanie list

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Instrukcja. Skrócona instrukcja konfiguracji wideodomofonowego systemu jednorodzinnego V_1.0

MJUP_Instrukcja obsługi aplikacji. wspomagającej

Plan. Raport. Tworzenie raportu z kreatora (1/3)

OfficeObjects e-forms

PWI Instrukcja użytkownika

Transkrypt:

Łukasz Dobrodziej Warszawa, 8.01.2011 Jakub Madkowiak Raport dotyczący przeprowadzonych zmian w aplikacji Optymalizacja wydajnościowa Operacjami wykazującymi znaczący czas wykonywania się są grupowe operacje SNMP: odświeżanie wizualizacji i weryfikacja konfiguracji. Do tej pory, były one realizowane poprzez sekwencyjne wykonywanie zapytao SNMP. Wprowadzenie wielowątkowego wykonywania zapytao SNMP pozwoliło osiągnąd dużo lepszą wydajnośd wykonywania ww. operacji. Równoległe wykonywanie zapytao SNMP znacznie skraca czas oczekiwania na odświeżenie wizualizacji i weryfikacje konfiguracji, co przekłada się na poprawie komfortu pracy z aplikacją. 1. Odświeżanie wizualizacji. Dla każdego routera pobierane są dane wymagane do wizualizacji (stan interfejsów, przydzielone adresy IP, numery ASN). Odświeżenie występuje w chwili użycia przycisku Odśwież. Dotychczasowa złożonośd obliczeniowa: Złożonośd tego działania jest klasy: Ө (N * P), gdzie N liczba routerów, P liczba zapytao wymagana do pobrania podstawowej konfiguracji jednego routera Obecna złożonośd obliczeniowa: Złożonośd tego działania jest klasy: Ө (P) Skrócenie czasu dla przykładowego laboratorium: Przed zmianą: 5 s Po zmianie: 1,5 s Uniezależnienie czasu wykonywania tego działania od liczby routerów gwarantuje skalowalnośd aplikacji i pozwala na przeprowadzanie przy jej użyciu bardziej skomplikowanych scenariuszy laboratoryjnych. Dodatkową korzyścią jest skrócenie czasu zawieszenia aplikacji w przypadku, gdy

istnieją problemy z komunikacją SNMP (wówczas czas wykonywania zapytania jest równy wartości parametru timeout, ustawionej dla konkretnego typu zapytania SNMP). 2. Weryfikacja wykonania laboratorium. Dla każdego routera wykonywane są zapytania potrzebne do przeprowadzenia testów, które mają na celu sprawdzenie poprawności konfiguracji. Weryfikacja występuje w chwili użycia przycisku Verify. Dotychczasowa złożonośd obliczeniowa: Złożonośd tego działania wynosi: (x) (i) T xi,gdzie T xi złożonośd i tego testu dla routera x. Obecna złożonośd obliczeniowa: Złożonośd tego działania wynosi: max (x, i) (T xi ), gdzie T xi złożonośd i tego testu dla routera x. Skrócenie czasu dla przykładowego laboratorium: Przed zmianą: 40 s Po zmianie: 3 s Uniezależnienie złożoności tego działania od liczby routerów i od liczby testów na routerze daje w efekcie znaczny zysk wydajności czasowej. Obecna złożonośd czasowa, zależna wyłącznie od czasu wykonania najdłuższego sprawdzenia SNMP, zapewnia, że rozwiązanie będzie bardzo wydajne dla wszystkich scenariuszy laboratoryjnych. Przebudowa struktury klas Konieczną zmianą przed wprowadzaniem zmian funkcjonalnych do aplikacji było uporządkowanie struktury klas. W poprzedniej wersji programu, znacząca większośd logiki aplikacji była zawarta w klasie MainWindow. Rozbudowane panele np. prezentujący wizualizację scenariusza laboratoryjnego, panel zawierający drzewo MIB, konsola, panele informacyjne i funkcjonalne (RouterInfo, InterfaceInfo, Traceroute, SNMPInfo), były częścią klasy MainWindow. Naszym pomysłem było wyniesienie paneli do osobnych klas dziedziczących po klasie Panel. Dzięki temu zabiegowi znacząco zmniejszyła się objętośd klasy głównej MainWindow, a funkcjonalności związane z działaniami w obrębie danego panelu są pogrupowane w oddzielnych klasach. Z powodu podobieostwa paneli informacyjnych/funkcjonalnych, pod względem ich reprezentacji w graficznym interfejsie użytkownika i przeznaczenia, powstał pomysł utworzenia klas FunctionalPanel i FunctionalRow. Wszystkie panele informacyjne i funkcjonalne są teraz obiektami klasy FunctionalPanel agregującymi obiekty klasy FunctionalRow. Panele te są tworzone dynamicznie, mogą zawierad dowolną ilośd wierszy (obiekty klasy FunctionalRow), w których umieszczane są kontrolki w postaci przycisków, pól tekstowych i pól edytowalnych. Podstawową korzyścią wynikającą z istnienia klas FunctionalPanel i FunctionalRow, jest możliwośd łatwego tworzenia nowych paneli, które będą musiały powstawad w celu obsługi przez program innych protokołów niż przewidziane w pierwszej wersji aplikacji. Kolejnym udogodnieniem, jest brak konieczności umieszczania kontrolek i paneli ręcznie (z poziomu GUI Designer). Obecnie panele FunctionalPanel są wdokowane w ustawione statycznie panele. Obecną struktura klas reprezentuje poniższy rysunek. Na rysunku wyróżniono nowoutworzone klasy.

Rys. 1. Diagram klas Interfejs graficzny obecnej wersji aplikacji został zaprezentowany na Rys. 2. Zaznaczono i opisano na nim wydzielone do osobnych klas panele. Na zrzucie ekranu widoczny jest również nowopowstały panel funkcjonalny ScenarioPanel służący do wczytywania i zapisywania scenariuszy laboratoryjnych bez konieczności ponownego uruchomienia/kompilacji programu. Rys. 2. Interfejs graficzny aplikacji

Format danych wejściowych Aplikacja wczytuje z pliku następujące dane wejściowe: Topologię sieci wykorzystanej w laboratorium (routery oraz łącza), informacje potrzebne do komunikacji z routerami przez telnet i SNMP, nazwy oraz współrzędne routerów wykorzystywane w wizualizacji scenariusza, definicje testów do weryfikacji przeprowadzonej konfiguracji. W poprzedniej wersji aplikacji wszystkie powyższe informacje były zapisane w jednym pliku, który był jednocześnie plikiem wejściowym definiującym scenariusz dla emulatora Dynamips (plik z rozszerzeniem.net). Informacje dodatkowe niezgodne ze składnią emulatora umieszczane były za znakami komentarza. Aby uporządkowad dane wejściowe i umożliwid ich łatwiejsza edycję dokonaliśmy podziału danych na plik.net definiujący scenariusz przeznaczony wyłącznie dla emulatora Dynamips oraz plik.xml zawierający wszystkie niezbędne informacje przeznaczone dla aplikacji. Z powyższymi zmianami wiąże się możliwośd wczytywania scenariuszy (zarówno w formacie.xml jak i.net) w trakcie pracy aplikacji, a także możliwośd eksportowania danych do formatu.xml. 1. Plik wejściowy emulatora Plik z rozszerzeniem.net zawiera wyłącznie informacje interpretowane przez emulator i nie jest potrzebny do uruchomienia aplikacji. Zawiera definicje emulowanych routerów oraz połączeo. Po dokonaniu eksportu konfiguracji przechowuje również konfiguracje routerów. Poniżej przedstawiony jest przykładowy plik z zapisem scenariusza laboratorium przeznaczony dla emulatora Dynamips: [localhost] [[7200]] image = \Program Files\Dynamips\images\c7200-jk9o3s-mz.124-7a.image npe = npe-400 ram = 160 [[ROUTER R1]] s1/0 = R2 s1/0 s1/1 = R3 s1/1 f0/0 = SW1 1 configuration = IQp2ZXJzaW9uIDEyLjQKc2VydmljZSB0a( ) [[ROUTER R2]] s1/1 = R4 s1/1 f0/0 = SW1 3 configuration = IQp2ZXJzaW9uIDEyLjQKc2VydmljZSB0a( ) [[ROUTER R3]] s1/0 = R4 s1/0 f0/0 = SW1 4 configuration = IQp2ZXJzaW9uIDEyLjQKc2VydmljZSB0a( ) [[ROUTER R4]] f0/0 = SW1 5

configuration = IQp2ZXJzaW9uIDEyLjQKc2VydmljZSB0a( ) [[ethsw SW1]] 1 = access 1 2 = access 1 NIO_gen_eth:\Device\NPF_{9D3FA9E6-AEC5-46CD-9698-9655229D9126} 3 = access 1 4 = access 1 5 = access 1 2. Plik wejściowy aplikacji Plik z rozszerzeniem.xml przechowuje informacje wymagane do działania aplikacji. Składnia XML pozwala na łatwą edycję danych, co jest szczególnie ważne przy definiowaniu testów wykorzystywanych do weryfikacji dwiczenia. Podczas tworzenia nowego scenariusza można posłużyd się dowolnym edytorem plików.xml, aby uprościd dodawanie nowych testów i wypełnianie wartości atrybutów. Poniżej przedstawiono przykładowy plik wejściowy aplikacji: Rys. 3. Plik wejściowy aplikacji w formacie XML Plik rozpoczyna się podstawowymi informacjami dotyczącymi scenariusza laboratoryjnego. Podane są nazwa, wersja, autorzy, data powstania oraz opis laboratorium. Następnie opisane są routery wchodzące w skład sieci laboratoryjnej. Każdy router charakteryzowany jest przez swoją nazwę, współrzędne X i Y określające położenie routera na wizualizacji oraz informacje potrzebne do komunikacji z danym routerem z wykorzystaniem protokołów telnet i SNMP (adres IP interfejsu

routera wykorzystywanego do komunikacji, port SNMP, community oraz port telnet). Każdy router zawiera dwie listy: Lista łączy. Każde łącze zdefiniowane jest przez interfejs danego routera oraz adres IP i interfejs routera do którego prowadzi łącze. Lista testów weryfikacyjnych. Test określany jest przez nazwę, obiekt, na którym jest wykonywany (router lub interfejs), typ zapytania SNMP (get lub gettable), identyfikator OID oraz opis testu. Test zawiera również listę sprawdzanych par: numer atrybutu - oczekiwana wartośd (w przypadku tabel numery atrybutu są numerami kolumn). 3. Opcja zapisu/odczytu Plik wejściowy aplikacji zawiera częśd informacji zawartych w pliku wejściowym emulatora Dynamips (routery, nazwy routerów, łącza). Aby uprościd proces generowania pliku.xml dostępna jest opcja wczytania pliku wejściowego emulatora.net (z samym scenariuszem lub według dawnej składni z informacjami dodatkowymi w formie komentarzy) oraz zapisu wczytanych informacji do pliku.xml zgodnego z nową konwencją. Dzięki temu po zdefiniowaniu scenariusza laboratoryjnego dla emulatora Dynamips możemy w prosty sposób uzyskad szkielet pliku zawierający podstawowe informacje przeznaczone dla aplikacji. Do aplikacji dodano również panel pozwalający na wielokrotne wczytywanie plików wejściowych różnych scenariuszy (z formatu.xml lub dawnego wzbogaconego.net) bez konieczności ponownego uruchamiania aplikacji.