Promotic

Přehled Web technologie v systému PROMOTIC

Web server je aplikace, která poskytuje Web stránky (soubory HTML, XML, BMP, atd.) do Internetu/Intranetu, a tyto stránky pak lze prohlížet pomocí Web prohlížeče (Chrome, Firefox, Edge, InternetExplorer ...). Aplikace PROMOTIC se může stát takovýmto Web serverem a následující text popisuje principy tvorby takové aplikace.

Aplikace PROMOTIC jako Web server má výhody zejména z těchto důvodů:
- Klienti (na jiných počítačích), kteří si chtějí prohlížet data (která jsou na PROMOTIC Web serveru), nemusí instalovat systém PROMOTIC. Klienti mohou tato data prohlížet jen pomocí Web prohlížeče (Chrome, Firefox, Edge, InternetExplorer ...).
- Jiné aplikace (na stejném nebo jiném počítači) mohou využívat nabízená data a zpracovávat je. Takové aplikace mohou být zase aplikace PROMOTIC ale i jiné, které umí pracovat například s XML daty.
- Přenos dat je založen na standardu protokolu HTTP (nebo jeho zabezpečené variantě HTTPS viz HTTPS - zabezpečený HTTP protokol) a proto lze data přenášet i přes Ethernet.
Podnikové firewally standardně HTTP protokol (standardní port 80) a HTTPS protokol (standardní port 443) propouštějí a není tedy nutno dělat velké zásahy do těchto SW.
- Stránky mohou být povoleny jen některým uživatelům. Může se provádět tzv. autorizace klienta zadáním oprávnění v kartě "Oprávnění". (Viz také událost PmaWeb.onNewRequest).


Upozornění! Web server je v systému PROMOTIC licencován, tzn. aby běžel v runtime (s runtime licencí), je nutno přikoupit do runtime licence položku pro síťové klienty (Data nebo Web klient - podle typu nabízených Web komponent - viz dále). Je nutno přikoupit tolik licencí, s kolika klienty se předpokládá, že aplikace bude maximálně komunikovat v jednu chvíli (10 minut). Viz ceník systému PROMOTIC.
- Vývojový klíč má vždy pro testovací účely povoleno 10 klientů typu PmWebClient.
- V aplikaci typu PmFree jsou vždy povoleni 2 klienti typu PmWebClient.


Aplikace PROMOTIC se stane Web serverem, pokud do této aplikace umístíte objekt PmaWeb. Obvykle je takový objekt v aplikaci jen jednou. Tento objekt je zodpovědný za to, že jakákoli Web komponenta systému PROMOTIC může být do tohoto objektu zaregistrována a pak tato komponenta může nabízet své údaje. Každá PROMOTIC Web komponenta (seznam komponent viz dále) má jednoznačný textový identifikátor (dále ho budeme označovat jako "IdKomponenty").

Runtime informace o stavu komunikace PROMOTIC Web serveru s klienty (statistika HTTP přenosů, obsah několika posledních přenosů, atd.) lze pozorovat v položce "/COMM/WebServer" INFO systému.

V objektu PmaWeb lze nastavit tzv. port. Port je důležitý údaj pro přenos dat přes Ethernet (TCP/IP). Standardní hodnota pro HTTP je 80 a pro HTTPS je 443.
Pokud se aplikace PROMOTIC stane Web serverem, pak je každá jeho Web komponenta v intranetu přístupná na URL adrese:
http://NázevPočítače:Port/IdKomponenty/default.htm

nebo pokud port v objektu PmaWeb je nastaven na standardní hodnotu, pak jednodušeji:
http://NázevPočítače/IdKomponenty/default.htm

Stránka default.htm je obvykle jen základní stránka komponenty. Komponenta nabízí ještě (obvykle spoustu) jiných stránek, a to nejen s příponou .htm, ale také .xml, .png, atd. Na stránce default.htm je obvykle seznam těchto dalších možných stránek s odkazy na ně.
Sám objekt PmaWeb nabízí také svou stránku. Je to tedy také komponenta ale s prázdným identifikátorem. Na této stránce je seznam Web komponent aplikace s odkazy na ně. Adresa této stránky je:
http://NázevPočítače:Port/default.htm

Na tuto stránku se také dostanete pomocí jednodušší adresy (na standardním portu):
http://NázevPočítače


Možnosti Web nabízení dat se v systému PROMOTIC rychle rozšiřují. Shrneme proto nyní, co vše může aplikace PROMOTIC jako Web server nabídnout. V aplikaci PROMOTIC mohou být Web komponentou následující objekty:
- PmaData: (viz karta "Web server") Nabízí své hodnoty v podobě XML dat.
- PmaDataTable: (viz karta "Web server") Nabízí své hodnoty v podobě XML dat.
- PmaWorkspace: (viz karta "Web server") Nabízí celou vizuální podobu pracovní plochy jako HTML stránku.
- PmaPanel: (viz karta "Web server") Nabízí vizuální podobu (včetně ovládání a přenosu aktuálních hodnot) jako dynamickou HTML stránku.
- PmaReport: (viz karta "Web server") Nabízí uživatelskou HTML stránku s možností velmi obecných změn této stránky před poskytnutím klientovi.
- PmaAlarmGroup: (viz karta "Web server") Nabízí HTML stránky pro prohlížení stavů a historie systému alarmů/eventů.
- PmaTrendGroup: (viz karta "Web server") Nabízí HTML stránky pro prohlížení průběhů trendů (tabulkově/graficky) a poskytuje XML data pro objekt PmgTrendViewer.
- PmaWebFolder: Umožňuje vytvořit hierarchickou úrověň URL adresy.
- PmaWebDir: Nabízí soubory v určené složce jako statické stránky do Webu.
- PmaWebInfo: Nabízí INFO systém jako HTML stránky.
- PmaWebLang: Nabízí výběr národního jazyka.

Pomocí těchto objektů může aplikace PROMOTIC nabízet následující údaje:

1. Pracovní plocha aplikace (PmaWorkspace)

Pomocí objektu PmaWorkspace lze nabízet rozvržení pracovní plochy aplikace tak, že se nabízí více oken (rámů) současně. V některých rámech jsou zobrazeny HTML stránky objektu PmaPanel, v jiných však mohou být i jiné Web komponenty jako PmaReport, PmaWebDir, atd. Základem pro zobrazení vizualní podoby jsou však dynamické stránky objektu PmaPanel.

Z hlediska licence je klient požadující data z této Web komponenty typu PmWebClient.

2. Obrazy aplikace (PmaPanel)

Obrazy aplikace lze zpřístupnit do Web serveru objektem PmaPanel.

Objekt PmaPanel nabízí své údaje v podobě dynamických HTML stránek, které (pokud je to povoleno v konfigurátoru "Povolit jako Web komponentu") se automaticky vytvářejí. Tyto stránky mají některá omezení oproti obrazům spouštěným přímo v aplikaci PROMOTIC. Popis a omezení viz Web obrazy.
Objekt PmaPanel také nabízí statické stránky daného obrazu. Objekt na žádost Web klienta vytvoří aktuální obrázek (ve formátu PNG souboru) a zašle ho klientovi.

Z hlediska licence je klient požadující data z této Web komponenty typu PmWebClient.

3. Reporty aplikace (PmaReport)

Reporty aplikace lze zpřístupnit do Web serveru objektem PmaReport.

Z hlediska licence je klient požadující data z této Web komponenty typu PmWebClient.

4. Aktuální data ve formátu XML (PmaData, PmaDataTable)

Aplikace umí nabízet aktuální data, která jsou umístěna V objektu PmaData a PmaDataTable. Tyto objekty jsou tehdy Web serverem dat, viz karta "Web server". Nabízená data jsou v podobě XML textu v několika možných formátech. Toto nabízení umožňuje čtení i zápis do objektu PmaData/PmaDataTable. Viz také: Sdílení XML dat.
První použití je komunikace mezi dvěma nebo více aplikacemi PROMOTIC. Jedna aplikace má objekt PmaData/PmaDataTable nastaven jako Web server a druhá má totožný objekt nastaven jako Web klient. Web klient čte nebo zapisuje data do Web serveru (viz metoda PmaData.WriteToWeb a metoda PmaData.ReadFromWeb).
Druhé použití je při prohlížení dynamických HTML stránek. Pokud se nabízejí jen HTML stránky, jejichž obsah se má měnit, pak je nutno obnovovat tyto stránky periodicky, což může být pomalé a způsobuje blikání. Pomocí XML lze vytvořit dynamickou HTML stránku, která na pozadí načítá periodicky XML data a obnovuje jen potřebné vizuální části. Tento přístup je v této době nejlepší pro vytváření "živých" HTML stránek. Pokud chce však projektant takovou stránky vytvořit, pak musí mít znalosti v tvorbě dynamických HTML stránek a používání XML. To může být náročné a proto existují v systému PROMOTIC jednodušší postupy jak vytvářet "živé" HTML stránky - viz dále.
Samozřejmě lze však nabízená XML data využívat ke spoustě jiných učelů, protože práce s XML daty začíná být jedním z největších standardů v počítačovém světě. Díky tomu lze tato data nabízet i do jiných operačních systému jako je UNIX, LINUX, atd.
Z hlediska licence je klient požadující data z této Web komponenty typu PmDataClient.

5. Vytvoření stromové struktury adres Web komponent (PmaWebFolder)

Objekt PmaWebFolder představuje Web adresu, do které lze vložit Web adresy jiných Web komponent. Tak lze vytvořit vhodnou stromovou strukturu adres Web komponent. Například na jedné adrese mohou být Web komponenty všech dat, na další adrese komponenty pro obrazy, na další pro trendy, alarmy, atd.

6. Nabízení HTML stránek vytvořených projektantem aplikace (PmaWebDir)

Objekt PmaWebDir umí nabízet HTML (ale i jiné) soubory, které jsou umístěny v zadané složce na disku. Klient požádá o nějaký soubor a Web server tento soubor nalezne v této složce a odešle ho klientovi.
Toto by však nebylo příliš užitečné, protože takto by se nabízely jen statické stránky. Proto objekt PmaWebDir má koncepci, která umožňuje statický soubor na disku před odesláním klientovi pozměnit na aktuální stav. Je to umožněno pomocí klíčových slov, které se mohou do statické HTML stránky napsat a tato klíčová slova se pak před odesláním zamění za aktuální hodnoty. Klíčové slovo se tak může zaměnit například za číslo, které představuje teplotu, může se zaměnit za určení barvy pozadí, může se dokonce zaměnit za kus HTML textu a zobrazovat tak v různých časech různé informace.
 
Tímto způsobem lze jednoduše vytvářet i velmi obecné "živé" stránky.
 
Z hlediska licence je klient požadující data z této Web komponenty typu PmDataClient.

7. Download souborů

Objekt PmaWebDir umožňuje zvolit složku na serveru, jejiž obsah (soubory) budou nabídnuty Web klientovi k zobrazení nebo stažení. Viz: Download souborů

8. Upload - Přenos souborů z Web klienta na server

Objekt PmaWebDir umožňuje také nabídnout html stránku s formulářem, který umožňuje klientovi vybrat soubor (nebo soubory) umístěné na počítači Web klienta a ty odeslat na server. Viz: Upload - Přenos souborů z Web klienta na server

9. INFO systém

Objekt PmaWebInfo umí nabízet HTML stránky, na kterých jsou informace INFO systému. Tyto Web stránky jsou generovány automaticky a projektant tak může velice snadno zajistit, že informace o běhu aplikace bude moci pozorovat vzdáleně přes Web.
Z hlediska licence je klient požadující data z této Web komponenty typu PmDataClient.

10. Jazykové verze HTML stránek (PmaWebLang)

Objekt PmaWebLang představuje volbu jazyka, tzn. nabízí do Webu stránku, ve které lze vybrat jazyk. Po volbě jazyka se zobrazí seznam komponent, které jsou zaregistrovány do objektu PmaWebLang. Všechny tyto komponenty však již budou zobrazeny ve zvoleném jazyce.
Například pokud zaregistrujete Web obraz (objekt PmaPanel) do objektu PmaWebLang, pak se automaticky přeložená HTML stránka tohoto obrazu bude nabízet tak, že všechny texty obrazu, které jsou zadány pomocí Makro výraz $.text, budou zobrazeny ve zvolenem jazyce.

11. Prohlížeč Web stránek (/#glob/webbrowser)

Prohlížeč Web stránek umožňuje v aplikaci PROMOTIC zobrazovat cizí Web stránky v interním prohlížeči. Viz Prohlížeč Web stránek (/#glob/webbrowser)

Historie:
Pm8.01.05: opraveny chyby bezpečnostní zranitelnosti (software security vulnerabilities):
- Přes objekt PmaWebDir šlo získávat údaje o souborech i mimo složku zadanou v konfigurátoru "Složka se soubory".
- v objektu PmgWTable opraveny některé neinicializované proměnné.
- v objektu PmgTrendViewer opraveny metody kdy parametrem mohl být dlouhý řetězec (např. metody SaveCfg, AddTrend ...)
© MICROSYS, spol. s r.o.