76.Struktura oprogramowania rozproszonego.

Podobne dokumenty
Tworzenie aplikacji rozproszonej w Sun RPC

Sun RPC/XDR. Dariusz Wawrzyniak 1

external Data Representation

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

Programowanie współbieżne i rozproszone

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

external Data Representation

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

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

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

Komunikacja i wymiana danych

Wywoływanie metod zdalnych

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

Wywoływanie procedur zdalnych

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Wywoływanie procedur zdalnych

Wywoływanie metod zdalnych

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

Tunelowanie, kapsułkowanie, XDR. 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR.

Wywoływanie procedur zdalnych

Wprowadzenie. Dariusz Wawrzyniak 1

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Klient-Serwer Komunikacja przy pomocy gniazd

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

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

Programowanie obiektowe

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Obiekty w plikach wykonywalnych, marshaling

Programowanie Komponentowe WebAPI

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Deduplikacja danych. Zarządzanie jakością danych podstawowych

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

Konspekt pracy inżynierskiej

Aplikacje RMI

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Podstawy programowania. Wprowadzenie

Programowanie obiektowe zastosowanie języka Java SE

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

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

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

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

Szablony funkcji i klas (templates)

TEMAT : KLASY DZIEDZICZENIE

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

1 Wprowadzenie do J2EE

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

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

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

Programowanie obiektowe

Wypożyczalnia VIDEO. Technologie obiektowe

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

XML-RPC: Zdalne wykonywanie procedur

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Podejście obiektowe do budowy systemów rozproszonych

Simple Object Access Protocol

Program do obsługi ubezpieczeń minifort

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

Programowanie współbieżne i rozproszone

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Middleware wprowadzenie października 2010

Wprowadzenie do programowania rozproszonego

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Język programowania PASCAL

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Remote Method Invocation 17 listopada 2010

Komputery przemysłowe i systemy wbudowane

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Programowanie 2. Język C++. Wykład 3.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Podejście obiektowe do budowy systemów rozproszonych

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

IPC: Kolejki komunikatów

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

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

Serwery Statefull i Stateless

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Akademia Techniczno-Humanistyczna w Bielsku-Białej

komunikator na platformę Android wspierający protokół GG

Komunikator internetowy w C#

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Programowanie z użyciem RPC

Transkrypt:

76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie (reusability) modułów programowych. Standaryzacja de facto (przemysłowa) lub de iure (niezaleŝna). A tu mamy rysunek obrazujący samą strukturę oprogramowania i pewnie trzeba go wykuć: Aplikacje działające w środowisku rozproszonym mogą być napisane w róŝnych językach programowania. Interfejs do operacji zdalnych jest definiowany w specyficznym języku narzędzia programowania rozproszonego. Interfejs słuŝy do wygenerowania zestawu procedur w konkretnym języku programowania. 77.Elementy modelu klient serwer Interfejs generuje zestaw procedur w konkretnym języku programowania. Część tych procedur będzie wywoływana przez serwer tj. program świadczący usługę wykonania operacji. Inna część tych procedur będzie wykonywana przez klienta tj. program na komputerze zdalnym. Są to tzw. namiastki (stubs) operacji wykonywanych przez serwer. Namiastki Procedury stub maja prawie dokładnie taka samą liczbę i typy parametrów jak w deklaracji interfejsu, ale słuŝą wyłącznie do przekazania argumentów wywołania do serwera, a następnie odebranie wyników zdalnej procedury tam wykonanej. Kod odpowiedzialny za organizacje i konwersje przekazywanych danych (marshalling code) jest generowany automatycznie.

Serwer Procedury wygenerowane automatycznie dla serwera to takŝe marshalling code, ale w trakcie obsługi zlecenia następuje wywołanie implementacji tj. procedury, która faktycznie wykona operacje zdefiniowane w interfejsie. Stworzenie implementacji jest zadaniem programisty. Szkielet serwera jest tworzony automatycznie. Ograniczenia przesyłania parametrów Przesyłanie tablic wymaga kaŝdorazowo podania ich rozmiaru. Przesyłanie wskaźników i referencji nie ma sensu: róŝne przestrzenie adresowe serwera i klienta. Przesyłanie deskryptorów plików, uchwytów okien nie ma sensu: obiekty te maja charakter lokalny. Opakowywanie procedur Wrapping przystosowywanie istniejących procedur do pracy w środowisku rozproszonym. Repozytorium serwerów Specjalny proces serwerowy zarządzający katalogiem (repository) serwerów działających w danym systemie. Udostępnia klientom identyfikatory operacji wykonywanych przez poszczególne zarejestrowane serwery. Inne programy zarządzające serwisy (services): zawiadujące (Gronek napisał zawiadujące, ale moim zdaniem chodziło mu o zarządzające...) przesyłaniem komunikatów, prawami dostępu do obiektów, bezpieczeństwem, transakcjami. 78.Organizacja serwisów usług rozproszonych. Serwisy (services) programy zarządzające przesyłaniem komunikatów, prawami dostępu do obiektów, bezpieczeństwem, transakcjami. I tu znowu mamy rysunek:

79. Ogólne właściwości mechanizmu RPC. Tyle mamy od Gronka: RPC - Remote Procedure Call Mechanizm RPC został opracowany przez firmę Sun; obecnie znormalizowany przez ISO/IEC. Nie przystosowany do programowania obiektowego. Powszechnie stosowany w systemach Unix. Wspólny sposób reprezentacji podstawowych typów danych external Data Representation (XDR). RPC zawiera funkcje słuŝące do kodowania i dekodowania typów prostych, łańcuchów znaków, tablic, unii i wskaźników języka C w standardzie XDR. A oto co mówi Wiki na ten temat: Remote Procedure Call (RPC) to protokół zdalnego wywoływania procedur, stworzony przez Suna i swego czasu dość popularny na Uniksach, obsługiwany w bibliotekach języka Java, a współcześnie wypierany przez bardziej rozbudowane protokoły takie jak CORBA czy XML-RPC. Standard RPC zdefiniowany jest w RFC 1057. RPC uŝywa do kodowania danych formatu XDR (external Data Representation) zdefiniowanego w RFC 1832. Protokoły tego typu (jak RPC, CORBA, DCOM, czy XML-RPC) mają na celu ułatwienie komunikacji pomiędzy komputerami. Zazwyczaj wyglądało to tak: Serwer (czyli program oferujący usługi, np. drukowania) przez cały czas nasłuchuje na wybranym porcie, czy ktoś się z nim nie łączy. Klient (czyli program który potrzebuje jakiejś usługi od serwera na innym komputerze) nawiązuje z nim łączność poprzez sieć komputerową.

Klient wysyła swoje dane we wcześniej ustalonym przez programistów klienta i serwera formacie. Serwer realizuje usługę i odsyła potwierdzenie lub kod błędu. Protokoły powyŝsze same zapewniają cały powyŝszy mechanizm, ukrywając go przed klientem. MoŜe on nawet nie wiedzieć, Ŝe łączy się z innym komputerem - z punktu widzenia programisty zdalne wywołanie procedury serwera wygląda jak wywołanie dowolnej innej procedury z programu klienta. 80. Zastosowania i operacje wykonywane na strukturach XDR. XDR - External Data Representation XDR ma za zadanie zniwelować róŝnice w reprezentacji typów danych w róŝnych maszynach. RPC zawiera funkcje słuŝące do kodowania i dekodowania typów prostych, łańcuchów znaków, tablic, unii i wskaźników języka C w standardzie XDR. Dane są zapisywane/odczytywane z potoku XDR tj. strumienia bajtów. Potok XDR sposób przekazywania zakodowanych danych Dane są zapisywane w kwantach 4-bajtowych. (znowu te kwanty ) Dane w potoku znajdują się w kolejności wywołań funkcji je kodujących. Nie ma moŝliwości testowania typów danych w potoku kolejność dekodowania musi odpowiadać kolejności kodowania. Funkcje kodujące/dekodujące filtry XDR. Filtry XDR czyli te funkcje kodujące/dekodujące Operacje kodowania i dekodowania są wykonywane przez te same funkcje. Pierwszym argumentem filtru XDR jest zawsze wskaźnik na strukturę reprezentującą potok XDR. Liczba i typy pozostałych argumentów zaleŝą od typu kodowanych danych. Źródła danych potoków XDR Deskryptor pliku: kodowanie zapis do wskazanego pliku, dekodowanie na odczycie z pliku, tworzenie potoku funkcja xdrstdio_create. Obszar pamięci operacyjnej: kodowanie zapis do pamięci od wskazanego adresu, dekodowanie odczyt z pamięci, tworzenie potoku funkcja xdrmem_create. Dowolne źródło danych poprzez dostarczone z zewnątrz funkcje zapisu i odczytu: kodowanie wywołanie funkcji zapisującej dane, dekodowanie wywołanie funkcji dostarczającej dane, tworzenie potoku funkcja xdrrec_create

Tryb działania potoku Obowiązkowym parametrem funkcji tworzenia potoku jest tryb, w jakim będzie pracował potok XDR: XDR_ENCODE do kodowania danych, XDR_DECODE do dekodowania danych, XDR_FREE do zwalniania pamięci przydzielonej podczas dekodowania. Nagłówki filtrów XDR Nagłówki filtrów dla typów prostych języka C: bool_t xdr_type(xdr *pstream, type *pobject); gdzie type jest jednym z typów: char, int, long, float, double, void lub enum. Argument pobject wskazuje na kodowaną bądź dekodowaną zmienną. Podobnie wyglądają nagłówki filtrów dla łańcuchów znaków, tablic, unii i wskaźników (mogą one mieć większą liczbę argumentów, w zaleŝności od danego typu). Kodowanie struktur Dla wszystkich pól struktury, w kolejności definiowania wywoływane są odpowiednie filtry. Brak uniwersalnego filtru dla struktur. Definicji struktur dokonuje się w języku RPC. rpcgen program automatycznie generujący odpowiednie filtry dla struktur: tworzy plik nagłówkowy z definicjami struktur w języku C, oraz plik z kodem źródłowym stosownych filtrów.