# XBUP - Dokumentace: Katalog specifikací

### Úvod

Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje popis architektury katalogu a jakým způsobem s ním komunikovat.

O úroveň výše

### Obsah

1. Úvod
2. Realizace katalogu
2.1. Požadované vlastnosti
2.2. Základ katalogu
2.2.1. Úroveň 1
2.2.2. Úroveň 2
2.2.3. Úroveň 3
2.2.4. Další zvažovaná rozšíření
2.3. Rozšíření katalogu
2.3.1. Textové názvy
2.3.2. Textové popisy
2.3.3. Textové komentáře
2.3.4. Grafické ikony
2.4. Rozhraní katalogu
2.4.1. Získání obrazu katalogu
2.4.2. Aktualizace lokální kopie
2.4.3. Čtení z důvodu validace

### 1. Úvod

Základní návrh katalogu je koncipován jako stromová hierarchie s definovanými vlastníky. Ta tvoří základní kostru pro jednotlivé specifikace protokolu, nad nimiž jsou definována pomocná rozšíření, především pro lidská rozhraní. V první fázi bude navržen entitně relační model katalogu, následně bude definován způsob komunikace typu server-klient a nakonec budou definovány jednotlivé rozšíření a doporučení pro jejich implementaci. Katalog bude obsahovat definice datových bloků pro běžné datové struktury.

### 2. Realizace katalogu

Katalog je rozdělen na několik úrovní, které odpovídají jednotlivým úrovním protokolu. Testovací verze katalogu budou implementovány nad relační databází, proto bude pro návrh použit ERD model. Ten pak bude doplněn specifikací jednotlivých tříd a návrhem rozhraní, pod jakými bude přístupný klientským aplikacím.

Na popis konkrétních implementací katalogu se můžete podívat do části dokumentaci katalogové služby.

### 2.1. Požadované vlastnosti

Na katalog jsou kladeny následující požadavky:

- Rozšiřitelnost - Možnost ukládání všech úrovní specifikací i dalších doposud nedefinovaných. Možnost přidávat další specifikace do katalogu a další jejich vlastnosti. Podobně by měl katalog umožňovat komukoliv si dle potřeby přidat vlastní specifikace.
- Řízení verzí - umožnit více verzí specifikací pro zajištění kompatibility
- Vztahy mezi specifikacemi - umožnit realizaci vztahů typu rodič-potomek apod.
- Znovupoužitelnost - umožnit použití specifikace atributu u jiných bloků, či bloků u jiných skupin.
- Komunita - umožnit editaci vybraných specifikací více lidmy, podobně jako WIKI. Možnost přidávání překladů v různých jazycích, rozšiřování specifikací jiných vlastníků, napojení na samostatné specifikace dostupné z nezávislých veřejných zdrojů.
- Zrcadlení - možnost vytváření zrcadel katalogu s možností automatické aktualizace z centrálního zdroje.

Pro pomocné účely jsou jednotlivé oddělitelné části označovány čtyřpísmennými zkratkami.

### 2.2. Základ katalogu

Základ katalogu tvoří nutné součásti pro podporu jednotlivých úrovní katalogu. Cílem je umožnit externí definici specifikaci nezávislou na operačním systému a programu který daný soubor zpracovává. Je tvořen pomocí seznamu definic dokumentů, jehož položky jsou stejného typu, nebo jsou typu definice skupiny. Katalog je možné interpretovat jako jediný soubor a celý jej stáhnout, nebo přistupovat k požadovaným podčástem pomocí komunikačního protokolu.

### 2.2.1. Úroveň 1

Jednotlivé specifikace typu formát, skupina a blok je nutné spojit vazbami tak, aby mohli převzít úlohu specifikace dokumentu. Kromě toho je potřeba jednotlivé položky vhodným způsobem adresovat.

- Adresace pomocí indexu - v tomto případě by jednotlivé specifikace měli přidělené jednoznačné ID. Nevyhovující.
- Adresace pomocí více nezávislých stromů - původní koncepce počítala se zavedením typů atributů už na první úrovni. Jevilo se být vhodné, aby atributy měly jinou stromovou organizaci než specifikační bloky, a proto prvotní návrh předpokládal samostatný strom kategorií pro každý typ položek. V případě specifikačních položek se však tyto stromy značně významově překrývají.
- Adresace pomocí jednoho stromu - vhodným zjednodušením se ukázala možnost vytvořit jediný strom kategorií pro všechny tři typy položek.

Následující ER diagram ukazuje schéma zvolené varianty:

Zdrojový soubor diagramu diagram1.dia

Jedná se tedy o části ITEM a BIND.

### 2.2.2. Úroveň 2

Úroveň 2 zavádí typy atributů jak pro jednoduché atributy, tak pro posloupnosti atributů.

Primárním argumentem pro stromovou organizaci typů atributů by měla být jistá forma dědičnosti. Ta by měla umožnit stanovit některé vlastnosti o položce i bez znalosti explicitních informací o ní.

Tento katalog by měl umět vyjadřovat následující vlastnosti:

- Dědičnost atributových vlastností - hierarchie typů by měla reflektovat dědičnost vlastností atributů
- Deklarace skupin atributů - pro vyšší úroveň protokolu by mělo být možné realizovat definice posloupnosti atributů pro vyjádření určitých vlastností.

Následující ER diagram ukazuje schéma zvolené varianty:

Zdrojový soubor diagramu diagram2.dia

Přidané části jsou označovány TYPE a ATTR.

### 2.2.3. Úroveň 3

Úroveň 3 zavadí do katalogu transformovatelnost bloků. Transformovatelnost je prozatím zavedena pro všechny 4 typy specifikačních položek, ale bude ještě předmětem dalších úvah. Následující návrh předkládá jedno z možných řešení:

Zdrojový soubor diagramu diagram3.dia

Přidaná část je označována jako TRAN.

### 2.2.4. Další zvažovaná rozšíření

Mezi další uvažované rozšíření patří například REV pro zahrnutí revizí do specifikace.

### 2.3. Rozšíření katalogu

Kromě základního katalogu je možné definovat dle potřeby různá rozšíření. Jedná se především o realizaci informací o správcích dané položky a také o její popis a dokumentaci.

### 2.3.1. Textové názvy

Rozšíření NAME přidává k jednotlivým blokům textový název s možností vícejazyčného pojmenování. Název bude možné využít pro řadu lidských rozhraní pro lepší pochopení datového významu bloku. Na název budou pravděpodobně dána určitá omezení, případně může existovat více názvu s různými druhy omezení a jejich převody. Omezení mohou být například zákaz mezer, nebo omezení na malá písmena, či vyloučení speciálních znaků a podobně.

Více o využití se můžete dočíst v části lidská rozhraní.

### 2.3.2. Textové popisy

Obdobně rozšíření DESC je určeno pro krátký textový popis významu bloku, přičemž na rozdíl od názvu zde nebudou dána tak striktní omezení. Nicméně se předpokládá max. jedna věta.

### 2.3.3. Textové komentáře

Třetí obdobné rozšíření COMM slouží pro psaní rozsáhlejších komentářů ke specifikaci. Zvažuje se možnost použití HTML, či WIKI formátování.

### 2.3.4. Grafické ikony

Další z možností je vytvoření katalogu pro grafické znázornění jednotlivých položek katalogů pomocí ikon, či jiných symbolů. Uvažuje se více možných rozměrů bitmap, závislost na jazyku a případně i vektorové formáty.

### 2.4. Rozhraní katalogu

Předpokládá se, že katalog bude pouze rozšiřován a specifikace z něj nebudou rušeny. Proto se doporučuje každou specifikaci důkladně prověřit před umístěním do katalogu. Toto nebude samozřejmě u testovací verze dodrženo. Nicméně daný princip by měl umožnit vytvářet kopie katalogu jako zrcadlové obrazy, případně jako lokální kopie v počítačích bez obav z neaktuálnosti.

Ke komunikaci s katalogem bude potřeba navrhnout rozhraní (vzdálené volání funkcí), neboť interní reprezentace databáze nebude pravděpodobně pevně stanovena. Následují možné případy použití.

### 2.4.1. Získání obrazu katalogu

Toto rozhraní umožňuje získat kompletní obraz všech dat katalogu. Pro tyto účely prozatím postačí přístup do databáze.

### 2.4.2. Aktualizace lokální kopie

Především v případě, kdy chceme vytvářet lokální kopii katalogu pro zpracování na vlastním počítači, jsou stahovány veškeré údaje o daném formátu/skupině/bloku. Obvykle jsou však v popisech zaměřeny na jediný jazyk.

### 2.4.3. Čtení z důvodu validace

V případě, že chceme provést pouze základní ověření, je stahována základní specifikace. Rozšiřovací údaje mohou být pak stahovány v rámci doplnění na úplné čtení.

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