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 Dariusz Wawrzyniak (IIPP) 1

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

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

Tworzenie aplikacji rozproszonej w Sun RPC

Middleware wprowadzenie października 2010

Wprowadzenie. Dariusz Wawrzyniak 1

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

76.Struktura oprogramowania rozproszonego.

Wywoływanie metod zdalnych

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

Wywoływanie metod zdalnych

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

Klient-Serwer Komunikacja przy pomocy gniazd

Przesyłania danych przez protokół TCP/IP

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Remote Quotation Protocol - opis

external Data Representation

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

Sun RPC/XDR. Dariusz Wawrzyniak 1

Warstwy i funkcje modelu ISO/OSI

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

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

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

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

Sieci komputerowe Warstwa transportowa

System DiLO. Opis interfejsu dostępowego v. 2.0

1 Moduł Diagnostyki Sieci

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

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

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

Programowanie współbieżne i rozproszone

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

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

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

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

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

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

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ć

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

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

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

Model OSI. mgr inż. Krzysztof Szałajko

Protokoły sieciowe - TCP/IP

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

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

TRX API opis funkcji interfejsu

Gatesms.eu Mobilne Rozwiązania dla biznesu

Systemy rozproszone System rozproszony

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

Komunikacja i wymiana danych

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

Opis protokołu RPC. Grzegorz Maj nr indeksu:

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

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

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

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

Programowanie z użyciem RPC

Wprowadzenie do programowania rozproszonego

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

Systemy Rozproszone Technologia ICE

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

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

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

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

Aplikacje RMI

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

Akademia Techniczno-Humanistyczna w Bielsku-Białej

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

Programowanie rozproszone w języku Java

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Płatności CashBill - SOAP

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Struktury systemów operacyjnych

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

Podejście obiektowe do budowy systemów rozproszonych

Sieci komputerowe - administracja

Instrukcja 5 - Zastosowania protokołu ICMP

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

Oprogramowanie przekaźnika monostabilnego UNIV

Architektura typu klient - serwer. Oprogramowanie systemów równoległych i rozproszonych. Wykład 6. Cechy architektury klient - serwer

Simple Object Access Protocol

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Urządzenia wejścia-wyjścia

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

OPROGRAMOWANIE STEROWNIKA ROLET UNIV

Transkrypt:

Wywoływanie procedur zdalnych Mechanizm wywołania 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) żądanie a odpowiedź a Narzędzia Przetwarzania Rozproszonego 1

Semantyka wywołania w komunikacji sieciowej 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; wyślij_żądanie(pid); // oczekiwanie na odp. odbierz_odp (&stat); return stat; } komunikacja sieciowa int zabij_proces (int pid){ int stat; stat = kill(pid, 9); return stat; } programista main (){ int p, stat; odbierz_żądanie (&p); stat = zabij_proc(p); wyślij_odp (stat); return stat; } system RPC zagadnienia projektowe 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 RPC przezroczystość dostępu 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 Narzędzia Przetwarzania Rozproszonego 2

Warstwy protokołu RPC namiastka a SELECT CHAN BLAST protokół RPC namiastka a SELECT CHAN BLAST warstwa siec./transp. warstwa siec./transp. Interakcja - w realizacji wywołania zdalnego 1. Lokalne wywołanie namiastki przez a 2. Przygotowanie (upakowanie) danych do wysłania na stronę a 3. Wysłanie przygotowanego g 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 Diagram przestrzenno-czasowy interakcji - wywołanie zdalnej oczekiwanie powrót z wywołania zdalnej żądanie wraz z argumentami lokalne wykonanie odpowiedź z wynikiem Narzędzia Przetwarzania Rozproszonego 3

RPC - przekazywanie parametrów 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 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 format kanoniczny Konwersja bezpośrednia Narzędzia Przetwarzania Rozproszonego 4

Przekazywanie referencji przez kopiowanie i odtwarzanie 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. Kopiowanie i odtwarzanie przykład złożonej struktury danych XDR RPC gwarancja wykonania Semantyka ewentualnie brak gwarancji, procedura mogła się wykonać lub mogła się nie wykonać. Semantyka co najmniej raz po uzyskaniu odpowiedzi z wynikiem od a ma pewność, że wywoływana procedura wykonałasię 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). Narzędzia Przetwarzania Rozproszonego 5

Specyfikacja interfejsu 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) RPC zagadnienia realizacyjne Przetwarzanie interfejsu Wiązanie a z em Obsługa komunikacji - Realizacja semantyki błędu Problem osieroconych obliczeń Przetwarzanie interfejsu procedur zdalnych 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ą Narzędzia Przetwarzania Rozproszonego 6

Wiązanie 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). Wiązanie dynamiczne a z em wywołanie przekazanie identyfikatora komunikacyjnego zapytanie o identyfikator komunikacyjny rejestracja a łącznik Obsługa komunikacji - 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. Narzędzia Przetwarzania Rozproszonego 7

BLAST odbiorca fragment 1 fragment 2 fragment 3 fragment 4 fragment 5 fragment 6 SRR fragment 3 fragment 5 SRR (ost.) 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 8

BLAST odbiorca (2) 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 BLAST format komunikatu identyfikator protokołu warstwy wyższej identyfikator sesji lub epoki numer protokołu ID komunikatu rozmiar komunikatu liczba fragmentów typ ID fragmentu/maska długość komunikatu w bajtach dane lub SRR liczba fragmentów przesyłanych w komunikacie lub flaga ostatniego fragmentu dane CHAN żądanie ACK odpowiedź ź ACK Narzędzia Przetwarzania Rozproszonego 9

CHAN domniemane potwierdzenia żądanie odpowiedź żądanie odpowiedź ACK CHAN próbkowanie a żądanie ping pong ping pong odpowiedź ACK CHAN bicie serca żądanie jeszcze żyję ę jeszcze żyję ę odpowiedź ACK Narzędzia Przetwarzania Rozproszonego 10

CHAN format komunikatu żą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 Realizacja semantyki błędu 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ń Usuwanie osieroconych obliczeń (1) 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ą. Narzędzia Przetwarzania Rozproszonego 11

Usuwanie osieroconych obliczeń (2) Ł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 Po stronie a: odwzorowanie wywoływanej na jej identyfikator, przekazywany do a. Po stronie a: zlokalizowanie wywoływanej na podstawie identyfikatora. Warianty użycia mechanizmu RPC Wywołanie asynchroniczne Wywołanie zwrotne Narzędzia Przetwarzania Rozproszonego 12

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