Wywoływanie procedur zdalnych



Podobne dokumenty
Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Zdalne wywoływanie procedur RPC 27. października 2010

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Tworzenie aplikacji rozproszonej w Sun RPC

Wprowadzenie. Dariusz Wawrzyniak 1

Wywoływanie metod zdalnych

Middleware wprowadzenie października 2010

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

76.Struktura oprogramowania rozproszonego.

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Wywoływanie metod zdalnych

Przesyłania danych przez protokół TCP/IP

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6

Klient-Serwer Komunikacja przy pomocy gniazd

Remote Quotation Protocol - opis

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Sieci komputerowe Warstwa transportowa

Sun RPC/XDR. Dariusz Wawrzyniak 1

Warstwy i funkcje modelu ISO/OSI

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

Middleware wprowadzenie października Dariusz Wawrzyniak. Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5)

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Sun RPC/XDR 10. listopada Dariusz Wawrzyniak (IIPP) 1

external Data Representation

Programowanie współbieżne i rozproszone

System DiLO. Opis interfejsu dostępowego v. 2.0

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Protokoły sieciowe - TCP/IP

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

5. Model komunikujących się procesów, komunikaty

1 Moduł Diagnostyki Sieci

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Programownie współbieżne i rozproszone Jędrzej Ułasiewicz 1. Komunikacja. Model procesów komunikujących się poprzez pamięć dzieloną

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1

TRX API opis funkcji interfejsu

Mechanizmy pracy równoległej. Jarosław Kuchta

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Programowanie z użyciem RPC

Komunikacja i wymiana danych

Wprowadzenie do programowania rozproszonego

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

Sieci komputerowe - administracja

Rywalizacja w sieci cd. Protokoły komunikacyjne. Model ISO. Protokoły komunikacyjne (cd.) Struktura komunikatu. Przesyłanie między warstwami

Systemy rozproszone System rozproszony

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Gatesms.eu Mobilne Rozwiązania dla biznesu

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Płatności CashBill - SOAP

Model OSI. mgr inż. Krzysztof Szałajko

Podejście obiektowe do budowy systemów rozproszonych

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Systemy Rozproszone Technologia ICE

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Akademia Techniczno-Humanistyczna w Bielsku-Białej

MODEL WARSTWOWY PROTOKOŁY TCP/IP

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Programowanie rozproszone w języku Java

Komunikacja pomiędzy S i S7-300/400 przez Ethernet (1)

Aplikacje RMI

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Wykład 3 Składnia języka C# (cz. 2)

System Rozproszone Komunikator Dokumentacja. Maciej Muszkowski Jakub Narloch

Michał Jankowski. Remoting w.net 2.0

ARP Address Resolution Protocol (RFC 826)

Obiekty w plikach wykonywalnych, marshaling

Laboratorium nr 10. Temat: Funkcje cz.2.

Remote Method Invocation 17 listopada 2010

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

Kolejkowanie wiadomości Standard MQ (JMS)

Transkrypt:

Mechanizm wywołania Wywoływanie procedur zdalnych main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces (int pid){ int stat; stat = kill(pid, 9); return stat; } Schemat interakcji - (transakcja komunikatu) Semantyka wywołania w komunikacji sieciowej żądanie a main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces (int pid){ int stat; stat = kill(pid, 9); return stat; } programista odpowiedź a int zabij_proces (int pid){ int stat; wyślij_żądanie(pid); // oczekiwanie na odp. odbierz_odp (&stat); return stat; } komunikacja sieciowa main (){ int p, stat; odbierz_żądanie (&p); stat = zabij_proc(p); wyślij_odp (stat); return stat; } system Narzędzia Przetwarzania Rozproszonego 1

RPC zagadnienia projektowe RPC przezroczystość dostępu Przeźroczystość dostępu ukrycie komunikacji sieciowej przed aplikacją przez odpowiednie opakowanie funkcji komunikacyjnych namiastką a oraz a. Gwarancja wykonania ukrywanie błędów komunikacyjnych Specyfikacja interfejsu sposób opisu sygnatur procedur zdalnych (nazwy, typy parametrów) Obsługa sytuacji wyjątkowych Namiastka a (ang. client stub) udostępnienie aplikacji klienckiej lokalnej odpowiedzialnej za przesłanie danych do a oraz odebranie wyników Namiastka a (ang. server stub) udostępnienie aplikacji po stronie a lokalnej odpowiedzialnej za odebranie identyfikatora zdalnej do wywołania, parametrów, a odesłanie wyników lub zgłoszenie wyjątków namiastka a SELECT CHAN BLAST warstwa siec./transp. Warstwy protokołu RPC protokół RPC namiastka a SELECT CHAN BLAST warstwa siec./transp. Interakcja - w realizacji wywołania zdalnego 1. Lokalne ewywołanie epoceduy namiastki ast przez a 2. Przygotowanie (upakowanie) danych do wysłania na stronę a 3. Wysłanie przygotowanego komunikatu na stronę a 4. Odebranie komunikatu przez 5. Rozpakowanie danych 6. Wykonanie zdalnej 7. Przygotowanie (upakowanie) danych z odpowiedzią dla a 8. Wysłanie przygotowanego komunikatu na stronę a 9. Odebranie komunikatu przez namiastkę a 10. Rozpakowanie komunikatu i zwrócenie owi wyniku Narzędzia Przetwarzania Rozproszonego 2

Diagram przestrzenno-czasowy interakcji - RPC - przekazywanie parametrów wywołanie zdalnej żądanie wraz z argumentami oczekiwanie lokalne wykonanie odpowiedź z wynikiem powrót z wywołania zdalnej przekazywanie przez wartość (ang. call-by-value) problem reprezentacji danych (np. różnice w kodowaniu znaków, różnice w kolejności bajtów, formaty liczb zmiennopozycyjnych) przekazywanie przez referencje (ang. call-by-reference) problem zinterpretowania wartości wskaźnika w innej przestrzeni adresowej przekazywanie przez kopiowanie i i odtwarzanie (ang. callby-copy/restore) utworzenie kopii parametru po stronie i zapis dokonanych tam zmian w procesie a po jej zakończeniu (problem opisu struktur danych w celu prawidłowego zidentyfikowania wszystkich składowych) Reprezentacja kanoniczna Konwersja bezpośrednia format kanoniczny Narzędzia Przetwarzania Rozproszonego 3

Przekazywanie referencji przez kopiowanie i odtwarzanie Kopiowanie i odtwarzanie przykład złożonej struktury danych 1. Skopiowanie wskazanej wartości do bufora komunikacyjnego i wysłanie do a. 2. Wywołanie po stronie a zdalnej ze wskaźnikiem na kopię wartości utworzoną po stronie a. 3. Skopiowanie zmodyfikowanej wartości z przestrzeni adresowej a do bufora komunikacyjnego i przesłanie z powrotem do a. 4. Umieszczenie odebranej wartości w miejscu wskazywanym przez referencję po stronie a. XDR RPC gwarancja wykonania Semantyka ewentualnie brak gwarancji, procedura mogłasię wykonać lub mogłasię nie wykonać. Semantyka co najmniej raz po uzyskaniu odpowiedzi z wynikiem od a ma pewność, że wywoływana procedura wykonała się co najmniej raz. Semantyka co najwyżej raz po uzyskaniu odpowiedzi z wynikiem od a wie, że wywoływana procedura wykonała się dokładnie raz. Jak należy zinterpretować przypadek wystąpienia błędu (wyjątku) w wywołaniu zdalnej? Semantyka dokładnie raz niemożliwa do uzyskania, jeśli system narażony jest na awarie (np. a lub łączy). Specyfikacja interfejsu Opis interfejsu w języku implementacji (np Ada Java Opis interfejsu w języku implementacji (np. Ada, Java RMI) Opis interfejsu w języku specjalnym, niezależnym od implementacji (CORBA IDL, Sun RPC rpcgen) Narzędzia Przetwarzania Rozproszonego 4

RPC zagadnienia realizacyjne Przetwarzanie interfejsu procedur zdalnych Przetwarzanie interfejsu Wiązanie a z em Obsługa komunikacji - Realizacja semantyki błędu Problem osieroconych obliczeń Generowanie namiastki a Generowanie namiastki a Generowanie przykładowego programu a (client sample) Generowanie wzorca do implementacji procedur zdalnych (template) Generowanie plików do zarządzania kompilacją Wiązanie a z em Wiązanie dynamiczne a z em Wiązanie statyczne ma na stałe wprowadzony identyfikator komunikacyjny a (np. para: adres IP, nr portu). Wiązanie dynamiczne uzyskuje adres a za pośrednictwem łącznika (np. portmap, lub rpcbind w Sun RPC). wywołanie ł zapytanie o identyfikator komunikacyjny rejestracja a przekazanie identyfikatora komunikacyjnego łącznik Narzędzia Przetwarzania Rozproszonego 5

Obsługa komunikacji - BLAST BLAST realizuje przesyłanie dużych komunikatów poprzez podział na mniejsze części, transmisję poszczególnych części i ponowne złożenie w jeden komunikat po stronie odbiorczej, CHAN synchronizuje wymianę komunikatów z żądaniami wywołania procedur oraz odpowiedziami, SELECT rozdziela i przekazuje komunikaty z żądaniami do odpowiednich procesów. odbiorca frag gment 1 frag gment 2 frag gment 3 frag gment 4 frag gment 5 fra agment 6 (ost.) SRR frag gment 3 frag gment 5 SRR nadawca BLAST nadawca 1. otrzymanie bloku z w wyższej warstwy stosu protokołów i podział bloku na fragmenty 2. wysłanie kolejno poszczególnych fragmentów do odbiorcy (ze specjalnym oznaczeniem ostatniego fragmentu) 3. ustawienie czasomierza (ang. timer) DONE 4. jeśli dotarł SRR z informacją o brakujących fragmentach, to wysłanie brakujących fragmentów i przejście do pkt. 3 5. jeśli dotarł SRR z informacją o odebraniu wszystkich fragmentów, to SUKCES 6. jeśli DONE = 0 // minął czas oczekiwania to BŁĄD BLAST odbiorca (1) 1. po odebraniu pierwszego komunikatu z fragmentem bloku danych: inicjalizacja struktur danych do przechowywania poszczególnych bloków, umieszczenie odebranego fragmentu w odpowiedniej strukturze ustawienie licznika powtórzeń na 0 2. ustawienie czasomierza LAST_FRAG 3. po odebraniu kolejnego (ale nie ostatniego) komunikatu: umieszczenie nadesłanego fragmentu bloku w odpowiedniej strukturze i przejście do pkt. 2 Narzędzia Przetwarzania Rozproszonego 6

BLAST odbiorca (2) BLAST format komunikatu 4. jeśli LAST_FRAG = 0, to przejście do pkt. 8 5. po odebraniu ostatniego komunikatu umieszczenie nadesłanego fragmentu bloku w odpowiedniej strukturze i sprawdzenie kompletności bloku 6. jeśli blok jest kompletny to wysłanie komunikatu SRR i przekazanie bloku do wyższej warstwy stosu protokołów 7. jeśli blok nie jest kompletny przejście do pkt. 8 8. jeśli licznik powtórzeń jest mniejszy od 3, to wysłanie komunikatu SRR z informacją o brakujących blokach, zwiększenie licznika powtórzeń o 1 i przejście do pkt. 2 w przeciwnym razie rezygnacja z odbioru identyfikator protokołu warstwy wyższej identyfikator sesji lub epoki liczba fragmentów przesyłanych w komunikacie lub flaga ostatniego fragmentu numer protokołu ID komunikatu rozmiar komunikatu liczba fragmentów typ ID fragmentu/maska dane długość komunikatu w bajtach dane lub SRR CHAN CHAN domniemane potwierdzenia żądanie ACK odpowiedź ACK żądanie od dpowiedź żądanie od dpowiedź ACK Narzędzia Przetwarzania Rozproszonego 7

CHAN próbkowanie a CHAN bicie serca żądanie ping pong ping pong od dpowiedź ACK żądanie jes szcze żyję jes szcze żyję od dpowiedź ACK CHAN format komunikatu Realizacja semantyki błędu żądanie, odpowiedź, ACK lub próbkowanie unikalny identyfikator pary żądanie/odpowiedź identyfikator protokołu warstwy wyższej typ identyfikator kanału kom. ID komunikatu ID restartu rozmiar komunikatu numer protokołu dane identyfikator transakcji komunikatu unikalny numer przechowywa ny na dysku i zwiększany po każdym restarcie komputera nie można zlokalizować a zgłoszenie wyjątku zaginione żądanie retransmisja żądania po upłynięciu ustalonego czasu oczekiwania zaginiona odpowiedź retransmisja żądania stosowanie procedur idempotentnych numerowanie żądań i retransmisja odpowiedzi awaria a przed podjęciem realizacji retransmisja żądania po wykonaniu zgłoszenie wyjątku awaria a osierocenie obliczeń Narzędzia Przetwarzania Rozproszonego 8

Usuwanie osieroconych obliczeń (1) Usuwanie osieroconych obliczeń (2) Eksterminacja rejestrowanie działań podejmowanych przez a na nośniku niewrażliwym na awarie i usuwanie na tej podstawie osieroconych obliczeń po restarcie a. Reinkarnacja każdy restart a rozpoczyna nową epokę (identyfikowaną przez numer kolejny), po której usuwane są wszystkie obliczenia związane z poprzednią epoką. Łagodna reinkarnacja reinkarnacja, w której usuwa się tylko te obliczenia rozpoczęte w starej epoce, dla których nie ma właściciela. Wygaśnięcie przydział określonego czasu T owi na wykonanie. Jeśli wykonanie nie zakończy się w czasie T, musi uzyskać kolejny przydział, pod warunkiem, że obliczenia nie zostały osierocone. Jeśli odczeka czas T przy restarcie, osierocone obliczenia same się zakończą. SELECT Warianty użycia mechanizmu RPC Po stronie a: odwzorowanie wywoływanej na jej identyfikator, przekazywany do a. Po stronie a: zlokalizowanie wywoływanej na podstawie identyfikatora. Wywołanie asynchroniczne Wywołanie asynchroniczne Wywołanie zwrotne Narzędzia Przetwarzania Rozproszonego 9

Wywołanie asynchroniczne Wywołanie asynchroniczne z potwierdzeniem odbioru wywołanie zdalnej wywołanie zdalnej żądanie wraz z argumentami żądanie wraz z argumentami lokalne wykonanie lokalne wykonanie Wywołanie zwrotne wywołanie zdalnej żądanie wraz z argumentami lokalne wykonanie wywołanie zwrotnej Narzędzia Przetwarzania Rozproszonego 10