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ęć: 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:

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

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
  1. Zapoznać się z kodem źródłowym i działaniem przykładów.
  2. Napisać program korzystający z serwisu anagramów ("http://www.claudehussenet.com:80/ws/services/Anagram") wykorzystujący metody:
    • getRandomizeAnagram()
    • getAnagram(word="xxxxxx")
  3. Napisać jakąś prostą usługę i udostępnić ją przez SOAP (np. operacje arytmetyczne )
  4. 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