Praca dyplomowa magisterska

Wielkość: px
Rozpocząć pokaz od strony:

Download "Praca dyplomowa magisterska"

Transkrypt

1 Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra: Algorytmów i Modelowania Systemów Imię i nazwisko dyplomanta: Michał Piątek Nr albumu: Forma i poziom studiów: Dzienne, magisterskie Kierunek studiów: Informatyka Praca dyplomowa magisterska Temat pracy: System kontroli jakości treści w platformach do wspólnej edycji zasobów Kierujący pracą: dr inż. Adrian Kosowski Zakres pracy: Gdańsk, 2009

2 Spis treści 1. Wprowadzenie Cel pracy Definicje pojęć związanych z systemem Serwis społecznościowy Wejście Wyjście Przegląd istniejących rozwiązań: serwisy typu online judge Sphere Online Judge (SPOJ) UVa Online-Judge Timus Online Judge Saratov State University Online Contester Fujian Normal University Online Judge (Fjnu Online Judge) Tianjin University (Peiyang University) Online Judge (TJU Online Judge) Hangzhou Dianzi University Online Judge System (HDU Online Judge System) Zheijang University Online Judge (ZOJ) JudgeOnline Społecznościowy portal do budowania kolekcji danych testowych dla zagadnień algorytmicznych Definicje pojęć w systemie Opis ogólny funkcjonalności systemu Przypadki użycia Opis przypadków użycia Rejestracja użytkownika Logowanie Wylogowanie Przeglądanie zadań Dodanie oceny Przeglądanie ocen Przeglądanie wejść

3 Spis treści Spis treści Dodanie wejścia Testowanie rozwiązania w systemie Edycja zadań Dodanie zadań Edycja użytkowników Organizacja bazy danych Schemat relacyjnej bazy danych Opis tabel Struktura klas w systemie Package: Beans Package: Entity Beans Package: Utils Package: Servlets Realizacja aplikacji w modelu MVC Definicja modelu MVC Model View Controller Maszyna wirtualna Javy oraz Class Loadery Custom Class Loader maszyny wirtualnej Java Implementacja Custom Class Loadera w systemie Budowa systemu System jako aplikacja JEE Struktura systemu Przykładowe zastosowania systemu przy rozwiązywaniu problemów algorytmicznych Kolorowanie wierzchołkowe Znajdowanie najkrótszej ścieżki Podsumowanie i wnioski 49 A. Podręcznik użytkownika 50 B. Opis wdrożenia 51 B.1. Apache Tomcat B.2. MySQL

4 Spis treści Spis treści C. Wykorzystane technologie oraz frameworki 52 C.1. JSP C.2. JSTL C.3. CSS C.4. JavaScript C.5. Servlety C.6. MySQL C.7. JDBC C.8. POJO Entity Bean C.9. JPA C.10.Hibernate C.11.Java refrections C.12.Ajax C.13.JsMath

5 Spis rysunków 2.1. Interfejs IInputValidator Interfejs IJudge Diagram przypadków użycia użytkownika niezalogowanego Diagram przypadków użycia użytkownika zalogowanego Diagram aktywności rejestracji Diagram maszyny stanów rejestracji Diagram aktywności logowania Diagram maszyny stanów logowania Diagram aktywności logowania Diagram maszyny stanów logowania Diagram aktywności przeglądania zadań Diagram maszyny stanów przeglądania zadań Diagram aktywności dodania oceny Diagram maszyny stanów dodania oceny Diagram aktywności przeglądania ocen Diagram maszyny stanów przeglądania ocen Diagram aktywności przeglądania wejść Diagram maszyny stanów przeglądania wejść Diagram aktywności dodania wejsćia Diagram maszyny stanów dodawania wejścia Diagram aktywności testowania rozwiązań Diagram maszyny stanów testowania rozwiązań Diagram aktywności edycji zadań Diagram maszyny stanów edycji zadań Diagram aktywności dodawania zadań Diagram maszyny stanów dodawania zadań Diagram aktywności edycji użytkowników Diagram maszyny stanów edycji użytkowników Schemat relacyjnej bazy danych, część Schemat relacyjnej bazy danych, część Opis pól tabeli Uzytkownik Opis pól tabeli RolaUzytkownika Opis pól tabeli Przywilej

6 Spis rysunków Spis rysunków Opis pól tabeli PrzywilejPoleWMenu Opis pól tabeli PoleWMenu Opis pól tabeli Zadanie Opis pól tabeli InputDoZadania Opis pól tabeli Ocena Opis pól tabeli RozwiazanieUzytkownika Zależności pomiędy pakietami klas w systemie Pakiet zawierający klasę SessionBean Pakiet zawierający klasy mapujące na encje bazy danych Pakiet zawierający klasy narzędziowe Pakiet zawierający servlety Schemat zależności w modelu MVC C.1. Plik styles.css C.2. Plik js.js C.3. Plik web.xml C.4. Plik persistence.xml C.5. Klasa Polewmenu C.6. Interfejs XMLHttpRequest

7 Rozdział 1 Wprowadzenie 1.1. Cel pracy 1.2. Definicje pojęć związanych z systemem Serwis społecznościowy Serwis społecznościowy - (inaczej: portal społecznościowy) - rodzaj interaktywnych stron WWW, które są współtworzone przez sieci społeczne osób podzielających wspólne zainteresowania lub chcących poznać zainteresowania innych.[18] Wejście Wejście - zdefiniowany w systemie plik tekstowy zawierający dane testowe dla konkretnego zadania Wyjście Wyjscie - plik tekstowy zawierający rozwiązanie zadania dla konkretnego wejścia. Plik ten jest wysyłany przez użytkownika systemu za pośrednictwem formularza WWW Przegląd istniejących rozwiązań: serwisy typu online judge Sphere Online Judge (SPOJ) Serwis SPOJ jest dostępny pod adresem url: Ten portal przyjmuje rozwiązania w trzydziestu pięciu językach programowania (C++, C, Pascal (fpc 2.0.4), Text, Java, Python, C99 strict, Ruby, Perl, Brainf**k, Pascal (gpc v ), Haskell, C#, Ocaml, PHP, ADA 95, Common Lisp (clisp ), Common Lisp (sbcl ), D, Bash, Scheme (guile 1.6), Assemble, Lua, JAR, Fortran, Icon, Whitespace, Prolog, Pike, Nice, Intercal, Nemerle, Clips, Smalltalk, Scheme (qobi a)). Zawiera zawody typu open oraz zawody typu closed. 7

8 1.3.Przegląd istniejących rozwiązań: serwisy typu online judge Wprowadzenie UVa Online-Judge Serwis UVa Online-Judge jest dostępny pod adresem url: org/. Ten portal przyjmuje rozwiązania w czterech językach programowania (C, C++, Delphi, Java). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 2523 zadania) oraz zawody zawierające po kilka zadań organizowane co jakiś czas Timus Online Judge Serwis jest dostępny pod adresem url: Ten portal przyjmuje rozwiązania w pięciu językach programowania (C, C++, Delphi, Java, C#). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 711 zadań) oraz zawody zawierające po kilka zadań organizowane co jakiś czas Saratov State University Online Contester Serwis Saratov State University Online Contester jest dostępny pod adresem url: http: //acm.sgu.ru/. Ten portal przyjmuje rozwiązania w czterech językach programowania (C, C++, Delphi, Java). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 343 zadania) oraz zawody zawierające po kilka zadań organizowane co jakiś czas. Oprócz brania udziału w zawodach istnieje możliwość tworzenia własnych zawodów, Fujian Normal University Online Judge (Fjnu Online Judge) Serwis Fjnu Online Judge jest dostępny pod adresem url: Ten portal przyjmuje rozwiązania w czterech językach programowania (C, C++, Pascal, Java). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 1060 zadań) oraz zawody zawierające po kilka zadań organizowane co jakiś czas Tianjin University (Peiyang University) Online Judge (TJU Online Judge) Serwis TJU Online Judgejest dostępny pod adresem url: Ten portal przyjmuje rozwiązania w czterech językach programowania (C, C++, Pascal, Java). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 2292 zadania) oraz zawody zawierające po kilka zadań organizowane co jakiś czas. Oprócz brania udziału w zawodach istnieje możliwość tworzenia własnych zawodów, posiadających od 3 do 14 zadań, nazwę, hasło, tytuł, opis oraz określony czas trwania. 8

9 1.4.Społecznościowy portal do budowania kolekcji danych testowych dla zagadnień algorytmicznych Wprowadzenie Hangzhou Dianzi University Online Judge System (HDU Online Judge System) Serwis HDU Online Judge System jest dostępny pod adresem url: cn/. en portal przyjmuje rozwiązania w czterech językach programowania (C, C++, Pascal, Java). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 1786 zadań) oraz zawody zawierające po kilka zadań organizowane co jakiś czas. Zawody mogą mieć cztery modyfikatory dostępu (Public, Private, Registered Site, Rigister Network). Oprócz brania udziału w zawodach istnieje możliwość tworzenia własnych zawodów, w których możemy dodawać notatki, zadania (z listy predefiniowanych zadań lub, jeśli jesteśmy użytkownekiem z uprawnieniem Diy super user, dodać własne zadanie) oraz definiować czas trwania Zheijang University Online Judge (ZOJ) Serwis ZOJ jest dostępny pod adresem url: Ten portal przyjmuje rozwiązania w czterech językach programowania (C, C++, Pascal, Java). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 3212 zadań) oraz zawody zawierające po kilka zadań organizowane co jakiś czas JudgeOnline Serwis JudgeOnline jest dostępny pod adresem url: Ten portal przyjmuje rozwiązania w trzech językach programowania (C, C++, Pascal). Zawiera zawody typu open z setami zadań zawierającymi maksymalnie 100 zadań (w sumie 124 zadania) oraz zawody zawierające po kilka zadań organizowane co jakiś czas Społecznościowy portal do budowania kolekcji danych testowych dla zagadnień algorytmicznych 9

10 Rozdział Definicje pojęć w systemie W tej sekcji zostanie przedstawionych kilka istotnych, z punktu widzenia użytkownika systemu, definicji. Użytkownik - zarejestrowana w systemie, identyfikowana przez login i hasło osoba, posiadająca uprawnienia do przeglądania i wyboru konkretnego zadania, przeglądania, oceniania i wyboru konkretnego wejścia do zadania oraz nadsyłania rozwiązań. Problem Setter - użytkownik, który oprócz uprawnień standardowych posiada możliwość dodawania zadań oraz ich modyfikacji (zmiana nazwy zadania, treści, sędziego wejść oraz sędziego wyjść). Administrator - użytkownik posiadający uprawnienia problem settera oraz mogący nadawać uprawnienia użytkownikom (ustalenie, czy dany użytkownik ma uprawnienia problem settera czy też nie). Zadanie - zagadnienie algorytmiczne, które można rozwiązać poprzez napisanie stosownego programu, który na wejście przyjmie określone dane ze standardowego wejścia (STDIN) i wypisze stosowne dane na standardowe wyjście (STDOUT). Wejście - tekstowa reprezentacja danych wsadowych dla zadań. Rozwiązanie - tekstowa reprezentacja rozwiązania zadania dla konkretnego wejścia. Sędzia wejść - klasa napisana w Javie, odpowiadająca za walidację poprawności wejścia (automatyczny proces weryfikacji poprawności danych wejściowych, zgodnych z wzorcem podanym w opisie zadania), implementująca interfejs IInputValidator: 2.1 Sędzia rozwiązań - klasa napisana w Javie, odpowiadająca za sprawdzanie poprawności i/lub jakości rozwiązań do zadań związanych z konkretnym wejściem, implementująca interfejs IJudge 2.2. Odpowiedzi tej klasy powinny być zawarte w określonym poniżej standardzie: OK - rozwiązanie poprawne NOT OK -rozwiązanie niepoprawne 10

11 2.2.Opis ogólny funkcjonalności systemu package u t i l s ; Michał Piątek / public interface I I n p u t V a l i d a t o r { / Sprawdza poprawność input i n p u t v a l i d a t o r input c o r r e c t n e s s / boolean v a l i d a t e ( S t r i n g [ ] input ) ; } Rysunek 2.1. Interfejs IInputValidator WynikUżytkownika < Maksimum - rozwiązanie użytkownika w relacji maksimum. Jeśli użytkownik zmieścił się w określonym przedziale rozwiązanie jest poprawne, w przeciwnym razie niepoprawne. WynikUżytkownika > Minimum - rozwiązanie użytkownika w relacji minimum. Jeśli użytkownik zmieścił się w określonym przedziale rozwiązanie jest poprawne, w przeciwnym razie niepoprawne Opis ogólny funkcjonalności systemu System jest społecznościowym serwisem internetowym pozwalającym zalogowanym w nim użytkownikom dodawanie wejść do problemów algorytmicznych oraz ich ocenę, sprawdzanie własnych rozwiązań poprzez zastosowanie par wejście wyjście przy pomocy sędziego, który ocenia poprawność rozwiązania i/lub jego jakość. Użytkownik mający uprawnienia problem settera może dodatkowo dodawać i modyfikować zadania. Administrator posiada dodatkowo możliwość edycji uprawnień Przypadki użycia Przypadki użycia dostępne w systemie zostały przedstawione na dwóch rysunkach 2.3 oraz

12 2.3.Przypadki użycia package u t i l s ; Michał Piątek / public interface IJudge { / Sprawdza output do danego input judge input output judge output score / S t r i n g judge ( S t r i n g [ ] input, S t r i n g [ ] output ) ; } Rysunek 2.2. Interfejs IJudge Rysunek 2.3. Diagram przypadków użycia użytkownika niezalogowanego 12

13 2.3.Przypadki użycia Rysunek 2.4. Diagram przypadków użycia użytkownika zalogowanego 13

14 2.4.Opis przypadków użycia 2.4. Opis przypadków użycia Rejestracja użytkownika Diagram aktywności został przedstawiony na rysunku 2.5, natomiast maszyna stanów na rysunku 2.6. Opis: Niezalogowany i nie zarejestrowany wcześniej użytkownik wprowadza swoje dane i zostaje zarejestrowany w systemie. Aktorzy: Niezalogowany użytkownik Warunki początkowe: Użytkownik musi być niezalogowany. Scenariusz przypadku użycia: 1 Użytkownik wprowadza swoje dane (login i hasło) oraz wpisuje kod weryfikujący. 2 Użytkownik naciska przycisk rejestruj. 3 Servlet zapisuje informacje o użytkowniku w bazie. 4 Użytkownik zostaje przekierowany do strony rejestracji ze stosownym komunikatem. Alternatywne scenariusze: Wynik: Użytkownik podał login występujący w systemie, zostaje poinformowany o zaistniałym fakcie. Użytkownik wprowadził błędne dane, zostaje poproszony o ich poprawienie. Użytkownik zostaje zarejestrowany w systemie Logowanie Diagram aktywności został przedstawiony na rysunku 2.7, natomiast maszyna stanów na rysunku 2.8. Opis: Niezalogowany użytkownik po podaniu poprawnego loginu i hasła zostaje zalogowany w systemie. 14

15 2.4.Opis przypadków użycia Rysunek 2.5. Diagram aktywności rejestracji Aktorzy: Niezalogowany użytkownik Warunki początkowe: Użytkownik musi być niezalogowany. Scenariusz przypadku użycia: 1 Niezalogowany użytkownik klika w link zaloguj. 2 Użytkownik wprowadza login i hasło. 3 Użytkownik klika przycisk zaloguj. 4 Servlet zapisuje dane o użytkowniku w sesji. 5 Użytkownik zostaje przekierowany an stronę główną, komunikat powitalny zostaje wyświetlony. Alternatywne scenariusze: Wynik: 1 Użytkownik nie podał wszystkich pól, zostaje poproszone o uzupełnienie danych. 2 Użytkownik podał dane niepoprawne, zostaje poproszony o poprawienie danych. 15

16 2.4.Opis przypadków użycia Rysunek 2.6. Diagram maszyny stanów rejestracji 16

17 2.4.Opis przypadków użycia Rysunek 2.7. Diagram aktywności logowania Użytkownik zostaje zalogowany i może kontynuować użytkowanie serwisu Wylogowanie Diagram aktywności został przedstawiony na rysunku 2.9, natomiast maszyna stanów na rysunku Opis: Zalogowany użytkownik naciska przycisk wyloguj i zostaje wylogowany z systemu. Aktorzy: Zalogowany użytkownik Warunki początkowe: Użytkownik musi być zalogowany. Scenariusz przypadku użycia: Wynik: 1 Użytkownik naciska przycisk wyloguj. 2 Servlet usuwa informacje o użytkowniku z sesji. 3 Użytkownik zostaje przekierowany do strony głównej portalu, komunikat o wylogowaniu z systemu zostaje wyświetlony. Użytkownik zostaje wylogowany z systemu. 17

18 2.4.Opis przypadków użycia Rysunek 2.8. Diagram maszyny stanów logowania Rysunek 2.9. Diagram aktywności logowania Rysunek Diagram maszyny stanów logowania 18

19 2.4.Opis przypadków użycia Rysunek Diagram aktywności przeglądania zadań Przeglądanie zadań Diagram aktywności został przedstawiony na rysunku 2.11, natomiast maszyna stanów na rysunku Opis: Zalogowany użytkownik przegląda zadania zawarte w systemie. Aktorzy: Zalogowany użytkownik Warunki początkowe: Użytkownik musi być zalogowany. Scenariusz przypadku użycia: Wynik: 1 Użytkownik naciska przycisk zadania i zostaje przekierowany na stronę zadań. 2 W przypadku istnienia więcej niż dziesięciu zadań w systemie użytkownik ma możliwość przeglądać kolejne strony zadań. 3 Użytkownik może wybrać konkretne, interesujące go zadanie. Po kliknięciu w link zadania jego treść oraz panel związany z wejściami (dodawanie wejść oraz przeglądanie wejść) zostają asynchronicznie dograne na stronę serwisu. Strona z listą zadań, ewentualnie dodatkowo nazwa oraz opis konkretnego, wybranego przez użytkownika zadania Dodanie oceny Diagram aktywności został przedstawiony na rysunku 2.13, natomiast maszyna stanów na rysunku

20 2.4.Opis przypadków użycia Rysunek Diagram maszyny stanów przeglądania zadań Opis: Zalogowany użytkownik oddaje ocenę na dane wejście. Zależności: 1 Przeglądanie zadań Przeglądanie wejść Aktorzy: Zalogowany użytkownik systemu Warunki początkowe: Użytkownik musi być zalogowany. Użytkownik musi przeglądać konkretne zadanie. Użytkownik nie oddał jeszcze głosu na to wejście. Scenariusz przypadku użycia: 1 Użytkownik wybiera w panelu wejść zakładkę dodaj rozwiązanie. 2 Użytkownik zaznacza ocenę dla danego wejścia. 3 Servlet zapisuje dane w bazie danych. 4 Użytkownikowi zostaje pokazana ocena średnia dla danego wejścia. 20

21 2.4.Opis przypadków użycia Rysunek Diagram aktywności dodania oceny Wynik: Ocena użytkownika została zapisana w systemie Przeglądanie ocen Diagram aktywności został przedstawiony na rysunku 2.15, natomiast maszyna stanów na rysunku Opis: Zalogowany użytkownik przegląda średnie z ocen dla wejść do zadań. Zależności: 1 Przeglądanie zadań Przeglądanie wejść Aktorzy: Zalogowany użytkownik systemu Warunki początkowe: Użytkownik musi być zalogowany. Użytkownik musi przeglądać konkretne zadanie. 21

22 2.4.Opis przypadków użycia Rysunek Diagram maszyny stanów dodania oceny 22

23 2.4.Opis przypadków użycia Rysunek Diagram aktywności przeglądania ocen Rysunek Diagram maszyny stanów przeglądania ocen Użytkownik oddał głos na dane wejście, w przeciwnym razie informacje nie zostają wyświetlone. Scenariusz przypadku użycia: Wynik: 1 Użytkownik wybiera w panelu wejść zakładkę dodaj rozwiązanie. 2 Użytkownik przegląda oceny. Użytkownik zapoznał się ze średnimi ocenami wejść. 23

24 2.4.Opis przypadków użycia Przeglądanie wejść Diagram aktywności został przedstawiony na rysunku 2.17, natomiast maszyna stanów na rysunku Opis: Zalogowany użytkownik przegląda wejścia do wybranego przez siebie zadania. Zależności: Aktorzy: 1 Przeglądanie zadań Zalogowany użytkownik Warunki początkowe: Użytkownik musi być zalogowany. Zadania muszą się znajdować w systemie. Użytkownik musi przeglądać wybrane przez siebie zadanie. Scenariusz przypadku użycia: Wynik: 1 Użytkownik wybiera z panelu wejść opcję dodaj rozwiązanie. 2 Użytkownik przegląda listę wejść dla danego zadania. 3 Użytkownik wybiera konkretne, interesujące go wejście. 4 Panel z zawartością wejścia oraz formularzem zgłoszeniowym rozwiązania zostaje dograny asynchronicznie na stronę serwisu. Lista wejść, ewentualnie dodatkowo konkretne wybrane przez użytkownika wejście Dodanie wejścia Diagram aktywności został przedstawiony na rysunku 2.19, natomiast maszyna stanów na rysunku Opis: Zalogowany użytkownik dodaje wejście do wybranego przez siebie zadania. Zależności: 24

25 2.4.Opis przypadków użycia Rysunek Diagram aktywności przeglądania wejść Rysunek Diagram maszyny stanów przeglądania wejść Aktorzy: Przeglądanie zadań Zalogowany użytkownik systemu. Warunki początkowe: Użytkownik musi być zalogowany. W systemie muszą istnieć zadania. Scenariusz przypadku użycia: 1 Użytkownik wybiera interesujące go zadanie. 2 Użytkownik wybiera zakładkę dodaj input w panelu zadania. 3 Użytkownik wprowadza treść wejścia i naciska przycisk wyślij, dane zostają wysłane asynchronicznie. 4 Servlet uruchamia walidatora wejść i sprawdza dane użytkownika. 5 Dane zostają zapisane w bazie danych. 6 Użytkownik zostaje powiadomiony o poprawnym dodaniu wejścia. Alternatywne scenariusze: 25

26 2.4.Opis przypadków użycia Rysunek Diagram aktywności dodania wejsćia Wynik: Wejście jest niepoprawne, użytkownik zostaje powiadomiony o tym fakcie stosownym komunikatem. Poprawnie zwalidowane wejście zostaje dodane do bazy danych, użytkownik zostaje powiadomiony stosownym komunikatem Testowanie rozwiązania w systemie Diagram aktywności został przedstawiony na rysunku 2.21, natomiast maszyna stanów na rysunku Opis: Zalogowany użytkownik sprawdza swoje rozwiązanie zadania dla konkretnego, wybranego przez siebie wejścia. Zależności: Przeglądanie zadań Przeglądanie wejść Aktorzy: Zalogowany użytkownik systemu. 26

27 2.4.Opis przypadków użycia Rysunek Diagram maszyny stanów dodawania wejścia Warunki początkowe: Użytkownik musi być zalogowany. W systemie muszą istnieć zadania oraz wejścia do nich. Scenariusz przypadku użycia: Wynik: 1 Użytkownik wybiera interesujące go wejście. 2 Użytkownik wprowadza wyjście w pole formularza. 3 Użytkownik naciska przycisk sprawdź. 4 Servlet tworzy klasę sędziego wykorzystując do tego celu Custom Class Loadera. Przy pomocy sędziego następuje sprawdzenie rozwiązania, wynik zostaje zapisany w bazie danych. 5 Wynik zostaje zaprezentowany użytkownikowi poprzez asynchronicznie dogranie na stronę. Wynik oceny sędziego zostaje zapisany w bazie danych i wyświetlony użytkownikowi. 27

28 2.4.Opis przypadków użycia Rysunek Diagram aktywności testowania rozwiązań Rysunek Diagram maszyny stanów testowania rozwiązań 28

29 2.4.Opis przypadków użycia Edycja zadań Diagram aktywności został przedstawiony na rysunku 2.23, natomiast maszyna stanów na rysunku Opis: Zalogowany użytkownik z uprawnieniami problem settera aktualizuje dane zadania. Zależności: Aktorzy: Przeglądanie zadań Zalogowany użytkownik z uprawnieniami problem settera. Warunki początkowe: Użytkownik musi być zalogowany. Użytkownik musi posiadać uprawnienia problem settera. Scenariusz przypadku użycia: 1 Użytkownik wybiera interesujące go zadanie do edycji. 2 Użytkownik zmienia nazwę, opis, sędziego lub walidatora wejść. 3 Servlet dokonuje zmian w bazie danych. 4 Użytkownik zostaje przekierowany do strony edycji zadań z komunikatem o powodzeniu zmiany zadania. Alternatywne scenariusze: Wynik: Użytkownik podał niepoprawnie którąś z wartości, zostaje powiadomiony stosownym komunikatem. Zmienione zadanie zostaje zachowane w bazie danych, użytkownik zostaje powiadomiony stosownym komunikatem. 29

30 2.4.Opis przypadków użycia Rysunek Diagram aktywności edycji zadań Rysunek Diagram maszyny stanów edycji zadań 30

31 2.4.Opis przypadków użycia Dodanie zadań Diagram aktywności został przedstawiony na rysunku 2.25, natomiast maszyna stanów na rysunku Opis: Aktorzy: Zalogowany użytkownik mający uprawnienia problem settera lub administratora dodaje nowe zadanie do systemu. Zalogowany użytkownik z uprawnieniami problem settera lub administratora. Warunki początkowe: Użytkownik musi być zalogowany. Użytkownik musi mieć uprawnienia problem settera lub administratora. Scenariusz przypadku użycia: 1 Użytkownik naciska przycisk dodaj zadanie. 2 Użytkownik wprowadza nazwę zadania oraz jego treść. 3 Użytkownik może pobrać paczkę z interfejsami IJudge 2.2 oraz IInputValidator Użytkownik załącza skompilowane klasy Java sędziego oraz walidatora wejść. 5 Użytkownik naciska przycisk dodaj zadanie. 6 Servlet dodaje zadanie do bazy danych. 7 Użytkownik zostaje przekierowany do strony dodawania zadań ze stosownym komunikatem powodzenia operacji dodania nowego zadania do systemu. Alternatywne scenariusze: Wynik: Użytkownik nie podał wszystkich pół, zostaje poproszony o podanie wszystkich wartości. Użytkownik próbuje dodać zadanie o nazwie istniejącej w systemie, zostaje poinformowany o zaistniałej sytuacji i poproszony o zmianę nazwy. Użytkownilk załączył pliki nie implementujące odpowiednio interfejsu IJudge 2.2 dla sędziego zadań oraz IInputValidator 2.1, zostaje poproszony o załączenie poprawnych plików *.class. 31

32 2.4.Opis przypadków użycia Rysunek Diagram aktywności dodawania zadań Rysunek Diagram maszyny stanów dodawania zadań 32

33 2.5.Organizacja bazy danych Edycja użytkowników Diagram aktywności został przedstawiony na rysunku 2.27, natomiast maszyna stanów na rysunku Opis: Zalogowany administrator ustawia uprawnienia zwykłego użytkownika / problem settera wybranym przez siebie użytkownikom. Aktorzy: Zalogowany administrator systemu Warunki początkowe: Użytkownik musi być zalogowany. Użytkownik musi posiadać uprawnienia administratora. Scenariusz przypadku użycia: 1 Użytkownik naciska przycisk Edytuj użytkowników. 2 Użytkownik wybiera interesującą go stronę z użytkownikami. 3 Użytkownik dokonuje stosownych zmian. 4 Użytkownik naciska przycisk zapisz zmiany. 5 Servlet zapisuje informacje o użytkownikach w bazie danych. 6 Użytkownik zostaje przekierowany do strony edycji użytkowników z komunikatem powodzenia zapisy zmian uprawnień użytkowników. Alternatywne scenariusze: Wynik: Użytkownik nie wprowadził żadnych zmian, zostaje powiadomiony stosownym komunikatem. Zmiana uprawnień zapisana w bazie danych. Użytkownik zostaje powiadomiony o zmianie stosownym komunikatem Organizacja bazy danych Schemat relacyjnej bazy danych Schemat relacyjnej bazy danych został przedstawiony na rysunkach 2.29 oraz Opis poszczególnych tabel znajduje się w podrozdziale

34 2.5.Organizacja bazy danych Rysunek Diagram aktywności edycji użytkowników Rysunek Diagram maszyny stanów edycji użytkowników 34

35 2.5.Organizacja bazy danych Rysunek Schemat relacyjnej bazy danych, część 1 Rysunek Schemat relacyjnej bazy danych, część 2 35

36 2.5.Organizacja bazy danych Nazwa pola Typ pola Opis pola id int(10) unsigned NOT NULL Id użytkownika - klucz główny RolaUzytkownika Id int(10) unsigned NOT NULL Id roli użytkownika - klucz obcy login varchar(50) NULL Login uzytkownika haslo varchar(32) NULL Hasło użytkownika - skrót md5 Rysunek Opis pól tabeli Uzytkownik Nazwa pola Typ pola Opis pola Id int(10) unsigned NOT NULL Id roli użytkownika - klucz główny Nazwa varchar(50) default NULL Nazwa roli użytkownika Rysunek Opis pól tabeli RolaUzytkownika Opis tabel Użytkownik tabela zawierająca informacje o użytkowniku. Opis pól przedstawiono w tabeli RolaUzytkownika tabela zawierająca informacje o roli użytkownika. Opis pól przedstawiono w tabeli Przywilej tabela zawierająca informacje o przywileju użytkownika. Opis pól przedstawiono w tabeli PrzywilejPoleWMenu tabela kontener zawierająca informacje o tym jakie pola w menu sa przypisane do jakiego przywileju. Opis pól przedstawiono w tabeli PoleWMenu tabela zawierające informacje o polach w menu. Opis pól przedstawiono w tabeli Zadanie tabela zawierające informacje o zadaniach znajdujących się w systemie. Opis pól przedstawiono w tabeli InputDoZadania tabela zawierające informacje o wejściach do zadań znajdujących się w systemie. Opis pól przedstawiono w tabeli Nazwa pola Typ pola Opis pola Id int(10) unsigned NOT NULL Id przywileju - klucz główny RolaUzytkownika Id int(10) unsigned NOT NULL Id roli użytkownika - klucz obcy Nazwa varchar(50) default NULL Nazwa roli użytkownika Rysunek Opis pól tabeli Przywilej v 36

37 2.5.Organizacja bazy danych Nazwa pola Typ pola Opis pola Przywilej Id int(10) unsigned NOT NULL Id przywileju - klucz obcy PoleWMenu Id int(10) unsigned NOT NULL Id pola w menu - klucz obcy Id int(11) NOT NULL Id kontenera - klucz główny Rysunek Opis pól tabeli PrzywilejPoleWMenu Nazwa pola Typ pola Opis pola Id int(10) unsigned NOT NULL Id pola w menu - klucz główny Pole varchar(50) NULL Nazwa pola w menu Rysunek Opis pól tabeli PoleWMenu Nazwa pola Typ pola Opis pola idzadanie int(10) unsigned NOT NULL Id zadania - klucz główny Uzytkownik id int(10) unsigned NOT NULL Id dodającego - klucz obcy Nazwa varchar(100) NULL Nazwa zadania Tresc text Treść zadania Judge mediumblob Binarna reprezentacja klasy sędziego InputValidator mediumblob Binarna reprezentacja klasy walidatora wejść Rysunek Opis pól tabeli Zadanie Nazwa pola Typ pola Opis pola Id int(10) unsigned NOT NULL Id wejścia do zadania - klucz główny Uzytkownik id int(10) unsigned NOT NULL Id uzytkownika - klucz obcy Zadanie idzadanie int(10) unsigned NOT NULL Id zadania - klucz obcy Input text Zawartość wejścia Rysunek Opis pól tabeli InputDoZadania 37

38 2.6.Struktura klas w systemie Nazwa pola Typ pola Opis pola id int(11) NOT NULL Id oceny - klucz główny uzytkownikid int(11) NOT NULL Id użytkownika - klucz obcy inputid int(11) NOT NULL Id wejścia - klucz obcy ocena int(11) NOT NULL Ocena wejścia w skali Rysunek Opis pól tabeli Ocena Nazwa pola Typ pola Opis pola id int(10) unsigned NOT NULL Id rozwiązania - klucz główny InputDoZadania Id int(10) unsigned NOT NULL Id wejścia - klucz obcy Zadanie idzadanie int(10) unsigned NOT NULL Id zadania - klucz obcy Rozwiazanie longblob Rozwiązanie jako plik Poprawne tinyint(1) default NULL Określa, czy rozwiązanie było poprawne UzytkownikId int(10) unsigned default NULL Id użytkownika - klucz obcy Rysunek Opis pól tabeli RozwiazanieUzytkownika Ocena tabela zawierające informacje o ocenach wejść do zadań znajdujących się w systemie. Opis pól przedstawiono w tabeli RozwiazanieUzytkownika tabela zawierające informacje o rozwiązaniach zadań znajdujących się w systemie. Opis pól przedstawiono w tabeli Struktura klas w systemie Kod systemu został podzielony na odrębne pakiety klas, zależności między nimi zostały przedstawione na rysunku Podział taki został wprowadzony, aby polepszyć strukturyzację kodu oraz ułatwić zarządzanie kodem. Poszczególne pakiety zostaną dokładniej opisane w kolejnych podrozdziałach Package: Beans Diagram klas tego pakietu został przedstawiony na rysunku Package: Entity Beans Diagram klas tego pakietu został przedstawiony na rysunku Package: Utils Diagram klas tego pakietu został przedstawiony na rysunku

39 2.6.Struktura klas w systemie Rysunek Zależności pomiędy pakietami klas w systemie Package: Servlets Diagram klas tego pakietu został przedstawiony na rysunku

40 2.6.Struktura klas w systemie Rysunek Pakiet zawierający klasę SessionBean 40

41 2.6.Struktura klas w systemie Rysunek Pakiet zawierający klasy mapujące na encje bazy danych 41

42 2.6.Struktura klas w systemie Rysunek Pakiet zawierający klasy narzędziowe 42

43 2.6.Struktura klas w systemie Rysunek Pakiet zawierający servlety 43

44 Rozdział 3 Realizacja aplikacji w modelu MVC 3.1. Definicja modelu MVC MVC (ang. Model-View-Controller) - Model-Widok-Kontroler to architektoniczny wzorzec projektowy, którego głównym założeniem jest wyodrębnienie trzech podstawowych komponentów aplikacji: modelu danych interfejsu użytkownika logiki sterowania w taki sposób, aby modyfikacje jednego komponentu minimalnie wpływały na pozostałe [19]. Schemat zależności między modelem, widokiem, kontrolerem, dispatcherem i przeglądarką użytkownika został przedstawiony na rysunku 3.1. Ogólny schemat życia żądania w tym modelu przedstawia się następująco: Użytkownik wysyła żądanie do kontrolera. Kontroler może zapisać odpowiednie dane w bazie danych oraz pobrać dane potrzebne do zaprezentowania w interfejsie przygotowywanym dla użytkownika. Kontroler przygotowuj dane dla widoku. Widok generuje odpowiedni interfejs. Kontroler przy użyciu dispatchera pokazuje użytkownikowi wygenerowany interfejs. Cykl wraca do miejsca wyjścia- interfejs oczekuje na interakcje użytkownika. 44

45 3.1.Definicja modelu MVC Realizacja aplikacji w modelu MVC Rysunek 3.1. Schemat zależności w modelu MVC 45

46 3.2.Model Realizacja aplikacji w modelu MVC 3.2. Model 3.3. View 3.4. Controller 3.5. Maszyna wirtualna Javy oraz Class Loadery 3.6. Custom Class Loader maszyny wirtualnej Java 3.7. Implementacja Custom Class Loadera w systemie 46

47 Rozdział 4 Budowa systemu 4.1. System jako aplikacja JEE 4.2. Struktura systemu 47

48 Rozdział 5 Przykładowe zastosowania systemu przy rozwiązywaniu problemów algorytmicznych 5.1. Kolorowanie wierzchołkowe 5.2. Znajdowanie najkrótszej ścieżki 48

49 Rozdział 6 Podsumowanie i wnioski 49

50 Dodatek A Podręcznik użytkownika 50

51 Dodatek B Opis wdrożenia B.1. Apache Tomcat B.2. MySQL 51

52 Dodatek C Wykorzystane technologie oraz frameworki C.1. JSP JSP - JavaServer Pages. C.2. JSTL JSTL - JavaServer Pages Standard Tag Library. C.3. CSS CSS - Kaskadowe arkusze stylów (ang. Cascading Style Sheets, CSS). CSS to język umożliwiający manipulację formy prezentacji znaczników HTML na stronach WWW. Arkusz stylów to lista dyrektyw ustalająca w jaki sposób elemnenty strony WWW mają zostać wyświetlone. (Plik z arkuszem stylu styles.css został zaprezentowany na rysunku C.1). C.4. JavaScript JavaScript - skryptowy język obiektowy umożliwiający tworzenie dynamicznych stron po stronie użytkownika, jak i zarządzanie DOM (ang. Document Object Model). Java- Script został wykorzystany w systemie do obsługi AJAX-a po stronie klienckiej. Częściowy listing pliku js.js został przedstawiony na rysunku C.2. C.5. Servlety Servlet - klasa języka Java, rozszerzająca możliwości serwerów hostujących aplikacje w oparciu o model żądanie - odpowiedź. Pomimo, że serwlety mogą odpowiadać na każdy rodzaj żądania są najczęściej wykorzystywane do rozszerzania funkcjonalności aplikacji webowych. Klasa HttpServle zawarta w pakiecie javax.servlet.http dostarcza metod potrzebnych przy przetwarzaniu HTTP. Najważniejsze z nich to doget() i dopost() służący do obsługi żądań typu GET oraz POST. Cykl życia serwletu przedstawia się następująco: Żądanie HTTP zostaje zgłoszone serwerowi aplikacji JEE. 52

53 C.5.Servlety Wykorzystane technologie oraz frameworki #menu{ padding bottom : 1 5 px ; background : u r l (.. / images /menubackground. png ) repeat y ; } #menu>div { d i s p l a y : i n l i n e block ; }. menuitem{ d i s p l a y : i n l i n e block ; padding : 1 0 px ; margin : 0 px ; margin l e f t : 2 px ; margin r i g h t : 2 px ; background c o l o r : t r a n sparent ; border : none ; }. menuitemover{ d i s p l a y : i n l i n e block ; padding : 1 0 px ; margin : 0 px ; margin l e f t : 2 px ; margin r i g h t : 2 px ; background c o l o r : rgb ( 0, 1 2 8, ) ; border : rgb (180,255,255) s o l i d 1px ; }. zadanie l i g h t mouseout{ background : rgb ( 6 7, 1 8 7, ) ; c u r s o r : d e f a u l t ; }. zadanie l i g h t mouseover{ background : rgb ( 4 7, 1 5 7, ) ; c u r s o r : p o i n t e r ; } / /... Rysunek C.1. Plik styles.css 53

54 C.5.Servlety Wykorzystane technologie oraz frameworki f u n c t i o n gethttpobject ( ){ var xhr = f a l s e ; i f ( window. XMLHttpRequest ) { xhr = new XMLHttpRequest ( ) ; } e l s e i f ( window. ActiveXObject ) { try { xhr = new ActiveXObject ( Msxml2.XMLHTTP ) ; } catch ( e ){ try { xhr = new ActiveXObject ( M icrosoft.xmlhttp ) ; } catch ( e ){ xhr = f a l s e ; } } } return xhr ; } f u n c t i o n processhttprequest ( callbackfunction, params, page ){ var r e q u e s t = gethttpobject ( ) ; i f ( r e q u e s t ){ r e q u e s t. onreadystatechange = f u n c t i o n (){ callbackfunction ( r e q u e s t ) ; } r e q u e s t. open ( POST, page, true ) ; r e q u e s t. setrequestheader ( Content Type, a p p l i c a t i o n /x www form urlencoded ) ; r e q u e s t. send ( params ) ; } } f u n c t i o n loadvote ( r e q u e s t ){ i f ( r e q u e s t. readystate == 4){ i f ( r e q u e s t. s t a t u s == 200 r e q u e s t. s t a t u s == 304){ var XML = r e q u e s t. responsexml ; var id = trim (XML. getelementsbytagname ( id ) [ 0 ]. f i r s t C h i l d. nodevalue ) ; / /... } } } Rysunek C.2. Plik js.js 54

55 C.6.MySQL Wykorzystane technologie oraz frameworki Serwer aplikacji przy pomocy class loadera ładuje do pamięci klasę odpowiedniego serwletu(mapowanie ścieżek uri znajduje się w pliku web.xml C.3) oraz tworzy jej instancję. Serwer wykonuje metodę init() serwletu. Wykonana zostaje metoda doget()/dopost(). Obsługa żądania kończy się. Po zakończeniu obsługi żądania obiekt serwletu pozostaje w pamięci - w przypadku kolejnego żądania zostanie wywołana tylko metoda doget()/dopost(). C.6. MySQL MySQL - system zarządzania relacyjną bazą danych (RDBMS- ang. Relational Database Management System). Silnik bazodanowy użyty w systemie w celu przechowywania danych o użytkownikach, zadaniach, wejściach oraz rozwiązaniach do nich. Wybrano ten RDBMS, ze względu na: Szybkość funkcjonowania Licencję GPL Wielosystemową architekturę C.7. JDBC JDBC - nazwa handlowa (Java TM Database Connectivity) api zawierające klasy i interfejsy umożliwiające łączenie się z bazą danych, dokonywanie operacji na bazie danych oraz przetwarzania zwracanych rezultatów. Wykorzystany sterownik MySqlJDBCConnector to sterownik typu 4. Sterownik typu 4 jest napisany całkowicie w Javie i wykorzystuje natywny protokół bazy danych. Sterowniki tego typu są niezależne od platformy uruchomieniowej, nie potrzebują warstwy translacyjnej, czy middlewarowej, komunikują się bezpośrednio z serwerem bazy danych, więc ich wydajność jest lepsza niż pozostałych sterowników (typu 1, 2 i 3) [17]. C.8. POJO Entity Bean POJO Entity Bean - Plain Old Java Object. Obiekty tego typu muszą posiadać bezargumentowy konstruktor, niekoniecznie publiczny, dobrze też, gdy implementują metody equals() oraz hashcode(). Są one wykorzystane jako obiekty mapujące tabele z relacyjnej bazy danych [14]. 55

56 C.8.POJO Entity Bean Wykorzystane technologie oraz frameworki <?xml v e r s i o n = 1.0 encoding= UTF 8?> <web app v e r s i o n = 2.5 xmlns= http : / / java. sun. com/xml/ ns / javaee xmlns : x s i= http : / /www. w3. org /2001/XMLSchema i n s t a n c e x s i : schemalocation= http : / / java. sun. com/xml/ ns / javaee http : / / java. sun. com/xml/ ns / javaee /web app 2 5. xsd > <s e r v l e t > <s e r v l e t name>menu</s e r v l e t name> <s e r v l e t c l a s s >S e r v l e t s. Menu</s e r v l e t c l a s s > </ s e r v l e t > //... <s e r v l e t mapping> <s e r v l e t name>menu</s e r v l e t name> <url pattern >/Menu</url pattern > </ s e r v l e t mapping> //... </ s e r v l e t mapping> <s e s s i o n config > <s e s s i o n timeout> 30 </s e s s i o n timeout> </s e s s i o n config > <error page> <error code >404</ error code> <l o c a t i o n >/e r r o r. jsp </l o c a t i o n > </e rror page> <p e r s i s t e n c e context r e f > <p e r s i s t e n c e context r e f name> p e r s i s t e n c e / pracamagisterska </p e r s i s t e n c e context r e f name> <p e r s i s t e n c e unit name> PracaMagisterskaPU </p e r s i s t e n c e unit name> </p e r s i s t e n c e context r e f > <welcome f i l e l i s t > <welcome f i l e >index. jsp </welcome f i l e > </welcome f i l e l i s t > </web app> Rysunek C.3. Plik web.xml 56

57 C.9.JPA Wykorzystane technologie oraz frameworki C.9. JPA JPA (ang. Java Persistence API) - oficjalny standard mapowania obiektowo-relacyjnego (ORM) firmy Sun Microsystems dla języka Java [15] [16]. JPA składa się z trzech części: API, zdefiniowanego w paczce javax.persistence Java Persistence Query Language (JPQL) metadanych związanych z obiektami/relacjami (adnotacje XML-owe) C.10. Hibernate Hibernate - framework realizujący dostęp do warstwy danych. Odpowiada za translację pomiędzy relacyjną bazą danych, a obiektami (mapowanie O/R). Ułatwia pisanie aplikacji poprzez zastąpienie bezpośredniego dostępu do danych w bazie danych przez wysokopoziomowy mechanizm obiektowy. Obiekty są mapowane na tabele w odpowiednim pliku XML oraz przy wykorzystaniu specjalnych adnotacji. Trwałość (persistence) obiektów jest zapewniania dzięki obiektom typu POJO. Jako język zapytań został wykorzystany język JPQL (Java Persistence Query Language) [14]. Plik persistence.xml został przedstawiony na rysunku C.4, a przykładowy obiekt mapujący na tabelę polewmenu na rysunku C.5. C.11. Java refrections Java Reflection API - api, dzięki któremu aplikacja Java może być modyfikowana w trakcie wykonywania. Refleksje pozwalają w łatwy sposób rozbudowywać istniejącą aplikację o nowe moduły, czy funkcjonalności. W systemie API to zostało wykorzystane do dynamicznego ładowania klas walidatora wejść oraz sędziego zadań. C.12. Ajax AJAX (ang. Asynchronous JavaScript and XML, Asynchroniczny JavaScript i XML) technologia wytwarzania serwisów internetowych, w której wymiana informacji pomiędzy użytkownikiem serwisu, a samym serwisem odbywa się w sposób asynchroniczny, nie wymagający przeładowywania zawartości całego dokumentu, lecz tylko wybranej jego części. Jest to alternatywa dla standardowego wytwarzania synchronicznego, w którym po synchronicznym wysłaniu żądania do serwera otrzymujemy informację zwrotna w postaci dokumentu HTML[13]. Na technologię tą składają się trzy elementy: XMLHttpRequest - obiekt umożliwiający budowanie asynchronicznych (jak i synchronicznych) żądań, przechowujący informację o funkcji zwrotnej (callback), stanie i 57

58 C.12.Ajax Wykorzystane technologie oraz frameworki <?xml v e r s i o n = 1.0 encoding= UTF 8?> <p e r s i s t e n c e v e r s i o n = 1.0 xmlns= http : / / java. sun. com/xml/ ns / p e r s i s t e n c e xmlns : x s i= http : / /www. w3. org /2001/XMLSchema i n s t a n c e x s i : schemalocation= http : / / java. sun. com/xml/ ns / p e r s i s t e n c e http : / / java. sun. com/xml/ ns / p e r s i s t e n c e / p e r s i s t e n c e 1 0. xsd > <p e r s i s t e n c e unit name= PracaMagisterskaPU > <provider >org. h i b e r n a t e. ejb. H i b e r n a t e P e r s i s t e n c e </provider > <jta data source/> <c l a s s >EJBBeans. Inputdozadania </c l a s s > <c l a s s >EJBBeans. InputdozadaniaPK</c l a s s > <c l a s s >EJBBeans. Ocena</c l a s s > <c l a s s >EJBBeans. Polewmenu</c l a s s > <c l a s s >EJBBeans. Przywilej </c l a s s > <c l a s s >EJBBeans. Przywilejpolewmenu </c l a s s > <c l a s s >EJBBeans. Rolauzytkownika </c l a s s > <c l a s s >EJBBeans. Rozwiazanieuzytkownika </c l a s s > <c l a s s >EJBBeans. RozwiazanieuzytkownikaPK </c l a s s > <c l a s s >EJBBeans. Uzytkownik</c l a s s > <c l a s s >EJBBeans. Zadanie </c l a s s > <p r o p e r t i e s > <property name= h i b e r n a t e. show sql value= f a l s e /> <property name= h i b e r n a t e. connection. username value= s p o j /> <property name= h i b e r n a t e. connection. d r i v e r c l a s s value= com. mysql. jdbc. Driver /> <property name= h i b e r n a t e. connection. password value= pass /> <property name= h i b e r n a t e. l o g g i n g. l e v e l value= SEVERE /> <property name= h i b e r n a t e. connection. u r l value= jdbc : mysql : / / l o c a l h o s t :3306/ s p o j s o l u t i o n c o m p a r e r? useunicode=true&amp ; characterencoding=utf 8 &amp ; c o n n e c t i o n C o l l a t i o n=u t f 8 g e n e r a l c i /> </p r o p e r t i e s > </p e r s i s t e n c e unit> </p e r s i s t e n c e > Rysunek C.4. Plik persistence.xml 58

59 C.12.Ajax Wykorzystane technologie oraz frameworki / Encja Michał (name = polewmenu, c a t a l o g = s p o j s o l u t i o n c o m p a r e r, schema = = Polewmenu. f i n d A l l, query = SELECT p FROM Polewmenu p = Polewmenu. findbyid, query = SELECT p FROM Polewmenu p WHERE p. id = : id = Polewmenu. findbypole, query = SELECT p FROM Polewmenu p WHERE p. pole = : pole = Polewmenu. findzrola, query = SELECT p FROM Polewmenu p, Przywilejpolewmenu pr WHERE pr. p r z y w i l e j I d = : r o l a I d and p. id = pr. polewmenuid = Polewmenu. findbezroli, query = SELECT p FROM Polewmenu p WHERE (SELECT COUNT( pr. i d ) from Przywilejpolewmenu pr where pr. polewmenuid = p. id ) = 0 )}) p u b l i c c l a s s Polewmenu implements S e r i a l i z a b l e { p r i v a t e s t a t i c f i n a l long serialversionuid = ( s t r a t e g y = ( o p t i o n a l = f a l s e = Id ) p r i v a t e I n t e g e r id = Pole ) p r i v a t e S t r i n g pole ; / /... implementacja metod i konstruktorów } Rysunek C.5. Klasa Polewmenu 59

60 C.13.JsMath Wykorzystane technologie oraz frameworki statusie żądania oraz informację zwrotną. W chwili utworzenia obiektu XMLHttpRequest musi być on w stanie UNSENT, ten stan jest reprezentowany przez stałą o tej samej nazwie i wartości 0. Status OPENED jest ustawiany po pomyślnym wywołaniu metody open(). Podczas, gdy obiekt jest w tym stanie można ustawiać nagłówki poprzez wywołanie metody setrequestheader() oraz można wykonać żądanie poprzez wywołanie metody send(). Status HEADERS RECEIVED jest ustawiany, gdy wszystkie nagłówki odpowiedzi zostały przesłane. Status LOADED jest ustawiany, gdy ciało odpowiedzi jest przesyłane do klienta. Status DONE jest ustawiany, gdy transmisja dobiegła końca, są znane nagłówki, ciało wiadomości oraz flaga błędu. Interfejs XMLHttpRequest został przedstawiony na rysunku C.6. JavaScript - język skryptowy wykonywany po stronie użytkownika, który obsługuje obiektowy model dokumentu (Document Object Model, DOM). Nie musi to być koniecznie JavaScript, może to być inny język skryptowy, taki jak VBScript, czy JScript. XML - język znacznikowy, w którym zapisywana jest informacja zwrotna. Nie musi być to koniecznie format XML (Extensible Markup Language), może to też być czysty HTML/XHTML, JSON (JavaScript Object Notation), czy inny format wybrany przez użytkownika. C.13. JsMath JsMath - pakiet umożliwiający wstawianie notacji matematycznych na strony HTML, który to działa na szerokim zbiorze przeglądarek internetowych oraz systemów operacyjnych z rodziny Windows, Macintosh OS X oraz *NIX. jako, że jest to pakiet JavaScriptowy nie ma potrzeby instalowania dodatkowych modułów na serwerze. Do prezentowania zawartości TEX-owych wstawek można wykorzystać czcionki TEX-owe, skalowalne czcionki obrazkowe, jak i czcionki Unicodowe. Zawartość stron nie musi być w żaden sposób preprocesowana, całość jest zapisana w TEX-u, potem renderowana przez silnik JavaScriptowy, co ułatwia zarządzanie zawartością. 60

Praca dyplomowa magisterska

Praca dyplomowa magisterska Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra: Algorytmów i Modelowania Systemów Imię i nazwisko dyplomanta: Michał Piątek Nr albumu: 102145 Forma i poziom studiów: Dzienne,

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery Łukasz Bartczuk Moduł 6 JavaScript w przeglądarce Agenda Skrypty na stronie internetowej Model DOM AJAX Skrypty na stronie

Bardziej szczegółowo

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych Czym jest AJAX AJAX wprowadzenie Beata Pańczyk na podstawie: 1. Lis Marcin, Ajax, Helion, 2007 2. Hadlock Kris, Ajax dla twórców aplikacji internetowych, Helion, 2007 AJAX (Asynchronous JavaScript and

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje

Bardziej szczegółowo

Paweł Rajba, pawel.rajba@continet.pl

Paweł Rajba, pawel.rajba@continet.pl Paweł Rajba, pawel.rajba@continet.pl Wprowadzenie Zalety Wady XMLHttpRequest AJAX w praktyce AJAX + jquery Literatura Z czego się składa? JavaScript + DOM Obiekt XMLHttpRequest Jakakolwiek technologia

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008 Adam 1 grudnia 2008 Wstęp Opis Historia Apache kontener serwletów rozwijany w ramach projektu Apache jeden z bardziej popularnych kontenerów Web open source, Apache Software License rozwijany przez ASF

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Politechnika Częstochowska. Projektowanie systemów użytkowych II Politechnika Częstochowska Wydział Inżynierii Mechanicznej i Informatyki Projektowanie systemów użytkowych II Zdalny wybór Prac Dyplomowych Diana Kisiała Tomasz Jewiarz Jacek Kucharzewski Informatyka,

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 4

Podstawy programowania III WYKŁAD 4 Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż. Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Wstęp Programowanie w Javie 2 mgr inż. Michał Misiak Agenda Założenia do wykładu Zasady zaliczeń Ramowy program wykładu

Bardziej szczegółowo

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

Podstawowe wykorzystanie Hibernate

Podstawowe wykorzystanie Hibernate Podstawowe wykorzystanie Hibernate Cel Wykonanie prostej aplikacji webowej przedstawiającą wykorzystanie biblioteki. Aplikacja sprawdza w zależności od wybranej metody dodaje, nową pozycje do bazy, zmienia

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 3 Inżynieria oprogramowania Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System

Bardziej szczegółowo

Szczegółowy opis zamówienia:

Szczegółowy opis zamówienia: Szczegółowy opis zamówienia: Rok 2016 budowa stron w html5 (8h v + 4h ćw) 8 szt. html5 - zaawans. (7h v + 5h ćw) 8 szt. programowania w java script (9h v + 7h ćw) 8 szt. java script zaawans (8h v + 4h

Bardziej szczegółowo

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,

Bardziej szczegółowo

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą 2.4 QuestionGame QuestionGame jest grą z celem zaprojektowaną do gromadzenia pytań zadawanych przez ludzi podczas prób rozpoznawania ras psów. Program ma charakter aplikacji internetowej. W rozgrywcę mogą

Bardziej szczegółowo

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy Dokumentacja techniczna Młodzieżowe Pośrednictwo Pracy Spis Treści 1. Widok ogólny architektury MPP... 3 2. Warstwy systemu... 5 3. Struktura systemu/komponentów... 7 3.1 Aplikacje... 7 3.2 Biblioteki...

Bardziej szczegółowo

Podręcznik Użytkownika LSI WRPO

Podręcznik Użytkownika LSI WRPO Podręcznik użytkownika Lokalnego Systemu Informatycznego do obsługi Wielkopolskiego Regionalnego Programu Operacyjnego na lata 2007 2013 w zakresie wypełniania wniosków o dofinansowanie Wersja 1 Podręcznik

Bardziej szczegółowo

Bazy danych i strony WWW

Bazy danych i strony WWW Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Przykłady na podstawie zadań lab. z przedmiotu Technologie internetowe

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3 OPIS OGÓLNY SEKCJI TŁUMACZENIA...

Bardziej szczegółowo

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy,

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy, Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć

Bardziej szczegółowo

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework mgr inż. Łukasz Stefanowicz dr inż.

Bardziej szczegółowo

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Programowanie w Javie 2. Płock, 26 luty 2014 r. Programowanie w Javie 2 Płock, 26 luty 2014 r. Zaliczenie wykładu i ćwiczeń Zaliczenie ćwiczeń (projekt na zaliczenie, 3 prace domowe) Zaliczenie wykładu (referat na 1h) Ocena ćwiczeń: 70% projekt + 30%

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Zaawansowane Techniki Bazodanowe

Zaawansowane Techniki Bazodanowe Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Zaawansowane Techniki Bazodanowe Krzysztof Koptyra, Dawid Tomaszewski Raport

Bardziej szczegółowo

SOP System Obsługi Parkingów

SOP System Obsługi Parkingów SOP System Obsługi Parkingów JEE i Android Marcin Tatjewski Tomasz Traczyk Grzegorz Zieliński Paweł Borycki 5 listopada 2009 www.sopark.pl Plan prezentacji Java Platform, Enterprise Edition (JEE) Wstęp

Bardziej szczegółowo

OpenLaszlo. OpenLaszlo

OpenLaszlo. OpenLaszlo OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

INSTRUKCJA REJESTRACJI ORGANIZACJI W GENERATORZE WNIOSKÓW APLIKACYJNYCH SI NAWIKUS

INSTRUKCJA REJESTRACJI ORGANIZACJI W GENERATORZE WNIOSKÓW APLIKACYJNYCH SI NAWIKUS INSTRUKCJA REJESTRACJI ORGANIZACJI W GENERATORZE WNIOSKÓW APLIKACYJNYCH SI NAWIKUS Wersja 1.1 Pro j e k t P I N A W I K U S i n n o w a c y j n a m e t o d a m o n i t o r i n g u k o n t r a k t o w a

Bardziej szczegółowo

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje Internetowe, Servlety, JSP i JDBC Aplikacje Internetowe, Servlety, JSP i JDBC Opis Java 2 Enterprise Edition (JEE) jest potężną platformą do tworzenia aplikacji webowych. PLatforma JEE oferuje wszystkie zalety tworzenia w Javie plus wszechstronny

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2 Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2 Generowanie kodów: po stronie Partnera Weryfikacja kodów: po stronie Partnera Spis treści 1. Kolejne kroki w stworzeniu własnego serwisu 2. Jak

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 13 Marcin Młotkowski 16 stycznia 2013 Plan wykładu Testowanie aplikacji w Ruby on Rails Testowanie modeli Testy funkcjonalne: testowanie kontrolerów Testy integracyjne Testowanie

Bardziej szczegółowo

Podręcznik Integracji

Podręcznik Integracji Podręcznik Integracji Spis treści 1. Integracja oferty... 3 1.1. Samodzielne wprowadzanie oferty sklepu... 3 1.2. Automatyczne wprowadzanie oferty z pliku XML... 3 1.3. Cyklicznie pobieranie oferty ze

Bardziej szczegółowo

Szkolenie wycofane z oferty

Szkolenie wycofane z oferty Szkolenie wycofane z oferty Program szkolenia: Java Server Faces 2 Informacje: Nazwa: Java Server Faces 2 Kod: Java-EE-JSF 2 Kategoria: Java EE Grupa docelowa: developerzy Czas trwania: 3 dni Forma: 50%

Bardziej szczegółowo

Podstawy programowania w języku JavaScript

Podstawy programowania w języku JavaScript Podstawy programowania w języku JavaScript Część piąta AJAX Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych

Bardziej szczegółowo

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

Załącznik 2 utworzenie projektu

Załącznik 2 utworzenie projektu Załącznik 2 utworzenie projektu W poniższym załączniku przedstawione zostaną instrukcje utworzenia projektu w środowisku Eclipse, na bazie którego będzie rozbudowywana aplikacja. Przedstawiony zostanie

Bardziej szczegółowo

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX. Protokół HTTP 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX. 1 Usługi WWW WWW (World Wide Web) jest najpopularniejszym sposobem udostępniania

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

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

Bardziej szczegółowo

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Wirtualne przedsiębiorstwo II Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Łukasz Macierzyński 157588 Daniel Nikończuk 157621 Kacper Oko 157626 Agenda 1. Co to jest mapowanie obiektowo-relacyjne

Bardziej szczegółowo

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów A Zasady współpracy Ocena rozwiązań 3.0 25 40 punktów 3.5 41 65 punktów 4.0 66 80 punktów 4.5 81 100 punktów 5.0 101 130 punktów Warunki zaliczenia przedmiotu Student uzyska ocenę zaliczającą (3.0) o ile

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 1 Servlety

Architektury Usług Internetowych. Laboratorium 1 Servlety Architektury Usług Internetowych Laboratorium 1 Servlety Wstęp Celem laboratorium jest zapoznanie się z modelem klient-serwer (żądanieodpowiedź) na przykładzie serwletów. Kontener webowy Kontener webowy

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services Architektury Usług Internetowych Laboratorium 2 RESTful Web Services Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych opartych na standardzie REST. RESTful Web Services Usługami

Bardziej szczegółowo

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,

Bardziej szczegółowo

Języki programowania wysokiego poziomu. Ćwiczenia

Języki programowania wysokiego poziomu. Ćwiczenia Języki programowania wysokiego poziomu Ćwiczenia Języki programowania Ćwiczenia Strukturalny HTML Arkusze CSS Formularze HTML i PHP Baza danych MySQL Forum internetowe Strukturalny HTML Zadania Dokument

Bardziej szczegółowo

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Temat pracy : Projekt i realizacja aplikacji do tworzenia i wizualizacji drzewa genealogicznego Autor: Martyna Szymkowiak Promotor: dr inż. Romana Simińskiego Kategorie: gry, użytkowe Słowa kluczowe: The

Bardziej szczegółowo

Projektowani Systemów Inf.

Projektowani Systemów Inf. Projektowani Systemów Inf. Wykład VII Bezpieczeństwo Copyrights by Arkadiusz Rzucidło 1 Bezpieczeństwo Bezpieczeństwo związane z danymi Konstrukcja magazynów danych Mechanizmy zapisu i modyfikacji danych

Bardziej szczegółowo

Instrukcja rejestracji organizacji w podsystemie. Generator Wniosków Aplikacyjnych (GWA) Systemu Informatycznego NAWIKUS

Instrukcja rejestracji organizacji w podsystemie. Generator Wniosków Aplikacyjnych (GWA) Systemu Informatycznego NAWIKUS Instrukcja rejestracji organizacji w podsystemie Generator Wniosków Aplikacyjnych (GWA) Systemu Informatycznego NAWIKUS Opracowanie: ACK Cyfronet AGH Wersja: 1.1 (październik 2013) Strona 1 Zawartość Instrukcja

Bardziej szczegółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu

Bardziej szczegółowo

EJB 3.0 (Enterprise JavaBeans 3.0)

EJB 3.0 (Enterprise JavaBeans 3.0) EJB 3.0 (Enterprise JavaBeans 3.0) Adrian Dudek Wirtualne Przedsiębiorstwo 2 Wrocław, 1 czerwca 2010 Plan prezentacji 1 Wprowadzenie Cel prezentacji Czym jest EJB 3.0? Historia 2 3 Cel prezentacji Wprowadzenie

Bardziej szczegółowo

Przewodnik użytkownika (instrukcja) AutoMagicTest

Przewodnik użytkownika (instrukcja) AutoMagicTest Przewodnik użytkownika (instrukcja) AutoMagicTest 0.1.21.137 1. Wprowadzenie Aplikacja AutoMagicTest to aplikacja wspierająca testerów w testowaniu i kontrolowaniu jakości stron poprzez ich analizę. Aplikacja

Bardziej szczegółowo

Modele danych walidacja widoki zorientowane na model

Modele danych walidacja widoki zorientowane na model Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych

Bardziej szczegółowo

System epon Dokumentacja użytkownika

System epon Dokumentacja użytkownika System epon Dokumentacja użytkownika Prawa autorskie tego opracowania należą do MakoLab S.A. Dokument ten, jako całość, ani żadna jego część, nie może być reprodukowana lub rozpowszechniana w jakiejkolwiek

Bardziej szczegółowo

Sesje i logowanie. 1. Wprowadzenie

Sesje i logowanie. 1. Wprowadzenie Sesje i logowanie 1. Wprowadzenie Żądania od nawet tego samego użytkownika na serwerze nie są domyślnie w żaden sposób łączone ze sobą. Każde jest w pewnym sensie nowe i serwer nie jest w stanie stwierdzić,

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

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

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką Autor: Paweł Konieczny Promotor: dr Jadwigi Bakonyi Kategorie: aplikacja www Słowa kluczowe: Serwis

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja aplikacji internetowej do wyszukiwania promocji Autor: Sylwester Wiśniewski Promotor: dr Jadwiga Bakonyi Kategorie: aplikacja webowa Słowa

Bardziej szczegółowo

Tomasz Grześ. Systemy zarządzania treścią, cz. II

Tomasz Grześ. Systemy zarządzania treścią, cz. II Tomasz Grześ Systemy zarządzania treścią, cz. II Panel administracyjny Panel administracyjny pozwala na zarządzanie wszystkimi elementami pakietu, m.in. zarządzanie użytkownikami, edycję stron, instalowanie

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja elektronicznego dziennika ocen ucznia Autor: Grzegorz Dudek wykonanego w technologii ASP.NET We współczesnym modelu edukacji, coraz powszechniejsze

Bardziej szczegółowo

Internetowy System Składania Wniosków PISF wersja 2.2. Instrukcja dla Wnioskodawców

Internetowy System Składania Wniosków PISF wersja 2.2. Instrukcja dla Wnioskodawców Internetowy System Składania Wniosków PISF wersja 2.2 Instrukcja dla Wnioskodawców Poznań 2011 1 Spis treści 1.Dostęp do ISSW... str.3 1.1.Zakładanie konta ISSW 1.2.Logowanie do systemu ISSW 1.3. Logowanie

Bardziej szczegółowo

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji OMNITRACKER Wersja testowa Szybki przewodnik instalacji 1 Krok 1:Rejestracja pobrania (jeżeli nie wykonana dotychczas) Proszę dokonać rejestracji na stronieomninet (www.omnitracker.com) pod Contact. Po

Bardziej szczegółowo

PORTAL KLIENTA I OBSŁUGA ZGŁOSZEŃ.V01. VULCAN Innowacji

PORTAL KLIENTA I OBSŁUGA ZGŁOSZEŃ.V01. VULCAN Innowacji PORTAL KLIENTA I OBSŁUGA ZGŁOSZEŃ.V01 VULCAN Innowacji Streszczenie Dokument zawiera instrukcję opisującą Portal Klienta, za pomocą którego Użytkownik może przekazać zgłoszenie do Centrum Obsługi Klienta

Bardziej szczegółowo

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

PWI Instrukcja użytkownika

PWI Instrukcja użytkownika PWI Instrukcja użytkownika Spis treści 1. Wprowadzenie... 1 2. Przebieg przykładowego procesu... 1 3. Obsługa systemu... 5 a. Panel logowania... 5 b. Filtrowanie danych... 5 c. Pola obligatoryjne... 6

Bardziej szczegółowo

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

Bardziej szczegółowo

B2B Obsługa portalu zgłoszeniowego

B2B Obsługa portalu zgłoszeniowego B2B Obsługa portalu zgłoszeniowego Spis treści 1. Ustalenia loginu i hasła, reset hasła... 1 1.1 Ustalenia hasła przez użytkownika... 1 2. Logowanie do systemu uprawnienia pełne/uproszczone... 2 2.1 Uprawnienia

Bardziej szczegółowo

Projekt z przedmiotu Projektowanie systemów teleinformatycznych

Projekt z przedmiotu Projektowanie systemów teleinformatycznych Państwowa Wyższa Szkoła Zawodowa w Tarnowie Projekt z przedmiotu Projektowanie systemów teleinformatycznych Temat : Centrum Raportowania Sprzedaży w sieciach telefonii komórkowej Wykonali: Pasula Marcin

Bardziej szczegółowo

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

Bardziej szczegółowo

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji OMNITRACKER Wersja testowa Szybki przewodnik instalacji 1 Krok 1:Rejestracja pobrania (jeżeli nie wykonana dotychczas) Proszę dokonać rejestracji na stronieomninet (www.omnitracker.com) pod Contact. Po

Bardziej szczegółowo

Testowanie aplikacji. Kurs języka Ruby

Testowanie aplikacji. Kurs języka Ruby Testowanie aplikacji Kurs języka Ruby Rodzaje testów Testy jednostkowe Testy funkcjonalne Testy integracyjne Testy jednostkowe (unit tests) Testy sprawdzające pojedyncze funkcjonalności (metodę, funkcję

Bardziej szczegółowo

Aplikacje www laboratorium

Aplikacje www laboratorium Aplikacje www laboratorium Konfigurowanie zabezpieczeń w oparciu o JAAS w serwerze GlassFish Zabezpieczanie aplikacji webowych z wykorzystaniem JASS jest w podstawowych zastosowaniach procesem dwuetapowym.

Bardziej szczegółowo

Aplikacje WWW Wprowadzenie

Aplikacje WWW Wprowadzenie Aplikacje WWW Wprowadzenie Beata Pańczyk na podstawie http://www.e-informatyka.edu.pl/ http://wazniak.mimuw.edu.pl/index.php?title=aplikacje_www Plan wykładu Składniki architektury WWW: klient HTTP, serwer

Bardziej szczegółowo

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5. AJAX Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5. Czym jest AJAX? AJAX (Asynchronous JavaScript And XML) nie jest nową technologią, ale nowym sposobem wykorzystania kombinacji istniejących technologii

Bardziej szczegółowo