Zaawansowane Techniki Programowania - lab (semestr letni 2016/2017)

zadania laboratoryjne

  1. Implementacja prostego servleta z możliwością przesłania parametrów metodami GET/POST i generowania strony na podstawie wartości tychże parametrów
  2. Implementacja servletu - kalkulator, który otrzymuje trzy parametry, dwie liczby i operację (np. 2, +, 2). Servlet zwraca wartość przeprowadzonej operacji. Implementacja prostej aplikacji typu stand-alone, która komunikuje się z servletem (korzystając z URL servleta). Aplikacja, pobiera dane n/t operacji od użytkownika, wysyła dane do servletu, pobiera wynik i wyświetla go.
  3. Implementacja servletu udostępniającego dane binarne. Servlet w zależności od paramteru udostępnia jedno z 5 zdjęć w formacie jpg lub gif. Powinno być możliwe użycie takiego zdjęcia na zwykłej stronie internetowej (demonstracja poprzez statyczną stronę html z osadzonymi obrazakami poprzez url servletu). Implementacja aplikacji stand-alone komunikującej się z servletem i wyświetlającej obrazki otrzymane z servletu.
  4. Implementacja aplikacji serwerowej (bezstanowy Bean (Stateless Bean + servlet)) - kalkulator, która otrzymuje trzy parametry, dwie liczby i operację (np. 2, +, 2). Aplikacja zwraca wartość przeprowadzonej operacji. Implementacja prostej aplikacji typu stand-alone, która komunikuje się z aplikacją (z servletem, korzystając z URL servleta). Aplikacja stand-alone, pobiera dane n/t operacji od użytkownika, wysyła dane do aplikacji serwerowej, pobiera wynik i wyświetla go.
  5. Dodanie interfejsu typu REST i REMOTE do Beana kalkulatora z zadania nr 4. Implementacja dwóch wersji aplikacji klienckiej umożliwiającej przeprowadzanie obliczeń za pomocą Beana. Jedna wersja korzysta z interfejsu typu REMOTE, druga z interfejsu REST.
  6. Z wykorzystaniem JPA i bazy danych, stworzyć implementacjć beana z interfejsami typu Local, Remote i REST. Bean ma zarządzać persystentnymi obiektami reprezentującymi: książki (tytuł, rok wydania, numer wydania) oraz autorów (imię, nazwisko). Między autorem a książką istnieje relacja jeden do wielu. Jako demonstrator stworzyć interfejs poprzez servlet, który umożliwia dodawanie, usuwanie, listowanie książek i autorów. Można użyć (nieobowiązkowo) JSP/JSF/... Czas na realizację 2 tygodnie
  7. Rozszerzyć zadanie 6. o funkcjonalność koszyka zakupów implementowanego przez Bean stanowy (Stateful Bean). Baza danych powinna zostać rozszerzona o informację zawierającą liczbę danych pozycji książkowych (dodanie nowej encji/tabeli, lub rozszerzenie istniejącej). Następnie powinien zostać dodany Bean realizujący sesję użytkownika z funkcjonalnością: wkładanie do koszyka pozycji (sprawdzanie w bazie czy żądana ilość pozycji jest osiągalna), w razie "zakupu" odpowiednio uaktualniana jest liczba pozycji w bazie, w razie wygaśnięcia sesji (użytkownik nie dokonał zakupi) zapis w bazie nie jest aktualizowany. Należy również zwrócić uwagę na rozszerzenie interfejsu zarządzania bazą danych (możliwość dodawania liczby pozycji książkowych). Należy rozpoznać różne możliwości realizowania sesji, w przypadku użycia servletu lub komunikacji przez interfejs zdalny
  8. Z użyciem technologii JMS, należy napisać dwie proste aplikacje, konsumenta i producenta. Producent przesyła przykładowe komunikaty, które mają być odbierane przez konsumenta. Należy zademonstrować dwa tryby przesyłania komunikatów punkt-punkt: asynchroniczny i synchroniczny.
  9. Z użyciem technologii JMS, należy napisać komponent logujący akcje na koszyku. Komponent ma być niezależnym beanem, zapisującym do pliku dane otrzymane z aplikacji zarządzającej książkami. Musi istnieć możliwość logowania informacji z więcej niż jednej aplikacji zarządzającej. Wykorzystać mechanizm topics do komunikacji pomiędzy aplikacją zarządzającą, a logującą akcje. (czas 2 tygodnie)