Zajęcia z programowania sieciowego (MSUI) trymestr zimowy 2005/2006
Zajęcia odbywają się w czwartki w godzinach 18:45-20:15 w laboratorium 5.
Program zajęć:
- 1.(05.01.06) Gniazda - wprowadzenie
- 2.(12.01.06) Gniazda - select/poll
- 3.(19.01.06) Gniazda - serwery wielowątkwe
- 4.(26.01.06) MPI - obliczenia równoległe materiały
- 5.(02.02.06) Standardy
XML/RSS/ATOM rss xml
- 6.(09.02.06) Praca własna nad projektami (kontakt ze mną przez
e-mail)
- 7.(16.02.06) REST API rest materiały
- 8.(23.02.06 - zamiana terminu z
wykładem 16.02) XML RPC xmlrpc materiały
- 9.(02.03.06) SOAP materiały
- 10.(09.03.06) WSDL/UDDI
Zadania zaliczeniowe:
Aby zaliczyć przedmiot w pierwszym terminie należy oddać wszystkie
programy i zdobyć w sumie ponad 20 punktów. Za zadania oddane z
opóźnieniem (co najwyżej tygodniowym) można otrzymać trzy czwarte
punktów.
Skala ocen:
- 21-25 = 3
- 26-30 = 3+
- 31-33 = 4
- 34-37 = 4+
- 38-40 = 5
W terminie poprawkowym, aby zaliczyć należy oddać wszystkie programy (punktów już nie dzielimy przez 2). I otrzymać z każdego przynajmniej 30% punktów, a w sumie przynajmniej 60%. (Czyli np. 3 + 3 + 19 = 25 = 0.625*40 zalicza, a 10 + 10 + 5 = 25 = 0.625 * 40 nie, bo z 3 zadania trzeba miec przynajmniej 12 punktów). W terminie poprawkowym nie przewiduję ocen wyższych niż 3. termin poprawkowy: 15.05.2006. Wyniki dostepne w USOS.
materiały do ćwiczeń z WSDL
uwaga! Zmieniły się pliki test.wsdl i wsdl.client.py i już
działają w środowisku laboratorium.
Specyfikacja WSDL
jest tutaj. Najpierw możemy
przjrzeć się przykładowemu plikowi
wsdl. Potem nieco bardziej
skomplikowany przykład. Używac
tego w pythonie można np. tak jak w
pliku wsdl.client.py wywołując:
python wsdl.server.py &
python wsdl.client.py test.wsdl
python wsdl.client.py
Potrzebny nam będzie w tym celu jeszcze prosty
serwer wsdl.server.py.
Zadania
- Przeczytać pliki przykładów (kod i w miarę możliwości wsdl)
- Uruchomić przykłady i popatrzeć na komunikaty biegnące po
sieci. (odkomentowując odpowiednie linie kodu)
- Napisać plik wsdl opisujący usługę działań arytmetycznych z
poprzednich zajęć (napisać również samą usługę jeśli nie udało się
tego zrobić poprzednio)
- Napisać usługę (i plik WSDL) pozwalającą na sortowanie ciągów
liczb i ciągów napisów.
materiały do ćwiczeń z SOAP
Zmienil sie
plik python.tgz. Trzeba
go ściągnąć sobie jeszcze raz, a następnie musimy ustawić ścieżkę dla pythona:
export PYTHONPATH=~/python/lib/python
Klient notowań giełdowych:
quotes.py
wywolujemy np.:
python quotes.py MSFT GOOG LNUX
Prosty
klient soap_serv.py
i klient soap_cli.py
uruchamiamy np. tak:
python soap_serv.py &
python soap_cli.py
Domyślnie klient wypluwa komunikaty soap na ekran, można to wyłączyć
wykomentowując odpowiednie fragmenty kodu.
Zadanka
- Zapoznać się z kodem źródłowym i działaniem przykładów.
- Napisać program korzystający z serwisu anagramów
("http://www.claudehussenet.com:80/ws/services/Anagram")
wykorzystujący metody:
- getRandomizeAnagram()
- getAnagram(word="xxxxxx")
- Napisać jakąś prostą usługę i udostępnić ją przez SOAP
(np. operacje arytmetyczne )
- Napisać proxy dla wielu serwerów. wywolanie proxy PORT URL1 URL2
.... powinno udostepnic na porcie PORT serwer SOAP-RPC, który po
odebraniu wywolania probuje wykonać je kolejno na zadanych
serwerach, po czym zwraca pierwszy poprawny wynik. (dla
niecierpliwych -> rozwiązanie i przyklad klienta)
materiały do ćwiczeń z REST API
Należy ściągnąć sobie plik python.tgz i
rozpakować go (np. w katalogu domowym):
tar -xzvf python.tgz
następnie musimy ustawić ścieżkę dla pythona:
export PYTHONPATH=~/python/lib/python
Już teraz możemy korzystać z biblioteki CherryPy. Mamy tutaj przykładowy plik
cherry_server.py Możemy go
uruchomić:
python cherry_server.py
i zobaczyć, że działa przy pomocy przeglądarki tutaj. Możemy też napisać sobie klienta.
Dalsze materiały nt. REST Api tutaj. Wiele
serwisów udostępnia tego rodzaju API (szczególnie serwisy podległe
Yahoo!) i zwykle do korzystania z nicg w zupełności wystarcza
przeglądarka www.
Zadanka
- Zapoznać się z pythonem, jego składnią i dokumentacją
- Napisać serwer (niezbyt bezpieczny), który poprzez api typu REST
da nam mozliwosc przegladania plikow w domowym katalogu (zapytania np.
typu http://localhost:port/kat1/kat2/kat3?name=ala&ext=txt)
materiały do ćwiczeń z XML-RPC
Znowu mamy do dyspozycji przykładziki:
rpc_server.py i
rpc_client.py
po uruchomieniu serwera
python rpc_server.py
możemy zajrzec do jego opisu a
także skorzystać z jego metod przy pomocy klienta.
python rpc_client.py
który wywołuje też niezbyt mądrą metodę serwera zdalnego.
zadanka
- Poczytać specyfikację xml-rpc i zobaczyć jak używać xml-rpc w
naszym ulubionym języku (tm)
- Udostępnić program z poprzednich zajęć przez xml-rpc
materialy nt. MPI
Ksiazka MPI - the complete reference
Strona Marcina Peczarskiego
Last modified: Thu Mar 9 20:44:35 CET 2006