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

Podobne dokumenty
Wprowadzenie. Dariusz Wawrzyniak 1

Middleware wprowadzenie października 2010

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych

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

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

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

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

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

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ć

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

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Remote Method Invocation 17 listopada 2010

Programowanie współbieżne i rozproszone

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Wywoływanie procedur zdalnych

Akademia Techniczno-Humanistyczna w Bielsku-Białej

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

Systemy rozproszone. Wstęp. Krzysztof Banaś Systemy rozproszone 1

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

Aplikacje RMI

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

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

76.Struktura oprogramowania rozproszonego.

Systemy Rozproszone Technologia ICE

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

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

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

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Sieciowe Systemy Operacyjne

Tworzenie aplikacji rozproszonej w Sun RPC

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

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

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

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Klient-Serwer Komunikacja przy pomocy gniazd

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

DZANIA I MARKETINGU BIAŁYSTOK,

Rozproszone i obiektowe systemy baz danych. Wykład 4. Wymagania projektowe systemów rozproszonych

Wzorce projektowe. dr inż. Marcin Pietroo

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Zarządzanie pamięcią operacyjną

Programowanie obiektowe - 1.

System operacyjny MACH

Zaawansowane narzędzia programowania rozproszonego

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

System zarządzający grami programistycznymi Meridius

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

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

System Kancelaris. Zdalny dostęp do danych

Technologie obiektowe

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Wypożyczalnia VIDEO. Technologie obiektowe

Działanie komputera i sieci komputerowej.

Bazy danych 2. Wykład 1

Komunikacja i wymiana danych

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Podstawy Programowania Obiektowego

Sterowniki urządzeń zewnętrznych w pracy lokalnej i sieciowej w programach firmy InsERT dla Windows

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

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

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

Kolejkowanie wiadomości Standard MQ (JMS)

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

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

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Licencjonowanie serwerów do zarządzania wydajnością. Office Web Apps Server

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

PODSYSTEM RADIODOSTĘPU MOBILNEGO ZINTEGROWANEGO WĘZŁA ŁĄCZNOŚCI TURKUS

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

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Programowanie obiektowe

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Architektura i mechanizmy systemu

Komunikacja. Marek Libuda Jerzy Brzeziński Cezary Sobaniec

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Wzorce projektowe. dr inż. Marcin Pietroo

1. Etapy rozwoju systemów komputerowych

Transkrypt:

Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznańń Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl i www.cs.put.poznan.pl/dwawrzyniak/middleware +48 (61) 665 2963 Dariusz Wawrzyniak (IIPP) 1

Zbiór niezależnych komputerów i zasobów komputerowych zdolnych do kooperacji (np. poprzez sieć komputerową), postrzeganych przez użytkownika jako całościowo spójny system. Ogólny cel projektowy systemu rozproszonego: stworzenie przezroczystego, otwartego, elastycznego, wydajnego i skalowalnego mechanizmu współdzielenia zasobów. Dariusz Wawrzyniak (IIPP) 2

Dariusz Wawrzyniak (IIPP) 3

local operating system local operating system hardware hardware Dariusz Wawrzyniak (IIPP) 4

System sieciowy umożliwia użytkownikom dostęp do zdalnych dl zasobów w sposób nieprzezroczysty (użytkownicy są świadomi fizycznego rozproszenia zasobów) Dariusz Wawrzyniak (IIPP) 5

local oper. system Network Oper. System local oper. system hardware hardware Dariusz Wawrzyniak (IIPP) 6

Rozproszony system operacyjny umożliwia użytkownikom dostęp do zdalnych zasobów w sposób przezroczysty (jest jednolity sposób dostępu do zasobu lokalnego i zdalnego) Dariusz Wawrzyniak (IIPP) 7

Distributed Operating System hardware hardware middleware local l oper. local l oper. system Network Oper. System system hardware hardware Dariusz Wawrzyniak (IIPP) 8

użytkownik zasobu moduł (program, proces) zgłaszający zapotrzebowanie na zasób, żądający dostępu (wykonania operacji) zarządca zasobu (ang. resource manager) moduł oprogramowania odpowiedzialny za udostępnianie zasobu (koordynację i realizację operacji dostępu, żądanych przez użytkownika) Dariusz Wawrzyniak (IIPP) 9

współdzielenie/współużytkowanie zasobów (sprzętu, danych) poprawa efektywności wykorzystania (np. drukarka) możliwość interakcji (np. system plików, baza danych) otwartość standaryzacja reguł dostępu do usług oraz kompletność interfejsów interoperacyjność (zdolność do współdziałania) przenośność rozszerzalność zdolność do rozbudowy i rekonfiguracji, możliwość dodawania nowych Dariusz Wawrzyniak (IIPP) 10

współbieżność możliwość współbieżnego (równoczesnego) ubiegania się o zasoby i ich użytkowania skalowalność możliwość dostosowania systemu do rosnących rozmiarów problemów i wymagań użytkowników tolerowanie uszkodzeń odporność na awarie przez redundancję (sprzętu, danych) oraz możliwość odtworzenia spójnego stanu po awarii przezroczystość (transparentność) ukrywanie fizycznego odseparowania zasobów przed użytkownikiem Dariusz Wawrzyniak (IIPP) 11

przezroczystość dostępu ukrywanie różnic w reprezentacji danych, zagwarantowanie jednolitego sposobu dostępu do zasobów, niezależnie od tego, czy są to zasoby lokalne, czy zdalne przezroczystość położenia identyfikacja zasobów niezależna od ich fizycznej lokalizacji (np. dzięki usłudze nazw) przezroczystość replikacji utrzymywanie i udostępnianie kilku egzemplarzy tego samego zasobu (kopii) w taki sposób, jak gdyby użytkownik widział i działał tylko na jednym Dariusz Wawrzyniak (IIPP) 12

przezroczystość migracji zmiana fizycznej lokalizacji li zasobu nie powoduje zmian w sposobie ich identyfikacji ani w sposobie dostępu przezroczystość relokacji fizyczna zmiana lokalizacji zasobu może być dokonana w sposób niewidoczny (nieodczuwalny) dla użytkownika w czasie realizacji dostępu przezroczystość współbieżności realizacja współbieżnego dostępu do zasobu w taki sposób, że konkurujące procesy nie przeszkadzają sobie wzajemnie (nie są świadome rywalizacji) przezroczystość ukrywania awarii zdolność ukrycia przed użytkownikiem faktu chwilowych nieprawidłowości funkcjonowania Dariusz Wawrzyniak (IIPP) 13

Dostęp do wspólnej pamięć Przekazywanie wiadomości (komunikatów) komunikacja synchroniczna lub asynchroniczna komunikacja przejściowa lub nieustanna komunikacja punkt-punkt lub grupowa Wywoływanie y zdalnych procedur Dostęp do zdalnych obiektów Komunikacja strumieniowa Dariusz Wawrzyniak (IIPP) 14

pamięć P i P j P k Dariusz Wawrzyniak (IIPP) 15

tablica stron system operacyjny pułapka s numer strony r numer ramki o przesunięcie s pn błąd strony urządzenie wymiany s o adres logiczny procesor pamięć Dariusz Wawrzyniak (IIPP) 16

tablica stron s numer strony r numer ramki o przesunięcie s p adres fizyczny r o s o adres logiczny procesor pamięć Dariusz Wawrzyniak (IIPP) 17

tablica stron system operacyjny pułapka s numer strony r numer ramki o przesunięcie s np błąd strony s o adres logiczny procesor pamięć Dariusz Wawrzyniak (IIPP) 18

P i łącze komunikacyjne P k Dariusz Wawrzyniak (IIPP) 19

nadaw ca odbior ca aplikacja aplikacja serw er serw er komunikacyjnkacyjny sys te m. sys te komuni- opr og. opr og. m. sie ć Dariusz Wawrzyniak (IIPP) 20

komunikacja przejściowa (ang. transient communication) wiadomość jest przekazywana (utrzymywana w podsystemie komunikacyjnym) pod warunkiem, że działa nadawca i odbiorca tej wiadomości komunikacja nieustanna (ang. persistent communication) wiadomość jest przechowywana w celu doręczenia do odbiorcy nawet, gdy odbiorca nie działa w danej chwili, a nadawca zakończył działanie po wysłaniu tej wiadomości Dariusz Wawrzyniak (IIPP) 21

komunikacja synchroniczna nadawca kontynuuje działanie dopiero, gdy wiadomość znajdzie się w buforze odbiorczym lub zostanie doręczona do adresata komunikacja asynchroniczna nadawca kontynuuje działanie zaraz po przekazaniu wiadomości do podsystemu komunikacyjnego Dariusz Wawrzyniak (IIPP) 22

Dariusz Wawrzyniak (IIPP) 23

Dariusz Wawrzyniak (IIPP) 24

Dariusz Wawrzyniak (IIPP) 25

Dariusz Wawrzyniak (IIPP) 26

Dariusz Wawrzyniak (IIPP) 27

Dariusz Wawrzyniak (IIPP) 28

przeźroczystość dostępu ukrycie komunikacji sieciowej przed aplikacją przez odpowiednie opakowanie funkcji komunikacyjnych namiastką klienta oraz serwera. gwarancja wykonania ukrywanie błędów komunikacyjnych specyfikacja interfejsu sposób opisu sygnatur procedur zdalnych (nazwy, typy parametrów) obsługa sytuacji wyjątkowych Dariusz Wawrzyniak (IIPP) 29

zbiór procedur aplikacja klie ncka interfe js serw er namias tka klie nta namias tka serwera sie ć Dariusz Wawrzyniak (IIPP) 30

stan obie kt obie ktu aplikacja klie ncka interfe js serw er pr oxy szkielet sie ć Dariusz Wawrzyniak (IIPP) 31

Obiekt jest jednostką integrującą w sobie dane (stan obiektu) oraz odpowiednio zdefiniowane operacje (metody). Jedyna forma dostępu do danych polega na wywoływaniu metod wyspecyfikowanych w publicznym interfejsie obiektu. Obiekt może implementować wiele interfejsów Ten sam interfejs może być implementowany przez wiele obiektów. Dariusz Wawrzyniak (IIPP) 32

Kluczowe dla mechanizmu wywoływania metod zdalnych jest oddzielenie definicji interfejsu (specyfikacji) od jego implementacji w obiekcie. W językach definicji interfejsu (IDL) interfejs traktowany jest jak typ danych. W języku implementacji każdy obiekt implementujący dany interfejs jest instancją tego typu. Dariusz Wawrzyniak (IIPP) 33

interface Konto { float stan(); float wplac(in float value); float pobierz(in float value); }; interface Bank { Konto otworzkonto(in int numer); float zamknijkonto(in Konto k); }; Dariusz Wawrzyniak (IIPP) 34

obiekty zdalne (ang. remote objects) i rozproszone (ang. distributed objects) obiekty dostępne w czasie kompilacji (ang. compile- time objects) oraz w czasie wykonania (ang. runtime objects) wiązanie obiektu w aplikacji klienckiej obiekty trwałe (ang. persistent) i przejściowe (ang. transient) statyczne i dynamiczne wywoływanie ł metod przekazywanie parametrów Dariusz Wawrzyniak (IIPP) 35

Obiekt zdalny (ang. remote object) stan obiektu utrzymywany jest przez jeden serwer (obiekt istnieje na jednej maszynie, jest więc scentralizowany), ale jest dostępny dla klientów działających na innych maszynach. Obiekt rozproszony (ang. distributed object) stan obiektu utrzymywany i współtworzony jest przez serwery działające na różnych maszynach w taki jednak sposób, że klient postrzega obiekt jako jedną ą całość (przezroczystość położenie, być może również replikacji). Dariusz Wawrzyniak (IIPP) 36

Obiekt dostępny w czasie kompilacji (ang. compile- time object) obiekt jest instancją jakieś ś klasy zdefiniowanej w konkretnym języku programowania, w którym napisany jest również program korzystający z danego obiektu. interakcja pomiędzy klientem a obiektem jest zatem widziana już na etapie kompilacji programu źródłowego. Obiekt dostępny w czasie wykonania (ang. runtime object) interakcja pomiędzy klientem a serwerem może być dostrzeżona dopiero na etapie wykonania, gdyż program klienta i implementacja klasy obiektu powstają zupełnie niezależnie i mogą być tworzone zupełnie innych językach Dariusz Wawrzyniak (IIPP) 37

wiązanie obiektu (ang. binding) uzyskanie proxy do wykonania operacji na obiekcie na podstawie identyfikatora obiektu wiązanie niejawne (ang. implicit binding) operacja wiązania wykonywana jest niejawnie przy pierwszym odwołaniu wiązanie jawne (ang. explicit binding) operacja wiązania wykonywana jest jawnie przez klienta PROBLEM: jak zaimplementować identyfikator PROBLEM: jak zaimplementować identyfikator (referencję) obiektu? Dariusz Wawrzyniak (IIPP) 38

Obiekt trwały (ang. persistent object) z punktu widzenia klienta obiekt istnieje nawet wówczas, gdy jego stan nie jest w danej chwili utrzymywany przez żaden serwer (obiekt nie jest aktywny). W momencie uruchomienia serwera stan obiektu może zostać odtworzony i tym samym obiekt może zostać udostępniony (aktywacja obiektu) Obiekt przejściowy (ang. transient object) obiekt istnieje tylko tak długo, jak długo działa udostępniający go serwer. Dariusz Wawrzyniak (IIPP) 39

wywołanie statyczne użycie do wywołania definicji interfejsu wygenerowanej wcześniej na podstawie specyfikacji przez odpowiednie narzędzie wywołanie dynamiczne użycie odpowiedniej funkcji pośredniczącej w wywołaniu metody zdalnej, zgodnie z identyfikacją obiektu i metody, przekazaną jako parametr funkcji pośredniczącej Dariusz Wawrzyniak (IIPP) 40

Przekazywanie przez kopię po stronie serwera tworzona jest kopia przekazanego obiektu. Przekazywanie przez referencję przekazywany jest proxy do obiektu zdalnego (o ile obiekt jest dostępny zdalnie). Przekazywanie przez kopiowanie i odtwarzanie po stronie serwera tworzona jest kopia przekazanego obiektu, a ewentualne zmiany tej kopii po zakończeniu operacji odtwarzane są w stanie obiektu u klienta. Dariusz Wawrzyniak (IIPP) 41

klie nt serw er zmiany s tanu obie ktu (kopii) po s tr onie serw era mają char akter lokalny Dariusz Wawrzyniak (IIPP) 42

klie nt serw er zmiany s tanu obie ktu nas tępują po s tr onie klie nta jakow ynikw ykonania me tody zdalne j Dariusz Wawrzyniak (IIPP) 43

klie nt serw er zmiany s tanu obie ktu na serwerze odtw ar zane s ą u klie nta po zakończe niu zdalne j me tody Dariusz Wawrzyniak (IIPP) 44