Dokumentacja aplikacji Szachy online

Transkrypt

Dokumentacja aplikacji Szachy online
Projekt z przedmiotu
Technologie Internetowe
Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska
Przedmiot projektu: Aplikacja internetowa w języku Java
Dokumentacja aplikacji
Szachy online
Spis treści:
1.
2.
3.
4.
5.
Wstęp. Przedmiot projektu.
Wykorzystane technologie i środowisko.
Wymagania sprzętowe i programowe.
Aplikacja serwera.
Aplikacja klienta.
Autorzy: Jarosław Tyma i Jakub Białas. Gliwice 2010
str. 1
1. Wstęp. Przedmiot projektu.
Przedmiotem projektu z przedmiotu Technologie Internetowe było stworzenie aplikacji internetowej
napisanej w języku Java. Głównymi założeniami było m.in. to iż ma to być aplikacja typu klient-serwer.
Stworzyliśmy zatem grę internetową umożliwiającą rozgrywki szachowe oraz prowadzenie rozmów
pomiędzy klientami za pośrednictwem serwerowego czatu.
2. Wykorzystane technologie i środowisko.
Szachy online stworzone zostały w Javie z wykorzystaniem kilku niezbędnych technologii i
mechanizmów takich jak:
- wbudowane w NetBeansa biblioteki umożliwiające połączenie za pomocą protokołu TCP/IP
- sterownik JDBC dla Javy – umożliwił nam łatwe połączenie z lokalną bazą danych (więcej informacji
pod adresem http://www.mysql.com/products/connector/)
- biblioteki Secure iNet Factory – wykorzystane przez nas do wysyłania maili za pośrednictwem serwera
gmail (więcej informacji można znaleźć na http://www.jscape.com/secureinetfactory/download.html);
- biblioteki graficzne Java Swing – wykorzystaliśmy je do stworzenia aplikacji klienckiej
Naszym głównym środowiskiem pracy było chyba najpopularniejsze IDE Javy jakim jest NetBeans. Jest
to projekt otwartego oprogramowania umożliwiający komfortowe i efektywne tworzenie aplikacji,
szczególnie tych nastawionych na komunikację internetową oraz rozwiązania mobilne.
Więcej informacji na temat NetBeansa można znaleźć na stronie projektu pod adresem:
http://netbeans.org/index.html
3. Wymagania sprzętowe i programowe.
Całość napisana została w języku Java, stworzonym przez Sun Microsystems, a której obecnym
właścicielem jest Oracle Corporation. W związku ze specyfiką tego języka, nasza gra jest w pełni przenośna
pomiędzy różnymi systemami operacyjnymi. Ma to również swoje złe strony – aplikacje uruchamiane są za
pośrednictwem tzn. wirtualnej maszyny Javy czego konsekwencjami są oddanie użytkownikom do
dyspozycji języka obiektowego wysokiego poziomu, który nie jest bezpośrednio kompilowany do źródeł
binarnych. Skutkuje to zatem stosunkowo wysokim apetytem aplikacji na zasoby sprzętowe. Zalecanymi
przez nas wymaganiami sprzętowymi i programowymi, zapewniającymi bezproblemową obsługę serwera i
płynną rozgrywkę za pomocą klienta są:
- system operacyjny z zainstalowaną wirtualną maszyną Javy
- w przypadku klienta – przeglądarka obsługująca aplety Javy
- niemalże dowolny procesor o wydajności odpowiadającej minimum P4 1.8GHz
- pamięć operacyjna większa niż 1GB
- szerokopasmowy dostęp do Internetu w przypadku aplikacji serwera
Wszelkie informacje na temat Javy oraz najnowsze wersje wirtualnej maszyny można znaleźć pod
adresem: http://www.oracle.com/us/technologies/java/index.html.
Autorzy: Jarosław Tyma i Jakub Białas. Gliwice 2010
str. 2
4. Aplikacja serwera.
Zadaniem serwera gry Szachy online, na wzór innych aplikacji o podobnym profilu, jest szeroko pojęta
obsługa klientów do niego podłączonych. Główny nacisk w naszej aplikacji położyliśmy na rozbudowę
funkcjonalności serwera o mechanizmy umożliwiające swobodną komunikację użytkowników oraz
prowadzenie jednocześnie wielu gier. Serwer jest zatem aplikacją wielowątkową a do jej głównych zadań
należą:
- udostępnianie mechanizmu nawiązywania połączeń
- implementacja przynajmniej podstawowych mechanizmów diagnostycznych związanych z
połączeniem z klientami
- zapewnienie mechanizmów obsługi serwera (podgląd stanu serwera, zarządzanie użytkownikami itd.)
- zapewnienie sobie bezpośredniego dostępu do bazy danych przechowujących dane użytkowników
oraz statystyki
- umożliwienie prowadzenia pojedynku szachowego
- weryfikacja wykonywanych przez graczy ruchów
- udostępnienie funkcji czatu graczom oraz klientom oczekującym na grę
- prowadzenie prostych statystyk wśród zarejestrowanych graczy
- obsługa wszelkich żądań klientów związanych z grą i innymi działaniami
Serwer jest typowo konsolową aplikacją (większość dedykowanych serwerów gry ze względu na
minimalizację wymagań sprzętowych udostępnia tylko tekstowy interfejs). Jego funkcje zostały rozdzielone
na kilka niezależnych wątków, które w razie potrzeby modyfikują określone zasoby. Przybliżona struktura
serwera prezentuje się następująco:
- MainServerThread – nadrzędny wątek startujący serwer; uruchamia on konsole, zapewnia obsługę jej
komend oraz uruchamia pozostałe wątki serwera
- ConnectionThread – wątek przyjmujący połączenia klientów; po nawiązaniu połączenia przekazuje
odpowiednie obiekty do obsługi przez inne wątki
- LobbyThread – wątek lobby do którego przekierowywani są wszyscy pomyślnie zalogowani
użytkownicy; zapewnia obsługę najważniejszych akcji jak logowanie i rejestracja oraz komunikacja
- PingSenderThread – wątek na bieżąco testujący połączenia z klientami
- ChessGameThread – wątek tworzony dla każdej dwójki graczy
Taka architektura serwera pozwoliła nam na stworzenie systemu, w którym większość akcji mogła
zostać rozsynchronizowana niezależnie od ilości graczy i prowadzonych gier.
Obsługa serwera z wiersza poleceń ogranicza się do kilku podstawowych funkcji jak zarządzanie
użytkownikami, grami, logami oraz wysyłanie wiadomości. Wszystkie dostępne polecenia konsoli dostępne
są po wpisaniu komendy „help”. Przykładowe wywołanie komendy konsoli:
Autorzy: Jarosław Tyma i Jakub Białas. Gliwice 2010
str. 3
5. Aplikacja klienta.
Aplikacja klienta, zgodnie z wytycznymi projektu, stworzona została w formie apletu uruchamianego w
przeglądarce klienta. Podstawowymi funkcjami klienta jest:
- łączenie się z serwerem poprzez TCP/IP
- udostępnienie pełnej obsługi użytkownika – rejestracja, logowanie, resetowanie hasła oraz zmiana
obecnych danych
- możliwość tworzenia gier oraz komunikowania się z innymi użytkownikami
- kontrola poprawności wykonywanych przez gracza ruchów
Uruchomiony aplet prezentuje się następująco:
Autorzy: Jarosław Tyma i Jakub Białas. Gliwice 2010
str. 4
Po uruchomieniu użytkownika wita ekran w którym może dokonać rejestracji, logowania lub resetu
hasła. Po zalogowaniu, oczom użytkownika prezentuje się lobby:
Za jego pomocą klient może komunikować się z innymi graczami oraz pobrać listę trwających gier. Na
samej górze umieszczona zostały przyciski umożliwiające stworzenie nową grę, dołączenie do już
istniejącej oraz odświeżenie listy gier i graczy.
Po stworzeniu gry gracz zostaje przeniesiony do panelu oczekiwania na drugiego gracza:
Autorzy: Jarosław Tyma i Jakub Białas. Gliwice 2010
str. 5
Gdy do gry dołączy drugi gracz i oboje zadeklarują gotowość do pojedynku. Gra uruchomi stosowny
panel z szachownicą:
W przypadku stwierdzenia niemożliwości wykonania ruchu (mat) gracze mają możliwość zdecydowania
o zakończeniu gry, ucieczce lub stwierdzenia remisu.
Autorzy: Jarosław Tyma i Jakub Białas. Gliwice 2010
str. 6

Podobne dokumenty