# XBUP - Dokumentace: Motivace projektu

### Úvod

Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje motivaci vzniku projektu a další důvody pro vývoj a nasazení projektu do praxe.

O úroveň výše

### Obsah

1. Motivace
1.1. Nespokojenost s aktuálním stavem
1.1.1. Nevýhody binárních řešení
1.1.2. Nevýhody textových formátů
1.2. Potenciální přínos
1.2.1. Přínos uživatelům
1.2.2. Přínos programátorům
2. Případy použití
2.1. Přenos metadat v multimediálním vysílání
2.2. Výměnný formát pro geografické systémy
2.3. Formát pro rozsáhlou 3D grafiku
2.4. Výměnné formáty pro malá zařízení
2.5. Komplexní formáty
2.6. Dlouhodobá archivace
3. Odkazy

### 1. Motivace

Hlavním důvodem pro založení tohoto projektu byla nespokojenost se současným stavem. Velká roztříštěnost používaných řešení bez jednotného standardu ztěžuje programátorům práci a zpomaluje vývoj informačních technologií. Současně také nejsou formáty schopny pokrýt širší požadavky na výkon či interoperabilitu. Nic také nenasvědčovalo tomu, že by se situace měla v dohledné době zlepšit. S rostoucí složitostí a rozsahem softwarových produktů se také zdá čím dál více vhodnější používat co nejformálnější přístupy, jako například zavedením abstrakce, verifikace definic, či rozdělení protokolu na datovou a prezentační vrstvu.

### 1.1. Nespokojenost s aktuálním stavem

Praktické použití soudobých počítačových formátů je provázeno řadou problémů. Aplikace musejí zpracovávat mnoho různých formátů, otevírat soubory starších verzí a provádět konverze, navíc je podpora formátů většinou statická a vestavěná do jednotlivých aplikací či určena pro specifickou platformu. Chyby či úspory při návrhu formátu se pak často projeví zkrácením životnosti a mnohem vyššími náklady při pozdějších opravách.

### 1.1.1. Nevýhody binárních řešení

Soudobá binární řešení jsou většinou určeny na omezené konkrétní použití a mnohá řešení si firmy chrání jako vlastnictví, či je používají jako techniku konkurenčního boje (vendor lock-in). Některé další nevýhody jsou následující:

- Optimalizace pro konkrétní platformu/účel - Formáty jsou často specializovány pro použití na určité rodině počítačů, či přesnému účelu. Řeší se zde délka slova, pořadí podslov (endianita) a kódování reálných čísel a dalších typů. Konkrétní řešení je pak nutné převádět do jiných tvarů dle potřeby
- Omezené rozsahy hodnot - Často jsou zde použita kódování na pevné rozsahu hodnot a to i v případě, že daná hodnota má potenciál tento rozsah překonat
- Žádná, nebo omezená rozšiřitelnost - Formáty málokdy umožňují přidávat další bloky z jiných formátů, často ani neumožňují přidávat další bloky či rozšiřovat stávající při pozdějších opravách
- Nepřesná, nebo žádná specifikace - často není dostupná specifikace, nebo její popis je neúplný nebo umožňuje více interpretací
- Nejednotnost - stejná data jsou v různých formátech kódovány různě
- Omezená podpora kompatibility - podpora formátů je vestavěna do aplikace a není možné ji měnit

Jako příklady lépe řešených binárních formátů lze uvést například IFF/RIFF (PNG, AVI), Matroska, či ASN.1.

### 1.1.2. Nevýhody textových formátů

Příkladem jiného řešení, je použití textových formátů s pevnými značkami pro definici struktur, například tzv. plain textu, či XML. Značkovací jazyky jsou široce nasazovány na webu a jejich popularita dále stoupá. Výhodou je snadná rozšiřitelnost, dobrá čitelnost, teoretická neomezenost rozsahu číselných a řetězcových hodnot, podpora mnoha světových jazyků a další. Textový tvar také nutí firmy zveřejňovat dokumenty ve stejném tvaru, v jakém je vyvíjí a to ztěžuje vývoj nedokumentovaných formátů. Díky jednotné vnitřní struktuře a existenci implementací pro většinu široce používaných programovacích jazyků, mají tyto formáty širokou podporu a jsou dobrou inspirací hledaného řešení. Díky nim se také ukazuje, že dnes už není potřeba tolik dbát na úspornost, tedy paměťovou a výpočetní efektivitu a je možné se zaměřit na abstrakci a reprezentaci metainformací. Mezi nevýhody patří:

- Vyšší nároky na výkon - Zpracování textu a jeho značkování vyžaduje procházení delších úseků a vyžaduje více pomocné paměti k hledání značek
- Vyšší nároky na místo - Například textová reprezentace číselných hodnot je vzhledem k přenášené hodnotě velmi neefektivní
- Závislost na použitém jazyce - textový soubor je možné číst pouze pokud známe použitý jazyk
- Omezená životnost - jelikož se použité jazyky v čase mění, tyto formáty zastarávají (většinou v řádech desítek let)
- Problematické obalení binárních dat - do textu je obtížné zahrnovat binární data, čímž se ztrácí univerzálnost. Techniky typu Base64 se nejeví být vhodným řešením.

Další výhrady je možné najít například v dokumentech vztahujících se k iniciativě Binary XML.

### 1.2. Potenciální přínos

Snahou tohoto projektu je vyřešit co nejvíce současných problémů a umožnit lepší rozvoj informačních technologií. Projekt by měl být optimálně v každém kroku hledat co nejlepší kompromis k základním požadavkům. Výsledný produkt by tak měl přinést výhody jak běžnému uživateli, tak vývojářům. K dosažení maximálního přiblížení k dokonalému řešení by mělo být možné na vybrané kroky projektu aplikovat formální metody.

### 1.2.1. Přínos uživatelům

Projekt by chtěl pro uživatele dosáhnout takové situace, že práce s dokumenty bude bezproblémová a uživatelé budou moci bez problémů otevírat i starší dokumenty, které budou automaticky dle potřeby převáděny na nové verze transparentně bez nutnosti zásahu uživatele. Dokumenty budou vzájemně propojeny a dle potřeby se budou z internetu stahovat další potřebné knihovny, či převodní skripty. Dokumenty nebudou vázány na konkrétní jazyk, takže pro práci s nimi nebude nutné se učit cizí jazyky, a to ani na úrovni hlubšího průzkumu dokumentu. K dispozici by měly být, např. jako součást operačního systému, nástroje pro ověřování, šifrování a případnou opravu poškozených dokumentů, stejně jako pro úpravu a převody. Dokument by tedy měl být přenositelný do různých národních prostředí, zahrnující transparentní převody měrných jednotek, měn a další národních specifik. Celkově by projekt měl umožnit běžnému uživateli dlouhodobě bez problémů využívat nové i starší funkce programů, umožnit volbu mezi řadou konkurenčních produktů a zajistit, že se může spolehnout na to, že s jeho dokumenty budou moci pracovat i lidé s počítači a programy od jiných firem a to i v daleké budoucnosti.

### 1.2.2. Přínos programátorům

Z programátorského hlediska nepřináší tento projekt žádné zásadní inovace, ani nevylučuje používání současných technologií. Chce však přinést výhody především díky jednotnému přístupu k datům a metadatům s dlouhodobě neměnným tvarem založeným na pevných matematických základech. To by mělo programátorům usnadnit zpracovávat dokumenty v tomto protokolu, vytvářet nové formáty pro realizaci dat s možností široké znovupoužitelnosti v dalších formátech a mít přitom přehled o již existujících specifikacích. Pomocí dostupných nástrojů by mělo být možné zobrazit strukturu dokumentu v člověkem přijatelně čitelné a pochopitelné formě s možností přidání významu dat. Použití protokolu by také nemělo vést k neúměrně vysokým nárokům na výpočetní výkon ani kapacitu paměti. Také by mělo být snadné implementovat skripty pro kompatibilitu a propojování více formátů, případně formáty používat pro platformově nezávislá rozhraní a umožnit tak vytváření komplexnějších aplikací. Výsledný protokol by tak měl usnadnit vzájemnou komunikaci mezi počítači, umožnit lepší organizaci dat na datových médiích a stát se základem dalších pokročilejších projektů, jako např. multiparadigmatického programovacího jazyka s volitelnou syntaxí pro vyšší abstrakci, verifikaci a výkonější kompilaci.

### 2. Příklady použití

Případy použití jsou z větší části převzaty z dokumentů W3C pro XML Binary Characterization Use Cases, týkajících se binárního XML. Týkají se sice binarizované varianty XML, ale je možné je vhodně aplikovat i na tento projekt.

### 2.1. Přenos metadat v multimediálním vysílání

Chceme-li do datových proudů multimediálních vysílání přidávat další pomocné informace, je úspora místa kritická. Vezmeme-li například televizní, nebo rádiové vysílání a informace o právě běžícím programu, uvádění těchto informací v XML by nebylo příliš efektivní.

Důležitá je zde především úspora přenosové kapacity, nenáročnost zpracování, jednosměrnost komunikace a zpětná kompatibilita.

### 2.2. Výměnný formát pro geografické systémy

Především v energetice a informačních systémech pro správu dalších inženýrských sítí, stějně jako i pro katastr nemovitostí, se jeví být vhodné nasadit standard pro výměnu dat. Důraz je zde kladen především na úspornou reprezentaci reálných čísel a výkon při zpracování rozsáhlých map a velkého množství údajů.

### 2.3. Formát pro rozsáhlou 3D grafiku

Další z možných využití je nasazení projektu pro vytvoření jednotného standardu pro výměnu 3D grafiky (v reálném čase). Jedná se o obdobu předchozího příkladu a kritický je zde opět především výkon a velikost.

### 2.4. Výměnné formáty pro malá zařízení

Další z oblastí s kritickým důrazem na velikost a výkon jsou malá zařízení, jako například mobilní telefony, PDA a podobně. Ty jsou omezeny jak dostupnými kapacitami, tak výkonem svých výpočetních jednotek. Navíc je zde velká pestrost použitých architektur.

### 2.5. Komplexní formáty

Dalším možným nasazením je použití protokolu pro reprezentaci komplexních formátů, kombinujících široké spektrum dat různých typů, ať už multimédií, textových dokumentů s grafickým rozvržením a podobně. Přínosem by zde mohl být jednotný přístup k těmto datům.

### 2.6. Dlouhodobá archivace

Struktura protokolu by měla umožňovat dlouhodobou zpracovatelnost dokumentu díky jednotným strukturám a konverzním funkcím, stejně jako dobré definici dokumentu.

### 3. Odkazy

Seznam zdrojů, literatury a relevantních odkazů.

XBC-Use Cases - XML Binary Characterization Use Cases [http://www.w3.org/TR/xbc-use-cases/]
Binary XML - XML Binary Characterization Working Group [http://www.w3.org/XML/Binary]

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