Remote Queues Protocol

Podobne dokumenty
Opis protokołu RPC. Grzegorz Maj nr indeksu:

Specyfikacja protokołu zdalnych kolejek RQP Krzysztof Choromański 19 kwietnia, 2008

Przesyłania danych przez protokół TCP/IP

Remote Quotation Protocol - opis

Sieci komputerowe Warstwa transportowa

4 Net-Device Monitor. Net-Device Monitor

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

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

IPC: Kolejki komunikatów

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Protokoły sieciowe - TCP/IP

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

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

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

asix4 Podręcznik użytkownika SRTP - drajwer protokołu SRTP Podręcznik użytkownika

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

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

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

ARP Address Resolution Protocol (RFC 826)

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEJ SKRZYNKI PODAWCZEJ WARSZAWSKIEGO CENTRUM POMOCY RODZINIE

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

Klient-Serwer Komunikacja przy pomocy gniazd

Aplikacja Ramzes Ramzes Rejestrator

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Wywoływanie procedur zdalnych

Kierownik Biura Mapy Zasadniczej adres korespond: Poznan,ul. Gronowa 20 telefon

Przygotowanie komputera do pracy w trybie LAN-LAN

Zastosowania mikrokontrolerów w przemyśle

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Urządzenia sieciowe. Część 1: Repeater, Hub, Switch. mgr inż. Krzysztof Szałajko

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

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Rozdzial 6 - Problemy

Spis treści. 1 Moduł Modbus TCP 4

Programowanie obiektowe

Rozdzial 1 Wprowadzenie

SERWER AKTUALIZACJI UpServ

Replikacja kolejkowa (Q-replication) w IBM DB2

Wywoływanie procedur zdalnych

TRX API opis funkcji interfejsu

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Instrukcja użytkownika. Aplikacja dla Comarch Optima

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

Adresowanie grupowe. Bartłomiej Świercz. Katedra Mikroelektroniki i Technik Informatycznych. Łódź, 25 kwietnia 2006

Slowniczek. Slowniczek

Wywoływanie procedur zdalnych

Instrukcja użytkownika ARsoft-CFG WZ1 4.0

Bezpieczeństwo w M875

1. Abstrakcyjne typy danych

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

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Aplikacja Sieciowa wątki po stronie klienta

Sieci Komputerowe 2008/2009. Opis Protokołu

Sieci Komputerowe. Protokół ICMP - Internet Control Message Protocol Protokół ICMP version 6. dr Zbigniew Lipiński

Sieci Komputerowe Modele warstwowe sieci

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

Slownik Slownik Asynchroniczna Bramka (ang. Gateway) IP (Internet Protocol) PPP (Point-to-Point Protocol)

Rozdzial 5 Ustawienia dla uzytkownika IAS, RAS

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Estomed2. 1. Wstęp. 2. Instalacja Systemu Estomed Jak zainstalować Estomed2. Hakon Software sp. z o. o. Podręcznik instalacji

Transport. część 1: niezawodny transport. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

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

Instrukcja użytkownika. Aplikacja dla WF-Mag

Protokół wymiany sentencji, wersja 1

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Konfiguracja programu MS Outlook 2007 dla poczty w hostingu Sprint Data Center

Adresy w sieciach komputerowych

SIECI KOMPUTEROWE Adresowanie IP

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Ustawienia zaawansowane ADVANCED SETTINGS

Warstwa sieciowa. Adresowanie IP. Zadania. Warstwa sieciowa ćwiczenie 5

Proces obsługi deklaracji Intrastat w systemie Celina WebCel

TCP/IP formaty ramek, datagramów, pakietów...

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Kurs walut. Specyfikacja projektu. Marek Zając

Protokoły wspomagające. Mikołaj Leszczuk

Specyfikacja HTTP API. Wersja 1.6

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

Laboratorium nr 4: Arytmetyka liczb zespolonych

Protokół IPsec. Patryk Czarnik

Cele. Założenia. Format komunikatów

5. Kserokopia aktualnego wpisu do rejestru instytucji szkoleniowych prowadzonego przez

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

Integracja Allegro Menadż er Sprżedaż y DHL ecas

LABORATORIUM TM 5. Piotr Błędowski Maciej Pawlak. 1. Cel laboratorium

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

Transkrypt:

Pawel Gora Remote Queues Protocol Opis protokolu Pawel Gora 4/17/2008

Zawartosc dokumentu Streszczenie... 3 Opis celow protokolu... 3 Opis zalozen protokolu... 3 Opis formatu komunikatow... 3 Zalozenia wstepne... 3 Ogolny format komunikatow... 3 Komunikat REQ_MSG... 4 Komunikat OK_REQ_MSG... 4 Komunikat SEND_MSG... 5 Komunikaty CONF_MSG... 5 Komunikat OK_CONF_MSG... 6 Komunikat NOT_CONF_MSG... 6 Komunikat QUEUE_CONF_MSG... 6 Komunikat EXIST_CONF_MSG... 6 Komunikat ERROR_CONF_MSG... 6 Komunikat OTHER_CONF_MSG... 6 Opis mozliwych stanow... 6 Mozliwe stany agenta wysylajacego... 6 Mozliwe stany agenta odbierajacego... 7 Diagamy stanow... 8 Inicjowanie protokolu... 9 Mozliwe rozszerzenia i wskazowki implementacyjne... 9 Uzywane numery... 9 Komunikaty nadawcy... 9 Komunikaty odbiorcy... 9 Stany agenta nadajacego... 9 Stany agenta odbierajacego... 10

Streszczenie Niniejszy dokument opisuje specyfikacje protokolu zdalnych kolejek Remote Queues Protocol (zwanego dalej protokolem RQP), jego cele, zalozenia, strukture i sposob dzialania. Opis celow protokolu Protokol RQP ma za zadanie rozszerzyc mozliwosc korzystania ze standardowych uniksowych kolejek komunikatow. Rozszerzenie to polega na umozliwieniu uzytkownikom zapisywania komunikatow do kolejek znajdujacych sie na zdalnych maszynach. Protokol ma stworzyc warunki, aby zdalne przesylanie wiadomosci bylo mozliwe: zdalny nadawcy powinien miec mozliwosc zlokalizowania w sieci interesujacej go kolejki nadawca oraz odbiorca komunikatu musza miec mozliwosc nawiazania polaczenia protokol powinien zagwarantowac obsluge sytuacji wyjatkowych oraz niezawodna transmisje danych Opis zalozen protokolu Protokol RQP dziala w warstwie aplikacji i jest w pelni zdecentralizowany, obowiazuje architektura P2P (ang. peer-to-peer). Bedzie on korzystal z kanalu transmisyjnego realizowanego za pomoca protokolu TCP/IP oraz protokolu UDP. Protokol TCP/IP zapewni niezawodnosc w dostarczania pakietow. Protokol UDP daje mozliwosc rozglaszania komunikatu pomiedzy wszystkie maszyny i bedzie wykorzystywany jedynie do zgloszenia zapytania o dostep do kolejki komunikatow. Kanal transmisyjny sluzy do przesylania wiadomosci przez agenta nadajacego do zdalnej kolejki komunikatow, do ktorej dostep ma agent odbierajacy. Opis formatu komunikatow Zalozenia wstepne Przyjeto nastepujace zalozenia odnosnie przesylanych danych: sieciowy porzadek oktetow w liczbach brak interpretacji znakow (przesyla sie liczby bezznakowe) nie uzywa sie liczb zmiennoprzecinkowych brak uzupelnienia formatu Ogolny format komunikatow Ogolny format komunikatow ma nastepujaca postac:

Nazwa pola Opis pola Jednostka Ilosc Rozmiar pola (w jednostek bajtach) type Zawiera identyfikator przesylanego komunikatu ip Zawiera adres IP nadawcy port Zawiera port nadawcy komunikatu, na ktory trzeba odpowiedziec key Identyfikator uniksowej kolejki komunikatow inne dane Pole opcjonalne, jego zawartosc i rozmiar zaleza od typu komunikatu Razem bajtow: 16 + x. Octet x x W dalszej czesci dla kazdego konkretnego komunikatu pojawi sie specyfikacja jakie pola sa zawarte w miejscu oznaczonym jako inne dane. Powyzszy format specyfikuje jakie dane powinny zostac dostarczone drugiej stronie, aby cala komunikacja przebiegala poprawnie, ale dopuszcza sie, ze mozna zrezygnowac z niektorych pol komunikatu (np pola ip), jezeli ich zawartosc da sie uzyskac z innych zrodel w trakcie implementacji. Komunikat REQ_MSG Jest to komunikat, ktory jest wysylany do zdalnych maszyn odczytanych przez nadawce z pliku konfiguracyjnego. Celem tego komunikaty jest zgloszenie zapytania o konkretna uniksowa kolejke komunikatow. Komunikat bedzie przesylany przy pomocy protokolu UDP. Pola komunikatu REQ_MSG Nazwa pola Opis pola Jednostka Ilosc jednostek Rozmiar pola (w bajtach) type Zawiera identyfikator przesylanego komunikatu ip Zawiera adres IP nadawcy port Zawiera port nadawcy komunikatu, na ktory trzeba odpowiedziec key Klucz kolejki, do ktorej adresowany jest komunikat Razem bajtow: 16. Komunikat OK_REQ_MSG Jest to komunikat, ktorym zglaszane jest posiadanie potrzebnej kolejki. Pola komunikatu OK_REQ_MSG Nazwa pola Opis pola Jednostka Ilosc jednostek Rozmiar pola (w

bajtach) type Zawiera identyfikator przesylanego komunikatu ip Zawiera adres IP nadawcy port Zawiera port nadawcy komunikatu, na ktory trzeba odpowiedziec key Klucz kolejki, ktorej posiadanie zglasza nadawca Razem bajtow: 16. Komunikat SEND_MSG Komunikat sluzy do przesylania wiadomosci, ktora ma zostac umieszczona w zdalnej kolejce. Pola komunikatu SEND_MSG Nazwa pola Opis pola Jednostka Ilosc jednostek Rozmiar pola (w bajtach) type Zawiera identyfikator przesylanego komunikatu ip Zawiera adres IP nadawcy port Zawiera port nadawcy komunikatu, na ktory trzeba odpowiedziec key Klucz kolejki, do ktorej adresowana jest wiadomosc msg_id Identyfikator wiadomosci msg_len Dlugosc wiadomosci msg Tresc wiadomosci Octet msg_len msg_len Razem bajtow: 24 + msg_len Pole msg_id zawiera identyfikator komunikatu. Wlasciwym identyfikatorem komunikatu jest liczba msg_id / 2. Najmniej znaczacy bit pola msg_id oznacza typ komunikatu (1 = pewny, 0 = niepewny). Komunikaty CONF_MSG Sa to komunikaty do potwierdzania wstawienia/odrzucenia wiadomosci pewnej. Ogolny format komunikatow z tej grupy jest nastepujacy: Nazwa pola Opis pola Jednostka Ilosc jednostek Rozmiar pola (w bajtach) type Zawiera identyfikator przesylanego komunikatu ip Zawiera adres IP nadawcy key Klucz kolejki, do ktorej adresowana byla wiadomosc msg_id Identyfikator wiadomosci, ktorej dotyczy odpowiedz

Razem bajtow: 16. Komunikaty z tej grupy beda roznily sie zawartoscia pola type. Komunikat OK_CONF_MSG Komunikat informuje, ze wiadomosc zostala pomyslnie wstawiona do kolejki docelowej. Komunikat NOT_CONF_MSG Komunikat informuje, ze wiadomosc nie zostala wstawiona do kolejki docelowej oraz brak jest kolejki DEAD.LETTER.Q po stronie odbiorcy. Oznacza to, ze agent nadajacy wiadomosc powinien zakonczyc dzialanie. Komunikat QUEUE_CONF_MSG Komunikat informuje, ze nie istnieje kolejka, do ktorej adresowana byla wiadomosc. Wiadomosc zostala natomiast wstawiona do kolejki DEAD.LETTER.Q. Komunikat EXIST_CONF_MSG Komunikat informuje, ze wiadomosc zostala wstawiona przez agenta odbierajacego do kolejki DEAD.LETTER.Q, poniewaz wiadomosc o tym identyfikatorze juz istnieje w kolejce komunikatow. Komunikat ERROR_CONF_MSG Komunikat informuje, ze wiadomosc zostala wstawiona przez agenta odbierajacego do kolejki DEAD.LETTER.Q, poniewaz wiadomosc ta byla bledna. Komunikat OTHER_CONF_MSG Komunikat informuje, ze wiadomosc zostala wstawiona przez agenta odbierajacego do kolejki DEAD.LETTER.Q, a powod nie jest wyspecyfikowany. Opis mozliwych stanow Mozliwe stany agenta wysylajacego Agent wysylajacy moze znajdowac sie nastepujacych stanach: 1. STOPPED proces nie jest uruchomiony 2. NO_MESSAGE w tym stanie agent nie ma zadnej wiadomosci do wyslania i musi odczytac wiadomosc z kolejki transmisyjnej (lub czekac az taka wiadomosc sie w niej pojawi). Po odczytaniu wiadomosci z kolejki transmisyjnej agent sprawdza, czy wiadomosc jest poprawna (np. ma poprawny naglowek). W przypadku stwierdzenia bledu wiadomosc zostaje wstawiona do kolejki DEAD.LETTER.Q, a agent pozostaje w stanie NO_MESSAGE. Jezeli wiadomosc jest poprawna, to agent przechodzi do stanu SEARCH_QUEUE. 3. SEARCH_QUEUE w tym stanie agent wie jaka wiadomosc musi wyslac i zna jej docelowa kolejke. Rozglasza komunikat REQ_MSG do maszyn odczytanych z pliku konfiguracyjnego i przechodzi do stanu WAIT_FOR_REPLY.

4. WAIT_FOR_REPLY po wyslaniu komunikatu REQ_MSG agent czeka na odpowiedz przez okreslony czas (timeout). Jezeli otrzyma odpowiedz (komunikat OK_REQ_MSG), to przechodzi do stanu SEND_MESSAGE. Jezeli odebrany zostanie komunikat typu CONF_MSG, to agent wykonuje stosowne czynnosci: usuwa odpowiednia wiadomosc z kolejki transmisyjnej, jezeli zostala ona umieszczona w kolejce komunikatow po stronie odbiorcy lub w kolejce DEAD.LETTER.Q i przechodzi do stanu WAIT_FOR_REPLY przechodzi do stanu STOPPED, jezeli wiadomosc nie zostala umieszczona w kolejce komunikatow ani w kolejce DEAD.LETTER.Q po stronie odbiorcy Jezeli uplynie okreslony czas czekania (timeout), to agent przechodzi do stanu NO_MESSAGE. 5. SEND_MESSAGE w tym stanie agent posiada juz zlokalizowanego agenta odbierajacego i rozpoczyna wysylanie mu wiadomosc. Jezeli wiadomosc byla oznaczona jako pewna, to po jej wyslaniu agent przechodzi do stanu WAIT_FOR_CONF. W przeciwnym razie przechodzi do stanu NO_MESSAGE. 6. WAIT_FOR_CONF w tym stanie agent czeka przez okreslony czas (timeout) na potwierdzenie od odbiorcy czynnosci wykonanych na wiadomosci pewnej (komunikat typu CONF_MSG). Jezeli wiadomosc zostala wstawiona do kolejki komunikatow (komunikat OK_CONF_MSG), to agent usuwa ja z kolejki transmisyjnej i przechodzi do stanu NO_MESSAGE. Jezeli zostala wstawiona do kolejki DEAD.LETTER.Q po stronie odbiorcy, to: Agent usuwa wiadomosc z kolejki transmisyjnej, jezeli byla ona juz wczesniej wstawiona do kolejki komunikatow (komunikat EXIST_CONF_MSG) i przechodzi do stanu NO_MESSAGE Agent przechodzi do stanu SEARCH_QUEUE, jezeli dostal informacje, ze kolejka nie istnieje (komunikat QUEUE_CONF_MSG). Agent ponownie sprawdza poprawnosc wiadomosci, jezeli otrzyma komunikat ERROR_CONF_MSG lub OTHER_CONF_MSG. Jezeli wiadomosc jest niepoprawna, to zostaje wstawiona przez agenta do kolejki DEAD.LETTER.Q i agent przechodzi do stanu NO_MESSAGE. W przeciwnym razie agent od razu przechodzi do stanu NO_MESSAGE i wiadomosc pozostaje w kolejce (opcjonalnie moze rowniez przejsc do stanu SEND_MESSAGE lub SEARCH_QUEUE). Jezeli odebrany zostanie komunikat NOT_CONF_MSG, to proces agenta konczy sie (stan STOPPED). Jezeli odebrany zostanie komunikat OK_REQ_MSG, to jest on ignorowany i agent pozostaje w stanie WAIT_FOR_RESPOND. Jezeli przekroczony zostanie timeout, to agent przechodzi do stanu NO_MESSAGE. Mozliwe stany agenta odbierajacego Agent odbierajacy moze znajdowac sie w nastepujacych stanach:

1. STOPPED w tym stanie proces agenta nie jest uruchomiony 2. WAIT_FOR_MSG w tym stanie agent czeka na zapytania od innych agentow. Jezeli odbierze komunikat REQ_MSG, to sprawdza czy jest w posiadaniu odpowiedniej kolejki komunikatow. Jezeli posiada kolejke, to przesyla do agenta nadajacego komunikat zwrotny OK_REQ_MSG. Po odebraniu komunikatu SEND_MSG agent spradza, czy ma dostep do odpowiedniej kolejki komunikatow, czy odebrana wiadomosc jest poprawna i czy istnieje juz w kolejce komunikatow. Nastepnie wstawia wiadomosc do odpowiedniej kolejki (komunikatow lub DEAD.LETTER.Q), o ile jest to mozliwe. Po wykonaniu tych czynnosci przesyla do nadawcy odpowiedni komunikat typu CONF_MSG. Jezeli proces agenta zostanie zakonczony, to przyjmuje sie, ze agent przechodzi do stanu STOPPED. Diagamy stanow Diagram stanow agenta nadajacego Diagram stanow agenta odbierajacego

Inicjowanie protokolu Dla ustalenia uwagi przyjmuje sie, ze wszyscy agenci odbierajacy beda czekali na zapytania na domyslnym porcie o numerze 7777. Wlasciwe wiadomosci moga byc juz przesylane na inny port (podany przez agenta). Kazdy z agentow nadajacych bedzie posiadal plik konfiguracyjny z wykazem maszyn, do ktorych moze kierowac zapytanie o dostep do kolejki komunikatow. Mozliwe rozszerzenia i wskazowki implementacyjne Dopuszcza sie, aby agenci nadajacy posiadali w cache u wykaz kolejek komunikatow, ktore moga znajdowac sie na poszczegolnych maszynach. Poniewaz kolejki moga byc dynamicznie dodawane i usuwane, wiec dane te nie musza byc precyzyjny. Agent nadajacy moze jednak tuz po rozpoczeciu pracy odpytac agentow odbierajacych o posiadane przez nich kolejki, a te informacje moga zostac wykorzystane do proby odpytania niektorych agentow o dostep do kolejki przed rozgloszeniem zapytania o kolejke. Agent odbierajacy moze zostac zmodyfikowany tak, aby dla kazdej przesylanej wiadomosci tworzyl osobny watek, ktory bedzie obslugiwal transmisje, dzieki czemu bedzie mozliwe jednoczesne odbieranie wielu wiadomosci przez agenta. Uzywane numery Komunikaty nadawcy Komunikat Numer REQ_MSG 1000 SEND_MSG 1001 Komunikaty odbiorcy Komunikat Numer OK_REQ_MSG 2000 OK_CONF_MSG 2001 NOT_CONF_MSG 2002 WAIT_CONF_MSG 2003 QUEUE_CONF_MSG 2004 OTHER_CONF_MSG 2005 EXIST_CONF_MSG 2006 Stany agenta nadajacego Stan Numer STOPPED 100 NO_MESSAGE 101 SEARCH_QUEUE 102 WAIT_FOR_REPLY 103

SEND_MESSAGE 104 WAIT_FOR_CONF 105 Stany agenta odbierajacego Stan Numer STOPPED 200 WAIT_FOR_MSG 201