Witryny i Portale Internetowe Internet Worlds Wide Webs & Portals ??? ECTS dzienne inżynierskie, wieczorowe inżynierskie Kod przedmiotu Imię i Nazwisko organizującego BI2NI6000PSOWiPI dr inż. Robert Berezowski CI2NI6000PSOWiPI w c LICZBA GODZIN 1 Kursy poprzedzające Słowa kluczowe Kurs egzaminacyjny nie egzaminacyjny – wykład i ćwiczenia Zaliczenie egzamin 15 tygodni zajęć bazy danych, systemy zarządzania bazami danych, programowanie obiektowe, programowanie JAVA, metajęzyki HTTP, JAVA, J2EE, JSP, SERVLETY, XML 1 PROGRAM SZCZEGÓŁOWY CELE KURSU. Opis kursu – cele i procedury ich osiągania: Na bazie wiedzy i umiejętności z kursów związanych z programowaniem komputerów (programowanie obiektowe i język JAVA) oraz baz danych i systemów zarządzania bazami danych uzyskanie pogłębionej sprawności projektowej w zakresie umiejętności tworzenia aplikacji webowych i ich instalacji na serwerach aplikacyjnych z wykorzystaniem mechanizmów komunikacji z bazami danych. Cel poznawczy: Ugruntowanie wiedzy o budowie aplikacji webowych i architekturach wielowarstwowych serwerów aplikacyjnych. Poznanie różnorodnych technik projektowania i realizacji mechanizmów obsługi protokołu HTTP, sesji, autentykacji i autoryzacji użytkowników w internetowych aplikacjach webowych WWW. Cel kształcący: Kształtowanie sprawności w wymienionych umiejętnościach w stopniu pozwalającym domniemać zrozumienie i potencjalną możliwość świadomego i skutecznego posługiwania się serwerami aplikacyjnymi jako środowiskami uruchomieniowymi aplikacji webowych. Cel praktyczny: Kształtowanie przekonania o zawodowej przydatności kształconych umiejętności Umiejętności wynikowe kursu i ich ewaluacja: Instalacja serwera aplikacyjnego Tomcat. Wykonanie analizy działania protokołu HTTP. Tworzenie stron JSP z wykorzystaniem podstawowych obiektów: request, response, session i application. Instalacja serwera baz danych MySQL. Tworzenie aplikacji webowej wykorzystującej formularze do komunikacji z serwerem baz danych za pośrednictwem JDBC. Umiejętność tworzenia źródeł baz danych, skryptów instalacyjnych SQL oraz nakładania uprawnień dostępu do danych. Umiejętność tworzenia aplikacji webowych wykorzystujących mechanizmy autentykacji i autoryzacji dostępu użytkowników do zasobów aplikacji. Tworzenie certyfikatów i ich użycie do realizacji szyfrowanego połączenia protokołu HTTPS oraz podpisywania cyfrowego aplikacji webowych WAR. Wymagania podstawowe (stopnie dostateczne) Wymagania rozszerzone (stopnie dobre) Zaprojektuje poprawnie aplikację webową wykorzystując komunikację z bazą danych z zastosowaniem formularzy. Potrafi archiwizować i instalować własną aplikację oraz skonfigurować bazę danych do jej obsługi. Potrafi przygotować dokumentację do zaprojektowanego kodu oraz omówić stosowane przez siebie mechanizmy programistyczne. Potrafi ocenić zaawansowanie własnego projektu i wskazać kierunki jego ewentualnego rozwoju. Zaprojektuje poprawnie aplikację webową wykorzystując komunikację z bazą danych z zastosowaniem zaawansowanych elementów formularzy np. (upload plików). Zaprojektuje aplikację zgodnie z modelem1 lub architekturą MVC Zastosuje dodatkowe komponenty rozszerzające funkcjonalność aplikacji (np. kanały RSS, XML, servlety, filtry) Potrafi przygotować dokumentację do zaprojektowanego kodu w rozszerzonej wersji z uwzględnieniem diagramów (UML) oraz omówić stosowane przez siebie mechanizmy programistyczne. Potrafi ocenić zaawansowanie własnego projektu i wskazać kierunki jego ewentualnego rozwoju w zakresie tematyki wzorców projektowych oraz aplikacji szkieletowych – framework’ów. Wykład 1. 2 godz. ARCHITEKTURA SYSTEMÓW WIELOWARSTWOWYCH Zagadnienia: Architektura monolityczna, klient-serwer oraz wielowarstwowa. Podział na warstwy widoku i danych. Architektura systemów opartych o technologię Java EE (Java Enterprise Edition). Serwery aplikacyjne jako rozwiązania OpenSource i ich odpowiedniki komercyjne. Wykład 2. 2 godz. SKŁADNIA JĘZYKA JSP (JAVA SERVER PAGES) Zagadnienia: JSP (java server pages) – jako mechanizm mieszania kodu JAVA z danymi tekstowymi np. kodem HTML. Budowa skryptletów, dyrektywy, wyrażeń, deklaracji oraz akcji JSP. Wykład 3. 2 godz. OBIEKTY JSP Zagadnienia: Obsługa z poziomu JSP obiektów deklarowanych w sposób niejawny: request, response, session i application. Wykład 4. 2 godz. DOSTĘP APLIKACJI WEBOWEJ DO BAZ DANYCH Zagadnienia: Sterownik JDBC i jego obsługa z poziomu kodu JAVA. Klasyfikacja typów sterowników JDBC. Wykład 5. 2 godz. SERVLETY I JAVA BEAN Zagadnienia: szereg Klasy JAVA i ich zastosowanie w aplikacjach webowych. Servlety jako odpowiednik JSP do generowania binarnej zawartości dokumentów (np. pliki graficzne). Komponenty JavaBena do hermetyzacji kodu i wielokrotnego wykorzystania z poziomu kodu JSP. Wykład 6. 2 godz. XML Zagadnienia: Obsługa kodu XML z poziomu języka JAVA. Analizatory: zdarzeniowy (SAX) oraz drzewiasty (DOM). Wykład 7. 2 godz. BEZPIECZEŃSTOW APLIKACJI WEBOWYCH Autentykacja BASIC i FORM aplikacji webowych. Zastosowanie autoryzacji i definiowania grup (ról) użytkowników serwerów aplikacyjnych. Generowanie certyfikatów wymaganych przy protokole HTTPS (SSL) oraz elektroniczne podpisywanie archiwów webowych WAR. Wykład 8. 1 godz. CZYNNOŚCI KONTROLNE I ORGANIZACYJNE ZWIĄZANE Z ZALICZENIEM Zagadnienia: KURSU NIEEGZAMINACYJNEGO PLANY WYNIKOWE ĆWICZEŃ Ćwiczenie1. 2godz. PROTOKÓŁ HTTP Opis ćwiczenia – cele i procedury ich osiągania: Serwer aplikacyjny TOMCAT, jego budowa i instalacja. Tworzenie żądań i analiza odpowiedzi protokołu HTTP. Metody GET i POST protokołu HTTP. Umiejętności wynikowe i ich ewaluacja Instalacja i konfiguracja serwera aplikacyjnego TOMCAT. Sposoby wysyłania żądań HTTP przy pomocy programu TELNET. Różnice pomiędzy metodami GET i POST protokołu HTTP. Wymagania podstawowe (stopnie dostateczne) Wymagania rozszerzone (stopnie dobre) Wykonywanie instalacji serwera aplikacyjnego. Wykonanie prostych żądań HTTP testujących jego działanie. Wykonanie rekonfiguracji serwera i zmiany portu nasłuchu z 8080 na wartość 80. Wykonanie złożonych zapytać HTTP. Zastosowanie monitora HTTP i wykonanie żądań na plikach binarnych (rysunki, pdf, itp) Określenie typów MIME tych dokumentów. Ćwiczenie2. 2godz. OBIEKTY REQUEST I RESPONSE Opis ćwiczenia – cele i procedury ich osiągania: Obiekt request jako mechanizm do pobierania informacji o danych przeglądarki www klienta. Obiekt response jako mechanizm wysyłania odpowiedzi do klienta. Wykonywanie analizy działania i budowy przykładów stron JSP zawartych w aplikacji przykłady.war pobranej ze strony domowej. Aplikacja demonstruje działanie podstawowych elementów języka JSP oraz wywoływanie metod obiektów request i response. Wymagania podstawowe (stopnie dostateczne) Wykonanie Wymagania rozszerzone (stopnie dobre) Zrealizowanie wywołania kodu pobierającego informacje o pobierania i wysyłanie ciasteczek (cookie) za kliencie i jego modyfikacja zgodna z pomocą obiektów request i response. zaleceniami prowadzącego. Przetestowanie działania formularzy Zaprojektowanie dwóch stron JSP wywoływanych z lokalnego i zdalnego przekazujących dane za pośrednictwem komputera (np. z sąsiedniego stanowiska) obiektu żądania (metoda getParameter). Wywołanie i analiza kodu zmiany parametru ContentType obiektu response wysyłanego klientowi. Ćwiczenie3. 2godz. MECHANIZM SESJI (OBIEKT SESSION) Opis ćwiczenia – cele i procedury ich osiągania: Bezstanowość protokołu HTTP – mechanizmy sesji na serwerze i ciasteczek na kliencie. Obiekt session do przechowywania danych określonych dla jednego klienta. Czas sesji i jej inwalidacja. Umiejętności wynikowe i ich ewaluacja: Projektowanie stron JSP z użyciem obiektu session do przekazywania danych pomiędzy wieloma stronami tego samego klienta. Tworzenie stron sesyjnych i bez sesji poprzez ustawienia dyrektywy page. Analizowanie odpowiedzi HTTP w poszukiwaniu identyfikatora sesji. Wymagania podstawowe (stopnie dostateczne) Realizacja kilku Wymagania rozszerzone (stopnie dobre) Realizacja stron JSP (3-5) demonstrujących przykładowej aplikacji zadanej przez przekazywanie danych sesji za pomocą prowadzącego np. wózka na zakupy na bazie metod getAtribute i setAttribute obiektu obiektu session. Przetestowanie jednoczesnej session. komunikacji wielu użytkowników z jednym wzorcowym serwerem. Ćwiczenie4. 2godz. KOMUNIKACJA Z BAZAMI DANYCH (MYSQL I JDBC) Opis ćwiczenia – cele i procedury ich osiągania: Komunikacja standardowego sterownika JDBC-ODBC oraz dedykowanego dla bazy MySQL. Wzorcowa aplikacja WAR – instalacja i konfiguracja bazy danych. Umiejętności wynikowe i ich ewaluacja: Wykonywanie instalacji wzorcowej aplikacji jdbc.war. Instalacja serwera baz danych MySQL Wymagania podstawowe (stopnie dostateczne) Konfiguracja Wymagania rozszerzone (stopnie dobre) Rozwinięcie aplikacji bazy danych i źródła na podstawie o dodatkowe elementy określone przez udostępnionego skryptu portal.sql (struktury prowadzącego (np. dodatkowe formularze z tabel, dane tabel oraz dane do autoryzacji różnymi typami danych) użytkowników) Umiejętności wynikowe i ich ewaluacja: Ćwiczenie5. 2godz. ARCHIWA WAR, JAVA BEAN I ARCHITEKTURA MODEL1 Opis ćwiczenia – cele i procedury ich osiągania: Hermetyzacja kodu dostępu do bazy danych (java.sql) w klasach komponentów Java Bean. Archtektura MODEL1. Archiwa webowe WAR. Wykonanie instalacji wzorcowej aplikacji model1.war. Zapoznanie się z kodem JSP wywołującym komponenty Java Bean. Wymagania podstawowe (stopnie dostateczne) Konfiguracja Wymagania rozszerzone (stopnie dobre) Hermetyzacja kodu bazy danych zgodnie z poprzednim do komponentów Java Bean i jego ćwiczeniem. Instalacja aplikacji webowej. wywoływanie z poziomu JSP za pomocą Projekt własnych klas Java Bean (np. akcji <jsp:useBean>..</jsp:useBean> StudentBean i StudentManager) na bazie wzorcowych klas z model1.war Ćwiczenie6. 2godz. AUTENTYKACJA I AUTORYZACJA W APLIKACJIACH WEBOWYCH Opis ćwiczenia – cele i procedury ich osiągania: Autentykacja BASIC i FORM. Konfiguracja pliku web.xml. Autoryzacja użytkowników, ich role i hasła. Konfiguracja pliku user-tomcat.xml. Umiejętności wynikowe i ich ewaluacja:. Posługiwanie się plikami konfiguracyjnymi serwera. Umiejętność dodawania nowych użytkowników , ich haseł oraz ról. Wymagania podstawowe (stopnie dostateczne) Konfiguracja Wymagania rozszerzone (stopnie dobre) Projektowanie pliku web.xml dodająca autentykację do formularza do logowania za pomocą metody zadanej aplikacji. FORM. Dodanie nowych użytkowników oraz ról do pliku user-tomcat.xml. Testowanie zdalne z innego komputera pomiędzy wieloma studentami. Umiejętności wynikowe i ich ewaluacja: Ćwiczenie7. 2godz. CERTYFIKATY, PROTOKÓŁ HTTPS (SSL) Opis ćwiczenia – cele i procedury ich osiągania:. Tworzenie certyfikatu, magazyn certyfikatów. Konfiguracja serwera i protokołu HTTPS. Mechanizm bezpiecznego połączenia SSL. Podpis cyfrowy. Umiejętność tworzenia certyfikatów i konfiguracji serwera do realizacji bezpiecznego połączenia SSL kodowanego kluczem o mocy 128 bitów. Wymagania podstawowe (stopnie dostateczne) Wygenerowanie Wymagania rozszerzone (stopnie dobre) Podpisanie aplikacji własnego certyfikatu. webowej programem jarsign wcześniej Konfiguracja pliku serwer.xml do obsługi uzyskanym certyfikatem. Przetestowanie protokołu HTTPS nasłuchującego na porcie reakcji na zmianę wewnętrzną archiwum 8438 lun 438. walidacja. Przetestowanie działania komunikacji HTTPS i instalacja certyfikatu w przeglądarce klienta. Umiejętności wynikowe i ich ewaluacja: Ćwiczenie8. 1godz. CZYNNOŚCI KONTROLNE I ORGANIZACYJNE ZWIĄZANE Z ZALICZENIEM KURSU NIEEGZAMINACYJNEGO OPIS RYGORÓW POŚREDNICH Kolokwium Opis kolokwium : Student otrzymuje 3 zagadnienia do opisania w czasie 30min. W zakres pytań nie wchodzą zagadnienia programistyczne, a wyłącznie mechanizmy omawiane na wykładzie. Jako bazę zaliczającą kolokwium przyjmuje się około 60% poprawnych odpowiedzi. Każde z pytań jest oceniane w skali 0-5 punktów i za całość można uzyskać maksymalnie 15 punktów. W przypadku braku zaliczenia student jest dodatkowo odpytywany ustnie podczas zaliczania części ćwiczeniowej. Sposób oceniania Wymagania podstawowe (stopnie dostateczne) Wymagania rozszerzone (stopnie dobre) Podstawowa i prawidłowa orientacja w Szczegółowy opis mechanizmów poparty opisie mechanizmów danego zagadnienia dodatkowymi rysunkami i przykładami zastosowań Zaliczenie ćwiczeń Opis zaliczenia : W skład zaliczenia ćwiczeń wchodzi obecność oraz aktywność w czasie zadań ćwiczeniowych. Dodatkowo każda z grup (2-osoby) otrzymuje indywidualne zadanie rozwinięcia wzorcowego projektu o określoną funkcjonalność. Proces zaliczenia realizowany jest na specjalnie przygotowanym komputerze. Każda grupa (2-osoby) prezentuje swoje rozwiązanie projektowe wraz z przygotowaną dokumentacją. W przypadku niespełnienia podstawowych wymagań studenci otrzymują dodatkowe zadania cząstkowe do realizacji oraz termin ponownego zaliczenia. Sposób oceniania Wymagania podstawowe (stopnie dostateczne) Wymagania rozszerzone (stopnie dobre) Prawidłowa instalacja oraz orientacja w budowie własnej aplikacji webowej opartej na projekcie jdbc.war lub model1.war. Przygotowanie dokumentacji projektu wraz z opisem jego instalacji Zastosowanie architektury MODEL1 do realizacji projektu. Hermetyzacja kodu oraz brak typowych błędów programistycznych pogarszających bezpieczeństwo i funkcjonalność aplikacji. WYKAZ ŹRÓDEŁ (PODRĘCZNIKÓW I SKRYPTÓW) 1. 2. 3. 4. 5. strona domowa przedmiotu: http://kik.ie.tu.koszalin.pl/portal wykład: http://kik.ie.tu.koszalin.pl/j2ee/doc/witryny_i_portale_internetowe.pdf dodatkowymi materiałami związanymi z technologią J2EE: http://j2ee.ie.tu.koszalin.pl Hans Bergsten – „JavaServer Pages” – www.rm.com.pl Wojciech Romowicz - "Java Server Pages oraz inne komponenty JavaPlatform" http://helion.pl/ksiazki/jsp11.htm 6. Marty Hall - "Java Servlet i Java Server Pages" - http://helion.pl/ksiazki/jsjsp.htm 7. Jason Hunter, William Crawford - "Java Servlet. Programowanie. Wydanie II" http://helion.pl/ksiazki/jsjsp.htm 8. serwer aplikacyjny TOMCAT: http://jakarta.apache.org/tomcat 9. Bruce Eckel - "Thinking in Java. Wydanie 3. Edycja polska" http://helion.pl/ksiazki/thija3.htm 10. J2EE Programming (with Passion!) Online Course - http://www.javapassion.com/j2ee