Zdalne wywoływanie procedur RPC

Podobne dokumenty
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

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

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

Wprowadzenie. Dariusz Wawrzyniak 1

Tworzenie aplikacji rozproszonej w Sun RPC

Middleware wprowadzenie października 2010

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

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

Remote Quotation Protocol - opis

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

Wywoływanie metod zdalnych

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

76.Struktura oprogramowania rozproszonego.

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

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

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

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

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

external Data Representation

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

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

Klient-Serwer Komunikacja przy pomocy gniazd

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

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

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

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

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

1 Moduł Diagnostyki Sieci

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

Remote Method Invocation 17 listopada 2010

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

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

Programowanie współbieżne i rozproszone

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

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

Sieci komputerowe - administracja

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

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Wprowadzenie do programowania rozproszonego

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

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Model OSI. mgr inż. Krzysztof Szałajko

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

1 Moduł Inteligentnego Głośnika

1 Moduł Inteligentnego Głośnika 3

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

TRX API opis funkcji interfejsu

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++

Warstwy i funkcje modelu ISO/OSI

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

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

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

Wstęp do Programowania, laboratorium 02

IPC: Kolejki komunikatów

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

Wymagania dla systemu HIS w zakresie komunikacji HL7. Serwer odbierający transakcje HL7. Klient wysyłający transakcje HL7

router wielu sieci pakietów

Aplikacje RMI

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

ezwroty WebApi Dokumentacja techniczna

Programowanie z użyciem RPC

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Procedura Walidacyjna Interfejs

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

Komunikacja i wymiana danych

4. Procesy pojęcia podstawowe

Sieci komputerowe Warstwa transportowa

Michał Jankowski. Remoting w.net 2.0

Przykład MPI: zbiór Mandelbrota

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

Programowanie rozproszone w języku Java

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

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

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

Simple Object Access Protocol

Transkrypt:

Zdalne wywoływanie procedur 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 a 3 Dariusz Wawrzyniak 1

Zdalne wywoływanie procedur 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 int zabij_proces (int pid){ int stat; stat = kill(pid, 9); return stat; programista system main (){ int p, stat; odbierz_żądanie (&p); stat = zabij_proc(p); wyślij_odp (stat); sieciowa 4 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 5 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 6 Dariusz Wawrzyniak 2

Zdalne wywoływanie procedur (zdalna proc.) namiastka a namiastka a SELECT CHAN BLAST protokół SELECT CHAN BLAST prot. warstwy sieciowej sieć prot. warstwy sieciowej 7 wywołanie zdalnej żądanie wraz z argumentami oczekiwanie z wynikiem powrót z wywołania zdalnej lokalne wykonanie 8 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) 9 Dariusz Wawrzyniak 3

Zdalne wywoływanie procedur format kanoniczny 10 11 12 Dariusz Wawrzyniak 4

Zdalne wywoływanie procedur Semantyka co najmniej 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 zdalnej? Semantyka dokładnie raz niemożliwa do uzyskania, jeśli system narażony jest na awarie (np. a lub łączy). Semantyka ewentualnie brak gwarancji, procedura mogła się wykonać lub mogła się nie wykonać. 13 Przetwarzanie interfejsu Wiązanie a z em Obsługa komunikacji - Realizacja semantyki błędu Problem osieroconych obliczeń 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ą 15 Dariusz Wawrzyniak 5

Zdalne wywoływanie procedur Wiązanie statyczne ma wprowadzony na stałe 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 ). 16 wywołanie przekazanie identyfikatora komunikacyjnego zapytanie o identyfikator komunikacyjny rejestracja a 17 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. 18 Dariusz Wawrzyniak 6

Zdalne wywoływanie procedur odbiorca fragment 1 fragment 2 fragment 3 fragment 4 fragment 5 fragment 6 (ost.) SRR fragment 3 fragment 5 SRR nadawca 19 żądanie ACK ACK 20 żądanie żądanie ACK 21 Dariusz Wawrzyniak 7

Zdalne wywoływanie procedur żądanie ping pong ping pong ACK 22 żądanie jeszcze żyję jeszcze żyję ACK 23 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ń 24 Dariusz Wawrzyniak 8

Zdalne wywoływanie procedur 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ą. 25 Ł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ą. 26 po stronie a: odwzorowanie wywoływanej na jej identyfikator, przekazywany do a. po stronie a: zlokalizowanie wywoływanej na podstawie identyfikatora. 27 Dariusz Wawrzyniak 9

Zdalne wywoływanie procedur Wywołanie asynchroniczne nie czeka na wynik wykonania zdalnej (wykonywanie zdalnej 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 wywołanie (zamiana ról pomiędzy em a em). 28 wywołanie zdalnej żądanie wraz z argumentami lokalne wykonanie 29 wywołanie zdalnej żądanie wraz z argumentami lokalne wykonanie 30 Dariusz Wawrzyniak 10

Zdalne wywoływanie procedur wywołanie zdalnej żądanie wraz z argumentami lokalne wykonanie wywołanie zwrotnej 31 Dariusz Wawrzyniak 11