Contents

This Page

PiKSR — Projekty

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:

  1. 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.
  2. Serwer powinien być w stanie jednocześnie obsługiwać kilka równoległych gier.
  3. 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).
  4. Implementacja powinna być odporna na odświeżanie strony w przeglądarce; nie powinien być tracony stan gry.
  5. Transfer danych pomiędzy serwerem a klientami ma się odbywać z wykorzystaniem formatu XML lub JSON.
  6. Do prezentacji należy zastosować element <canvas>. Proszę nie przykładać nadmiernej wagi do szaty graficznej, która nie będzie podlegać ocenie.
  7. 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:

  1. 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.
  2. 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ń.
  3. 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.
  4. Implementacja powinna wykorzystywać dowolnie wybrane środowisko programistyczne (framework) wspierające budowę usług sieciowych REST.
  5. 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.