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

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

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

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

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Middleware wprowadzenie października 2010

Wprowadzenie. Dariusz Wawrzyniak 1

Tworzenie aplikacji rozproszonej w Sun RPC

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

Remote Quotation Protocol - opis

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

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

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Wywoływanie metod zdalnych

external Data Representation

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

76.Struktura oprogramowania rozproszonego.

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

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ć

Wywoływanie metod zdalnych

Sun RPC/XDR. Dariusz Wawrzyniak 1

System DiLO. Opis interfejsu dostępowego v. 2.0

Przesyłania danych przez protokół TCP/IP

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

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Remote Method Invocation 17 listopada 2010

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

Klient-Serwer Komunikacja przy pomocy gniazd

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

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

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

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

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

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

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

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

Programowanie współbieżne i rozproszone

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

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

Część 4 życie programu

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

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

1 Moduł Diagnostyki Sieci

Opis protokołu RPC. Grzegorz Maj nr indeksu:

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

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

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Wprowadzenie do programowania rozproszonego

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

Model OSI. mgr inż. Krzysztof Szałajko

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

1 Moduł Inteligentnego Głośnika

1 Moduł Inteligentnego Głośnika 3

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

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

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

I - Microsoft Visual Studio C++

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

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

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Wstęp do Programowania, laboratorium 02

router wielu sieci pakietów

Sieci komputerowe - administracja

Aplikacje RMI

TRX API opis funkcji interfejsu

Programowanie z użyciem RPC

Warstwy i funkcje modelu ISO/OSI

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

Procedura Walidacyjna Interfejs

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

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

4. Procesy pojęcia podstawowe

Komunikacja i wymiana danych

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

Programowanie rozproszone w języku Java

Michał Jankowski. Remoting w.net 2.0

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

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

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

Obiekty w plikach wykonywalnych, marshaling

Spis treści. Wprowadzenie 15

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

Aplikacja Sieciowa wątki po stronie klienta

Systemy Rozproszone Technologia ICE

IPC: Kolejki komunikatów

Simple Object Access Protocol

Plan wykładu. Domain Name System. Hierarchiczna budowa nazw. Definicja DNS. Obszary i ich obsługa Zapytania Właściwości.

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

RPC ZDALNE WYWOŁYWANIE PROCEDUR (ang. Remote Procedure Calls)

Transkrypt:

Zagadnienia projektowe Zagadnienia realizacyjne 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; 2 żądanie a main(int argc,char** argv){ int id, status; t id = atoi(argv[1]); status = zabij_proc(id); exit(status); int zabij_proces (int pid){ int stat; t stat = kill(pid, 9); return stat; programista system a 3 int zabij_proces (int pid){ main (){ int stat; int p, stat; wyślij_żądanie(pid); odbierz_żądanie (&p); // oczekiwanie na odp. stat = zabij_proc(p); odbierz_odp (&stat); wyślij_odp (stat); return stat; komunikacja sieciowa 4 Dariusz Wawrzyniak (IIPP) 1

przeźroczystość dostępu ukrycie komunikacji sieciowej jprzed 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 do wywołania, parametrów, a odesłanie wyników lub zgłoszenie wyjątków 5 6 namiastka a (zdalna proc.) namiastka a oczekiwanie powrót z wywołania SELECT CHAN BLAST prot. warstwy sieciowej protokół sieć SELECT CHAN BLAST prot. warstwy sieciowej 7 żądanie wraz z argumentami lokalne wykonanie z wynikiem 8 Dariusz Wawrzyniak (IIPP) 2

przekazywanie przez wartość (ang. call-by-value) problem różnic w reprezentacji danych, np. w kodowaniu znaków, uporządkowaniu bajtów, w formatach liczb zmiennopozycyjnych itp. przekazywanie przez referencje (ang. call-byreference) problem zinterpretowania wartości wskaźnika w innej przestrzeni adresowej przekazywanie przez kopiowanie i odtwarzanie problem przetaczania (kwestia opisu struktur danych w celu prawidłowego zidentyfikowania wszystkich składowych) format kanoniczny 9 10 11 12 Dariusz Wawrzyniak (IIPP) 3

Semantyka ewentualnie brak gwarancji, procedura mogła się wykonać lub mogła się nie wykonać. Semantyka co najmniej j raz po uzyskaniu odpowiedzi (wyniku) od a ma pewność, że wywoływana procedura wykonała się co najmniej raz. Semantyka co najwyżej raz po uzyskaniu odpowiedzi (wyniku) 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). Przetwarzanie interfejsu Wiązanie a z em Obsługa komunikacji - Realizacja semantyki błędu Problem osieroconych obliczeń 13 14 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 statyczne ma wprowadzony na stałe identyfikator komunikacyjny y a (np. para: adres IP, nr portu). Wiązanie dynamiczne uzyskuje adres a za pośrednictwem łącznika (np. portmap lub rpcbind w Sun ). 15 16 Dariusz Wawrzyniak (IIPP) 4

przekazanie identyfikatora komunikacyjnego zapytanie o identyfikator komunikacyjny rejestracja a BLAST realizuje przesyłanie dużych komunikatów poprzez p 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. 17 18 odbiorca ragment 1 ragment 2 ragment 3 ragment 4 ragment 5 ragment 6 (ost.) SRR R ragment 3 ragment 5 SRR R żądanie ż nadawca 19 20 Dariusz Wawrzyniak (IIPP) 5

żądanie ż żądanie ż żą ądanie pi ing po ong pi ing po ong 21 22 żądanie ż jeszcze żyję j jeszcze żyję j nie można zlokalizować a zgłoszenie wyjątku zaginione żądanie 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ń 23 24 Dariusz Wawrzyniak (IIPP) 6

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ą. 25 26 po stronie a: odwzorowanie wywoływanej na jej j identyfikator, przekazywany y do a. po stronie a: zlokalizowanie wywoływanej na podstawie identyfikatora. Wywołanie asynchroniczne nie czeka na wynik wykonania (wykonywanie y odbywa się równolegle z przetwarzaniem po stronie a). Wywołanie zwrotne udostępnia procedurę zdalną po swojej stronie i przekazuje owi informacje umożliwiające jej (zamiana ról pomiędzy em a em). 27 28 Dariusz Wawrzyniak (IIPP) 7

żądanie wraz z argumentami żądanie wraz z argumentami lokalne wykonanie lokalne wykonanie 29 30 żądanie wraz z argumentami lokalne wykonanie zwrotnej 31 Dariusz Wawrzyniak (IIPP) 8