1 / 11

Zdalne wywołanie procedury

Zdalne wywołanie procedury. Implementacja Sun RPC. Ćwiczenie laboratoryje: Jacek Cała <cala@cs.agh.edu.pl> Aleksander Motyka <amotyka@agh.edu.pl>. Pytania. Zadania mechanizmu RPC? Co to jest operacja powtarzalna (ang. idempotent ) ? Cele wprowadzenia specyfikacji XDR?

ojal
Download Presentation

Zdalne wywołanie procedury

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zdalne wywołanie procedury Implementacja Sun RPC Ćwiczenie laboratoryje: Jacek Cała <cala@cs.agh.edu.pl> Aleksander Motyka <amotyka@agh.edu.pl> www.cs.agh.edu.pl

  2. Pytania • Zadania mechanizmu RPC? • Co to jest operacja powtarzalna(ang. idempotent) ? • Cele wprowadzenia specyfikacji XDR? • Czym jest łącznik (ang. stub) klienta/serwera? www.cs.agh.edu.pl

  3. Specyfikacja usług RPC • Numer programu – liczba 32-bitowa • 0000 0000–1fff ffff– SunRPC • 2000 0000–3fff ffff– definiowane przez użytkownika • 4000 0000–5fff ffff– tymczasowe • 6000 0000–ffff ffff– zarezerwowane • Numer wersji – liczba 32-bitowa • Numer procedury – liczba 32-bitowa www.cs.agh.edu.pl

  4. Program rpcbind • Serwer dokonujący konwersji numerów programów RPC na numer portu tzw. portmapper; port 111 demon rpcbind [1] serwer rejestracja usługi [2] [3] odwzorowanie adresu wywołanie klient www.cs.agh.edu.pl

  5. Polecenie rpcinfo • Informacje nt. usług zarejestrowanych w rpcbind. • wyświetlenie wszystkich usług na wskazanym serwerze • wyświetlenie usług w sposób zwarty [-s] • wyświetlenie wybranej usługi [-l] • usunięcie wybranego serwisu [-d] www.cs.agh.edu.pl

  6. Polecenie rpcgen • Jako wejście pobiera plik specyfikacji usługw formacie XDR. • Jako wyjście generuje kod stuba serwerai klienta w języku C. service_proc.c service cc service_svc.c service.x service.h libnsl rpcgen service_cltn.c client.c client cc www.cs.agh.edu.pl

  7. Polecenie rpcgen • Ukrywa niskopoziomowe wywołania biblioteki RPC: • clnt_* • svc_* • rpc_* • xdr_* • Generuje gotowe funkcje na potrzeby serwisu oraz klienta www.cs.agh.edu.pl

  8. Ważniesze funkcje • CLIENT*clnt_create(const char*host,const rpcprog_tprognum,const rpcvers_tversnum,const char*nettype) • zwraca zmienną typu CLIENT, która będzie używana przy generowaniu wywołań do serwera. • bool_tclnt_control(CLIENT*clnt, const uint_treq, char*info) • pozwala na odczyt/zmianę parametrów zmiennej typu CLIENT • voidclnt_destroy(CLIENT*clnt) • usuwa utworzoną strukturę klienta www.cs.agh.edu.pl

  9. Zadanie 1 • Użycie rpcgen dla przykładowej specyfikacji db.x • rpcgen -a -C db.x • gmake -f makefile.db • Analiza wygenerowanych plików • plik nagłówkowy • przykładowe implementacje klienta i serwera www.cs.agh.edu.pl

  10. Zadanie 2 • Opracowanie klienta odczytującego z bazy rekord: • RecordName == autor-02 • RecordID == 1 • Baza umieszczona została na komputerze galaxy oraz jasmin www.cs.agh.edu.pl

  11. Zadanie 3 • Napisanie własnego programu usługi: • podnoszącego przekazaną liczbę rzeczywistą do kwadratu, • procedura usługowa powinna generować na standardowe wyjście komunikat o jej wywołaniu. • Program powinien umieszczony w pliku db.x • UWAGA! Numery programów muszą być unikalne www.cs.agh.edu.pl

More Related