Wywoływanie procedur zdalnych

Podobne dokumenty
Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

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

Przesyłania danych przez protokół TCP/IP

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

Klient-Serwer Komunikacja przy pomocy gniazd

Warstwy i funkcje modelu ISO/OSI

Remote Quotation Protocol - opis

external Data Representation

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

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

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Sun RPC/XDR. Dariusz Wawrzyniak 1

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

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

Sieci komputerowe Warstwa transportowa

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

System DiLO. Opis interfejsu dostępowego v. 2.0

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

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

Programowanie współbieżne i rozproszone

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

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

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

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

1 Moduł Diagnostyki Sieci

Model OSI. mgr inż. Krzysztof Szałajko

Protokoły sieciowe - TCP/IP

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

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

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

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

Podejście obiektowe do budowy systemów rozproszonych

Systemy rozproszone System rozproszony

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

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

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

TRX API opis funkcji interfejsu

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Opis protokołu RPC. Grzegorz Maj nr indeksu:

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

Komunikacja i wymiana danych

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Gatesms.eu Mobilne Rozwiązania dla biznesu

Systemy Rozproszone Technologia ICE

Struktury systemów operacyjnych

Sieci komputerowe - administracja

Programowanie z użyciem RPC

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

Simple Object Access Protocol

Urządzenia wejścia-wyjścia

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele. 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

Programowanie rozproszone w języku Java

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

Aplikacje RMI

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

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

Kolejkowanie wiadomości Standard MQ (JMS)

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

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

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

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

Wprowadzenie do programowania rozproszonego

Instrukcja 5 - Zastosowania protokołu ICMP

Akademia Techniczno-Humanistyczna w Bielsku-Białej

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

Podejście obiektowe do budowy systemów rozproszonych

Oprogramowanie przekaźnika monostabilnego UNIV

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

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

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

OPROGRAMOWANIE STEROWNIKA ROLET UNIV

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

SKRÓCONA INSTRUKCJA OBSŁUGI SYSTEMU ZARZĄDZANIA OBIEGIEM INFORMACJI (SZOI)

System Rozproszone Komunikator Dokumentacja. Maciej Muszkowski Jakub Narloch

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

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Spis treści. Wprowadzenie 15

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); Schemat interakcji - (transakcja komunikatu) Semantyka wywołania w komunikacji sieciowej a 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; wyślij_(pid); // oczekiwanie na odp odbierz_odp (&stat); komunikacja sieciowa int zabij_proces (int pid){ int stat; stat = kill(pid, 9); programista main (){ int p, stat; odbierz_ (&p); stat = zabij_proc(p); wyślij_odp (stat); system 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 j odpowiedzialnej za przesłanie danych do a oraz odebranie wyników Namiastka a (ang server stub) udostępnienie aplikacji po stronie a j odpowiedzialnej za odebranie a do wywołania, parametrów, a odesłanie wyników lub zgłoszenie wyjątków Narzędzia Przetwarzania Rozproszonego 1

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 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 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 - RPC - przekazywanie parametrów wraz oczekiwanie z wynikiem powrót z wywołania 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 Konwersja bezpośrednia format kanoniczny Narzędzia Przetwarzania Rozproszonego 2

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 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ł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? 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 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 3

Wiązanie a z em Wiązanie dynamiczne a z em Wiązanie statyczne ma na stałe wprowadzony 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) zapytanie o komunikacyjny rejestracja a przekazanie a komunikacyjnego łącznik 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 fragment 1 fragment 2 fragment 3 fragment 4 fragment 5 (ost) fragment 6 SRR fragment 3 fragment 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 4

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 protokołu warstwy wyższej 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 ź CHAN próbkowanie a CHAN bicie serca ping pong ping pong jeszcze żyję ę jeszcze żyję ę Narzędzia Przetwarzania Rozproszonego 5

,, lub próbkowanie unikalny pary / protokołu warstwy wyższej CHAN format komunikatu typ kanału kom ID komunikatu ID restartu rozmiar komunikatu numer protokołu dane 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 retransmisja żądania po upłynięciu ustalonego czasu oczekiwania zaginiona 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) 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 Jeśli 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, przekazywany do a Po stronie a: zlokalizowanie wywoływanej na podstawie a Wywołanie asynchroniczne Wywołanie zwrotne Narzędzia Przetwarzania Rozproszonego 6

Wywołanie asynchroniczne Wywołanie asynchroniczne z potwierdzeniem odbioru wraz wraz Wywołanie zwrotne wraz zwrotnej Narzędzia Przetwarzania Rozproszonego 7