Server/Komunikace

Z JKwiki

Přejít na: navigace, hledání
Docela zajímavé je porovnat zde uvedené a D-Bus.

Obsah

Protokol

Něco velmi jednoduchého ve stylu pop3 či smtp:

  • Výhody: nenáročnost na parsování, menší velikost obalujících dat
  • Nevýhody: ?

Jak by mohla vypadat zpráva

MSG TO: id-cíle
ID: jedinecny identifikator zpravy
IN REPLY TO: id otazky
TYPE: druh zpravy
ARGS
 promenna=hodnota
 ...
DATA: velikost v bytech, mime typ dat
...
raw data
...
END
MSG TO
Uvozuje zprávu a určuje adresáta.
ID
Identifikuje tuto zpravu.
IN REPLY TO
Identifikuje zpravu, na kterou je tato zprava odpovědí (nepoviné).
ARGS
Seznam parametrů. Každý na 1 řádek, na začátku řádku mezera. Ulehčí to předávání krátkých jednoduchých dat. (nepoviné, opakovatelné)
DATA
Uvozuje posílání dat v RAW tvaru. Jako parametr je uvedena velikost posílaných dat a jejich typ. (nepoviné, opakovatelné)
END
Ukončuje zprávu.

Lokální komunikace

Stručný popis

  • Probíhá po UNIX socketu vytvořeném /tmp. Tento soket má každá instance serveru svůj.
  • Zprávy a krátká data jsou posílány skrz UNIX soket. Podrobnosti v popisu protokolu.
  • Velké objemy dat jsou předávány pomocí sdílené paměti.

Ukázka komunikace

C .. Klient
S .. Server

spojení navázáno
C: Hi
S: Hi
Hi-Hi
Navázání spojení
C: I'm Kopete 0.9.0, can you handle my data?
S: Yes I can.
Can we speak?
Dotaz klienta, zda jej server 'umí'
C: Can you store something for me?
S: What is data type?
C: Contact.
S: Shoot it.
C: Here it goes.
S: Got it.
Can I store something?
Požadavek na uložení dat
C: Can you give me something?
S: What is data type?
C: Appointment.
S: Specify data idetifier (primary key).
C: Key is WYGINWYW.
S: OK. There you go.
C: Got it.
Can I get something?
Požadavek na dodání dat
C: Can you delete an item?
S: What is data type?
C: Mail message.
S: Specify data idetifier (primary key).
C: Key is WYGINWYWFS.
S: Two times in head and one in chest.
C: Good boy.
Can you trash something?
Požadavek na smazání dat
C: Can you find someone for me?
S: In what is data type?
C: I used to chat with her.
S: What are you looking for.
C: Something about her pet dragon.
S: Got two conversations on this topic. Which one of them?
C: Last one.
S: As you wish.
C: Thanks a lot.
Can you look for something?
Požadavek na vyhledání dat
C: Can you alter some data?
S: In what is data type?
C: Contact.
S: What you want me to change.
C: Her address will change soon.
S: Specify data idetifier (primary key).
C: Key is SLMAIDRI.
S: She's gone now.
C: Thanks pal.
Can you change something?
Požadavek na změnu dat
C: Bye
S: Bye
spojení ukončeno
Bye-Bye
Ukončení spojení

Síťová komunikace

Stručný popis

  • Pro klienta je síťová komunikace naprosto transparentní.
  • Pokud uživatel má v úmyslu využívat síťové komunikace, tak určí hlavní server a tím u něj zapne naslouchání na TCP soketu. Ostatní servery přepne do přeposílacího režimu.
  • Server v přeposílacím režimu předává veškerý provoz na hlavní server, který předá data na správný server nebo lokálnímu klientovi.
  • Je možné provádět optimalizace cest provozu, kdy provoz mezi lokálními klienty půjde jen lokálně a velké objemy dat mezi různými přeposílajícími servery půjdou přímo, pokud to bude možné.
Osobní nástroje
kategorie