PROGRAMOWANIE W ŚRODOWISKU SIECIOWYM I


 

Programowanie aplikacji sieciowych w tym:

 

1. Aplikacji wykorzystujacych interfejs gniazd (ang. sockets)

2. Aplikacji WWW w oparciu o technologie Java EE (Java Servlets, Java Server Pages, Java Server Faces)

3. Aplikacji rozproszonych wykorzystujacych Java Remote Method Invocation.

 

Tresci kształcenia

 

1 Aplikacja sieciowa wykorzystujaca interfejs gniazd. Projekt implementacji i protokołu komunikacyjnego.

2-3 Implementacja wybranej aplikacji.

4 Prezentacja aplikacji gniazdkowej.

 

5-6 Aplikacja WWW - projektowanie struktury i wykorzystywanej bazy danych. Wykonanie statycznej

czesci aplikacji.

7-8 Implementacja dynamicznej czesci aplikacji WWW oparta na technologii Java Servlets. Realizacja

dostepu do bazy danych.

9-10 Zamiana dynamicznej czesci aplikacji WWW tak, aby korzystała z technologii Java Server Pages

(łacznie z bibliotekami własnych znaczników).

11 Rozbudowanie czesci dynamicznej do struktury Java Server Faces (interfejs uzytkownika, nawigacja,

sprawdzanie poprawnosci danych).

12 Prezentacja aplikacji WWW.

13-14 Aplikacja rozproszona oparta na technologii Java Remote Method Invocation. Projekt i implementacja.

15 Prezentacja aplikacji rozproszonej.

 

Kryteria oceny przedmiotu

Ocena z pracowni specjalistycznej jest srednia ocen z poszczególnych implementacji.

 

Literatura i wykorzystywane oprogramowanie

Specyfikacje protokołów:

- RFC 793 TCP

- RFC 791 IP

- RFC 768 UDP

- RFC 2616 HTTP

 

Specyfikacje technologii i standardów:

- XML,XPath,XSLT,XML Schema itd. dostepne pod adresem http://www.w3c.org

- Technologie Java EE dostepne pod adresem http://java.sun.com/javaee/technologies/index.jsp

 


 

 

Zajęcia I

 Z1,    Z2,   Z3Z4Z5, OS

Zadanie:

1)     Implementacja prostej aplikacji w architekturze klient – serwer opartej na gniazdkach z obsługą poleceń podaną na zajęciach.

2)     Implemntacja klasy wątku z obsługą Timera, kończącą działanie wątku po określonym czasie.

3)     W klasie gniazdka serwera wykorzystać SetSoTimeout

Zgodnie z opisem  Zadanie I

 


Zajęcia II

Wybór projektów aplikacji sieciowej:

Kod - Aplikacja I - Aplikacja II, pliki - pliki

Zadanie:

1)     Zaimplemntować zgodnie z kodem podanym na stronie Zadanie II, przesyłanie plików z serwara do aplikacji klienta, z wykorzystaniem serializacji klasy własnego pakietu.

2)     Dodatkowe polecenie – odczyt plików z danego katalogu roboczego serwera (polecenie LIST – podaj zawartość katalogu).

Zadanie – Opis - Zadanie II


Zajęcia III

Implementacja blokowania zapisu-odczytu w aplikacji wielowątkowego serwera.

Zadanie – Opis - Zadanie III

Implementacja GUI wyświetaljąca zawartość katalogu roboczego na serwerze oraz katalogu roboczego na kliencie. Nawigacja po katalogu roboczym serwera z wykorzystaniem polecenia CHDIR.

Zadanie – Opis - Zadanie IV

Implementacja GUI wyświetaljąca zawartość katalogu roboczego na serwerze oraz katalogu roboczego na kliencie - kontynuacja.

Nawigacja po katalogu roboczym serwera z wykorzystaniem polecenia CHDIR.

Nawiązanie połączenia z bazą Access.

Zapoznać się z specyfikacją protokołu FTP - rfc 959

Zadanie – Opis - Zadanie V

Implementacja modułu zdalnej administracji serwerem FTP

Założenia:

1)     Obsługa połączeń SSL

2)     Serwer FTP powinien zapisywać do pliku wszystkie zdarzenia w systemie: start systemu, logowanie, upload, download

3)     Logowanie do systemu serwera jako użytkownik admin

4)     Przeglądanie zdalne pliku zdarzeń

5)     Plik konfiguracyjny serwera z informacją o portach, maksymalnym czasie braku połączenia od klienta po którym jest wylogowywany z systemu ewentuanie musi ponownie podać hasło

6)     Edycja tabeli USERS w tym katalogu użytkownika root/user1

7)     Użytkownicy mają domyślnie ustawiane prawa dostępu katalogu domowego: root/user1 lub do całego systemu plików serwera root

8)     Podczas startu systemu katalog root powinien być ustalany na dowolny katalog systemu np. D:\\SERVER lub na pełny dostęp "."

Uruchomienie serwera WWW z modułem PHP oraz PERL. Kod serwera : jserwer

 

Implementacja podstawowych operacji na tabeli USERS.

Implementacja połączeń SSL.

Wywołanie prostego skryptu w PHP.

Zadanie – Opis - Zadanie VI

Klient HTTP, wyświetlanie macierzy plików graficznych. Interfejs GUI - GUI

Kod .NET – klient SNMTP, POP3 - poczta

 


Zajęcia IV

Zaliczenie aplikacji gniazdkowej


Zajęcia V-XI

Podstawy tworzenia serwletów - Serwlet

Strony w technologii serwletów - S2, S3, S4

Java Server Faces - JSF

LINQ - LINQ

Hibernate - Hibernate

Serwlety – Ajax - AJAX, plik - ajax

WebServices  - WebServices

Service Oriented Architecture - SOA


 

1)     WYSZUKIWARKA PLIKÓW GRAFICZNYCH, PLATFORMA PREZENTACYJNA BAZ ZDJĘĆ

 

1.           Założenia projektowe

 

Wykonanie projektu oraz implementacji systemu indeksującego strony internetowe, stanowiącego podstawę systemu wyszukiwarki plików graficznych, prezentującej linki do stron oraz zindeksowane strony z podanym słowem kluczowym. Utworzenie modułu zapisu zdjęć do baz danych, platforma prezentacyjna wyszukanych zindeksowanych zdjęć. Zarządzanie platformą wyszukiwarki.

 

Wykorzystywane w projekcie technologie:

-        ASP .NET

-        java, serwlety, JSP

-        PHP

 

2.           Warstwa bazodanowa

 

Projekt aplikacji przeszukującej strony, zapisujący linki do stron w bazie pomocniczej:

 

access, Oracle, postrgesSQL

 

link_database

 

Projekt aplikacji otwierającej strony z bazy link_database i następnie indeksujący występujące na danej stronie słowa

 

word_index_database

 

word_index_link_database

 

wpisy w tabelach word_index_database odwołują się do indeksów dostępnych linków zapisanych w tabelach word_index_link_database

 

 

Projekt aplikacji otwierającej strony z bazy link_database i następnie indeksujący występujące na danej stronie zdjęcia zapisujący zdjęcia do bazy

 

image_database

 

Projekt aplikacji otwierającej strony z bazy b_database i następnie indeksujący występujące na danej stronie ze zdjęciami i zapisujący słowa towarzyszące zdjęciom do bazy

 

image_index_database

 

3.           Warstwa pośrednicząca

 

1) Zapis zdjęć do bazy danych:

access, Oracle, postrgesSQL

 

Eksport tabeli ze zdjęciami do / z wybranych baz

 

Eksport pojedynczych zdjęć między wybranymi bazami danych

 

w ramach baz warstwy image_database

 

2) Rozszerzenie funkcjonalności z punktu 1) na bazy typu image_index_database, word_index_database, link_database

 

4.           Warstwa prezentacyjna

1.                       Bezpośrednia edycja / eksport / import tabel, rekordów

 

Interfejs dla operacji zapisu i eksportu do różnych baz w ramach baz image_database

1)     Interfejs z modułem nawiązania połączenia między dwoma wybranymi bazami B1, B2

2)     Moduł wyświetlający dostępne tabele w obu bazasch B1, B2

3)     Moduł przeglądania zawartości wybranych tabel z obu baz, wyświetlenie poszczególnych rekordów

4)     Moduł wyświetlający zapisane zdjęcia w przypadku baz image_database

5)     Moduł eksportu / importu wybranych tabel, poszczegółnych rekordów

6)     Moduł modyfikacji poszczegółnych rekordów

7)     Moduł utworzenia nowej pustej tabeli zdjęć

 

 

Moduł z interfejsem dla pozostałych baz: image_index_database oraz word_index_database

 

2.                       Warstwa prezentacyjna zdjęć:

 

Prezentacja wszystkich zdjęć z zadanej tabeli na przykład po jednym zdjęciu na stronie, nawigacja po kolejnych rekordach, wpisach w tabeli image_database

 

Warstwa wyszukiwarki

 

1) Wyszukanie słów - wprowadzenie zapytania, na przykład słowo kluczowe: java

Wyswietlenie wszystkich stron z zindeksowanym słowem java z tabel baz word_index_database.

Przygotowanie odpowedniej strony prezentacji, wzorowanej na istniejących przeglądarkach. Możliwość wyświetlenia:

-        odpowiedniego linku do strony z wybranym słowem kluczowym (np. java)

-        rozszerzona informacja o kontekście w jakim występuje słowo kluczowe

 

2) Wyszukanie zdjęć - wprowadzenie zapytania, na przykład słowo kluczowe: computer

Wyswietlenie wszystkich stron z zindeksowanym słowem java z tabel baz image_index_database.

Przygotowanie odpowedniej strony prezentacji, wzorowanej na istniejących przeglądarkach. Możliwość wyświetlenia:

-        odpowiedniego linku do strony z wybranym słowem kluczowym z jakim jest skojarzona informacja ze zdjęciem (np. computer)

-        rozszerzona informacja o kontekście w jakim występuje słowo kluczowe

 

5.           Mechanizm indeksowania:

1)     otworzenie odpowiedniej strony internetowej – z linku zapisanego w bazie link_database lub podanego bezpośrednio

2)     zindeksowanie wszystkich słów występujących na stronie (np. od wyrazów minimum trzyliterowych) – w ten sposób mamy utworzoną listę np. 600 wyszukanych słów, wszystkie te słowa występują na stronie indeksowanej stronie (np. page)

3)     dodanie do tabeli word_index_link_database przetwarzanej strony (page wraz z określeniem jaki indeks zostaje jej przydzielony – ID)

4)     uaktualnienie tabel word_index_database o wpisy z nowookreślonej listy słów wraz z indeksem ID do tabeli word_index_link_database

 

 

 

APLIKACJA STARTOWA - APP

 


STRONA PROJEKTU - PROJEKT