# XBUP - Proudové zpracování

### Úvod

Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje popis implementace proudového zpracování.

O úroveň výše

### Obsah

1. Proudové zpracování
1.1. Datový proud
1.2. Datový proud s omezením
2. Aspekty proudového zpracování

### 1. Proudové zpracování

K práci s datovými proudy je možné přistupovat pomocí jejich proudového vyjádření.

### 1.1. Datový proud

Datovým proudem zde chápeme potenciálně nekonečnou posloupnost položek stejného typu (tokenů) s dobře definovaným uspořádáním.

Mějme množinu T všech tokenů. Pak datový proud s je definován jako funkce s:N → T. V případě protokolu XBUP pro tuto funkci dále platí omezení...

### 1.2. Datový proud s omezením

V běžných případech se lze setkat s datovými proudy na které je aplikována nějaká forma sekvenčního omezení. Proud je pak parciální funkce f(S), která zavisí na vnitřním stavu, ale obvykle lze vyjádřit jako závislost na předchozí hodnotě parametru funkce. Příkladem úplného sekvenčního omezení je úplná sekvence, kdy f(S,S') vrací hodnotu právě když je S přímým následníkem S', což znamená, že v datovém proudu se není možné pohybovat jinak než vpřed o právě jeden krok. Další možností je umožnění pohybu vpřed (skip) či zpět. Todo: Vytvořit exaknější definici s algoritmy. Běžné řešení je poskytnutí rozhraní pro čtení následujícího prvku a případně volitelně funkce pro pohyb v proudu.

### 2. Aspekty proudového zpracování

Datové proudy je možné rozlišit podle typu položek datového proudu, způsobu řízení toku a množství předávané informace v jednom kroku. Kromě toho lze ještě uvažovat rozdílné rozhraní pro předávání položek (tokenů). Jednotlivé aspekty vedou k možným hierarchiím implementací.

Samotný návrh protokolu vede k použití odlišných typů položek na odpovídajících úrovních protokolu. Dále se rozlišuje zda má datový proud závislé či nezávislé typy bloků. Závislý typ je odvozený z hlavičky datového proudu a má pevně stanovené hodnoty typu, zatímco nezávislé typy jsou definovány pomocí objektu a před vlastní převodem na data je potřeba k nim vygenerovat obalující datovou hlavičku.

Kromě typu přenášených položek je možné u proudového zpracování uvažovat několik dalších aspektů:

- Způsob předávání dat - Jakým způsobem jsou položky proudu předávany jednotlivých aplikacím.
- Řízení toku dat - Jakým způsobem je řízena vzájemná výměna dat na komunikačním kanále.
- Možnosti pohybu v proudu - Proud dat může nabízet volitelně možnost změny pozice ve zpracovávaném proudu položek.

Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2008-06-29