Programowanie dla sieci Programming for net Kod przedmiotu 7 ECTS dzienne magisterskie Koszalin Imię i Nazwisko organizującego mgr inż. Dariusz Bernatowicz w c Kurs egzaminacyjny LICZBA GODZIN 2 Kursy poprzedzające Słowa kluczowe Egzamin lub zaliczenie kursu na ocenę 15 tygodni zajęć 4 tygodnie sesji egzaminacyjnych Programowanie komputerów, Protokoły komunikacyjne, Sieci komputerowe Język Java, programowanie obiektowe, komunikacja, RMI, CORBA 1 PROGRAM SZCZEGÓŁOWY CELE KURSU. Opis kursu – cele i procedury ich osiągania: Na bazie wiedzy i umiejętności z kursu programowanie komputerów oraz protokołów komunikacyjnych i sieci komputerowych uzyskanie sprawności w zakresie projektowania i implementacji programów przeznaczonych do eksploatacji zarówno w sieciach intranetu jak i internetu, opartych na standardowych architekturach aplikacji sieciowych: Klient-Serwer, RMI i CORBA. Cel poznawczy: Ugruntowanie wiedzy o właściwościach programowania w sieci i zastosowania odpowiednich architektur oraz protokołów komunikacji. Poznanie różnorodnych technik implementacji protokołów sieciowych zarówno po stronie serwera jak i klienta. Wprowadzenie do projektowania aplikacji wielowarstwowych. Cel kształcący: Kształtowanie umiejętności projektowania i implementacji programów przeznaczonych do eksploatacji w sieci, wykorzystania odpowiednich protokołów komunikacji oraz różnych technologii realizowania programów rozproszonych. Cel praktyczny: Wytworzenie umiejętności sprawnego wykorzystywania różnych metod i technologii programowania aplikacji sieciowych oraz wykorzystania odpowiednich protokołów w celu realizacji określonych zadań. Umiejętności wynikowe kursu i ich ewaluacja: Umiejętność programowania aplikacji w technologii Klient-Serwer, zdalnego wywoływania metod RMI i CORBA, Implementacja podstawowych protokołów sieciowych tj.: http, ftp SMTP itp. Wykorzystanie mechanizmów BOA i POA pozwalających na tworzenie podstawowych i przenośnych struktur obiektów w technologii CORBA, Zastosowanie specyfikacji ORB umożliwiającej budowanie uniwersalnych aplikacji integrujących systemy tworzone w różnych językach programowania i działających na różnych platformach. Wymagania podstawowe (stopnie dostateczne) Wymagania rozszerzone (stopnie dobre) Programowanie aplikacji w technologii klient Programowanie aplikacji rozproszonych serwer z wykorzystaniem protokołów TCP wykorzystujących technologię zdalnego wyi UDP woływania metod RMI i CORBA Wykład 1. godz. 2 PODSTAWOWE ZAGADNIENIA PROGRAMOWANIA W SIECI Zagadnienia: Siedmiowarstwowy model komunikacji w sieci OSI, rodzina protokołów, interfejsy między warstwowe, uproszczony czterowarstwowy model sieci, rodzina protokołów TCP/IP Wykład 2. Godz. 2 Architektura Klient – Serwer Interfejs gniazd i realizacja połączeń w architekturze KS, reprezentacja adresu IP, reprezentacja adresu URL. Zagadnienia: Zastosowanie protokołu TCP w architekturze Klient - Serwer Wykład 3. godz. 2 Zagadnienia: Budowa aplikacji klienta i serwera dla protokołu TCP, serwery iteracyjne i współbieżne. Zastosowanie protokołu UDP w architekturze Klient - Serwer Wykład 4. godz. 2 Zagadnienia: Komunikacja datagramowa, konstruktory i metody pomocnicze klas datagramowych, gniazda wysyłające i odbierające dane. Realizacja usług opartych na protokole UDP w architekturze Klient Serwer Zagadnienia: Komunikacja jednokierunkowa, realizacja prostych usług, przesyłanie większych bloków danych Wykład 5. godz. 2 Architektura aplikacji rozproszonych RMI - wprowadzenie Wykład 6. godz. 2 Zagadnienia: Model warstwowy aplikacji RMI, interfejsy obiektu zdalnego, lokalizacja obiektu RMI Registry. Architektura RMI – implementacja, kompilacja i wdrożenie Wykład 7. godz. 2 Zagadnienia: Aplikacja klienta i serwera, implementacja zdalnego obiektu, dynamiczne ładowanie klas, wdrożenie programu. Zaawansowane techniki architektury RMI Wykład 8. godz. 2 Zagadnienia: Przekazywanie lokalnych i zdalnych obiektów, wykorzystanie zdalnych obiektów w zbiorach, klonowanie zdalnych obiektów. Wielowarstwowe aplikacje bazodanowe w architekturze RMI Wykład 9. godz. 2 Zagadnienia: Implementacja warstw pośrednich, zarządzanie połączeniami z bazą danych, wykonywanie zapytań, metadane, transakcje, aktualizacje wsadowe. Architektura aplikacji rozproszonych CORBA - wprowadzenie Wykład 10. godz. 2 Zagadnienia: Model komunikacji w CORBA, adaptery obiektów BOA i POA, elementy języka IDL, rzutowanie podstawowych typów danych, Kompilacja interfejsu IDL. Architektura CORBA – adaptery BOA Wykład 11. godz. 2 Zagadnienia: Aplikacja klienta i serwera, wdrożenie aplikacji, zdalne referencje, dynamiczne interfejsy, callback. Architektura CORBA – adaptery POA Wykład 12. godz. 2 Zagadnienia: Możliwości architektury POA, stany obiektu, zarządzanie obiektami POA Policies, aplikacja klienta i serwera, wdrożenie aplikacji. Zaawansowane techniki architektury POA Wykład 13. godz. 2 Zagadnienia: Obiekty ulotne i trwałe, dynamiczna aktywacja adaptera, własna aktywacja – servant, obsługa usługi nazw (Naming Service). Wykład 14. godz. 2 Aplety, serwlety i komunikacja sieciowa Zagadnienia: Warunki bezpieczeństwa, obiekt Security Manager, serwlety, cykl życia, środowisko uruchamiania i metody wywoływania serwletów Repetytorium 2 godz. CZYNNOŚCI KONTROLNE I ORGANIZACYJNE ZWIĄZANE Z DOPUSZCZENIEM DO ZASADNICZEJ SESJI EGZAMINACYJNEJ PLANY WYNIKOWE ĆWICZEŃ Ćwiczenie1. 2godz. ARCHITEKTURA KLIENT – SERWER – OPARTA NA PROTOKOLE TCP Opis ćwiczenia – cele i procedury ich osiągania: Pokazanie na przykładach techniki implementacji interfejsu gniazd oraz reprezentacji adresu IP, Realizacja aplikacji klienta i serwera opartego na protokole TCP. Umiejętności wynikowe i ich ewaluacja Tworzenie aplikacji klienta i serwera opartego na protokole TCP, zastosowanie obiektu reprezentującego adres IP, implementacja interfejsu gniazd. Wymagania podstawowe Wymagania rozszerzone (stopnie dobre) Tworzenie i wdrażanie prostych (jedno- Tworzenie i wdrażanie zaawansowanych wątkowych) aplikacji klienta i serwera. (wielowątkowych) aplikacji klienta i serwera. Ćwiczenie2. 2godz. ARCHITEKTURA KLIENT – SERWER – OPARTA NA PROTOKOLE UDP Opis ćwiczenia – cele i procedury ich osiągania: W oparciu o przykłady zapoznanie się z technikami realizacji aplikacji klienta i serwera opartego na protokole TCP. Praktyczne wykorzystanie klas do przesyłania i odbierania zarówno małych jak i wielkich bloków danych. Tworzenie aplikacji klienta i serwera opartego na protokole UDP, wykorzystanie odpowiednich klas dla przesyłania małych jak i wielkich bloków danych. Wymagania podstawowe Realizacja komunikacji Wymagania rozszerzone (stopnie dobre): Realizacja aplikacji jednokierunkowej oraz wysyłanie lub odbieranie wysyłającej i odbierającej dane, przesyłanie małych bloków danych . dużych bloków danych Ćwiczenie3. 2godz. Architektura aplikacji rozproszonych RMI (zdalne wywoływanie metod) Opis ćwiczenia – cele i procedury ich osiągania: Omówienie na przykładach podstaw technologii ASP. Praktyczne wykorzystanie podstawowych obiektów w kolejnych ćwiczeniach. Umiejętności wynikowe i ich ewaluacja: Umiejętności wynikowe i ich ewaluacja: Tworzenie prostych stron ASP z wykorzystaniem podstawowych obiektów i ich metod. Wykorzystanie obiektów i ich Wymagania rozszerzone (stopnie dobre) Sprawne wykorzystanie podstawowych metod w tworzeniu stron ASP. zaawansowanych metod, kolekcji i właściowośći obiektów ASP. Ćwiczenie4. 2godz. ARCHITEKTURA APLIKACJI ROZPROSZONYCH RMI (ZDALNE WYWOŁYWANIE METOD) Opis ćwiczenia – cele i procedury ich osiągania: Na podstawie przykładów modyfikacja, kompilacja i wdrożenie aplikacji rozproszonej z wykorzystaniem architektury RMI w środowisku języka Java. Wymagania podstawowe: Umiejętności wynikowe i ich ewaluacja: Realizacja aplikacji rozproszonej z wykorzystaniem architektury RMI. Wymagania podstawowe Realizacji aplikacji i rejestru RMI Realizacji aplikacji i na komputerze lokalnym. rejestru RMI na komputerach zdalnych. Ćwiczenie5. 2godz. ARCHITEKTURA APLIKACJI ROZPROSZONYCH CORBA – PODSTAWOWE STRUKTURY OBIEKTÓW BOA Opis ćwiczenia – cele i procedury ich osiągania: Zapoznanie się z architekturą CORBA, poznanie struktur obiektów i elementów języka IDL, kompilacja i wdrożenie prostej aplikacji. Wymagania rozszerzone (stopnie dobre) Umiejętności wynikowe i ich ewaluacja: Umiejętność wykorzystania podstawowych struktur obiektów i elementów języka IDL w celu realizacji aplikacji rozproszonej opartej na architekturze CORBA. Wymagania podstawowe Znajomość struktur obiektów i Wymagania rozszerzone (stopnie dobre) Implementacja i wdrożenie aplikacji rozproszonej elementów języka IDL. wykorzystującej adaptery BOA w technologii CORBA Ćwiczenie6. 2godz. ARCHITEKTURA APLIKACJI ROZPROSZONYCH CORBA – PRZENOŚNE STRUKTURY OBIEKTÓW POA Opis ćwiczenia – cele i procedury ich osiągania: Wykorzystanie przenośnych struktur obiektów POA do realizacji aplikacji rozproszonej wykorzystującej architekturę CORBA. Dynamiczna aktywacja adaptera POA Umiejętności wynikowe i ich ewaluacja: Umiejętność wykorzystania przenośnych struktur obiektów w celu realizacji aplikacji rozproszonej opartej na architekturze CORBA Wymagania podstawowe Znajomość przenośnych struktur Wymagania rozszerzone (stopnie dobre) Dynamiczna aktywacja obiektów, kompilacja i wdrożenie aplikacji. adaptera POA, własna aktywacja - servant. Ćwiczenie7. 2godz. TWORZENIE I URUCHAMIANIE SERVLETÓW. Opis ćwiczenia – cele i procedury ich osiągania: Tworzenie programów działających po stronie serwera (servlety), Zapoznanie się z modelem obsługi wiadomości. Konfigurowanie środowiska uruchomieniowego. Tworzenie i uruchamianie serwletów działających po stronie serwera z wykorzystaniem technologii Java. Wymagania podstawowe Znajomość i tworzenie Wymagania rozszerzone (stopnie dobre) Tworzenie podstawowej struktury serwletu. rozbudowanych serwletów z wykorzystaniem różnych protokołów komunikacyjnych . Ćwiczenie8. 1godz. CZYNNOŚCI KONTROLNE I ORGANIZACYJNE ZWIĄZANE Z Umiejętności wynikowe i ich ewaluacja: DOPUSZCZENIEM DO ZASADNICZEJ SESJI EGZAMINACYJNEJ OPIS RYGORÓW POŚREDNICH Kolokwium I. Opis kolokwium : Sposób oceniania Wymagania podstawowe Wymagania rozszerzone (stopnie dobre) Kolokwium II. Opis kolokwium : Sposób oceniania Wymagania podstawowe Kolokwium III. Opis kolokwium : Sposób oceniania Wymagania rozszerzone (stopnie dobre) Wymagania podstawowe Wymagania rozszerzone (stopnie dobre) WARUNKI DOPUSZCZENIA DO SESJI EGZAMINACYJNEJ Opis ogólny warunków dopuszczenia Wymagania podstawowe Wymagania rozszerzone (stopnie dobre) OPIS RYGORU ZASADNICZEGO. (EGZAMIN) Opis ogólny rygoru zasadniczego Wymagania podstawowe 1. 2. 3. 4. Wymagania rozszerzone (stopnie dobre) WYKAZ ŹRÓDEŁ (PODRĘCZNIKÓW I SKRYPTÓW) Bruce Eckel „Thinking in Java 3rd edition", Edycja polska, Helion 2005 Cay S. Horstmann, G. Gary Cornel „Java 2 Techniki zaawansowane” Helion 2003 Dokumentacja "The Java Language Specification" (forma elektroniczna) Michał Grochala „Java aplikacje bazodanowe”, Helion 2001