Příkazy řízený komunikační protokol

Obrázek uživatele benzin@jabber.cz
Vložil benzin@jabber.cz, Pá, 2007-04-13 11:00 :: |

Díky mojí diplomové práci, jsem se dostal k vytváření komunikačního protokolu. I když původně měl zadavatel na mysly asi protokol někda na úrovni transportní vrstvy, já jsem se pustil do protokolu na úrovni vrstvy aplikační.

Vzhledem k tomu, že jako programovací jazyk používám JAVA, konkrétně JavaME a JaveEE rozhodl jsem se použít protokol HTTP, který implementuje Sun pro všechny virtuální mašiny na úrovni JavaME. Některé jiné společnosti implementují virtuální stroje, třeba i s datagramovým spojením, nebo na úrovni soketů, ale HTTP je prostě jistota.

Vzhledem k tomu jsem se začal navrhovat takový komunikační protokol, který by bylo možno provozovat na nestavovém HTTP. I když pro tyto účely již existuje SAOP, jeho implementace na mobilních telefonech, by pro mně byla dost složitá. Další nevýhodou je, že JavaME nenabízí reflection a i class loader nelze vyměnit, takže čachrů s garbage collectorem, nebo s automatickým generování objektů pomocí reflection.

Proto jsem sáhl k příkazy řízenému komunikačnímu protokolu. Jedná se o implementaci návrhového vzoru příkaz. Komunikující strany si navzájem vyměňují příkazy, navíc zaručují, že nic neprovedou aniž by na danou akci vygenerovali command, který přepošlou druhé straně.

Další vlastností příkazu je jednoznačný identifikátor příkazu a znalost příkazu těsně předcházejícího. Tudíž, jeden příkaz nebude proveden vícekrát a nebude také proveden příkaz, jehož předchůdce nebyl proveden.

Komunikující strany se pak informují o úspěšně předaných příkazech. Kterákoli strana může opětovně poslat již poslaný příkaz v případě, že si není jistá, že protější strana příkaz úspěšně přijala.

Tímto mechanizmem se vyhneme složitým transakcím i synchronizaci Garbage collectoru. Jediné na co si musíme dát pozor je, že objekty klienta na serveru musí být v izolaci.

Jedná se jen o velmi stručný nástit. Implementace a kompletní popis protokolu bude dostupný až dodělám diplomku Smiling