3.10.2. Způsob přenosu dat
Služba File Transfer umožňuje přenos dat z klienta na server nebo ze serveru na klienta. Klientem se rozumí strana, která aktivně volá server. Server odpovídá na požadavky klientů. Server může paralelně oblushovat více klientů/přenosů.
Rozsah přenášených dat
Fáze přenosu |
Přenášená data |
---|---|
Zahájení |
Klient zasílá na server povinně informaci o typu přenosu. Volitelně klient zasílá svůj identifikátor přenosu a doplňující informace o přenosu a to ve formě binárních dat nebo XML souboru s daty. |
Přenos dat |
Předmětem přenosu je vždy obsah jednoho adresáře na souborovém systému. Přenášený adresář je tvořen sadou souborů a dalších podadresářů. Adresářová struktura se vždy přenáší a zpracovává do hloubky. V technické specifikace typu přenosu se určí, zda se jedná o přenos ze serveru na klienta nebo z klienta na server. |
Potvrzení |
Na závěr každého přenosu se pomocí samostatné metody provede jeho potvrzení. Součástí odpovědi o úspěšném přenosu dat může server klientovi předat doplňující identifikátor výsledku, další doplňující informace a to ve formě binárních dat nebo XML souboru s daty. |
Každé užití služby pro přenos dat musí mít upřesněny tyto parametry:
- Typ přenosu
Přenos je určen svým typem. Typ je řetězec na základě, kterého klient i server rozpozná typ přenášených dat. Pro každý typ přenosu je také určen směr přenosu dat (zda server zasílá obsah adresáře klientovi nebo obráceně, zda klient zasílá obsah adresáře serveru).
- Struktura přenášených dat
Služba File Transfer nemá konkrétní požadavky na přenášená data. Požadavky na jejich formát jsou součástí popisu užití služby.
Zabezpečení přenášených dat
Přenos dat probíhá pomocí SOAP/HTTP s možností šifrovaného přenosu protokolem HTTPS.
Každý přenášený soubor je zabezpečen svým kontrolním
součtem. Algoritmus pro výpočet kontrolního součtu je SHA-512. Na konci
posledního zasílaného bloku daného souboru (struktura FileEnd
) se
přenáší 64bytů, které tvoří vypočtený kontrolní součet souboru. Přijímající strana
při ukládání souboru ověřuje shodu vypočteného kontrolního součtu s očekávanou
hodnotou.
Funkce tvořící API
Přenosové API je tvořeno celkem šesti funkcemi.
Funkce |
Účel |
---|---|
|
Zahájení přenosu a jeho nastavení. |
|
Odeslání dat z klienta na server. |
|
Příjem dat klientem ze serveru. |
|
Přerušení přenosu dat. |
|
Dokončení přenosu dat a jeho potvrzení. |
|
Zjištění stavu přenosu. |
Jednotlivé funkce jsou popsány v referenční dokumentaci.
Postup volání služeb pro přenos z klienta na server
Zahájení přenosu metodou
Begin
Odeslání datových balíčků metodou
Send
, poslední balíček je s příznakemlast
.Dokončení přenosu a jeho potvrzení metodou
Finish
Postup volání služeb pro přenos ze serveru na klienta
Zahájení přenosu metodou
Begin
Odeslání datových balíčků metodou
Receive
, poslední balíček je s příznakemlast
.Dokončení přenosu a jeho potvrzení metodou
Finish
Společné postupy pro oba typy přenosů
Stav probíhajícího přenosu je možné zjistit pomocí volání GetStatus
.
Probíhající přenos je možné přerušit pomocí metody Abort
.
Operace Begin
a Send
mohou trvat delší
dobu a předpokládá se jejich asynchronní zpracování na serveru.
Pokud předchozí operace nebyla plně dokončena dojde při volání
další operace k výjimce s typem BUSY
. V takovém
případě by se měl klient o operaci pokusit později.