TOPOBASE TM. TOPOBASE White Paper TB Jobs. c-plan AG stránka 1 www.xanadu.cz



Podobné dokumenty
TOPOBASE TM. TOPOBASE White Paper TB Topologie. c-plan AG stránka 1

TOPOBASE TM. Voda Plyn Dálkové vytápění

TOPOBASE TM. TOPOBASE Pro správu sítí: Kanalizace. c-plan AG stránka 1

TOPOBASE TM. TOPOBASE Verze 3. Základní moduly a správa. TB Client. TB Administrator. TB Topology. TB Jobs. TB CoGo. stránka 1www.c-plan.

8.2 Používání a tvorba databází

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Text úlohy. Systémový katalog (DICTIONARY):

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Slovník pro Acronis True Image 2017

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

SQL - trigger, Databázové modelování

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Administrace Oracle. Práva a role, audit

Virtual Private Database (VPD) Jaroslav Kotrč

Technologické postupy práce s aktovkou IS MPP

Obsah SLEDOVÁNÍ PRÁCE... 4

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Zápisování dat do databáze

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Základní informace o co se jedná a k čemu to slouží

Kontingenční tabulky v MS Excel 2010

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

Databáze v MS ACCESS

Co je nového 2018 R2

PostGIS. Luboš Hejduk, Petr Sedlář 2007

Pokročilé typové úlohy a scénáře 2006 UOMO 71

Roční periodická zpráva projektu

Archivace relačních databází

Ukázka knihy z internetového knihkupectví

1. Webový server, instalace PHP a MySQL 13

Virtual private database. Antonín Steinhauser

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

NOVINKY v PROGRAMU DOCHÁZKA ADS

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Mapa Česka:

Práce s velkými sestavami

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Databáze pro evidenci výrobků

WNC::WebNucleatCreator

Elektronická zdravotní karta

O Apache Derby detailněji. Hynek Mlnařík

1 Tabulky Příklad 3 Access 2010

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Databáze I. Přednáška 4

Geografické informační systémy ArcGIS Pavel Juška (jus011) 4. března 2010, Ostrava

04 - Databázové systémy

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

Význam a způsoby sdílení geodat. Ing. Petr Seidl, CSc. ARCDATA PRAHA, s.r.o.

B Organizace databáze na fyzické úrovni u serveru Oracle

36 Elektronické knihy

Tiskové služby v sítích Microsoft. PDF created with pdffactory trial version

Helios RED a Internetový obchod

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Zálohování v MS Windows 10

Motorola Phone Tools. Začínáme

Semestrální práce 2 znakový strom

4. lekce Přístup k databázi z vyššího programovacího jazyka

Novinky v Solid Edge ST7

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

KAPITOLA 12 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Synchronizace číselníků

Postupy práce se šablonami IS MPP

Virtuální privátní databáze

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Úvod do databázových systémů. Ing. Jan Šudřich

APS Administrator.CR

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

4IT218 Databáze. 4IT218 Databáze

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul EDITOR STYLU

Jazz Server osobní nastavení uživatele

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

E-NABÍDKA PARTNER.REDA.CZ

GIS Geografické informační systémy

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Datový sklad KGI/APGPS. RNDr. Vilém Pechanec, Ph.D. Univerzita Palackého v Olomouci

ABRA POS PRINT SERVER

PRO ZAJIŠTĚNÍ AŽ 50% ÚSPORY MULTIFUNKČNÍ VÝDEJNÍ AUTOMATY / / S DISTRIBUČNÍ APLIKACÍ IDS

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

Alena Malovaná, MAL305

Vypracoval: Antonín Krumnikl Mob.: Tel.:

POPIS NOVINEK A VYLEPŠENÍ

5. STRUKTURA PLC PROGRAMU

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Olympus High Res Shot Raw File Photoshop Plug-in. Uživatelská příručka

Databázové systémy. Cvičení 6: SQL

10 Balíčky, grafické znázornění tříd, základy zapozdření

POPIS VÝMĚNNÉHO FORMÁTU XML

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Architektury informačních systémů

ČESKÁ TECHNICKÁ NORMA

Architektury informačních systémů

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V

Administrace Oracle - Správa zdrojů

Transkript:

TOPOBASE TM TOPOBASE White Paper c-plan AG stránka 1 www.xanadu.cz

Úvod Pozadí V dnešní době zažívají geografické informační systémy (GIS) bouřlivý rozvoj a začínají být široce rozšířeny. Vedle tradičního použití provádí současné systémy GIS i další úkoly, například zjišťování polohy apod. Vedle rozšiřování do nových oblastí expandují systémy GIS i ve svém tradičním teritoriu. Zřejmou tendencí je snaha o sloučení heterogenních dat do jediného podnikového informačního systému. Tento vývoj vyžaduje změny v samotné podstatě softwaru GIS. Požadavky v oblasti spolehlivosti a výkonu se ve skutečnosti neliší od standardů pro jakýkoliv jiný průmyslový víceuživatelský serverový software. Dostupnost 24 hodin denně 7 dní v týdnu, bezpečné oddělení dat, izolace uživatelů, robustní mechanizmy zajišťující konzistenci informací - tyto aspekty vnáší do sféry softwaru GIS novou dimenzi. A jediným způsobem, jak odolat rostoucí zátěži a nově vznikajícím požadavkům, je vytvoření softwaru, který zvládne všechny stanovené úkoly pomocí specializovaných návrhových a implementačních řešení. Výzva Počítačová věda již objevila produkt, který naplňuje výše uvedené požadavky a poskytuje komplexní prostředí, které může obsahovat velké množství vzájemných vazeb a mnoho objektů. Konzistence těchto objektů není omezena pouze stavem jediného objektu, ale rozhodujícím způsobem závisí i na stavu ostatních. Nízkoúrovňová omezení zde nabízejí logiku informací na abstraktní obchodní úrovni spolu s obchodními pravidly na vysoké úrovni, která jsou někdy tak složitá, že je lze jen těžko formalizovat. Název takového produktu je Version Control System. Správa verzí Již velmi dlouho se při vývoji softwaru, ve kterém každý objekt zpracovává více uživatelů a ve kterém se logická granularita snižuje až na úroveň znaků, používá správa verzí. Pokud se změnila signatura metody a v celém projektu nebyla odpovídajícím způsobem změněna volání metody, program se nezkompiluje. Správa verzí jiných než textových dat je ještě mnohem složitější. Samozřejmě existuje definovaná struktura a omezená sada dobře formalizovaných pravidel, která se používají na textové znaky, čáry a soubory. Zpracování různých textových formátů nepřináší nic nového, jedná se pouze o převodní filtry. Data v systému GIS mají naproti tomu zcela odlišnou podstatu. Opět se zde objevují nízkoúrovňová omezení (například vazba mezi prostorovými objekty má smysl pouze v případě, že se oba nacházejí v jistém stavu) a obchodní pravidla na vysoké úrovni (jiná vazba je platná pouze v případě dalších změn). c-plan AG září 2004 stránka 2 www.xanadu.cz

Správa verzí prostorových dat v jejich obchodním kontextu proto rozhodně není jednoduchou úlohou. Dlouhodobé transakce Vzájemné vazby mezi daty jsou často tak složité, že jejich ruční vytváření koncovým uživatelem by trvalo dny i týdny. V těchto případech je nutná spolupráce celého týmu. Protože však nesmí dojít k porušení konzistence informací, musí být pracovní prostor oddělen od hlavních výrobních dat. Objem dat v průmyslových aplikacích dosahuje gigabajtů a terabajtů. Nejjednodušší řešení, datový snímek, je zde proto nepoužitelný. Mezi těmito požadavky a funkčností očekávanou od databázového transakčního podsystému existují zřejmé podobnosti. Existují zde ovšem dva rozdíly: 1) "transakce" na obchodní úrovni trvají mnohem déle a musí přestát více restartů databáze mechanizmus databázových transakcí se stává v tomto případě nepoužitelným; a 2) systém musí zaručovat konzistenci dat na vyšší obchodní úrovni. Řešení Když jsou vývojáři vybaveni takovými technologiemi jako správa verzí a transakce, mohou naplnit všechny požadavky kladené na současný software GIS. Společnost C-plan nabízí vlastní implementaci takového produktu dlouhodobých transakcí a správy verzí s názvem Topobase Jobs, který navíc přesně odpovídá dalším zvláštnostem terénních aplikací. Klíčové koncepty Hlavním hráčem v produktu Topobase Jobs je samostatný proces nazývaný dlouhá transakce. Data se mohou změnit pouze v průběhu mutace, libovolná data jsou čtena pouze mimo všechny mutace. Taková data obvykle obsahují důvěryhodnou výrobní informaci, která je ve většině případů platná. Jiným příkladem jsou stará, málo se měnící data. V produktu mohou být data ve stavu Live, Pending nebo Project. Data ve stavu Live jsou pouze pro čtení a jsou společná pro celou společnost (jsou viditelná stejným způsobem ve všech mutacích i mimo všechny mutace). Po zahájení procesu mutace dat je každá změna dat izolována v této mutaci a není viditelná v jiných dlouhých transakcích a mimo dlouhé transakce. Poté, co jsou změny připraveny ke kontrole a schválení, přechází dlouhá transakce (a všechna změněná data v mutaci) do stavu Pending. Data mohu na schválení čekat velmi dlouho a v tomto stavu jsou již viditelná ve všech dalších projektech a mutacích. Tento stav je velmi podobný stavu dat Live, s jedinou výjimkou: i nadále je zde informace o vytvářející dlouhé transakci a celá tato dlouhá transakce může být zrušena nebo vrácena zpět do stavu Project pro pozdější zpracování. Jamile je mutace schválena, je projekt připraven na převod do výrobních dat. Taková dlouhá transakce potom změní svůj stav na Live. V rámci nalezení možné ztráty dat se použije inteligentní sloučení. Spolehlivě vyhledá konflikty, ale zbytečně neobtěžuje uživatele, protože může určité typy konfliktů vyřešit automaticky. Uživatel může kontrolovat a opravit řešení nabídnutá produktem. c-plan AG září 2004 stránka 3 www.xanadu.cz

Funkce Počet souběžných procesů/projektů mutace Neomezený* Počet stavů dat 4: Live, Pending, Projects, Deleted Granularita Job-capable Schéma databáze Granularita Job-enable Tabulka Reverzibilní job-enabling Ano Exportovatelné schéma Job-capable Ano * Nemůže být větší než prostor identifikátorů typu NUMBER(10) Technický přehled Strana serveru Tato kapitola nabízí přehled hlavní infrastruktury, která umožňuje fungování Job na straně serveru. c-plan AG září 2004 stránka 4 www.xanadu.cz

Model metadat Job Informations TB_JOB TB_JOB_TOPIC TB_JOB_FCLASS U1 NAME COMMENTARY DATE_CREATED USER_CREATED USE_STATE FK1 JOB_ TOPIC_ FK1 JOB_TOPIC_ F_CLASS_ Perimeter (optional) States (mandatory) TB_JOB_TOPIC_STATE FK2 FK1 TB_JOB_PERIMETER JOB_ JOB_PERIMETER_TYPE_ GEOM F_CLASS_ FK1 FK2 JOB_TOPIC_ JOB_STATE_ SELECTED DATE_UPDATED USER_UPDATED TB_JOB_STATE TB_JOB_PERIMETER_TYPE NAME DESCRIPTION NAME DESCRIPTION INITIAL_STATE FEATURES_EDITABLE USE_JOB TB_JOB_STATE_TRANSITION FK1 FK2 PREDECESSOR_ SUCCESSOR_ TRANISTION_TYPE TRANSITION_DIRECTION c-plan AG září 2004 stránka 5 www.xanadu.cz

Konfigurace stavů dlouhých transakcí TB_JOB_STATE Initial State (0 / 1) : Hodnota označující, zda se jedná o počáteční stav všech dlouhých transakcí. Důležité: může existovat pouze jeden počáteční stav! Features Editable (0 / 1) : Hodnota označující, zda může být prvek upraven (vložen, aktualizován, odstraněn). TB_JOB_STATE_TRANSITION Predecessor : Jedná se o cizí klíč na předchozí stav ve stavovém diagramu. Successor : Jedná se o cizí klíč na následující stav ve stavovém diagramu. Transition Type (M / D / N) : Hodnota označuje akci softwaru při provedení přechodu stavu. M = sloučit prvky, D = odstranit upravené prvky (zpět), N = nedělat nic. Transition Direction (F / B) : Hodnota označuje, zda se jedná o dopředný (F) nebo zpětný (B) přechod. Dopředný přechod může být procesem sloučení, zpětný přechod může být vrácením procesu sloučení. Důležité: přechod typu D, odstranit, nemůže být nikdy zpětný! Stavy a přechody stavů mohou být snadno nakresleny pomocí stavového diagramu UML. Na dolním obrázku je příklad takového stavového diagramu s odpovídající legendou. Značky v diagramu Tato značka představuje stav dlouhé transakce. Toto je počáteční stav. Tato značka představuje přechod stavu. Směr přechodu může být dopředný nebo zpětný. Zde uvedený typ je M pro sloučení. Tato značka představuje počáteční bod. Následníkem počátečního bodu může být pouze jeden počáteční stav. To znamená, že zde může existovat pouze jeden počáteční stav. Tato značka představuje koncový bod. Vzorový diagram se čtyřmi stavy: c-plan AG září 2004 stránka 6 www.xanadu.cz

DBMS_RLS Hlavním účelem balíku DBMS_RLS je přidání klauzule WHERE do všech příkazů SELECT, INSERT, UPDATE nebo DELETE. Tato klauzule se nazývá predikát. Její definice je uložena v zásadách. Na tomto balíku je založen VPD. Je například možné definovat predikát dynamicky pomocí parametru USER. Tento způsob se používá v případě, že se mají uživateli zobrazit pouze některé řádky tabulky (-> virtuální PRIVATE databáze). Koncept TB3-Job má stejný cíl: zobrazit pouze některé řádky podle vybrané dlouhé transakce. Pro TB3-Job není predikát založen na informacích o uživateli, ale na informacích o dlouhé transakci. Predikát není nic jiného, než funkce pl/sql vracející klauzuli WHERE, která se přidá ke všem příkazům SELECT, INSERT, UPDATE nebo DELETE. Tato funkce se aktivuje přidáním zásady (DBMS_RLS.ADD_POLICY) k odpovídající tabulce nebo pohledu. Zásada je definována cílovou tabulkou nebo pohledem, vlastníkem schématu cílové tabulky nebo pohledem a funkcí (predikátovou funkcí). Kontext Kontext může být zobrazen jako globální proměnná pro sezení Oracle. Systém ukládá různé kontextové informace: Id dlouhé transakce Stav prvku pro aktuální dlouhou transakci Informace o tom, zda je dlouhá transakce použita v predikátu Atributy v datové tabulce Informace dlouhé transakce jsou uloženy v TB_JOB VERSION Hlavní tabulka [tabulka] obsahuje pouze atribut JOB_VERSION. Do tabulky TB_JOB VERSION je přidáno 6 atributů: Pole JOB_VERSION JOB_OLD_VERSION JOB_ JOB_OPERATION_ OS_USER_NAME OPERATION_DATE STATE Popis Povinné: verze objektu Volitelné: předchozí verze objektu Povinné: NUMBER Povinné: NUMBER 1: INSERT, 2: UPDATE, 3: DELETE Uživatel operačního systému Datum operace Stav prvku. Při inicializaci tabulky dlouhé transakce je JOB_VERSION nové číslo (vytvořené pomocí sekvence TB_JOB_VERSION_S) pro každý objekt, JOB_OLD_VERSION je -1 pro každý objekt, JOB_ je 0 pro každý objekt, JOB_OPERATION_ je 1 pro každý objekt. Čísla verzí (JOB_VERSION) jsou spravována pomocí sekvence. JOB_VERSION je primární klíč. Predikát Predikát je možné definovat pro každý koncept dlouhé transakce. Je třeba změnit pouze funkci pl/sql. c-plan AG září 2004 stránka 7 www.xanadu.cz

Triggery v datové tabulce Uživatel schématu obsahuje pro každou zapnutou třídu prvků soubor [FeatureClass]_. Tento balík obsahuje vnořenou tabulku třídy prvků a proceduru pro uložení řádků do této tabulky. Druhá procedura načte hodnoty z této tabulky, vkládá je do třídy prvků a odstraňuje je z vnořené tabulky. Jedna proměnná definuje, zda se s příkazem INSERT třídy prvků pracuje jako v funkcí dlouhé transakce nebo ne (BOOLEAN [enableinserttrigger]). Před provedením akce triggerů se volá funkce Ensure, která provede některé nezbytné kontroly. Insert Trigger: Název triggeru se skládá z názvu třídy prvků a přípony _JBI. Jedná se o BEFORE INSERT každé události řádku a provede aktualizaci [FeatureClass].job_version novou hodnotou sekvence pro verzi. Potom se vloží atribut job_version s novou hodnotou ze sekvence a do TB_JOB_VERSION se vloží nový řádek: JOB_VERSION JOB_OLD_VERSION JOB_ JOB_OPERATION_ Hodnota sekvence -1 Skutečné JOB_ 1 c-plan AG září 2004 stránka 8 www.xanadu.cz

Update Trigger: Aktualizace je tvořena dvěma triggery. Jedním triggerem řádku BEFORE UPDATE (_JBU) a jedním triggerem příkazu AFTER UPDATE (_JAU). Trigger řádku BEFORE UPDATE zachová starý řádek a nový řádek s hodnotami z aktualizace. Musí proběhnout před událostí, aby mohl zachovat původní řádek nastavením všech hodnot :new na hodnoty :old. Nový řádek získá job_version ze sekvence a je zachován ve vnořené tabulce balíku. Potom se nový řádek vloží do TB_JOB_VERSION: JOB_VERSION JOB_OLD_VERSION JOB_ JOB_OPERATION_ Hodnota :OLD.job_version Skutečné 2 sekvence JOB_ Trigger AFTER UPDATE nastaví proměnnou enableinserttrigger na FALSE a vloží uchované řádky z vnořené tabulky do třídy prvků. Potom se proměnná enableinserttrigger nastaví na TRUE. Delete Trigger: Odstranění je tvořeno dvěma triggery. Jedním triggerem řádku BEFORE DELETE (_JBD) a jedním triggerem příkazu AFTER DELETE (_JAD). Trigger řádku BEFORE DELETE zachová starý řádek a nový řádek s hodnotou job_version ze sekvence ve vnořené tabulce pouze v tom případě, že prvek nebyl vytvořen v této dlouhé transakci. Potom se nový řádek vloží do TB_JOB_VERSION: JOB_VERSION JOB_OLD_VERSION JOB_ JOB_OPERATION_ Hodnota :OLD.job_version Skutečné 3 sekvence JOB_ Pokud byl prvek vytvořen touto dlouhou transakcí, budou řádky z TB_JOB_VERSION a TB_UF odstraněny. Nebude zachován žádný řádek. Může začít událost odstranění. Trigger AFTER UPDATE nastaví proměnnou enableinserttrigger na FALSE a vloží uchované řádky z vnořené tabulky do třídy prvků. Potom se proměnná enableinserttrigger nastaví na TRUE. Procedura Ensure: - Tato procedura kontroluje následující proměnné: Pokud je aktuální JOB_ = 1, zobrazí se chybové hlášení sdělující, že je vybrána kořenová dlouhá transakce Pokud je skutečné JOB_ < 0, zobrazí se chybové hlášení sdělující, že není vybrána žádná dlouhá transakce a není možné provést žádnou úpravu Pokud je dlouhá transakce uzamčena, zobrazí se chybové hlášení sdělující, že není možné provést žádnou úpravu, když je dlouhá transakce uzamčena Pokud není možné upravovat předmět třídy prvků (PENDING, LIVE, DELETED), zobrazí se chybové hlášení sdělující, že není možné upravovat předmět třídy prvků. Strana klienta c-plan AG září 2004 stránka 9 www.xanadu.cz

Správa dlouhých transakcí pomocí grafického uživatelského rozhraní Spravuje dlouhé transakce v nástroji pro správu dlouhých transakcí podobném Průzkumníku. Typy dlouhých transakcí je možné vytvořit, upravit nebo odstranit. Dlouhé transakce lze vytvořit, vybrat a změnit jejich stav. Správa sloučení a řešení konfliktů pomocí grafického uživatelského rozhraní - Změnu stavu dlouhých transakcí je možné provést vybráním odpovídajícího stavu. c-plan AG září 2004 stránka 10 www.xanadu.cz

Pokud se vyskytnou konflikty, program je nalezne a zobrazí. Závěr Popisované řešení splňuje všechny složité požadavky aktuálních aplikací Geoinformačních systémů. Především je třeba ho vzít v úvahu v takových případech, kdy jde o spolupráci a separaci změn spolu se spolehlivou a inteligentní ochranou před ztrátou dat. Další informace Další informace o funkcích systému Topobase od společnosti C-plan jsou dostupné na internetové adrese: http://www.c-plan.com/ a u prodejců produktu. latest edition: 23.09.2003 vytvořil CMO c-plan, with a headcount of more than. 60, is one of the leading GIS solution providers in Europe. The TOPOBASE TM solution developed by c-plan is based on the ORACLE Spatial 9i database and on Autodesk graphic technology. With these standards, there are application modules available for all work in planning, processing, managing and analyzing geodata. Compliance with OpenGIS specifications means easy, cost-efficient and, above all, future-proof work processes. Three locations Gümligen at Berne (CH), Steinheim/Stuttgart (D) and Münster (D) and qualified distribution partners in Switzerland, Germany, Austria, Sweden, Belgium, Italy and Luxemburg, Iceland and USA ideally serve the GIS market. For further information: c-plan ag Worbstrasse 223 CH - 3073 Gümligen Phone: +41 31 958 20 20 Fax: +41 31 958 20 22 http://www.c-plan.com XANADU a.s., České Budějovice, info@xanadu.cz c-plan AG září 2004 stránka 11 www.xanadu.cz