Aktuální vydání

celé číslo

07

2020

Řízení distribučních soustav a chytrá města

Měření a monitorování prostředí v budovách a venkovním prostředí

celé číslo

PROMOTIC 2000, strukturovaná data a XML

Automa 3/2000

PROMOTIC 2000, strukturovaná data a XML

Softwarový systém PROMOTIC pro Windows 95/98/NT/2000 je známý široké odborné veřejnosti jako moderní objektově orientovaný softwarový prostředek pro tvorbu aplikací v oblasti vizualizace a řízení technologických procesů. Lze se s ním seznámit na mezinárodních výstavách (MSV Brno, AMPER, Pragoregula) a základní principy a možnosti tohoto softwaru jsou popsány v mnoha článcích v časopisech (např. [2], [3]). Aktuální informace o systému je možné získat ze stránek internetu (www.microsys.cz), odkud lze také stáhnout aktuální verzi programu. Systém PROMOTIC je spolehlivě provozován v různých jazykových verzích na stovkách aplikací v celé České republice i v zahraničí (Slovensko, Polsko, Maďarsko, Ukrajina). Na veletrhu Pragoregula 2000 by systém Promotic 2000 oceněn cenou GRAND PRIX

Obr. 1.

Cílem tohoto článku je seznámit čtenáře s novou nastupující koncepcí ukládání dat pomocí jazyka XML. Předvedeme, že koncepce ukládání dat v systému PROMOTIC je šitá na míru jazyku XML a že import a export dat v systému PROMOTIC v jazyce XML již nemusí znamenat to, co se běžně pod pojmem import a export chápe. Uživatel, seznámený s jazykem XML a sadou nadstavbových architektur, si nyní může vytvářet vlastní uživatelské vývojové prostředí pro tvorbu aplikací v systému PROMOTIC.

Hierarchie konfiguračních dat systému PROMOTIC
Celá základní konfigurace projektu systému PROMOTIC je postavena na tvorbě hierarchického stromu objektů PROMOTIC. Objekt PROMOTIC je základní buňkou systému. Má všechny vlastnosti specifikované firmou Microsoft pro objekty ActiveX (OLE), tzn. že má vlastnosti, metody a události. Vlastnosti a metody lze ovlivňovat pomocí programovacích jazyků (např. VBScript) v dané aplikaci nebo dokonce mimo tuto aplikaci. Událostem objektu lze přiřazovat algoritmy. Objekt PROMOTIC však má ještě další dodatečnou funkčnost, která umožňuje tyto objekty vnořovat do jiných objektů PROMOTIC a tvořit strom objektů. Lze tak vytvářet velmi přehledné projekty, kde jsou data (v tomto případě objekty) tříděna ne podle požadavku editoru, ale podle požadavku projektanta, a tedy podle požadavku dané aplikace.

Hierarchizovaná data v systému PROMOTIC předvedeme na velmi jednoduché ukázce. Projektant má tvořit aplikaci pro kotelnu, která se skládá ze dvou kotlů, a v každém kotli je třeba sledovat teplotu, tlak a výkon. Každý údaj této kotelny by sice mohl projektant samostatně vytvořit a pojmenovat např. takto: TeplotaKotle1, TlakKotle1, VýkonKotle1, TeplotaKotle2, TlakKotle2, VýkonKotle2, ale taková správa dat je však u netriviálních aplikaci těžkopádná. Systém PROMOTIC takovou aplikaci umožňuje řešit hierarchizovaným způsobem. K tomu je zapotřebí vytvořit ještě dva pomocné objekty: Kotel1 a Kotel2. Každý kotel pak bude obsahovat teplotu, tlak a výkon:

- Kotel1 - Teplota
- Tlak
- Výkon
- Kotel2 - Teplota
- Tlak
- Výkon

Taková struktura umožňuje daleko přehlednější správu projektu. Do jednotlivých kotlů lze přidávat další objekty, aniž by se struktura celého projektu komplikovala. Zvětšení složitosti jedné úrovně nekomplikuje celý projekt. Velkou výhodou stromově (hierarchicky) strukturovaných dat je jejich obecnost a široká použitelnost. Vždyť např. celý souborový systém operačního systému Windows je založen na této architektuře, v níž každá složka může obsahovat podsložky. Nová a rychle se prosazující norma pro komunikaci v reálném čase (OPC) je také postavena na základě hierarchických dat.

Obr. 2.

V dalších odstavcích stručně předvedeme novou koncepci, která je určena právě pro správu hierarchických dat, a která (jak ukážeme na konci) umožňuje ve spojení se systémem PROMOTIC velmi účinně prezentovat a ovlivňovat data a konfigurace aplikace v systému PROMOTIC i v jiných programech.

Jazyk XML a hierarchická data
Velmi moderní a obecnou cestou pro zpracování hierarchických dat je jazyk XML. Jazyk XML (eXtensible Markup Language) je zobecnění jazyka HTML (HyperText Markup Language), který byl původně určen převážně pro tvorbu stránek pro službu www sítě internet. Jazyk XML je stejně jako jazyk HTML textová podoba dat s možností upravovat je jakýmkoli běžně dostupným textovým editorem. Jazyk HTML se však zabýval textem, který byl určen pro běžné čtení, a samotný počítač měl jen velmi omezené možnosti, jak tato textová data zpracovávat. Ze syntaktické podstaty jazyka HTML nemohlo být např. zjištěno, že daný text patří např. do objektu kotel1. Proto si jazyk HTML nikdy nemohl činit nároky být obecným formátem pro uchovávání dat.

V jazyku XML je podobně jako HTML definována značka, pomocí které se vymezuje část textu. V HTML jsou to předem definované značky, jako např. <B> (pro vymezení zvýrazněného textu). V jazyce XML však tyto značky nejsou předem určené a uživatel může definovat své vlastní značky, které mohou daleko precizněji určit požadovaný text. Tímto zobecněním však XML přesáhl hranice účelu, ke kterému byl vytvořen HTML, totiž k prezentování textu. Díky velmi jednoduché, ale velmi účinné koncepci obecných značek umožňuje jazyk XML nejen uchovávat texty (tj. internetové stránky, knihy, dopisy atd.), ale také uchovávat a přenášet i obecná data různých zdrojů.

Uveďme si ukázku, jak lze pomocí jediné značky PMOBJ (objekt PROMOTIC) uložit v jazyce XML konfiguraci zmíněného příkladu kotelny:

<PMOBJ name="Kotel1">
<PMOBJ name="Teplota"/>
<PMOBJ name="Tlak"/>
<PMOBJ name="Výkon"/>

</PMOBJ>
<PMOBJ name="Kotel2">
<PMOBJ name="Teplota"/>
<PMOBJ name="Tlak"/>
<PMOBJ name="Výkon"/>
</PMOBJ>

Na tomto příkladu lze také vysvětlit základní jednoduchá pravidla jazyka XML:

  • Každá úroveň dat je určena svým tvarem. Pro úroveň, která nemá obsah (v ukázce Teplota, Tlak a Výkon) je tento tvar: <značka atribut=“hodnota“ />
    Pro úroveň, která má obsah (v ukázce Kotel1 a Kotel2), je tento tvar: <značka atribut=“hodnota“> obsah </značka>
  • Každá značka může mít libovolný počet atributů, které blíže určují danou úroveň dat. V příkladu je atributem značky PMOBJ položka name. Hodnota atributu se píše vždy do uvozovek.
  • Každá úroveň může mít svůj obsah. Obsahem může být zase další úroveň (viz např. obsah úrovně Kotel1) nebo to mohou být jednoduchá textová data. Například objekt Teplota by mohl obsahovat svou hodnotu ve tvaru: <PMOBJ name="Teplota“> 78 </PMOBJ>

Obr. 3.

Podpůrné programy pro jazyk XML
Princip jazyka XML je velmi jednoduchý. Ukázali jsme, že pomocí tohoto jazyka lze ukládat hierarchická data. Jazyk XML se stává normou a předpokládá se, že brzy nahradí nejen jazyk HTML, ale i všechny formáty dat určené pro import a export, jako jsou soubory CSV, INI atd. Bez dodatečných norem a podporujících programů by však invaze jazyka XML nebyla úspěšná. Jazyk XML plně podporuje Microsoft Internet Explorer od verze 5.0. Text XML tento prohlížeč zobrazí v podobě stromu. Výsledný efekt je však neuspokojivé kvality. Omluvou snad může být to, že pro takové prohlížení není text XML přednostně určen.

Chce-li uživatel data XML (např. získaná ze systému PROMOTIC) prohlížet prostřednictvím Internet Exploreru, je mnohem efektivnější vytvořit další textový soubor XSL (samozřejmě v syntaxi jazyka XML), který již pomocí přesně navržených značek (tvořících tzv. jazyk XSL) definuje, jak se mají data XML zobrazovat. Proč je tento postup řešen tak složitě? Mírná složitost zde totiž přináší obrovské zobecnění, kdy je možné se na jedna data XML dívat různými způsoby (je-li vytvořeno více souborů XSL).

V souboru XSL lze také definovat způsob konverze dat XML do jiných dat XML. Tak si uživatel (bez podpory systému PROMOTIC) může např. vytvořit jednotnou konverzi z formátu PROMOTIC do jiného požadovaného formátu (Excel, uživatelský formát apod.). K editaci dat XML slouží, jak již bylo řečeno, jakýkoliv textový editor, ale začínají již vznikat editory XML (např. volně dostupný XML Notepad firmy Microsoft), které dovolují upravovat data inteligentnějším způsobem.

Vzniklo také objektové rozhraní XMLDOM (documet object model), které umožňuje pohlížet na jednotlivé značky ne z pohledu textového dokumentu, ale z pohledu objektu, který může vlastnit podobjekty. Tato koncepce je velmi obdobná stromové struktuře objektů v systému PROMOTIC. XMLDOM umožňuje přistupovat k datům prostřednictvím programovacích jazyků, vyhledávat požadované položky (v našem případě např. všechny hodnoty teplot aplikace) atd.

Vznikly předpisy pro definici platných dokumentů (tzv. DTD nebo Schema), které umožní zjistit, zda jsou data XML dobře sestavena. Tato koncepce poskytuje možnost vytvářet programy vyhledávající chyby v datech nebo programy, které pomohou sestavovat data jen podle předepsaných definic.

Jazyk XML a systém PROMOTIC
Jak bylo uvedeno na začátku článku, jsou konfigurační data aplikace systému PROMOTIC již od podstaty hierarchizovaná. Je tedy velmi přirozené, že pro import a export do textové podoby používá systém PROMOTIC formát jazyka XML. Tvar značek navržený systémem PROMOTIC je velmi obecný a umožňuje do jednoho souboru XML vkládat i více nezávislých konfigurací, odkazovat se na jiné konfigurace v jiných souborech atd. Jednotlivé konfigurace v souborech XML mohou být parametrizovány, tzn. že před importem dat se systém PROMOTIC nejdříve zeptá na parametry a poté podle zadaných parametrů importovaná data upraví.

Importovat a exportovat data lze buď explicitní volbou v menu, nebo pomocí technologie drag and drop. Každý program podporující drag and drop v textovém formátu (např. WordPad) může být už nyní použit pro automatickou konfiguraci neboli import jakékoliv aplikace PROMOTIC.

Závěr
Systém PROMOTIC je jeden z prvních softwarových prostředků, který umí svá data nejen prezentovat v podobě jazyka XML, ale tento jazyk používá jako standardní způsob obecného předávání dat. Lze očekávat, že se XML stane standardem i v jiných programech. Potom může nastat doba, kdy mezi dvěma nezávislými softwarovými aplikacemi bude možné přenášet nejen hodnoty předem zabudovaných dat, ale celé konfigurace částí aplikací.

MICROSYS spol. s r. o.
Tavičská 21
703 00
Ostrava 3
tel.: 069 - 661 43 02
fax: 069 - 661 43 01
e-mail: microsys@microsys.cz

Literatura:

[1] LAURENT, S. S: Tvorba internetových aplikací v XML. Computer Press, 1999.

[2] NÁVRAT, P. – MALINA, Z.: Nové komponenty systému PROMOTIC verze 4.3. AUTOMA, 5, 1999, č. 3-4, s. 56–57.

[3] MALINA, Z.: Vizualizační a řídicí systém PROMOTIC 2000 na MSV ’99 v Brně. AUTOMA, 5, 1999, č. 9-10, s. 56–57.