Úvod
Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje důvody, které vedly ke vzniku projektu a požadavky na dosažené výsledky.
O úroveň výše
Obsah
1. O projektu
2. Základní cíle
2.1. Rozbor požadavků
3. Požadované vlastnosti
3.1. Rozbor vlastností
3.1.1. Nízká úroveň
3.1.2. Střední úroveň
3.1.3. Vysoká úroveň
3.2. Požadavky W3C
3.2.1. Zohlednění požadavků W3C
4. Odkazy
1. O projektu
Projekt XBUP zastřešuje aktivity, jejichž cílem je vytvořit obecně použitelný binární protokol s pokročilými vlastnostmi. Kromě specifikace protokolu XBUP (eXtensible Binary Universal Protocol) zahrnuje také implementaci podpory ve vybraných programovacích jazycích a související činnosti, jako jsou například správa katalogu a jeho zpřístupnění či propagace protokolu i odvozených projektů. Podpora by měla zahrnovat knihovny, běhové služby, základní nástroje a demonstrační programy. Rozsah dokumentace a software by měl v konečné podobě umožňovat postavit na protokolu XBUP další projekty a prokázat tak jeho praktickou použitelnost. Celý projekt je nyní v experimentální fázi a nenabízí žádné garance reálného nasazení. K ukončení vývoje může dojít například při zjištění existence kvalitnější alternativy, nebo při prokázání neplatnosti základních předpokladů projektu. I v případě neúspěchu by však mohly být dosažené výsledky použitelné jako inspirace pro řešení vybraných problémů oblasti datových protokolů.
2. Základní cíle
Hlavním cílem je definovat jednotný a obecně použitelný způsob kódování dat do binárních datových proudů a souborů.
Je požadováno dodržení následujících vlastností:
- Otevřenost
Protokol musí být zdarma a volně k dispozici pro nekomerční i komerční použití a to včetně specifikace.
- Kompatibilita
Musí být obsažena podpora, umožňující realizovat jak dopřednou, tak i zpětnou kompatibilitu.
- Rozšiřitelnost
Musí být možné protokol rozšiřovat o kódování nových druhů dat i bez nutnosti registrace nového typu.
- Důsledná kontrola
Důkladné prověření správnosti specifikace před jejím vydáním je preferováno před rychlým vývojem a častým aktualizováním.
- Univerzálnost
Protokol by mělo být možné použít obecně pro kódování libovolných dat.
- Nezávislost
Protokol nesmí pro popis metainformací používat jako výchozí způsob popis v přirozeném jazyce ani nesmí pro implementaci být preferován žádný konkrétní textový programovací jazyk nebo platforma.
2.1. Rozbor požadavků
Následuje upřesnění výše uvedených požadavků.
- Otevřenost
Otevřeností je zde myšlena možnost volného použití bez jakýchkoliv svazujících licenčních práv, což by mělo umožnit používat výsledky tohoto projektu zdarma a to i pro komerční účely. Pro vývoj bude použit Open Source model, který navíc poskytuje právní ochranu proti registraci cizí stranou. Politika použití v produktech třetích stran bude upravena později.
- Kompatibilita
Musí být obsažena podpora, umožňující realizovat jak dopřednou, tak i zpětnou kompatibilitu. Snahou je umožnit co nejširší znovupoužitelnost datových struktur s důrazem na využití prověřených variant. Zpětná kompatibilita pak bude řešena pomocí emulací a konverzí.
- Rozšiřitelnost
Musí být možné protokol rozšiřovat o kódování nových druhů dat. Rozšíření mohou zveřejňovat jak standartizační organizace (hypoteticky), stejně jako jednotlivé firmy a osoby. Aby se zachovala platnost dalších bodů, bude stanovena sada pravidel, které musí splňovat každé rozšíření protokolu, aby mohlo používat logo XB. Nejjednodušší variantou však zůstává vytvoření specifikace vlastních bloků s možností umístění definičního souboru na internetové stránky.
- Důsledná kontrola
Tento cíl má vynutit ověřování správnosti definic protokolu tak, aby nedocházelo k častým změnám ve specifikaci, které by vedli k nekompatibilním úpravám a nutnosti úpravy aplikací. Při tomto ověřování by měly být použity exaktní a co nejformálnější matematické metody.
- Univerzálnost
Protokol by mělo být možné použít pro kódování obecně libovolných dat, tedy veškerých typů dat ukládaných v současné době, stejně jako těch doposud nepoužívaných. Konkrétně by mělo být možné realizovat veškeré známé matematické struktury a fyzikální vlastnosti. Tento požadavek je obtížné podchytit a bude používán spíše v negativním smyslu pro demonstraci nevhodnosti některých řešení.
- Nezávislost
Protokol nesmí pro popis metainformací používat jako výchozí způsob popis v přirozeném jazyce, ani nesmí pro implementaci být preferován žádný konkrétní textový programovací jazyk nebo platforma. Kromě toho by nad protokolem neměla mít kontrolu jediná organizace, nebo stát, ale kdokoliv by si měl možnost vytvořit nový formát podle svých potřeb.
3. Požadované vlastnosti
Kromě obecných požadavků byly stanoveny i přesnější vlastnosti, o jejichž splnění bude usilováno. Následující seznam uvádí některé z vlastností, které by bylo vhodné do protokolu zavést:
- nízká úroveň
- binární, nezávislý na jazyce
- realizace neomezeně dlouhých datových proudů a čísel
- libovolně rozšiřitelný o další bloky dat
- možnost propojování více různých formátů do jednoho
- možnost efektivního zpracování náhodného přístupu
- možnost proudového zpracování a generování dat
- střední úroveň
- typ bloků, katalog bloků, schéma dokumentu, hierarchie a dědění
- obecný editační nástroj
- komprese a šifrování
- kontrolní součty, opravné bloky, fragmentovatelné bloky
- omezení rozsahu dokumentu
- komunikační protokol pro vzdálené volání funkcí
- vysoká úroveň
- autokonverze na starší verze
- automaticky dostupné pluginy pro zobrazení a další operace
- integrace do operačního systému
- integrace do programovacího jazyka, podpora více paradigmat
- skriptovací jazyk a instrukce pro zpracování
- hierarchická samopopisnost
3.1. Rozbor vlastností
Následuje detailnější popis uvedených vlastností a popis přínosu jejich zahrnutí.
3.1.1. Nízká úroveň
Požadavky nízké úrovně se týkají vesměs způsobu, jak kódovat data do bitové posloupnosti. Většina vyplývá ze základních cílů a pouze upřesňuje některé detaily:
- možnost propojování více různých formátů do jednoho - Ačkoliv by bylo možné definovat pro každý typ dat kompletní specifikaci, mnohem vhodnější se jeví separovat jednotlivé oblasti dat do izolovaných skupin a umožnit jejich kombinování.
- možnost efektivnějšího zpracování náhodného přístupu - Náhodný přístup představuje výběr dat nelineárním způsobem s cílem snížit náročnost přístupu k různým částem datového proudu a s ohledem na vyhledávání.
- možnost proudového zpracování a generování dat - V případě, kdy je to vyžadováno, by měl protokol umožňovat separovat části datového proudu tak, aby je bylo možné zpracovat bez nutnosti získání obsahu celého proudu. Tento požadavek by měl umožnit blokové zpracování dat a využití projektu jako přenosového protokolu.
3.1.2. Střední úroveň
Střední úroveň se zaměřuje především na abstrakci a základní techniky.
- typ bloků, katalog bloků, schéma dokumentu, hierarchie a dědění - Je nutné zavést typování bloků pro odlišení jejich datového významu a uvedené techniky by měly vést k vyšší použitelnosti tohoto řešení.
- obecný editační nástroj - Podobně jako v případě textového editoru, měl by existovat obecný zobrazovací/editační nástroj pro přístup k datovým proudům protokolu XBUP. Data by mělo být možné zobrazit jako grafickou stromovou strukturu, či ve formě textu (například se syntaxí XML).
- komprese a šifrování, kontrolní součty, opravné bloky, fragmentovatelné bloky - Jedná se o různé techniky, které bude vhodné implementovat pro zajištění bezpečnosti přenosu a úspory místa či zrychlení přístupu k datům.
- omezení rozsahu dokumentu - Zvláště pro zařízení s omezenou kapacitou paměti či omezenými zdroji je potřeba mít možnost v protokolu definovat i omezení rozsahu hodnot a struktur, případně vytvoření statických formátů.
- komunikační protokol pro vzdálené volání funkcí - Především s ohledem na implementaci katalogu by bylo vhodné definovat protokol pro vzdálené volání funkcí, použitelný také k provádění transformací a další potřeby projektu.
3.1.3. Vysoká úroveň
Vysoká úroveň se zaměřuje na integraci, pokročilejší aplikace a techniky.
- integrace do operačního systému, autokonverze na starší verze, automaticky dostupné pluginy pro zobrazení a další operace - Tyto požadavky se týkají kvality implementace podpory protokolu pro aplikační nasazení.
- skriptovací jazyk a instrukce pro zpracování, integrace do programovacího jazyka, podpora více paradigmat - Je požadována také podpora pro usnadnění práce s protokolem a další vývojářské nástroje, případně vytvoření vlastní varianty programovacího a skriptovacího jazyka.
- hierarchická samopopisnost - Tato technika by měla rozšířit možnosti samopopisnosti bloků z popisu přirozeným jazykem na možnost používání formálních definic, především jako možnost transformace dat na ekvivalentní formy s vyšší úrovní abstrakce.
3.2. Požadavky W3C
Při hodnocení možností binarizace XML konzorciem W3C byla pro tento účel sestavena skupina pro vytvoření jednotného standardu. Tato skupina mimo jiné formulovala požadavky na binární alternativu XML, které je možné aplikovat i na tento projekt. Podle dokumentu XML Binary Characterization, by měla binární forma XML splňovat následující podmínky (hvězdičkou jsou vyznačeny požadavky, které jsou v obdobné formě definovány výše):
Musí splňovat:
- Directly Readable and Writable (*)
- Transport Independence
- Compactness
- Human Language Neutral (*)
- Platform Neutrality (*)
- Integratable into XML Stack
- Royalty Free (*)
- Fragmentable (*)
- Streamable (*)
- Roundtrip Support
- Generality (*)
- Schema Extensions and Deviations
- Format Version Identifier (*)
- Content Type Management
- Self Contained
Měl by splňovat:
- Processing Efficiency (*)
- Small Footprint
- Widespread Adoption
- Space Efficiency (*)
- Implementation Cost
- Forward Compatibility (*)
3.2.1. Zohlednění požadavků W3C
Ne všechny požadavky se ukázaly být vhodné pro tento projektu. Následuje komentář vybraných vlastností:
- Transport Independence - Nezávislost na transportním protokolu by měla plynout z požadavku nezávislosti.
- Compactness - protokol by neměl uvádět žádné přebytečné informace, které nejsou nutné ke zpracování vlastní informace. Mělo by plynout z požadavku na efektivitu.
- Roundtrip Support - Konverze do aplikace a z ní by měla zachovat formát. Mělo by plynout z jednoznačnosti.
- Schema Extensions and Deviations - Mělo by plynout ze střední úrovně.
- Content Type Management - Možnost použití rozdílných kódování a struktur by měla plynout z univerzálnosti.
Následující požadavky nebudou prozatím uvažovány: Self Contained (zpracovatelnost bez znalosti dalších informací), Small Footprint, Implementation Cost, Widespread Adoption
4. Odkazy
Seznam zdrojů, literatury a relevantních odkazů.
XBC - XML Binary Characterization [
http://www.w3.org/TR/xbc-characterization]
Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2008-10-05