Opis protokołu RPC. Grzegorz Maj nr indeksu:

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

Remote Quotation Protocol - opis

IPC: Kolejki komunikatów

Remote Queues Protocol

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

Mechanizmy z grupy IPC

Przesyłania danych przez protokół TCP/IP

Aukcja trwa od momentu, gdy informacje o przedmiocie są dostępne dla klientów, a kończy się wraz z wysłaniem opisanego dalej komunikatu FINISH_MSG.

Klient-Serwer Komunikacja przy pomocy gniazd

Poczta P2P Opis protokołu. Marcin Waniek. 27 kwietnia 2010

Sieci komputerowe Warstwa transportowa

ARP Address Resolution Protocol (RFC 826)

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

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

TRX API opis funkcji interfejsu

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Protokół wymiany sentencji, wersja 1

Specyfikacja HTTP API. Wersja 1.6

Specyfikacja techniczna. mprofi Interfejs API

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

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

Gniazda UDP. Bartłomiej Świercz. Łódź, 3 kwietnia Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda UDP

Protokoły wspomagające. Mikołaj Leszczuk

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

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

Protokoły sieciowe - TCP/IP

Dokumentacja techniczna

Wirtualna centralka telefoniczna P2P

76.Struktura oprogramowania rozproszonego.

Dokumentacja 2SMS

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

Zadanie 2: transakcyjny protokół SKJ (2015)

1 Moduł Diagnostyki Sieci

Sieci komputerowe - administracja

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

Spis treści. 1 Moduł Modbus TCP 4

1 Moduł Konfigurowanie Modułu

Atrybuty SMS. Nazwa Twojej firmy lub produktu w SMS-ie podniesie prestiż Twojej wiadomości

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Wprowadzenie. Dariusz Wawrzyniak 1

Aplikacja Sieciowa wątki po stronie klienta

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Wprowadzenie do projektu QualitySpy

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Opis protokołu do obsługi aukcji

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

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Uniwersalny Konwerter Protokołów

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

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

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

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

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

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

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

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

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

DOKUMENTACJA TECHNICZNA SMS API MT

Laboratorium 6.7.1: Ping i Traceroute

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Instytut Teleinformatyki

Wywoływanie procedur zdalnych

Middleware wprowadzenie października 2010

Komunikacja pomiędzy sterownikami PLC za pomocą łącza GSM GPRS

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

FAQ: /PL Data: 9/04/2013 WinCC v7 Wymiana danych ze sterownikiem serii S poprzez protokół Modbus TCP

Problemy z bezpieczeństwem w sieci lokalnej

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Kolejki FIFO (łącza nazwane)

Wywoływanie procedur zdalnych

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

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

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Wywoływanie procedur zdalnych

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

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

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki za pomocą otrzymanych danych.

Wykład VI. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski

Podręcznik instalacji i konfiguracji aplikacji 7 Office Ship Control dla Microsoft Office 2007 i Siódemka S.A. Warszawa, dnia r.

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Aplikacja Roger Mobile Key

Protokół zarządzania siecią SNMP

Sieci komputerowe - Protokoły warstwy transportowej

Komponenty sterowane komunikatami

Laboratorium 6.7.2: Śledzenie pakietów ICMP

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

Dokumentacja REST API v 3.0. Kraków, 7 marca FreshMail, ul. Fabryczna 20a, Kraków tel , freshmail.

Aplikacje RMI

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Programownie współbieżne i rozproszone Jędrzej Ułasiewicz 1. Komunikacja. Model procesów komunikujących się poprzez pamięć dzieloną

Transkrypt:

Opis protokołu RPC Grzegorz Maj nr indeksu: 236095

1 Streszczenie Niniejszy dokument opisuje specyfikację protokołu RQP (Remote Queues Protocol). W jego skład wchodzą: opis celów protokołu; opis założeń protokołu; opis formatu komunikatów; opis wymienianych komunikatów; opis stanów. 2 Cele 2.1 Protokół RQP służy do przesyłania informacji między kolejkami na zdalnych maszynach. Rozszerza on możliwość korzystania ze zwykłych uniksowych kolejek komunikatów w ten sposób, iż dane zapisywane są przez sieć do kolejek na systemach zdalnych. 2.2 Schemat działania 2.2.1 Strona nadawcza 2.2.2 Strona odbiorcza

3 Definicje agent kanałowy (MCA) proces implementujący połączenie (patrz: nadawca, odbiorca); kanał transmisyjny połączenie, implementowane w postaci dwóch agentów kanałowych; kolejka transmisyjna bufor po stronie nadawcy, implementowany przez agenta wysyłającego; kolejka zdalna - kolejka uniksowa IPC pracująca na maszynie odbiorcy; komunikat - porcja danych przesyłana od nadawcy do odbiorcy; komunikat niepewny komunikat, który nie wymaga potwierdzania (patrz: komunikat pewny); komunikat pewny - komunikat z danymi, który nie powinien zostać usuwany z kolejki transmisyjnej do chwili, gdy nie mamy pewności, że trafił bezpiecznie do kolejki docelowej lub został odrzucony; nadawca - użytkownik instancji protokołu, który chce przesyłać informacje; odbiorca - użytkownik wstawiający informacje do docelowej kolejki uniksowej; połączenie połączenie między stroną nadającą (wysyłającą dane) a stroną odbierającą; protokół - protokół RQP (Remote Queues Protocol) opisywany w niniejszym dokumencie; zestawianie - proces budowania połączenia; 4 Założenia Protokół RQP działa w warstwie aplikacji. Do transportu wykorzystywany jest protokół TCP/IP, w ramach którego port o numerze 6543 jest używany do nasłuchiwania po stronie MCA odbierających. Połączenie fizyczne istnieje pomiędzy każdym MCA nadającym a odbierającym, o ile odbywa się pomiędzy nimi wymiana komunikatów. Jest nawiązywane podczas pierwszego odpytywania konkretnego MCA odbierającego o posiadanie kolejek przez MCA nadającego. Jest utrzymywane tak długo, aż któraś ze stron zakończy swoje działanie, bądź wszystkie kolejki po stronie odbierającej, związane z MCA nadającym, zostaną usunięte. Celem wykrycia ewentualnego zakończenia pracy przez MCA odbierające, a przez to braku odpowiedzi na komunikaty, wprowadza się stałą TIMEOUT określającą, jak długo czekamy na odpowiedź po wysłaniu komunikatu.

Korzystanie z protokołu odbywa się poprzez interfejs programistyczny (API). Jest on zaimplementowany w postaci biblioteki dzielonej. Udostępnia następujące funkcje: int openconnection(key_t key); int sendmessage(int qdesc, key_t rkey, const void *buf, size_t count, int msgtype, const void *options) Funkcja openconnection przekształca klucz na deskryptor. Otwarcie połączenia uruchamia agenta wysyłającego związanego z tym kluczem. Użycie funkcji openconnection z tą samą wartością klucza w innym procesie (nadawcy) pozwala na skorzystanie z istniejącego agenta. Użycie funkcji openconnection z inną wartością klucza w przypadku, gdy istnieje już jeden agent wysyłający kończy się błędem i zwraca wartość -1. Funkcja sendmessage przyjmuje jako parametr deskryptor połączenia, klucz kolejki docelowej, wiadomość do wysłania, jej rozmiar, typ ( pewna czy niepewna patrz: definicje) oraz ewentualnie dodatkowe opcje. 5 Format komunikatów 5.1 Liczby używane w komunikatach są przesyłane w porządku sieciowym. Uzupełnienia formatu zapisu liczb są niedopuszczalne. 5.2 Typy komunikatów: SZUKANIE_KOLEJKI_MSG { uint8 typ_komunikatu; klucz_kolejki; } ODPOWIEDZ_MSG { uint8 } typ_komunikatu; odpowiedz; WIADOMOSC_MSG { uint8 typ_komunikatu; dlugosc_komunikatu; uint8 typ_wiadomosci; klucz_kolejki; klucz_wiadomosci; octet[dlugosc] wiadomosc; } gdzie dlugosc = dlugosc_komunikatu 26.

5.3 Opisy długości: dlugosc_komunikatu - pole zawierające długość całego pakietu, długość ta obejmuje pola: typ_komunikatu, dlugosc_komunikatu, typ_wiadomosci, klucz_kolejki, klucz_wiadomosci, wiadomosc. 6 Opis wymienianych komunikatów SZUKANIE_KOLEJKI_MSG jest wysyłany przez MCA nadającego w celu wyszukania kolejki o podanym kluczu. typ_komunikatu - ustawione na wartość SZUKANIE_KOLEJKI_TYP; klucz_kolejki - zawiera klucz poszukiwanej kolejki. ODPOWIEDZ_MAM_KOLEJKE_MSG jest typu ODPOWIEDZ_MSG. Jest ona wysyłana przez MCA odbierającego w celu poinformowania żądającego o posiadaniu kolejki o danym kluczu. typ_komunikatu - ustawione na wartość ODPOWIEDZ_MAM_KOLEJKE_TYP; odpowiedz - zawiera klucz kolejki, o której posiadaniu informujemy. WIADOMOSC_MSG jest wysyłana przez MCA nadającego. Zawiera on właściwą wiadomość, która ma zostać wstawiona do kolejki zdalnej. typ_komunikatu ustawione na wartość WIADOMOSC_TYP; dlugosc_komunikatu patrz pkt. 5.3; typ_wiadomosci ustawione na wartość PEWNA_TYP, lub NIEPEWNA_TYP, w zależności od typu wysyłanej wiadomości (patrz: definicje); klucz_kolejki klucz kolejki zdalnej, do której ma trafić komunikat; klucz_wiadomosci identyfikator wiadomości unikalny w obrębie danego MCA nadającego; wiadomosc treść wiadomości, która ma zostać wstawiona do kolejki zdalnej.

ODPOWIEDZ_DOSTALEM_PEWNA_MSG jest typu ODPOWIEDZ_MSG. Jest ona wysyłana przez MCA odbierającego w celu poinformowania żądającego o otrzymaniu i umieszczeniu w kolejce docelowej wiadomości pewnej. typ_komunikatu ustawione na wartość ODPOWIEDZ_DOSTALEM_PEWNA_TYP; odpowiedz unikalny identyfikator wiadomości, ten sam, który był zapisany w polu klucz_wiadomosci podczas jej przesyłania. ODPOWIEDZ_NIE_MAM_KOLEJKI_MSG jest typu ODPOWIEDZ_MSG. Jest ona wysyłana przez MCA odbierającego w celu poinformowania powiązanego MCA nadającego, że kolejka docelowa przestała istnieć, bądź zostały utracone prawa do zapisu do niej. typ_komunikatu ustawione na wartość ODPOWIEDZ_NIE_MAM_KOLEJKI_TYP; odpowiedz numer kolejki, o której braku informujemy. 7 Opis stanów 7.1 Strona nadająca: 7.1.1 API

7.1.2 MCA wysyłający, wątek nadający 7.1.3 MCA wysyłający, wątek odbierający potwierdzania

7.2 Strona odbierająca: 8 Podsumowanie używanych numerów NIEPEWNA_TYP = 0; ODPOWIEDZ_DOSTALEM_PEWNA_TYP = 3; ODPOWIEDZ_MAM_KOLEJKE_TYP = 2; ODPOWIEDZ_NIE_MAM_KOLEJKI_TYP = 4; PEWNA_TYP = 1; SZUKANIE_KOLEJKI_TYP = 1; WIADOMOSC_TYP = 5; TIMEOUT = 30sec.