Modelowanie, symulacja i analiza systemów klasy klient-serwer



Podobne dokumenty
obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Program Sprzeda wersja 2011 Korekty rabatowe

Instrukcja obsługi programu Pilot PS 5rc

Klonowanie MAC adresu oraz TTL

Instalacja programu Sprzeda z motorem. bazy danych Pervasive V8

Planowanie adresacji IP dla przedsibiorstwa.

3. Instalator rozpocznie proces instalacji

Przegldanie stron wymaga odpowiedniej mikroprzegldarki w urzdzeniu mobilnym lub stosownego emulatora.

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Poradnik korzystania z serwisu UNET: Konfiguracja programu pocztowego

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,

Wymierne korzyci wynikajce z analizy procesów

Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego.

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

AUTOMATYCZNE I ZDALNE STEROWANIE STACJ UZDATNIANIA WODY

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

Projektowanie bezpiecze stwa sieci

Programowanie Obiektowe

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator

7. zainstalowane oprogramowanie zarządzane stacje robocze

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Instrukcja instalacji HP Instant Support Enterprise Edition Standard Configuration (ISEE SC) MS Windows (HP Proliant, HP Netserver)

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

s FAQ: NET 08/PL Data: 01/08/2011

... Ireneusz Mrozek. Wydział Informatyki

Przyk adowa konfiguracja zwielokrotnianienia po czenia za pomoc Link Aggregation Control Protocol

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Studium przypadku Case Study CCNA2-ROUTING

Instrukcja obsługi dodatku InsERT GT Smart Documents

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Symulacja cieek klinicznych w rodowisku PowerDesigner i SIMUL8

PROWIZJE Menad er Schematy rozliczeniowe

Instalacja programu Sprzeda

System TELE-Power (wersja STD) Instrukcja instalacji

" # # Problemy budowy bezpiecznej i niezawodnej globalnej sieci szerokopasmowej dla słub odpowiadajcych za bezpieczestwo publiczne

System wspomagania harmonogramowania przedsięwzięć budowlanych

Bazy danych Podstawy teoretyczne

XIII International PhD Workshop OWD 2011, October 2011 METODA REEINGINEERINGU ORGANIZACJI Z WYKORZYSTANIEM SYMULATORA PROCESÓW BIZNESOWYCH

Klient-Serwer Komunikacja przy pomocy gniazd

AltiumLive - Content Store. AltiumLive - Content Store. Language. Contents

ELEMENT SYSTEMU BIBI.NET. Instrukcja Obsługi

#$ $ Opracował mgr in. Artur Kłosek

KONCEPCJA WYKORZYSTANIA TECHNOLOGII APPLET- JAVA W TWORZENIU

stopie szaro ci piksela ( x, y)

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver Aplikacja WWW ver. 2.1 Instrukcja Obsługi

SAS Institute TECHNICAL SUPPORT )

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Szczegółowy opis przedmiotu zamówienia:

TEL-STER Sp. z o. o. ul. Obornicka Pozna. InWin System Automatycznego Przekazu i Zarzdzania Danymi Inkasenckimi

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Synchronizacja czasu - protokół NTP

Twoja instrukcja użytkownika PHILIPS JR32RWDVK

Ateus - Helios. System domofonowy

VPN Virtual Private Network. Uycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Analiza wydajno±ci serwera openldap

Jolanta Łukowska Małgorzata Pakowska Stanisław Stanek Mariusz ytniewski

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

D 54E22! = 1, 1<FE22' $, G 18> 1I2 ;'8? 'G 18?I2# $ $ '::: 2 ;'> 1881: 1 18 $

UMOWY CYWILNOPRAWNE Instalacja, rejestracja i konfiguracja programu

AltiumLive Dashboard - sownik. AltiumLive Dashboard - Glossary. Language. Contents

Poradnik korzystania z usługi FTP

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Laboratorium elektryczne. Falowniki i przekształtniki - I (E 14)

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Projekt okablowania strukturalnego dla I semestru Akademii CISCO we WSIZ Copernicus we Wrocławiu

Instrukcja obsługi programu MechKonstruktor

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

INSTRUKCJA INSTALACJI I PIERWSZEGO URUCHOMIENIA APLIKACJI Rodzajowa Ewidencja Wydatków plus Zamówienia i Umowy

POBÓR MOCY MASZYN I URZDZE ODLEWNICZYCH

Webowy generator wykresów wykorzystujący program gnuplot

Autorzy: Kraków, stycze 2007 Łukasz Dziewanowski Filip Haftek (studenci AGH III roku kierunku Automatyka i Robotyka)

Poradnik korzystania z serwisu UNET: Dostp do poczty elektronicznej ze strony WWW

Instalacja Altium Designer Powizane wideo Altium Designer - Installation and Management

Instalacja sieciowa Autodesk AutoCAD oraz wertykali

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

XII International PhD Workshop OWD 2010, October Metodyka pozyskiwania i analizy wyników badań symulacyjnych ścieżek klinicznych

INSTRUKCJA INSTALACJI SYSTEMU

WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

WOJSKOWA AKADEMIA TECHNICZNA

Dostp do zasobów dyskowych uytkowników lcme10 przez protokół SMB (Microsoft Networking)

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Konfiguracja sieci HSR (high speed redundancy) na prze cznikach Scalance X200, X300 oraz X400

Projektowanie Bezpieczeństwa Sieci Łukasz Jopek Projektowanie Bezpieczeństwa Sieci - Laboratorium. Konfiguracja NAP Network Access Protection

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

PRZESTRZE NAZW DOMEN DNS

Bazy danych 2. Wykład 1

Programowanie współbieżne Wykład 2. Iwona Kochańska

Wybrane działy Informatyki Stosowanej

Tom 6 Opis oprogramowania

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Zarzdzanie i inynieria produkcji Studia II stopnia o profilu: A x P

Licencjonowanie pytania i odpowiedzi

pasja-informatyki.pl

UML w Visual Studio. Michał Ciećwierz

Transkrypt:

Symulacja w Badaniach i Rozwoju Vol. 1, No. 3/2010 Tadeusz NOWICKI, Ewa WRZOSEK Wojskowa Akademia Techniczna, ul. Kaliskiego 2, 00-908 Warszawa E-mail: tadeusz.nowicki@wat.edu.pl, wardak@o2.pl Modelowanie, symulacja i analiza systemów klasy klient-serwer 1 Wprowadzenie Praca zwizana jest z badaniem własnoci systemów informatycznych, których praca polega na załoonej, specyficznej formie współpracy midzy pewnymi komputerami, zwanymi klientami, oraz innymi, zwanymi serwerami. System klient serwer [1], [2] pozwala na lepsze wykorzystanie pracy uytkownika przy zminimalizowanych kosztach. Systemy tej klasy bazuj na funkcjonowaniu pojedynczych komputerów duej mocy zwanych serwerami i licznego zbioru stacji roboczych zwanych klientami. Zazwyczaj podstawowa decyzja o architekturze systemu klient-serwer dotyczy tego, czy podstawowe procesy obliczeniowe s po stronie serwera (cienki klient), czy po stronie stacji klienckich (gruby klient). Bardzo wana jest decyzja o odpowiednim doborze modelu klient serwer. Zły wybór, niedostosowany do rzeczywistego zapotrzebowania, moe okaza si bardziej kosztowny, ni zapewnienie tego, by kady komputer posiadał kady zasób w dowolnej wielkoci na własno. System taki okazuje si wtedy niewydajny, a poszczególne komponenty s nadmiernie, bd niedostatecznie obcione. Poszukuje si zatem rozwizania optymalnego, to znaczy takiej konfiguracji systemu klient serwer, aby jego rzeczywiste działanie było zgodne z oczekiwaniami, wydajne oraz jak najtasze. Powstaje pytanie: jak bez podejmowania decyzji o organizacji fizycznych eksperymentów zbada własnoci, w tym efektywno, danego systemu klient serwer? Najlepszym w tym przypadku rozwizaniem bdzie zaprojektowanie i zaimplementowanie symulatora systemów klient serwer, który umoliwi zbadanie i ocen wskaników efektywnoci systemów. W niniejszej pracy szczegółowo opisano budow i funkcjonalno symulatora systemów klient serwer oraz wykonano seri eksperymentów symulacyjnych dla ilustracji uzyskanych wyników. Wyjaniono to, co rozumie si pod pojciem klient oraz serwer [1], [2]. Przedstawiono architektur badanych systemów oraz rozłoenie aplikacji klient serwer pomidzy stacjami klienckimi, a maszynami serwerów. Wymieniono wskaniki efektywnoci, które bd badane przy pomocy programu symulacyjnego. Pocztkowo sprecyzowano granice symulatora, tzn. wybrano klas systemów klient serwer, których działanie ma by symulowane. Kolejnym punktem jest przedstawienie biblioteki symulacyjnej [3], na podstawie której działa symulator. Wymieniono te elementy biblioteki, które posłuyły do implementacji podstawowych elementów systemu klient serwer oraz wymieniono moliwoci pobierania statystyk z wykonanej symulacji. W dalszej czci zaprezentowano projekt symulatora wraz z czciow implementacj niektórych klas. 265

- +. I*#!* 2 Systemy klient-serwer Sformułowanie klient serwer jest zwizane z relacj midzy dwoma procesami bd systemami. W tej relacji procesy s zorganizowane w system w taki sposób, aby jedne wiadczyły usługi drugim. Klientem (ang. client) nazywamy proces zlecajcy zadania do wykonania na serwerze, za serwerem (ang. server) jest proces wiadczcy usługi. Procesy klientów i serwerów mog by zlokalizowane na tych samych, bd innych komputerach. Nie jest wymagana odrbno sprztowa. W rzeczywistych systemach proces moe nie mie cile okrelonej roli. Niejednokrotnie bywa tak, e pełni funkcj zarówno serwera, jak i klienta. Proces serwera moe by klientem serwera innej usługi. Mimo tego wygodnie jest załoy, e badany proces, w zalenoci od kontekstu, pełni tylko jedn z ról. Interakcja pomidzy klientem i serwerem znana jest jako zachowanie typu zamówienieodpowied (ang. request-reply behavior). Klient po zamówieniu usługi oczekuje odpowiedzi. Serwer pobiera napływajce od klientów zlecenia, realizuje je, po czym wysyła odpowiedzi do klientów. Podstawowe elementy systemu klient serwer to: klienci, serwery, sie komputerowa, wspólne protokoły sieciowe, wspólne zasady komunikacji, oprogramowanie. Warto scharakteryzowa pokrótce elementy systemów klient-serwer. Ich zrozumienie pomoe w prezentacji kolejnych wyników pracy. Klient Stacj robocz (ang. work station) nazywamy komputer bd terminal, na którym uruchamiane jest oprogramowanie z interfejsem uytkownika. Mianem klienta okrelamy najczciej oprogramowanie. Rol klienta jest udostpnienie uytkownikowi interfejsu, nawizanie połczenia komunikacyjnego z serwerem, generowanie zlece, przetwarzanie i wywietlanie odpowiedzi. Cechy charakteryzujce stacje klienckie, to: aktywno klient jest inicjatorem działa, wysyłanie da do serwera, oczekiwanie odpowiedzi od serwera. Ze wzgldu na wielko udziału klienta w implementacji interfejsu uytkownika, logiki aplikacji oraz składowania danych rozróniamy dwa typy klientów: Cienki klient (ang. thin client). W tym przypadku mówimy o systemie cienki klient serwer (ang. thin client / server). Klient ma niewielki udział w działaniu całego systemu. Cała logika aplikacji jest 266

1 0 >3*/ 0 3 *.3. 0 przeniesiona na serwer, który przechowuje ponadto wszystkie dane potrzebne do obsłuenia da klientów. Gruby klient (ang. fat client). Stacja kliencka jest maszyn w pełni wyposaon w urzdzenia peryferyjne, z kompletnym oprogramowaniem umoliwiajcym uruchamianie aplikacji. W tym modelu serwer słuy do przechowywania danych i udostpniania ich na dania klientów. Serwer Serwerem nazywamy program bd system oprogramowania wiadczcy usługi na rzecz innych programów. Jest to definicja niekompletna, poniewa serwerem czsto okrela si komputer, bd inny sprzt fizyczny, wiadczcy usługi. Istnieje zatem podział na serwery sprztowe i serwery oprogramowania. Do ogólnych cech serwera mona zaliczy: pasywno serwer czeka na zainicjowanie połczenia z klientem, czekanie na dania klientów jest tylko realizatorem przysłanych zlece, automatyczno w momencie otrzymania dania serwer przetwarza je i wysyła odpowied. Typowe serwery stosowane w praktyce profesjonalnych zastosowa, to: serwery plików, serwery baz danych, serwery nazw, serwery aplikacji, serwery internetowe. Oprogramowanie klient-serwer Aplikacja klient serwer jest oprogramowaniem uruchamianym na komputerze klienta, która odwołuje si do zdalnego serwera. W aplikacji klient serwer mona wyróni trzy poziomy: interfejs uytkownika, poziom przetwarzania, poziom danych. 3 Wskaniki efektywnoci systemów klient-serwer Przed podjciem bada efektywnociowych systemów klient serwer naley okreli wskaniki efektywnoci, jakimi kierowa si naley przy ocenie systemów tej klasy. Dowolna metoda badania systemów polega na ocenie wartoci tych wskaników (uzyskanych na przykład metod eksperymentów symulacyjnych). Do wskaników efektywnociowych odpowiadajcych systemom klasy klient-serwer zaliczy mona: 267

- +. I*#!* czas obsługi przez serwer jest to czas potrzebny serwerowi na przetworzenie pojedynczego zamówienia, obcienie serwera jest to procentowo wyraony iloraz czasu aktywnoci serwera do całego czasu symulacji, obcienie klienta jest to procentowo wyraony iloraz czasu aktywnoci klienta do całego czasu symulacji, czas oczekiwania na wysyłanie pakietu zadania/odpowiedzi jest to czas, jaki musi min, zanim zostanie wysłany pakiet, czas przebywania zadania/odpowiedzi w kolejce czas oczekiwania w kolejce na pewien zasób, którym moe by serwer, zarzdca bd klient, czas odpowiedzi jest to czas, po jakim na wysłane przez klienta zlecenie przychodzi odpowied; włczamy w to czas przebywania w sieci komunikacyjnej, (w co wliczamy czasy przebywania w kolejkach oraz czas obróbki przez zarzdc) oraz czas obsługi przez serwer, długo kolejki jest to liczba zlece przebywajcych w kolejce; przez długo kolejek badamy obcienie sieci, poniewa to włanie stany kolejek obrazuj obcienie sieci komputerowej, liczba niezrealizowanych zada jest to liczba da, które przekroczyły załoony, maksymalny czas odpowiedzi. Naley przyj, e powysze definicje nie maj charakteru cisłego w tym sensie, e dotycz wielu wystpie kadej z charakterystyk. Ponadto, liczne z wielkoci maj charakter stochastyczny. W tym sensie powinno si raczej mówi o oczekiwanych czasach, oczekiwanych długociach kolejek, oczekiwanych liczbach zada, itd. Oczywicie, podane wyej charakterystyki s jedynie wybranymi wskanikami słucymi ocenie funkcjonowania systemów klient-serwer. Mona by wymienia ich wicej, jednak s one wystarczajc propozycj dla opracowania metody bada efektywnociowych systemów tej klasy. Inne wskaniki wzbogaciłyby jedynie list parametrów efektywnociowych, jednak nie zmieniłyby sposobu bada systemu. 4 Symulator systemów klient-serwer Program symulacyjny, odwzorowujcy funkcjonowanie systemu klient-serwer, obejmuje działanie układu składajcego si z klientów i generowanych przez nich zada, sieci komunikacyjnej, zarzdcy oraz serwerów. Warto rozpocz rozwaania od okrelenia tego, jak architektur systemu bdzie reprezentował skonstruowany do bada model. Z uwagi na prób zbadania efektywnoci podstawowego systemu, symulator bdzie reprezentował architektur dwupoziomowa. Mamy zatem do czynienia z klientami korzystajcymi z usług serwerów, one za realizuj zamówienia samodzielnie, bez uywania obcych zasobów. Wczeniej wprowadzono pojcie cienkiego i grubego klienta. Balansowanie pomidzy tymi dwoma koncepcjami systemu klient serwer uzyskuje si dziki moliwoci ustawienia parametrów czasu tworzenia nowego zadania przez klienta oraz czasu przetwarzania zadania na serwerze. Zatem, zmieniajc proporcje tych wielkoci, uzyskuje si odpowiednio: 268

1 0 >3*/ 0 3 *.3. 0 model cienki klient serwer, gdy czas generacji zadania, w porównaniu do czasu obsługi, jest bardzo krótki, model gruby klient serwer, gdy czas obsługi jest znacznie dłuszy od czasu tworzenia zlecenia. W rzeczywistych systemach klient serwer sie komunikacyjna pozwala na przesłanie pewnej porcji informacji zwanej pakietem. Jest to podstawowa jednostka nonika informacji. W symulatorze istnieje moliwo generacji wielkoci zadania oraz ustawienia rozmiaru pakietu. Naley wspomnie równie o tym, e symulowane łcze ma swoj szybko, z któr przesyłane s pakiety. W programie symulacyjnym zaimplementowano działanie serwera sekwencyjnego. Jest to najprostsza metoda obsługi zlece. Niestety, nie jest zbyt efektywna, jeli chodzi o długo czasu oczekiwania zadania na obsług. dania musz czeka w kolejce, gdy serwer jest zajty. Zdecydowano si zatem na symulacj tego typu serwera, poniewa nadal jest do popularny w implementacjach systemów klasy klient-serwer. Przykładowo, bardzo popularny obecnie serwer WWW jest serwerem sekwencyjnym. dania napływajce przez sie s obsługiwane w kolejnoci przybycia, jedno po drugim. Zarzdca zaimplementowany w programie symulacyjnym obrazuje logik działania sieci komunikacyjnej. Pakiety w rzeczywistoci nios w sobie informacj dotyczc miejsca przeznaczenia. W pracy posłuono si tzw. zarzdc, który nadzoruje ruch w sieci. Dba o to, by pakiety trafiały do adresatów. Pełni równie funkcj decyzyjn. Przypisuje zadaniom odpowiednich wykonawców i rozsyła je zgodnie z algorytmem przydziału zada do serwerów. Modelowany system bdzie składa si z nastpujcych elementów: klientów i serwerów, zarzdcy, kolejek (w tym uwzgldniana jest sie komunikacyjna), zada i algorytmów rozdziału zada midzy serwery, generatorów liczb pseudolosowych. Zarzdca (Manager) zajmuje si głównie rozdzielaniem zada i odpowiedzi do kolejek odbiorców. Jego działanie, podobnie jak klienta, jest cykliczne. Zadania mog by przydzielane do serwerów zgodnie z nastpujcymi, popularnymi w implementacjach algorytmami przydziału zada: algorytm po kolei - zadania s tu przydzielane do procesorów po kolei, na przykład zgodnie z umown ich numeracj, algorytm najkrótsza kolejka zadanie w tym algorytmie jest przydzielane do tego procesora, do którego w kolejce do realizacji czeka najmniejsza liczba zada, algorytm waona najkrótsza kolejka zadanie w tym algorytmie jest przydzielane do tego procesora, do którego w kolejce do realizacji czeka najmniejsza liczba zada, przy czym liczba zada jest relatywnie 269

- +. I*#!* modyfikowana uwzgldniajca moce obliczeniowe poszczególnych procesorów, algorytm losowy - zadania s w tym przypadku przydzielane s w sposób losowy (równomierny lub inny, w zalenoci na przykład od mocy procesorów), algorytm zrównowaenie obcienia serwerów - zadania s w tym przypadku przydzielane do tych procesorów, które w ustalonym horyzoncie czasowym miały najmniejsze obcienie. Odpowiedzi serwerów zawieraj w sobie informacj, do jakiego klienta nale. Zgodnie z ni Zarzdca umieszcza odpowiedzi w odpowiedniej kolejce. Wzajemny relacje pomidzy elementami systemu przedstawia poniszy rysunek. Rys.1. Schemat modelu systemu klient-serwer Fig.1. Client-server system scheme Projekt został stworzony za pomoc aplikacji Umbrello w jzyku UML [3]. Z uwagi na czytelno przedstawianych schematów diagram klas podzielono na czci. W kadym schemacie umieszczone s tylko te informacje, które s istotne do zrozumienia danej funkcjonalnoci systemu (Rys.2). 270

1 0 >3*/ 0 3 *.3. 0 Rys.2. Schemat klas w modelu systemu klient-serwer. Fig.2.Client-server system class scheme Poniej przedstawione zostały skonstruowane klasy istotne z punktu widzenia samego procesu symulacji: klasa InitSimulaton i klasa Ticker. Rys. 3. Klasa InitSimulation i klasa Ticker Fig. 3. Init simulation class and Ticker class Graficznym przedstawieniem działania klienta zajmuje si klasa CustomerGUI. Pobiera i wywietla stan kadego klienta. Kademu obiektowi klasy Customer przypisany jest jeden obiekt klasy CustomerGUI. Patrzc z kolei na list metod klasy Server widzimy, e z wyjtkiem odziedziczonej metody Behavior zawiera tylko metody pobierajce i 271

- +. I*#!* przekazujce informacje potrzebne w trakcie działania serwera. Zapewniaj one poprawne działanie programu symulacyjnego. Obiekty klasy Server przez cały okres swojej aktywnoci pobieraj zadania ze swoich kolejek, obsługuj je i wysyłaj gotowe odpowiedzi. Działanie serwera jest obrazowane dziki graficznej klasie ServerGUI, która zajmuje si pobieraniem tych informacji, jakie trzeba wywietli w trakcie działania programu symulacyjnego (Rys.4). Rys. 4. Klasa Customer i klasa Serwer Fig. 4.Customer class and Server class Obiekty klasy Job słu jako noniki informacji statystycznych i pomocniczych w przesyłaniu i kompletowaniu ich przez klienta, zarzdc oraz serwera (Rys.4). Zarzdca (Manager) zajmuje si głównie rozdzielaniem zada i odpowiedzi do kolejek odbiorców. Jego działanie, podobnie jak klienta, jest cykliczne. Zadania mog by przydzielane do serwerów zgodnie z nastpujcymi algorytmami przydziału zada: waona najkrótsza kolejka, losowy, zrównowaenie obcienia serwerów, najkrótsza kolejka, po kolei. Odpowiedzi zawieraj w sobie informacj, do jakiego klienta nale. Zgodnie z ni Zarzdca umieszcza odpowiedzi w odpowiedniej kolejce (Rys.5). 272

1 0 > 3* / 0 3 *. 3. 0 Rys. 5. Klasa Job i klasa Manager Fig. 5. Job class and Manager class Klasa Jqueue definiuje kolejki w systemie klient-serwer. Rozszerzono j o metod Send, która zajmuje si przesyłaniem pakietów. Ka demu obiektowi klasy Jqueue odpowiada obiekt klasy JqueueGUI, który zajmuje si wy wietlaniem stanu kolejki. Z kolei klasa Raport posiada informacje na temat wszystkich obiektów, z których ma pobiera statystyki. Zatem, w momencie tworzenia raportu metod createraport, mo na bezpo rednio odwoła si do obiektów i pobra dane (Rys.6). Rys. 6. Klasa Jqueue i klasa Raport Fig. 6. Jqueue class and Raport class 273

- +. I*#!* 5 Implementacja symulatora systemu klient-serwer Program symulacyjny stworzony został w oparciu o bibliotek SIMLIB/C++, która jest projektem uczelnianym napisanym w jzyku C++ w Instytucie Informatyki i Inynierii na Uniwersytecie Technicznym w Brnie. Prace nad ni trwaj od 1990 roku i jest to projekt nadal rozwijany. Okno główne symulatora zostało przedstawione poniej (Rys.7). Rys. 7. Okno główne symulatora klient-serwer Fig. 7. Main windows of client-server simulator Mona tu skonfigurowa podstawowe charakterystyki eksperymentów symulacyjnych: czas symulacji, wielko pakietu, szybko łcza transmisji oraz wybra mona interesujcy algorytm przydziału zada. Poniej przedstawiono moliwoci w zakresie ustalania wartoci parametrów klientów i serwerów systemu (Rys.8). Rys. 8. Ustalanie wartoci parametrów klientów i serwerów Fig. 8. Client and server parameters configuration Symulacj uruchamia si przyciskiem Start symulacji, który jest dostpny pod kad z zakładek. W momencie nacinicia przycisku na ekranie pojawia si okno zobrazowania (animacji) procesu symulacji (Rys.9). Suwak prdkoci symulacji słuy 274

1 0 >3*/ 0 3 *.3. 0 zwalnianiu lub przyspieszaniu symulacji. Z pierwszej opcji korzysta si, gdy wany jest sam przebieg, a z drugiej, gdy interesujce s same wyniki symulacji. Wskanik postpu symulacji wywietla to, ile procent tego procesu zostało ju wykonane. Przycisk Zakocz powoduje natychmiastowe zakoczenie symulacji i wygenerowanie raportów na podstawie zebranych danych. Przycisk Pauza chwilowo wstrzymuje przebieg symulacji. Przycisk Kontynuuj z kolei wznawia wczeniej zatrzymany przebieg symulacji. Rys. 9. Animacja procesu symulacji Fig. 9. Simulation process animation Raport szczegółowy składa si z oddzielnych zakładek, w których mona odnale nastpujce statystyki: zajto kolejki, obcienie serwerów, czas przejcia zadania przez system, czas wykonania zadania, poziom realizacji zada, obcienie klientów (Rys.10). Rys. 10. Raporty z procesu symulacji Fig. 10. Simulation process raporting 275

- +. I*#!* Podejrze te mona róne charakterystyki dynamiczne, np. wykres zmian długoci kolejki serwera w trakcie symulacji (Rys.11). Podobnie zarejestrowa i zobrazowa mona wykres liczby pakietów zada i odpowiedzi w sieci komputerowej (Rys. 12), jak te wiele innych, wanych do oceny efektywnoci funkcjonowania systemów klasy klient-serwer, charakterystyk. Rys. 11. Długoci kolejek serwera Fig. 11. Length of server queue Rys. 12. Wykres liczby pakietów w sieci komputerowej Fig. 12. Number of packages in computer network 6 Podsumowanie Przedstawiono projekt i implementacj symulatora programowego pozwalajcego dla zadanych parametrów systemu klasy klient-serwer uzyskiwa oszacowania wartoci wskaników efektywnoci jego funkcjonowania. Pokazano te to, jak posługiwa si opracowanym symulatorem i moliwoci analizy systemów klasy klient-serwer na podstawie wyników uzyskanych z eksperymentów symulacyjnych. Uzyskane wyniki pozwalaj na ocen funkcjonowania algorytmów rozdziału zada miedzy serwery, pozwalaj równie na ustalenie proporcji midzy grubym i cienkim klientem w sensie projektowym dla konkretnych zastosowa (aplikacji). Dziki 276

1 0 >3*/ 0 3 *.3. 0 odpowiednio skonstruowanym scenariuszom mona równie uzyska ocen wpływu wartoci parametrów sieci komputerowej na prac całego systemu. Literatura 1. Tanenbaum A.,Van Steen M. Systemy rozproszone Zasady i paradygmaty, WNT, Warszawa 2006 2. Hall C. Techniczne podstawy systemów klient serwer, WNT, Warszawa 1996 3. Strona biblioteki SIMLIB/C++ http://www.fit.vutbr.cz/~peringer/simlib/, Streszczenie W pracy przedstawiono projekt i implementacj symulatora programowego systemu klientserwer. Omówiono charakterystyki takiego systemu. Zdefiniowano poszczególne elementy modelu systemu. Zaprezentowano moliwoci symulatora w zakresie bada efektywnoci systemów klasy klient-serwer. Pokazano szczegółowe charakterystyki, jakie mona uzyska posługujc si opracowanym symulatorem. Modeling, simulation and analysis of client-server system Summary In this work project and implementation of software simulator of client-server system is presented. Selected characteristics of such system are discussed. Every elements of client-server model are defined. Possibilities of simulator from the system efficiency point of view are presented. Many characteristics which can be obtained during simulation experiments of client-server exploitation are shown. 277