• Nie Znaleziono Wyników

Programowanie aplikacji serwer-klient Studia zaoczne 2005/2006

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie aplikacji serwer-klient Studia zaoczne 2005/2006"

Copied!
1
0
0

Pełen tekst

(1)

Programowanie aplikacji serwer-klient Studia zaoczne 2005/2006

Projekty na pełną ocenę (26 pkt)

1. Aplikacja służąca do bezpiecznego przesyłania plików (użytkownik jest uwierzytelniany, przesyłane pliki są szyfrowane i dołączany jest do nich podpis cyfrowy). Pliki mogą być przesyłane na serwer lub z niego pobierane.

Wykorzystać SSL. (Jedna lub dwie osoby)

2. Aplikacja służąca do wzajemnego udostępniania plików. Zadania serwera: przyjmowanie nowych klientów oraz logowanie ich w sieci, prowadzenie bazy danych o udostępnianych plikach, odłączanie klientów od sieci. Zadania klienta: dołączanie/odłączanie się od sieci, tworzenie listy udostępnianych plików i przekazywanie jej serwerowi, wyszukiwanie pliku na serwerze i składanie zamówienia na wybrany plik, realizacja złożonych zamówień – przesyłanie pliku. (Jedna lub dwie osoby)

3. Aplikacja służąca do zgłaszanie problemów z działającym systemem. Do zgłoszenia potrzebny jest nazwa problemu, krótki opis problemu, osoba wybrana z listy do jego rozwiązania, czas zgłoszenia, status (zgłoszony, w przetwarzaniu, przekierowany, rozwiązany, zamknięty). Opisy problemów umieszczane są w bazie utrzymywanej przez serwer. Po otrzymaniu zgłoszenia serwer zawiadamia za pomocą poczty użytkowników, którzy powinni zająć się problemem. Zwykły użytkownik może zgłaszać problemy, zmieniać status (oprócz zamykania), przeglądać bazę. Każda zmiana statusu wymaga wprowadzania komentarza. Główny użytkownik może przeglądać bazę problemów, przekierowywać problemy, zamykać. Przykład: patrz bugzilla.

4. Projekt własny, zatwierdzony przez prowadzącego.

Projekty na 2/3 oceny

5. Aplikacja nadzorująca licencje, oparta o protokół UDP. Serwer ogranicza liczbę programów, które mogą uruchomić jednocześnie klienci. Klient zgłasza się do serwera, przedstawia się i jeśli limit uruchomień programu nie został przekroczony, dostaje od niego bilet. Bilet jest zwracany do serwera wtedy, kiedy klient kończy wykonywanie. Należy uwzględnić elementy zwiększenia niezawodności aplikacji.

6. Porównanie metod obsługi we-wy za pomocą funkcji przełączających: select(), poll(), i innych. Przykładowe artykuły:

http://www.kegel.com/c10k.html#frameworks

http://www.atnf.csiro.au/people/rgooch/linux/docs/io-events.html http://bulk.fefe.de/scalable-networking.pdf

7. Bezpieczne uwierzytelnianie w systemach Uniksowych/Linuksowych – przegląd metod, przykłady prostych programów ilustrujących korzystanie z poszczególnych metod.

8. Porównanie wydajności serwerów HTTP zrealizowanych różnymi metodami (iteracyjny, wieloprocesowy, wieloużytkowy, multipleksacyjny).

Uwaga: projekt programistyczny składa się z programu i dokumentacji. Dokumentacja musi zawierać opis zaimplementowanego protokołu. Zaleca się ją sporządzić z użyciem doxygen’a (lub innego programu do sporządzania dokumentacji). Część kliencka może być wykonana w dowolnym języku.

Cytaty

Powiązane dokumenty

Opracuj klienta standardowej usługi time w wersji TCP (opis usługi time jest zawarty w RFC 868 - www.rfc- editor.org).. Niech korzysta on z serwera time uruchomionego za

Zmodyfikuj program klient.c tak, aby można było posługiwać się adresem IP lub nazwą serwera, numerem portu lub nazwą usługi.. Zmodyfikuj program serwer.c tak, aby można

a) wersja 1: serwer wieloprocesowy (jeden proces obsługuje jednego klienta), b) wersja 2: serwer wielowątkowy (jeden wątek obsługuje jednego klienta). c) wersja 3:

b) wersja 2: serwer wyprzedzająco wieloprocesowy (tworzona jest pula procesów, które są następnie przydzielane do klientów, jeden proces obsługuje jednego klienta). c) wersja

ad a) Uruchom serwera i klienta. Wpisz jeden wiersz tekstu. Po otrzymaniu odpowiedzi z serwera, usuń proces serwera. Czy w procesie klienta coś się dzieje? Jaki jest stan

gdzie root_key.pem będzie zawierać klucz prywatny zaś root_request.pem żądanie certyfikatu. b) Wygeneruj certyfikat główny:. $ openssl x509 –req –in root_request.pem

Argumenty -f oraz -t pozwalają nam określić ile procesów potomnych oraz wątków ma utworzyć serwer. Przy czym jeśli określimy, że ma być uruchomionych N potomków, to serwer

Kolejnym blokiem jest krótka pętla, w trakcie której z bufora kołowego odczytywane są próbki w kolejności od aktualnej do N-1, gdzie N to liczba współczynników filtru, a także