PROGRAMOWANIE SIECIOWE

 

    Celem wykładu jest przedstawienie podstawowych informacji o sieciach TCP/IP. Szczególny nacisk został położony na zagadnienia związane z programowaniem wykorzystującym sieć do transmisji danych zarówno w klasycznym modelu klient-serwer jak również w programowaniu rozproszonym.


Ramowy plan wykładu:


  1. 1.Wprowadzenie do interfejsu gniazd.

    Model TCP/IP a ISO/OSI, protokoły TCP i UDP.


2. Interfejs gniazd.

    Wprowadzenie do tworzenia programów klienckich. Przykłady prostych usług sieciowych (echo, time, NTP/SNTP).


  1. 3.Poczta elektroniczna, FTP.

    protokoły POP i IMAP do odbierania wiadomości pocztowych, protokół FTP oraz usługa Telnet.


  1. 4.HTTP.

    przegląd kolejnych popularnych usług sieciowych, AJAX, podstawy konfiguracji serwera FTP i WWW.


  1. 5.Bezpieczeństo

    podstawy kryptografii, SSL, certyfikaty, biblioteka openSSL, narzędzia z rodziny SSH, firewall iptables.


  1. 6.Serwery iteracyjne

    cztery podstawowe typy serwerów, przykłady serwerów iteracyjnych, podstawowe roblemy (stanowość, zakleszczenia),

    ocena wydajności.


7. Serwery współbieżne

    kontynuacja, serwery współbieżne, współbieżna obsługa klientów w jednym procesie.


  1. 8.Zarządzanie współbieżnością

    podstawowe techniki zarządzania wspólnbieżnością w serwerach: współbieżność sterowana zapotrzebowaniem,

    alokacja wstępna, alokacja odroczona.


  1. 9.Tunelowanie, kapsułkowanie, XDR

    popularne techniki przetwarzania przesyłanej informacji w sieci, serwery proxy, transfer danych binarnych.


  1. 10.Koncepcja programowania rozproszonego

    wprowadzenie do problematyki programowania rozproszonego, model SUN RPC.


  1. 11.RPC

    przykład zastosowania technologii zdalnego wywoływania procedur (Remote Procedure Call) w C.


  1. 12.RMI

    wprowadzenie i przykład zastosowania zdalnego wywoływania metod (Remote Method Invocation) w Javie.


13. CORBA i COM

    przykład technologi programowania rozproszonego, niezależnej bezpośrednio od wykorzystanego języka programowania.


14. XML i SOAP

    protokół SOAP jako przykład implementacji usług sieciowych.


15. SOAP i alternatywy

    inne protokoły rozszerzające możliwości związane z programowaniem rozproszonym.