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

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

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

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

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

Wprowadzenie do programowania rozproszonego

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Model OSI. mgr inż. Krzysztof Szałajko

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

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

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

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

Wstęp do Programowania, laboratorium 02

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

router wielu sieci pakietów

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

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

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

Michał Jankowski. Remoting w.net 2.0

Programowanie rozproszone w języku Java

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

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

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

Obiekty w plikach wykonywalnych, marshaling

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

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

Systemy Rozproszone Technologia ICE

IPC: Kolejki komunikatów

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

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

żądanie a odpowiedź a 3 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 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) 2

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 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 (IIPP) 3

(zdalna proc.) namiastka a namiastka a SELECT CHAN BLAST protokół SELECT CHAN BLAST prot. warstwy sieciowej sieć prot. warstwy sieciowej 7 wywołanie zdalnej oczekiwanie powrót z wywołania zdalnej żądanie wraz z argumentami odpowiedź z wynikiem lokalne wykonanie 8 Dariusz Wawrzyniak (IIPP) 4

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 format kanoniczny 10 Dariusz Wawrzyniak (IIPP) 5

11 12 Dariusz Wawrzyniak (IIPP) 6

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 zdalnej? Semantyka dokładnie raz niemożliwa do uzyskania, jeśli system narażony jest na awarie (np. a lub łączy). 13 Przetwarzanie interfejsu Wiązanie a z em Obsługa komunikacji - Realizacja semantyki błędu Problem osieroconych obliczeń 14 Dariusz Wawrzyniak (IIPP) 7

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 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 ). 16 Dariusz Wawrzyniak (IIPP) 8

wywołanie zapytanie o identyfikator komunikacyjny rejestracja a przekazanie identyfikatora komunikacyjnego 17 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. 18 Dariusz Wawrzyniak (IIPP) 9

odbiorca fr ragment 1 fr ragment 2 fr ragment 3 fr ragment 4 fr ragment 5 fr ragment 6 (ost.) SRR R fr ragment 3 fr ragment 5 SRR R nadawca 19 żądanie ACK odpowiedź ACK 20 Dariusz Wawrzyniak (IIPP) 10

żądanie odpowiedź żądanie odpowiedź ACK 21 żą ądanie pi ing po ong pi ing po ong odpowiedź ACK 22 Dariusz Wawrzyniak (IIPP) 11

żądanie jeszcze żyję j jeszcze żyję j odpowiedź ACK 23 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ń 24 Dariusz Wawrzyniak (IIPP) 12

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

po stronie a: odwzorowanie wywoływanej na jej j identyfikator, przekazywany y do a. po stronie a: zlokalizowanie wywoływanej na podstawie identyfikatora. 27 Wywołanie asynchroniczne nie czeka na wynik wykonania zdalnej (wykonywanie y 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 Dariusz Wawrzyniak (IIPP) 14

wywołanie zdalnej żądanie wraz z argumentami lokalne wykonanie 29 wywołanie zdalnej żądanie wraz z argumentami lokalne wykonanie 30 Dariusz Wawrzyniak (IIPP) 15

wywołanie zdalnej żądanie wraz z argumentami lokalne wykonanie wywołanie zwrotnej 31 Dariusz Wawrzyniak (IIPP) 16