rubik’s manager - sadsroka/archiwalne/2007io/dokumenty/sad_b.pdf · 1 wprowadzenie 1.1 cel...

24
Rubik’s Manager - SAD Sebastian Chojniak, Lukasz Krupa, Grzegorz Luczyna 16 maja 2007 1

Upload: others

Post on 22-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Rubik’s Manager - SAD

Sebastian Chojniak, Łukasz Krupa, Grzegorz Łuczyna

16 maja 2007

1

Spis tresci

1 Wprowadzenie 41.1 Cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Zakres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Definicje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Załaczniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Prezentacja architektury systemu 5

3 Załozenia i zaleznosci 5

4 Przeglad przypadków uzycia 64.1 Skrócony opis przypadków uzycia . . . . . . . . . . . . . . . . . . . . . . . . . 6

4.1.1 Trening poczatkujacego speedcubera . . . . . . . . . . . . . . . . . . . 64.1.2 Trening speedcubera - trening podstawowy . . . . . . . . . . . . . . . . 64.1.3 Trening speedcubera - poprawianie techniki . . . . . . . . . . . . . . . . 64.1.4 Organizowanie zawodów internetowych . . . . . . . . . . . . . . . . . . 64.1.5 Uczestniczenie w zawodach internetowych . . . . . . . . . . . . . . . . 64.1.6 Kibicowanie w zawodach internetowych . . . . . . . . . . . . . . . . . . 74.1.7 Organizowanie zawodów stacjonarnych . . . . . . . . . . . . . . . . . . 74.1.8 Układanie kostki wirtualnej . . . . . . . . . . . . . . . . . . . . . . . . 7

4.2 Realizacja przypadków uzycia . . . . . . . . . . . . . . . . . . . . . . . . . . . 84.2.1 Trening poczatkujacego speedcubera . . . . . . . . . . . . . . . . . . . 84.2.2 Trening speedcubera - trening podstawowy . . . . . . . . . . . . . . . . 94.2.3 Trening speedcubera - poprawianie techniki . . . . . . . . . . . . . . . . 104.2.4 Organizowanie i uczestniczenie w zawodach internetowych . . . . . . . 114.2.5 Kibicowanie w zawodach internetowych . . . . . . . . . . . . . . . . . . 124.2.6 Układanie kostki wirtualnej . . . . . . . . . . . . . . . . . . . . . . . . 13

5 Dekompozycja logiczna systemu 145.1 Najwazniejsze komponenty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

6 Dekompozycja na procesy 14

7 Instalacja systemu 157.1 Aplikacja serwerowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

7.1.1 Instalacja uproszczona . . . . . . . . . . . . . . . . . . . . . . . . . . . 167.1.2 Instalacja podstawowa . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

7.2 Aplikacja kliencka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167.3 Dostep zdalny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2

8 Implementacja systemu 178.1 Omówienie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

8.1.1 Interfejs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178.1.2 Aplikacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178.1.3 Dziedzina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178.1.4 Infrastruktura biznesowa . . . . . . . . . . . . . . . . . . . . . . . . . . 178.1.5 Usługi techniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

8.2 Warstwy- lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188.2.1 Interfejs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188.2.2 Aplikacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188.2.3 Dziedzina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188.2.4 Infrastruktura biznesowa . . . . . . . . . . . . . . . . . . . . . . . . . . 198.2.5 Usługi techniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

9 Przechowywane dane 21

10 Wydajnosc systemu 2210.1 Wydajnosc systemu w trybie treningu . . . . . . . . . . . . . . . . . . . . . . . 2210.2 Wydajnosc systemu zawodów . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

11 Jakosc 2311.1 Przenosnosc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.2 Rozszerzalnosc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.3 Niezawodnosc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.4 Bezpieczenstwo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.5 Łatwosc obsługi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

12 Historia zmian 24

3

1 Wprowadzenie

1.1 Cel

Dokument ten prezentuje zagadnienia zwiazane z funkcjonowaniem i architektura systemu Ru-bik’s Manager. Równoczesnie przeprowadzona jest wstepna analiza wymagan technicznych. Wdokumencie omówione sa takze najistotniejsze elementy systemu.

1.2 Zakres

Dokument ten obejmuje:

• przeglad przypadków uzycia,

• załozenia architektoniczne,

• przeglad warstw systemu,

• wymagania jakosciowe.

1.3 Definicje

• RM - skrót od nazwy produktu, tj. Rubik?s Manager,

• kostka Rubika - łamigłówka logiczna w postaci szescianu o ruchomych scianach; takzepotoczna nazwa na pochodne tej łamigłówki,

• speedcubing - sport polegajacy na układaniu kostki Rubika na czas,

• World Cubing Association - organizacja ustalajaca regulamin organizowania zawodów wspeedcubingu.

1.4 Załaczniki

• Wizja systemu.

• Szczegółowy opis przypadków uzycia.

• Diagram dziedziny.

4

2 Prezentacja architektury systemuSystem uruchamia sie jako samodzielna aplikacja nie wymagajaca połaczenia z centalnym ser-werem systemu. Niektóre z przypadków uzycia wymagaja nawiazania połaczenia za posrednic-twem Internetu - aplikacja działa wówczas w trybie klient-serwer. Serwer odpowiedzialny jestza odbieranie danych od klientów w celu (jedno z nastepujacych):

• zachowania ich w centralnej bazie danych,

• udostepnienia ich do odbioru innym klientom,

• przesłania ich wskazanemu klientowi.

3 Załozenia i zaleznosciPodstawowym załozeniem jest zgodnosc z regulaminem publikowanym przez WCA. Po poja-wieniu sie nowej wersji regulaminu, powinna pojawiac sie mozliwie szybko aktualizacja systemuprowadzaca do zgodnosci ze zmianami. Ponadto system powinien wspierac wykorzystywane wspeedcubingu urzadzenia. Dla kazdego nowo pojawiajacego sie urzadzenia wydawany bedziemoduł umozliwiajacy komunikacje z nim i transferowanie danych.

5

4 Przeglad przypadków uzycia

4.1 Skrócony opis przypadków uzycia

4.1.1 Trening poczatkujacego speedcubera

Uzytkownik nie potrafiacy układac kostki rubika zapoznaje sie z podstawami teoretycznymi iuzywana w speedcubingu notacja. Nastepnie system oferuje mu do wyboru liste technik su-gerujac wybór tej o przypuszczalnym najkrótszym czasie przyswajania. Uzytkownik poznajewszystkie fazy wybranej techniki równoczesnie przeprowadzajac pierwsza próbe ułozenia kostkirubika. W dowolnym momencie uzytkownik moze przejsc do bazy wiedzy i poszukac odpowie-dzi na nurtujace pytanie.

4.1.2 Trening speedcubera - trening podstawowy

Uzytkownik dokonuje pomiaru czasów kolejnych ułozen. Za kazdym razem miesza kostke przyuzyciu algorytmu wygenerowanego przez system. W dowolnym momencie przeglada uzyskanewyniki i prosi system o wygenerowanie statystyk oraz wykonanie analizy elementów, które na-lezy poprawic.

4.1.3 Trening speedcubera - poprawianie techniki

Uzytkownik sugerjac sie przeprowadzona przez system analiza lub włana opinia wybiera faze,która chciałby poprawic. System generuje algorytmy mieszajace, które pozwalaja przecwiczeniemozliwie wielu przypadków danej fazy. W dowolnym momencie uzytkownik prosi system owygenerowanie nowego, lepiej dopasowanego rozwiazania dla danego przypadku.

4.1.4 Organizowanie zawodów internetowych

Uzytkownik ustala parametry organizowanych zawodów - termin, limit zawodników, filtr obo-wiazujacy zawodników, liczbe i rodzaj przeprowadzanych rund, metody kwalifikacji. Systemrozpoczyna przyjmowanie zgłoszen od zawodników. W czasie trwania zawodów organizator za-wodów pozwala sterowac całym procesem systemowi, lub sam podejmuje decyzje takie jak np.odrzucanie niektórych z odebranych czasów.

4.1.5 Uczestniczenie w zawodach internetowych

Uzytkownik prosi system o wyswietlenie listy aktywnych rejestracji na zawody, w których maprawo wziac udział. Zgłasza chec uczestnictwa w wybranych. W czasie trwania zawodów sys-tem odbiera z serwera algorytm mieszajacy. Po wykonaniu ułozenia system wysyła uzyskanywynik do serwera i odbiera wyniki pozostałych zawodników. Czynnosc jest powtarzana, jezeliuczestnik zakwalifikował sie do kolejnej rundy. W przeciwnym razie uzytkownik moze zakon-czyc uczestniczenie w zawodach, lub kontynuowac jako kibic.

6

4.1.6 Kibicowanie w zawodach internetowych

Uzytkownik prosi system o wyswietlenie listy odbywajacych sie zawodów spełniajacych wska-zane kryteria, np.: tylko zawody, w których biora udział speedcuberzy z Kanady, tylko zawody,w których bierze udział wiecej niz 20 speedcuberów, itp. Po wybraniu jednej pozycji z listyuzytkownik łaczy sie z serwerem i system daje mu mozliwosc: przegladania i analizowania wy-ników, odbierania transmisji od wybranego uczestnika zawodów, komentowania zawodów. Wdowolnym momencie uzytkownik moze przerwac kibicowanie. Równoczesnie moze poprosicsystem o przesłanie do siebie wyników po zakonczeniu zawodów.

4.1.7 Organizowanie zawodów stacjonarnych

Uzytkownik ustala parametry organizowanych zawodów. Po okresleniu nowej rundy i wybraniujej jako aktualnie odbywajacej sie, system generuje sekwencje mieszajace, po czym oczekujena pobranie czasów z urzadzen pomiarowych; w przypadku ich braku system prosi o recznewpisanie czasów. Uzytkownik wydaje systemowi polecenia podsumowania rundy i rozpoczecianowej. Po zakonczeniu zawodów system generuje i pozwala wydrukowac raport z zawodów.

4.1.8 Układanie kostki wirtualnej

Uzytkownik wybiera rodzaj kostki sposród listy dostepnych. System wyswietla model wybranejtrój- lub czterowymiarowej kostki sterowany przy uzyciu myszki. Uzytkownik prosi systemo pomieszanie kostki, nastepnie decyduje, czy system ma właczyc pomiar czasu i rozpoczynaukładanie. Po ułozeniu system zapamietuje ewentualny czas.

7

4.2 Realizacja przypadków uzycia4.2.1 Trening poczatkujacego speedcubera

8

4.2.2 Trening speedcubera - trening podstawowy

9

4.2.3 Trening speedcubera - poprawianie techniki

10

4.2.4 Organizowanie i uczestniczenie w zawodach internetowych

11

4.2.5 Kibicowanie w zawodach internetowych

12

4.2.6 Układanie kostki wirtualnej

13

5 Dekompozycja logiczna systemu

Gdy system pracuje w trybie klient-serwer, praca systemu kieruje główny serwer (zwany dalejaplikacja serwerowa). Połaczony jest z zewnetrznym serwerem WWW i baza danych. Dostepdo serwera mozliwy bedzie poprzez:

• przegladarka WWW (np. IE, Firefox...),

• aplikacja kliencka (czesc systemu RM).

5.1 Najwazniejsze komponenty

W skład systemu RM wchodza nastepujace autonomiczne komponenty:

• sterowniki urzadzen pomiarowych,

• aplikacja kliencka,

• aplikacja serwerowa.

Wymienione komponenty beda dostepne oddzielnie. W skład nich wchodza mniejsze kom-ponenty wyodrebnione podczas implementacji systemu.

6 Dekompozycja na procesy

W systemie pracuja nastepujace główne procesy.

• baza danych,

• serwer WWW,

• aplikacja serwerowa,

• aplikacja kliencka,

• przegladarka WWW,

• stackmata.

Komponenty wymienione w punkcie implementacja systemu beda takze niezaleznymi pro-cesami, umozliwi to lepsze wykorzystanie wieloprocesorowych architektur komputerowych.

14

7 Instalacja systemu

15

Instalacja systemu RM nie wymaga udziału osób specjalnie przeszkolonych do tego celu.Nie mniej jednak dostepna bedzie pomoc techniczna w razie problemów z instalacja. Systemdzieli sie zasadniczo na trzy czesci, których instalacja znaczaco sie rózni:

7.1 Aplikacja serwerowaCzesc systemu uruchomiona na serwerze z dostepem do internetu, o minimalnych parametrach:CPU 1GHz, 512MB RAM, 20GB HDD, Internet 1Mbps. W skład której wchodza:

• zewnetrzna baza danych (ProgreSQL),

• zewnetrzny serwer WWW z PHP,

• aplikacja RM.

System RM zawiera instalator aplikacji serwerowej. Wymaga on obecnej bazy danych i serweraWWW z PHP na serwerze. Serwer musi ponadto byc zgodny z J2EE. Istnieje mozliwosc instala-cji rozproszonej, tzn. istnieje kilka zsynchronizowanych serwerów, poprawia to bezpieczenstwodanych i dostepnosc serwisu podczas awarii jednego z serwerów. Instalator posiada dwa trybyinstalacji:

7.1.1 Instalacja uproszczona

Dostepnych jest kilka standardowych instalacji. Instalator dokona instalacji automatycznie we-dług wybranego schematu. Opcja przeznaczona jedynie dla osób tworzacych małe lokalne sys-temy RM.

7.1.2 Instalacja podstawowa

Umozliwia dokładne skonfigurowanie systemu. Wymaga dobrej znajomosci systemu. W raziewatpliwosci dostepne sa parametry domyslne i opis ich działania.

7.2 Aplikacja klienckaCzesc systemu uruchamiana na komputerze speedcubera. Posiada intuicyjny program instalu-jacy. Instalator zawiera gotowe podstawowe konfiguracje systemu. Uzytkownik wybiera tylkomoduły do zainstalowania i wskazuje folder docelowy, gdzie ma zostac zainstalowany system.Nastepnie cały proces instalacyjny przebiega automatycznie. System jest gotowy do uruchomie-nia.

7.3 Dostep zdalnyDowolny uzytkownik internetu moze skorzystac z systemu RM zdalnie. Wystarczy, ze połaczysie z serwerem RM za pomoca dowolnej przegladarki internetowej. W tym przypadku nie jestwymagana instalacja systemu na komputerze uzytkownika.

16

8 Implementacja systemuSystem podzielony jest na 5 warstw. Trzy pierwsze warstwy (czyli interface,aplikacja,dziedzina)to typowy układ view, model, peresenter. Warstwa czwarta to konkretne moduły do rozwiazywa-nia poszczególnych problemów. Warstwa najnizsza to usługi transmisji danych,bezpieczenstwai obsługi urzadzen peryferyjnych.

8.1 Omówienie

8.1.1 Interfejs

Warstwa interfejsu słuzy do komunikacji z uzytkownikiem. Wyswietla komunikaty dla uzytkow-nika i przyjmuje od niego dane. W warstwie wystepuje kilka interfejsów, kazdy zaprojektowanydo potrzeb innego typu uzytkownika programu RM. Warstwa interfejs korzysta tylko i wyłaczniez warstwy aplikacja.

• Interfejs widza jest wykonany w technologii Adobe Flex 2.

• Interfejs organizatora jest wykonany w technologii Java Server Pages.

• Interfejs treningowy jest aplikacja napisana w jezyku C++.

8.1.2 Aplikacja

Warstwa aplikacji jest podzielona na 3 komponenty, kazdy dla innego zadania systemu. Jest tologika, która przetwarza dane na wysokim poziomie abstrakcji (wykorzystujac komponenty zdziedziny) i za pomoca warstwy interfejsu przesyła je do uzytkownika.

8.1.3 Dziedzina

Warstwa dziedziny zawiera obiekty z diagramu dziedziny dla programu RM. Obiekty te opierajaswoje funkcjonalnosci o modułu z działu infrastruktury biznesowej. Relacje miedzy nimi saumieszczone w warstwie aplikacji.

8.1.4 Infrastruktura biznesowa

Warstwa składa sie z 8 modułów, z których kazdy udostepnia jakas funkcjonalnosc wykorzy-stywana przez warstwe dziedziny (np. moduł Algorytmy mieszajace jest wykorzystywany wRundzie zawodów i nauce technik, a moduł statystyk w liscie rankingowej). Moduły do trans-misji danych i pomiaru czasu korzystaja z warstwy Usługi techniczne.

• Algorytmy mieszajace i rozwiazujace napisane w jezyku Lisp.

• Moduł kostek wirutalnych oparty o Open GL.

17

• Moduł Statystyki korzysta z interfejsu Java DataBase Connectivity do komunikowania siez baza danych PostgreSQL.

• Moduł wymiany danych jest oparty o interfejsy Java Message Service.

8.1.5 Usługi techniczne

Zestaw niskopoziomowych modułów do urzadzen peryferyjnych i sieci.

• Interfejs Java Authentication and Authorization Service

• Interfejs obsługi urzadzen pomiarowych stworzony w asemblerze.

• Obsługa transmisji wideo z wykorzystaniem narzedzia Sopcast.

8.2 Warstwy- lista

8.2.1 Interfejs

1. Interfejs uzytkownika.

2. Interfejs organizatora.

3. Interfejs kibica.

4. Interfejs treningowy.

8.2.2 Aplikacja

1. Zawody.

2. Kibicowanie.

3. Trening.

8.2.3 Dziedzina

1. Lista rankingowa.

2. Tworzenie zawodów.

3. Runda zawodów.

4. Nauka technik.

18

8.2.4 Infrastruktura biznesowa

1. Algorytmy rozwiazujace.

2. Algorytmy mieszajace.

3. Selekcja zwyciezców.

4. Statystyki.

5. Przeszukiwanie wyników.

6. Wymiana danych.

7. Kostki wirtualne.

8. Pomiar czasu.

8.2.5 Usługi techniczne

1. Transmisja video

2. Obsługa stackmaty

3. Transmisja danych/wyników

19

20

9 Przechowywane dane

21

10 Wydajnosc systemu

10.1 Wydajnosc systemu w trybie treningu• Generowanie sekwencji mieszajace w czasie ponizej 1 sek.

• Rozwiazywanie tradycyjnej kostki w czasie do 4 sek.

• Rozwiazywanie dowolnej kostki w czasie do 30 sek.

• Dostep do centralnej bazy danych ponizej 3 sek.

10.2 Wydajnosc systemu zawodów• Dostep do centralnej bazy danych ponizej 3 sek.

• Nawiazywanie połaczenia miedzy sedzia a graczami ponizej 5*log(liczba graczy+3) sek.

• Mozliwosc jednoczesnej transmisji video od/do 3000 graczy/kibiców.

22

11 Jakosc

11.1 PrzenosnoscAplikacje kliencka mozna zainstalowac na dowolnym komputerze klasy PC z systemem opera-cyjnym

1. MS Windows XP

2. MS Windows Vista

3. Ubuntu 6.06

4. Debian 3.1

5. Knoppix 4.0

Aplikacja serwerowa w pełni kompatybilna z J2EE. Mozliwosc umieszczenia na dowolnym ser-werze zgodnym z J2EE.

11.2 RozszerzalnoscFunkcjonalnosci programu umieszczone sa w modułach, tak aby ich dodawanie wymagało mi-nimalnego modyfikowania aplikacji.

11.3 NiezawodnoscDopuszczalne sa krótkie przerwy w działaniu systemu, nie czesciej niz 3 razy w tygodniu.Wszystkie dane maja dwie kopie bezpieczenstwa na róznych dyskach.

11.4 BezpieczenstwoMechanizmy autoryzacji ograniczaja mozliwosci modyfikacji danych przez nieupowaznione osoby:Java Authentication and Authorization Service.

11.5 Łatwosc obsługiInterface uzytkownika jest intuicyjny, dajacy mozliwosc personalizacji. Wszystkie bardziej za-awansowane i rzadziej uzywane funkcje sa widoczne w trybie zaawansowanym. Domyslny jesttryb podstawowy, udostepniajacy podstawowe funkcje. Wszedzie umieszczona jest pomoc kon-tekstowa.

23

12 Historia zmian

Data Osoba Opis zmian16.05.2007 Łukasz Krupa Wprowadzono punkty 8-11.16.05.2007 Łukasz Krupa Sprawdzono ortografie.18.05.2007 Sebastian Chojniak Wprowadzono punkty 5-7.19.05.2007 Grzegorz Łuczyna Wprowadzono punkty 1-3.21.05.2007 Grzegorz Łuczyna Wprowadzono punkt 4.22.05.2007 Sebastian Chojniak Przeredagowano punktów 5-7.23.05.2007 Łukasz Krupa Drobne zmiany w punkcie 8.23.05.2007 Sebastian Chojniak Dodano diagramu instalacji.23.05.2007 Sebastian Chojniak Sprawdzono ortografii.23.05.2007 Grzegorz Łuczyna Dodano diagramy do punktu 4.23.05.2007 Sebastian Choj-

niak, Łukasz Krupa,Grzegorz Łuczyna

Skład dokumentu.

24