Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Podobne dokumenty
Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

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

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

external Data Representation

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

System DiLO. Opis interfejsu dostępowego v. 2.0

Przesyłania danych przez protokół TCP/IP

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

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.

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

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

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

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

Klient-Serwer Komunikacja przy pomocy gniazd

Remote Method Invocation 17 listopada 2010

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

1 Moduł Diagnostyki Sieci

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

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ą

Część 4 życie programu

Sieci komputerowe - administracja

Gatesms.eu Mobilne Rozwiązania dla biznesu

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:

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

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

1 Moduł Inteligentnego Głośnika

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

1 Moduł Inteligentnego Głośnika 3

I - Microsoft Visual Studio C++

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

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

Wprowadzenie do programowania rozproszonego

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

IPC: Kolejki komunikatów

Wstęp do Programowania, laboratorium 02

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

router wielu sieci pakietów

Aplikacje RMI

Model OSI. mgr inż. Krzysztof Szałajko

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

Procedura Walidacyjna Interfejs

Warstwy i funkcje modelu ISO/OSI

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

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

Przykład MPI: zbiór Mandelbrota

Michał Jankowski. Remoting w.net 2.0

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

Programowanie rozproszone w języku Java

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

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

Obiekty w plikach wykonywalnych, marshaling

Spis treści. Wprowadzenie 15

Aplikacja Sieciowa wątki po stronie klienta

Simple Object Access Protocol

Systemy Rozproszone Technologia ICE

System automatyki domowej. Nexo.API Protokół Karty komend NXW396

Lab 2 ĆWICZENIE 2 - VLAN. Rodzaje sieci VLAN

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

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

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

Protokoły wspomagające. Mikołaj Leszczuk

Pakiety podprogramów Dynamiczny SQL

Kolejkowanie wiadomości Standard MQ (JMS)

Laboratorium nr 10. Temat: Funkcje cz.2.

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

Struktury systemów operacyjnych

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 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 system a 3 int zabij_proces (int pid){ int stat; wyślij_(pid); // oczekiwanie na odp. odbierz_odp (&stat); return stat; komunikacja main (){ int p, stat; odbierz_ (&p); stat = zabij_proc(p); wyślij_odp (stat); sieciowa 4 Dariusz Wawrzyniak 1

Zdalne wywoływanie procedur 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 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 protokół SELECT CHAN wraz z argumentami z wynikiem BLAST prot. warstwy sieciowej sieć BLAST prot. warstwy sieciowej 7 lokalne wykonanie 8 Dariusz Wawrzyniak 2

Zdalne wywoływanie procedur 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 3

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? 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ć. 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 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 4

Zdalne wywoływanie procedur przekazanie identyfikatora komunikacyjnego zapytanie o identyfikator komunikacyjny rejestracja a 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. 17 18 odbiorca fragment 1 fragment 2 fragment 3 fragment 4 fragment 5 fragment 6 (ost.) SRR fragment 3 fragment 5 SRR nadawca 19 20 Dariusz Wawrzyniak 5

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

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ą. Ł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 identyfikator, przekazywany do a. po stronie a: zlokalizowanie wywoływanej na podstawie identyfikatora. Wywołanie asynchroniczne nie czeka na wynik wykonania (wykonywanie 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 7

Zdalne wywoływanie procedur wraz z argumentami wraz z argumentami lokalne wykonanie lokalne wykonanie 29 30 wraz z argumentami lokalne wykonanie zwrotnej 31 Dariusz Wawrzyniak 8