Projekt I: AJAX
Pierwszy projekt dotyczy wykorzystania technologii AJAX.
Zakres tematyczny (funkcjonalny) projektu jest dowolny. Ważne jest, aby w
projekcie wystąpiły następujące elementy:
- Kooperacja klientów ― w przetwarzaniu jednocześnie musi uczestniczyć co
najmniej 2 klientów, współpracujących ze sobą w sposób wymagający
synchronizacji ich pracy przez serwer. Przykładem tego typu aplikacji mogą
być różnego rodzaju gry.
- Serwer powinien być w stanie jednocześnie obsługiwać kilka równoległych gier.
- Należy zwrócić uwagę na optymalizację działania aplikacji, zarówno jeśli
chodzi o obciążenie klienta i serwera (busy waiting), jak i ilość
przesyłanych komunikatów (pooling).
- Implementacja powinna być odporna na odświeżanie strony w przeglądarce; nie
powinien być tracony stan gry.
- Transfer danych pomiędzy serwerem a klientami ma się odbywać z wykorzystaniem
formatu XML lub JSON.
- Do prezentacji należy zastosować element <canvas>. Proszę nie
przykładać nadmiernej wagi do szaty graficznej, która nie będzie podlegać
ocenie.
- Implementacja powinna działać poprawnie w przeglądarkach: Firefox, Chrome,
Opera i Internet Explorer.
Nieprzekraczalny termin zaliczenia projektu to 4 maja.
Projekt II: usługa sieciowa REST
Drugi projekt zaliczeniowy dotyczy konstrukcji usług sieciowych REST.
W projekcie powinny wystąpić następujące elementy:
- Elementem składowym zaliczenia jest projekt usługi, obejmujący:
- opis hierarchii zasobów,
- znaczenie poszczególnych operacji protokołu HTTP w
- odniesieniu do zasobów,
- opis formatów danych używanych do reprezentacji danych wejściowych i
- wyjściowych dla poszczególnych zasobów.
- Zakres merytoryczny usługi jest dowolny. Usługa powinna mieć jednak
nietrywialny poziom złożoności. Wśród udostępnianych zasobów powinny się
znaleźć (co najmniej po 1 sztuce):
- proste zasoby oferujące pełen zakres operacji CRUD,
- zasoby-kolekcje będące reprezentacją zbiorów innych zasobów i stosujące
stronicowanie w swoich reprezentacjach,
- zasoby-kontrolery umożliwiające atomowe wykonanie aktualizacji kilku innych
zasobów,
- zasoby przyjmujące zlecenia w trybie POST once exactly, eliminujące
wielokrotne wysyłanie tych samych zleceń.
- Wykonywanie aktualizacji zasobów (PUT) powinno być wykonywane w trybie
weryfikacji, wykluczającej niesygnalizowane nadpisywanie współbieżnie
nanoszonych zmian przez różnych klientów.
- Implementacja powinna wykorzystywać dowolnie wybrane środowisko
programistyczne (framework) wspierające budowę usług sieciowych REST.
- W ramach projektu należy również zaimplementować przykładowego klienta
usługi. Klient może być aplikacją webową lub samodzielną aplikacją.
Termin zaliczenia projektu to 30 września, przy czym zaliczać można do końca
czerwca lub w sesji poprawkowej we wrześniu.