Systemy rozproszone W. Bartkiewicz Wykład 7. Kolejki komunikatów

Slides:



Advertisements
Podobne prezentacje
Sieci komputerowe.
Advertisements

Usługi sieciowe Wykład 5 DHCP- debian
Protokoły sieciowe.
Sieci komputerowe Protokół TCP/IP.
Mechanizmy pracy równoległej
Sieci VLAN.
PROGRAMOWANIE STRUKTURALNE
Rozszerzalność systemów rozproszonych
Wykład 2: Metody komutacji w sieciach teleinformatycznych
Sieci (1) Topologia sieci.
Urządzenia sieciowe Topologie sieci Standardy sieci Koniec.
Systemy rozproszone Komunikacja (II)
Systemy rozproszone Komunikacja (I)
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Usługi sieciowe Wykład 5 DHCP- debian Jarosław Kurek WZIM SGGW 1.
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Komunikacja Wykład 2.
Systemy operacyjne.
Routing i protokoły routingu
PING: Program używany do diagnozowania połączeń sieciowych.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Artur Szmigiel Paweł Zarębski Kl. III i
Rozproszone bazy danych
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Opracował: mgr Mariusz Bruździński
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
USŁUGA FTP 1. Definicja FTP. FTP (File Transfer Protocol, ang. protokół transmisji plików) jest protokołem typu klient-serwer, który umożliwia przesyłanie.
KONFIGURACJA KOMPUTERA
Przełączanie OSI warstwa 2
Protokół Komunikacyjny
RODZAJE TRANSMISJI PRZESYŁANIE INFORMACJI W MODELU WARSTWOWYM
Jerzy Jelinek Paweł Korpowski
BUDOWA I DZIAŁANIE SIECI KOMPUTEROWYCH
Realizacja prostej sieci komputerowej
Wiadomości wstępne o sieciach komputerowych
SEMINARIUM DIAGNOSTYKA SYSTEMÓW KOMPUTEROWYCH TEMAT Pomiary przepustowości ruterów programowych na bazie systemu Windows 2003/2008 AUTORZY Robert Święcki.
Sieci komputerowe.
Model OSI Model OSI (Open Systems Interconnection Reference Model) został wprowadzony w celu ujednolicenia regół komunikacji sieciowej. Obejmuje on cały.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Wybrane zagadnienia relacyjnych baz danych
Sieci komputerowe Anna Wysocka.
System synchronizacji oraz współdzielenia plików pomiędzy wieloma użytkownikami oraz urządzeniami poprzez sieć Internet Rafał Olszewski Promotor: Mgr inż.
SYSTEMY OPERACYJNE Adresowanie IP cz3.
S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji.
Sieci komputerowe.

Systemy operacyjne i sieci komputerowe
Informatyka Poczta elektroniczna.
Systemy operacyjne i sieci komputerowe
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Podstawy programowania
Systemy operacyjne i sieci komputerowe
Sieci komputerowe E-learning
Jednym z podstawowych celów tworzenia sieci komputerowych jest współdzielenie zasobów, takich jak pliki lub drukarki. Każdy z takich zasobów musi być udostępniony,
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Model OSI.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Podstawy programowania
Systemy operacyjne i sieci komputerowe DZIAŁ : Systemy operacyjne i sieci komputerowe Informatyka Zakres rozszerzony Zebrał i opracował : Maciej Belcarz.
Model warstwowy ISO-OSI
Systemy operacyjne i sieci komputerowe DZIAŁ : Systemy operacyjne i sieci komputerowe Informatyka Zakres rozszerzony Zebrał i opracował : Maciej Belcarz.
DZIAŁ : Systemy operacyjne i sieci komputerowe
Protokoły używane w sieciach LAN Funkcje sieciowego systemu komputerowego Wykład 5.
PROGRAMY DO KONTROLI RODZICIELSKIEJ
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Routing statyczny Sieci IP: / /24
Zapis prezentacji:

Systemy rozproszone W. Bartkiewicz Wykład 7. Kolejki komunikatów Uniwersytet Łódzki Katedra Informatyki W. Bartkiewicz Systemy rozproszone Wykład 7. Kolejki komunikatów

Przesyłanie komunikatów Trwała komunikacja asynchroniczna Katedra Informatyki Obecnie skupimy się na środowiskach warstwy pośredniej wspomagających trwałą komunikację asynchroniczną opartą na komunikatach. W komunikacji asynchronicznej nadawca bezpośrednio po przedłożeniu komunikatu do wysłania, kontynuuje pracę. Oznacza to, że komunikat zostaje zapamiętany w lokalnym buforze komputera nadawczego, albo w pierwszym serwerze komunikacyjnym. W komunikacji synchronicznej nadawca jest blokowany do czasu przechowania komunikatu w lokalnym buforze komputera odbiorczego lub do chwili rzeczywistego doręczenia do odbiorcy. Najsilniejsza postać komunikacji synchronicznej polega na blokowaniu nadawcy do czasu przetworzenia komunikatu przez odbiorcę.

Przesyłanie komunikatów Trwała komunikacja asynchroniczna Katedra Informatyki Przypomnijmy, że w komunikacji przejściowej (transient) komunikat przechowywany jest w systemie komunikacji tylko na czas działania aplikacji nadawczej i odbiorczej. Ściślej mówiąc, jeśli serwer komunikacyjny nie może dostarczyć komunikatu serwera do następnego serwera lub do odbiorcy, to komunikat jest odrzucany. Wszystkie usługi z poziomu transportu z reguły reprezentują tylko komunikację przejściową. W komunikacji trwałej (persistent) z kolei, komunikat przedłożony do przesłania odbiorcy jest pamiętany przez system tak długo, jak trzeba aby dostarczyć go odbiorcy. Aplikacja nadawcza nie musi kontynuować działania po przedłożeniu komunikatu. Aplikacja odbiorcza również nie musi działać w czasie przedłożenia komunikatu.

Systemy kolejkowania komunikatów Trwała komunikacja asynchroniczna Katedra Informatyki Środowiska warstwy pośredniej, dostarczające rozwiniętych środków trwałej komunikacji asynchronicznej nazywamy systemami kolejkowania komunikatów (message queuing systems) lub komunikatową warstwą pośrednią (Message Oriented Middleware – MOM). Istota tych systemów polega na zastosowaniu zasobów pamięciowych do przechowywania komunikatów w fazie pośredniej, bez wymagania aktywności nadawcy i odbiorcy podczas transmisji. Aplikacje wstawiają komunikaty do specjalnych kolejek, przy czym w zasadzie kolejki skojarzone są z aplikacjami odbiorczymi. Aplikacje nadawcze zazwyczaj wysyłają więc komunikaty do prywatnej kolejki aplikacji odbiorczej, możliwe jest jednak współdzielenie jednej kolejki przez wiele aplikacji. Komunikat musi być odpowiednio zaadresowany. W praktyce adresowanie wykonuje się za pomocą ogólnosystemowej niepowtarzalnej nazwy kolejki docelowej.

Systemy kolejkowania komunikatów Trwała komunikacja asynchroniczna Katedra Informatyki Nadawca otrzymuje na ogół tylko gwarancję, że komunikat zostanie w końcu wstawiony do kolejki odbiorcy. Nie daje się żadnych gwarancji co do chwili, kiedy to nastąpi, a nawet nie zapewnia się, że komunikat zostanie rzeczywiście przeczytany.To w całości zależy od zachowania odbiorcy. Taka semantyka zachowania umożliwia komunikację luźno powiązaną. Nadawca i odbiorca mogą działać zupełnie niezależnie. Komunikat po zdeponowaniu w kolejce pozostaje w niej do chwili usunięcia bez względu na to, czy odbiorca jest aktywny. Komunikaty mogą w zasadzie zawierać dowolne dane. Ich rozmiar może być czasami ograniczony. System obsługi kolejki może jednak dbać o dzielenie wielkich komunikatów na części i ich powtórne składanie w sposób zupełnie przezroczysty dla aplikacji.

Systemy kolejkowania komunikatów Trwała komunikacja asynchroniczna Katedra Informatyki Podstawowy interfejs kolejki w systemie kolejkowania komunikatów obejmuje zazwyczaj cztery operacje: Put – dołącz komunikat do określonej kolejki. Get – pobierz komunikat, zablokuj się jeśli kolejka jest pusta. Pull – sprawdź czy w kolejce są komunikaty, jeśli tak to pobierz jeden z nich. Jeśli kolejka jest pusta, się nie blokuj się. Notify – zainstaluj procedurę obsługi, która będzie wywoływana gdy w kolejce pojawi się komunikat. Systemy kolejek komunikatów umożliwiają zazwyczaj pobieranie komunikatów według różnych kryteriów: FIFO, z zastosowaniem priorytetów, dopasowywania wzorca, itp. Większość systemów kolejkowania umożliwia również procesowi zainstalowanie procedury obsługi na zasadzie funkcji przywołania (callback function). Jest ona uaktywniana zawsze przy dołączaniu nowego komunikatu. Przywołania można też stosować do automatycznego uruchamiania procesu, który pobierze komunikat.

Systemy kolejkowania komunikatów Ogólna architektura Katedra Informatyki Każdy nadawca wstawia komunikat do kolejki lokalnej, na swojej maszynie. Kolejkę taka nazywamy źródłową (source queue). Komunikat zawiera jednak specyfikację kolejki docelowej (destination queue), do której powinien zostać przeniesiony. Odbiorca działa na tej samej maszynie na której zainstalowana jest kolejka docelowa. Odpowiednie przekazanie komunikatu między kolejkami realizowane jest przez system kolejkowania komunikatów. Zbiór kolejek jest więc rozproszony w systemie na wielu maszynach. Aby system kolejkowania mógł przekazywać komunikaty, musi utrzymywać odwzorowanie kolejek na miejsca w sieci. W praktyce oznacza to, że system kolejkowania komunikatów powinien utrzymywać (być może rozproszoną) bazę danych nazw kolejek z przypisanymi im adresami w sieci.

Systemy kolejkowania komunikatów Ogólna architektura Katedra Informatyki Kolejkami administrują zarządcy kolejek (queue managers). Na ogół zarządca kolejki ma charakter lokalny, tzn. współpracuje z aplikacją, która bezpośrednio wysyła lub odbiera komunikat. Istnieją też specjalni zarządcy kolejek, którzy działają jako rutery, czyli przekaźniki (relays). Ich zadaniem jest kierowanie nadchodzących komunikatów do innych zarządców kolejek. W ten sposób system kolejkowania komunikatów może stopniowo rozrastać się w kompletną sieć nakładkową (overlay network) na poziomie aplikacji powyżej istniejącej sieci komputerowej. Rozwiązania oparte na przekaźnikach stanowią lepiej skalowalną alternatywę dla statycznych topologii rozsyłania komunikatów, opartych na utrzymywaniu przez każdego zarządcę kolejki kopii odwzorowania kolejka-miejsce. Dotyczy to zwłaszcza (dosyć powszechnej) sytuacji, gdy w systemie kolejkowania nie ma globalnych usług nazewniczych.

Systemy kolejkowania komunikatów Wykorzystanie przekaźników Katedra Informatyki Nadawca A Aplikacja Aplikacja Kolejka odbiorcza Kolejka nadawcza R2 R1 Aplikacja Konfigurację sieci znają rutery. Nadawca wie tylko gdzie jest najbliższy ruter. Przy dodawaniu lub usuwaniu kolejek wystarczy zaktualizować tylko rutery Aplikacja Odbiorca B

Systemy kolejkowania komunikatów Brokerzy komunikatów Katedra Informatyki Przekaźniki mogą wykonywać również pomocnicze przetwarzanie komunikatów. Komunikaty mogą na przykład wymagać rejestrowania ze względu na bezpieczeństwo lub tolerowanie awarii. Najważniejszym przykładem tego typu rozwiązań są tzw. brokerzy komunikatów (message brokers). Brokerzy komunikatów są to specjalne węzły sieci kolejkującej, wykonujące konwersje komunikatów. Broker pełni funkcję bramy (gateway) na poziomie aplikacji, której podstawowym zadaniem jest przekształcanie nadchodzących komunikatów na format zrozumiały przez aplikację docelową. Jeśli dla przykładu komunikat zawiera tabelę bazy danych, broker komunikatów może dokonywać modyfikacji fizycznej reprezentacji pól i rekordów (np. poprzez zmianę znaku delimitera rekordu, zamianę z rekordów o stałej długości na reprezentacje o zmiennej długości, itp.) tak by dostosować ją z postaci generowanej przez aplikację źródłową do formy oczekiwanej przez aplikację docelową.

Systemy kolejkowania komunikatów Brokerzy komunikatów Katedra Informatyki Brokerzy komunikatów stanowią więc ważne narzędzie, ułatwiające integrację heterogenicznych środowisk aplikacyjnych w jeden, spójny rozproszony system informacyjny. Centralną częścią brokera komunikatów jest baza danych z regułami określającymi sposób konwersji komunikatów. Większość wytwarzanych brokerów komunikatów zaopatrzonych jest w wyrafinowane narzędzia wprowadzania reguł konwersji. Reguły mogą być formułowane w specjalnych językach konwersji, ale wielu obecnie stosowanych brokerów komunikatów umożliwia ich tworzenie również z wykorzystaniem zwykłych języków programowania. Reguły konwersji zazwyczaj muszą być tworzone ręcznie. Zbudowanie brokera komunikatów jest zatem na ogół zadaniem żmudnym.

Systemy kolejkowania komunikatów IBM MQSeries Katedra Informatyki W architekturze MQSeries nadzór nad wszystkimi kolejkami sprawują zarządcy kolejek. Odpowiadają oni za usuwanie komunikatów ze swojej kolejki nadawczej i przekazywanie ich do innych zarządców komunikatów. Zarządca kolejki odpowiada też za obsługę nadchodzących komunikatów, które pobiera z bazowej sieci, zapamiętując każdy z nich we właściwej kolejce wejściowej. Zarządcy komunikatów połączeni są parami poprzez kanały komunikatów (message channels), reprezentujące abstrakcję poziomu transportu. Kanał komunikatów jest jednokierunkowym, niezawodnym połączeniem między nadawczym a odbiorczym zarządcą kolejki, którym przesyła się ustawione w kolejce komunikaty. Na przykład kanał komunikatów oparty na sieci Internet zrealizowany jest jako połączenie TCP.

Systemy kolejkowania komunikatów IBM MQSeries Katedra Informatyki Każdy z dwu końców kanału zarządzany jest przez agenta kanału komunikatów (message channel agent – MCA). Agent nadawczy sprawdza kolejki nadawcze, opakowuje komunikat w pakiet poziomu transportu i wysyła go do skojarzonego z nim odbiorczego agenta MCA. Agent odbiorczy nasłuchuje nadchodzących pakietów, rozpakowuje je i wstawia komunikaty do odpowiedniej kolejki. Zarządcy kolejek mogą być łączeni w jeden proces wraz z aplikacją, dla której zrządzają kolejkami. W takim przypadku aplikacje operują bezpośrednio na kolejkach przez standardowy interfejs. Jeśli zarządca kolejki i aplikacja działają na odrębnych maszynach, aplikacja korzysta z również tego samego standardowego interfejsu, ale realizowanego przez zarządcę kolejki w formie tradycyjnych, synchronicznych wywołań RPC.

Systemy kolejkowania komunikatów IBM MQSeries Katedra Informatyki Kolejka nadawcza Kolejka odbiorcza klienta Tablica tras Klient nadawczy Klient odbiorczy Aplikacja Interfejs MQ Namiastka MCA Zarządca kolejki Namiastka serwera Aplikacja Interfejs MQ Namiastka Zarządca kolejki Namiastka serwera MCA MCA Intersieć Sieć lokalna Sieć lokalna RPC (synchroniczne) Do innych zarządców kolejek Przekazywanie komunikatów (asynchroniczne)