Remote Quotation Protocol - opis

Podobne dokumenty
Protokół wymiany sentencji, wersja 1

Opis protokołu RPC. Grzegorz Maj nr indeksu:

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.

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Sieci Komputerowe 2008/2009. Opis Protokołu

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

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

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

Klient-Serwer Komunikacja przy pomocy gniazd

PAI2009:: Protokół aukcji internetowych

Protokół aukcji internetowych

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

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

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Wywoływanie procedur zdalnych

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

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

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

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

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

SSL (Secure Socket Layer)

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Zarządzanie licencjami dla opcji Fiery na komputerze klienta

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

Opcje Fiery1.3 pomoc (klient)

System automatyki domowej. Nexo.API Protokół Karty komend NXW396

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

PROTOKOŁY WARSTWY TRANSPORTOWEJ

Opcje Fiery1.3 pomoc (serwer)

Na chwilę obecną biblioteka ElzabObsluga.dll współpracuje tylko ze sprawdzarkami RSowymi.

Przesyłania danych przez protokół TCP/IP

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

DOKUMENTACJA TECHNICZNA SMS API MT

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

System DiLO. Opis interfejsu dostępowego v. 2.0

1 Moduł Diagnostyki Sieci

1 Moduł Konfigurowanie Modułu

Przykłady interfejsu TCP i UDP w Javie

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

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

Dokumentacja smsapi wersja 1.4

Protokoły sieciowe - TCP/IP

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Dokumentacja REST API v 3.0

Moduł Ethernetowy. instrukcja obsługi. Spis treści

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

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

Specyfikacja HTTP API. Wersja 1.6

MODEL OSI A INTERNET

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

asix4 Podręcznik użytkownika CtTwinCAT - drajwer protokołu ADS systemu TwinCAT Podręcznik użytkownika

Poradnik korzystania z usługi FTP

Dokumentacja serwera REST do obsługi rezerwacji w systemie SaNAtoRIUm.pro

Laboratorium Sieci Komputerowych - 2

1. Model klient-serwer

Protokoły wspomagające. Mikołaj Leszczuk

Java Developers Day. Implementacja ESB przy użyciu Mule. ESB Mule Obsługa zamówień DEMO

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

Sieci komputerowe i bazy danych

Dokumentacja SMS przez FTP

System automatycznego wysyłania SMSów SaldoSMS

Specyfikacja API Runtime BAS 3.0

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

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

Laboratorium 6.7.2: Śledzenie pakietów ICMP

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

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

System obsługi ubezpieczeń FORT

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Jak wykorzystać Pulpit Zdalny w Windows 2003 Serwer do pracy z programem FAKT

System Wniosków DWZ AGH

Zamawianie Taxi Aktywator Instrukcja użytkownika

INSTRUKCJA OBSŁUGI DLA SIECI

Specyfikacja techniczna. mprofi Interfejs API

Aplikacja Sieciowa wątki po stronie klienta

Manual konfiguracji konta dla fax2mail

eformatyzacja instrukcja obsługi

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Programowanie współbieżne i rozproszone

Wybrane działy Informatyki Stosowanej

SERWER AKTUALIZACJI UpServ

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

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Gwarancja jakości świadczenia usług (SLA)

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

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 4

Sprawozdanie nr 4. Ewa Wojtanowska

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

Program do obsługi ubezpieczeń minifort

Architektura aplikacji sieciowych. Architektura klient-serwer

Gatesms.eu Mobilne Rozwiązania dla biznesu

Tworzenie aplikacji rozproszonej w Sun RPC

Dokumentacja REST API v 3.0

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

Transkrypt:

Remote Quotation Protocol - opis Michał Czerski 20 kwietnia 2011 Spis treści 1 Streszczenie 1 2 Cele 2 3 Terminologia 2 4 Założenia 2 4.1 Połączenie............................... 2 4.2 Powiązania z innymi protokołami.................. 2 4.3 Model komunikacji.......................... 2 5 Opis formatu komunikatów 2 5.1 Typy pomocnicze........................... 3 5.2 Typy komunikatów.......................... 3 6 Opis wymienianych komunikatów 4 7 Opis stanów 5 7.1 Klient................................. 5 7.1.1 WAIT MESSAGE STATE..................... 5 7.1.2 WAIT ANSWER STATE..................... 6 7.2 Serwer cytatów............................ 7 8 Numery 7 1 Streszczenie Niniejszy dokument opisuje specyfikację protokołu komunikacji z serwerem cytatów/sentencji. Składa się z następujących sekcji: opis celów protokołu, opis założeń, opis formatu komunikatów, opis stanów. 1

2 Cele Głównym celem protokołu jest możliwość szybkiego i masowego pobierania cytatów/sentencji z zdalnego serwera. 3 Terminologia Wykaz używanych w tekście terminów i ich znaczenia: RQP Remote Quotation Protocol Klient instancja protokołu RQP zgłaszająca chęć otrzymania losowego cytatu/sentencji. Serwer cytatów instancja protokołu RQP, która posiada bazę cytatów oraz możliwość ich rozsyłania w odpowiedzi na żądania klientów. 4 Założenia 4.1 Połączenie Komunikacja między klientem a serwerem cytatów odbywać się będzie na zasadach modelu klient-serwer. Każdy z użytkowników instancji protokołu może połączyć się z serwerem cytatów i na zasadach równych praw otrzymać losowo wybrany cytat. 4.2 Powiązania z innymi protokołami Protokół działa w warstwie aplikacji. Transmisja wiadomości musi być przede wszystkim szybka, a nie musi być niezawodna, cała komunikacja będzie się zatem opierać na protokole UDP. 4.3 Model komunikacji Protokół RQP działa w oparciu o model klient-serwer. Serwer cytatów działa na porcie będącym jego parametrem uruchomieniowym, lecz port ten może się zmienić w trakcie jego działania w reakcji na działania użytkownika. 5 Opis formatu komunikatów Założenia: porządek octetów w liczbach: sieciowy. sposób interpretacji liczb ze znakiem: jak w arytmetyce uzupełnień do 2. 2

5.1 Typy pomocnicze QDATA_T { uint32 quot_id; uint32 part_no; uint32 parts_total; octet[24] encoding; uint16 buf_length; octet[buf_length] buf; parts_total pole zawierające informację o tym, na ile części została podzielona odpowiedź serwera cytatów. Serwer cytatów dzieli cytaty na części za każdym razem w ten sam sposób. encoding nazwa (w ASCII) zastosowanego kodowania tekstu. buf_length pole zawierające długość danych, długość ta obejmuje tablicę buf. ERROR_T { sint32 error_code; uint16 error_buf_length; octet[error_buf_length] error_buf; error_buf_length pole zawierające długość danych, długość ta obejmuję tablicę error_buf. Kody błędów, które powinny być obsługiwane przez każdą instancję protokołu: error_code Znaczenie 1 Żądanie odrzucone 2 Za dużo żądań, spróbuj później 3 Baza cytatów jest pusta, lub nie istnieje 4 Baza cytatów nie posiada cytatu o danym quot_id 5 Cytat quot_id nie posiada części o danym part_no 6 Żądanie zbyt wielu cytatów (patrz BATCH_REQUEST_MSG) 5.2 Typy komunikatów REQUEST_MSG_T { request_id w przypadku zgłoszenia wielu żądań od jednego klienta, wartość request_id jest unikalna dla każdego z nich. BATCH_REQUEST_MSG_T { uint8 no_of_requests; 3

no_of_requests w przypadku zgłoszenia żądania o wiele cytatów, wartość no_of_requests mówi nam o oczekiwanej liczbie cytatów otrzymanej w odpowiedzi. RETRANS_MSG_T { uint32 quot_id; uint32 part_no; QUOT_MSG_T { QDATA_T quot; ERROR_MSG_T { ERROR_T error; 6 Opis wymienianych komunikatów W protokole używane są następujące komunikaty (w nawiasach podane sa argumenty, a po dwukropku typ komunikatu). Numer porządkowy to jednocześnie msg_id przydzielone komunikatowi. 1. REQUEST_MSG(request_id) : REQUEST_MSG_T Prośba o przesłanie losowego cytatu wysłana do serwera cytatów identyfikowana poprzez id. 2. BATCH_REQUEST_MSG(request_id, no_of_requests) : BATCH_REQUEST_MSG_T Prośba o przesłanie no_of_requests losowych cytatów. Przy bezbłędnej komunikacji odpowiedzi przesyłane przez serwer mają w polu request_id wartości z zakresu [request_id, request_id + no_of_requests 1]. 3. RETRANS_MSG(request_id, quot_id, part_no) : RETRANS_MSG_T Prośba o ponowną transmisję części part_no cytatu quot_id. Wartość id powinna być identyczna jak w żądaniu, w którym zaistniał błąd. 4. QUOT_MSG(request_id, quotation_part) : QUOT_MSG_T Odpowiedź serwera cytatów na żądanie o parametrze id zawierająca część cytatu (quotation_part). 5. ERROR_MSG(request_id, error) : ERROR_MSG_T Zgłoszenie błędu error przetwarzania żądania id do klienta. 4

msg_id Komunikat 1 REQUEST_MSG(request_id) 2 BATCH_REQUEST_MSG(request_id, no_of_requests) 3 RETRANS_MSG(request_id, quot_id, part_no) 4 QUOT_MSG(request_id, quotation_part) 5 ERROR_MSG(request_id, error) 7 Opis stanów Klient może znajdować się w jednym z dwóch stanów: WAIT_MESSAGE_STATE WAIT_ANSWER_STATE Serwer cytatów jest bezstanowy. 7.1 Klient 7.1.1 WAIT MESSAGE STATE W tym stanie klient czeka na zlecenie pobrania nowego cytatu/cytatów z serwera cytatów wysyłając do niego jeden z dwóch możliwych typów wiadomości. 5

7.1.2 WAIT ANSWER STATE W tym stanie klient oczekuje na odpowiedź serwera - zawierającą fragment cytatu, lub komunikat o błędzie. Jeżeli klient nie otrzymał jeszcze oczekiwanej liczby cytatów, a od ostatniej odpowiedzi serwera upłynęło już wiecej niż TIMEOUT milisekund, to może zgłosić prośbę o retransmisję niektórych fragmentów. 6

7.2 Serwer cytatów Serwer cytatów oczekuje na żądania od klientów, wybiera dla nich cytaty, dzieli je na fragmenty mniejsze od PACKET_SIZE bajtów (podział danego cytatu nie może zmienić się podczas pojedynczego uruchomienia serwera) oraz wysyła odpowiedzi, lub ewentualnie komunikaty o błędach zwiaząnych z przetwarzaniem żądania. 8 Numery Wykaz używanych w tekście stałych i ich wartości: 7

PACKET_SIZE zalecana wartość to 1024. Wartość ustalana podczas kompilacji. TIMEOUT zalecana wartość to 2500ms. Wartość ustalana podczas uruchomienia. 8