XBUP - Dokumentace: SrovnáníTento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje porovnání dosažených výsledků s jinými obdobnými projekty.
1. Úvod
2. Výkonnostní charakteristiky
2.1. Velikost dokumentu
2.2. Výpočetní náročnost
2.3. Komunikační náročnost
3. Výkonnostní srovnání
3.1. Značkovací jazyky
4. Komerční přínos
5. Odkazy
Ačkoliv primární implementace není optimalizována pro výkon, je již na této úrovni vhodné rozpoznat výkonnostní charakteristiky navrhované varianty reprezentace dat.
Nejprve je vhodné zhodnotit různé vlastnosti protokolu, vztahující se k výkonu. Jedná se především o nároky na procesor, paměť a přenosové kapacity
Primárním cílem není dosáhnout co nejmenší velikosti dokumentu, přesto dosahuje v této oblasti protokol XBUP relativně dobrých výsledků. Oproti textovým značkovacím jazykům je jistě úspornější. Ve srovnání se statickými binárními protokoly je sice náročnější, ale to je cena, kterou je nutné platit za dosahované vlastnosti. Výhodou je například to, že základní tvary čísel jsou jednobajtové, a tedy pro časté ukládání malých hodnot, lze dosáhnout vyšší účinnosti.
Do budoucna se počítá s možností komprese celých podstromů dokumentu a s transparentním přístupem k nim. To by mělo umožnit dosáhnout ještě větších úspor ve velikostech souborů.
V případě výpočetních nároků na tom není protokol XBUP příliš dobře. Nepoužívá totiž tvary čísel, které se pro reprezentaci dat používají ve většině současných počítačů, a proto je nutné aplikovat převody. To platí jak o základních celočíselných typech, reálných číslech, tak i o většině zatím navrhovaných tvarech vyšších struktur, jako je například datum, či čas.
Mezi dobré vlastnosti naopak patří možnost uvádění délky bloků a díky čemuž je možné snadno přeskakovat bloky i celé podstromy a tedy dosáhnout rychlejšího přístupu k vnitřním blokům. Pokud by byla potřebná ještě výkonnější varianta, je možné vytvořit další pomocné struktury ukazatelů. Uvedením nekonečné délky bloku je možné se vyhnout nutnosti počítat dopředu velikosti bloků, což je vhodné především při generování komunikačních proudů v reálném čase. Tyto techniky je pak vhodné dle potřeby kombinovat.
Komunikační náročnost je závislá na množství a poměru dat proudících oběma směry a na vzájemné závislosti toku dat mezi oběma směry. Pokud na sebe oba proudy čekají, zvyšuje se celková doba pro komunikaci.
Protokol je možné srovnávat s několika druhy v současné době používaných protokolů a datových formátů.
Především srovnání s v současné době nejpoužívanějším značkovacím jazykem XML, může ukázat, jaký přínos by v této oblasti mohlo zavedení protokolu XBUP přinést.
Standard XML patří k velmi propracovaným textovým značkovacím jazykům s důsledným zaměřením na interoperabilitu a rozšiřitelnost. Je orientován plně na textové vyjádření a má pouze minimální podporu pro nestrukturovaná binární data. Základní standard také nepodporuje rozlišení typu dat a existuje několik alternativních způsobů definování struktury a datových typů XML dokumentů, jako např. DTD, XML-Schema, Schematron, Relax NG. XML jako takové není pro potřeby univerzálního formátu vhodné především díky následujícím vlastnostem:
Více viz. kritika XML Sucks, či Binary XML Use Cases.
Kromě XML lze srovnávat také související formáty, jejichž obdoba existuje i v protokolu XBUP:
XML lze srovnávat například v následujících aspektech:
Jednou z aktivit W3C byla také snaha o vytvoření binární varianty XML se zachování co nejvíce vlastností textového tvaru a přidáním vlastností nových. Tyto aktivity vyústily ve vznik mnoha variant binárního tvaru XML s možností dalšího vývoje až do výběru nejvhodnějšího kandidáta a jeho standartizaci. Technicky se jedná o komprimaci se zachováním přístupnosti stromové struktury.
Jako další z možných srovnání se lze zaměřit na protokoly používané pro mezisíťovou komunikaci.
Přestože je cílem mnoha z následujících projektů úspěšná implementace pro zvolenou omezenou oblast, přesto tyto projekty mohou poskytnout srovnání v některých aspektech
Cílem projektu EBML je vytvořit kontajner pro datové objekty speciálně pak pro projekt multimediálního kontajneru Matroska.
Projekt EBML používá některé podobné typy, jako například přirozená čísla s proměnnou délkou. Nevýhodou je však specifické zaměření na multimediální kontajner a omezené možnosti rozšiřování funkcionality a také nedůslednost definic.
Dalším z aspektů je komerční dopad zavedení použití tohoto projektu. Výsledky se liší podle míry zavedení použití protokolu.
Náklady na zavedení závisí na nutnosti implementace podpory pro tento protokol do jazyka, či vývojového prostředí používaného pro vývoj daného produktu. Jelikož je projekt vyvíjen pod vhodnými licencemi, neměl by být problém nalézt v případě rozšíření tohoto projektu vhodnou implementaci pro požadovaný jazyk. ??
Vybrané související odkazy:
XML - Extensible Markup Language [http://www.w3.org/XML/]
Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2008-07-15