Promotic

Podsumowanie technologii Web w systemie PROMOTIC

Web serwer jest aplikacją, która oferuje strony Webowe (pliki HTML, XML, BMP, itd.) do Internetu/Intranetu, i strony te można następnie przeglądać przy pomocy przeglądarki internetowej (Chrome, Firefox, Edge, InternetExplorer ...). Aplikacja PROMOTIC może stać się tekim Web serwerem i poniższy tekst opisuje zasady wytwarzania takiej aplikacji.

Aplikacja PROMOTIC działająca jako Web serwer posiada zalety zwłaszcza z następujących powodów:
- Klienci (na innych komoputerach), którzy chcą przeglądać dane (które są oferowane przez PROMOTIC Web serwer), nie muszą instalować systemu PROMOTIC. Klienci mogą te dane przeglądać przy pomocy przeglądarki internetowej (Chrome, Firefox, Edge, InternetExplorer ...).
- Inne aplikacje (na tym samym lub innym komputerze) mogą wykorzystać oferowane dane i dalej je opracowywać. Takimi aplikacjami mogą być ponownie aplikacje PROMOTIC ale i inne, które potrafią pracować na przykład z danymi XML.
- Transmisja danych jest założona na standardzie protokołu HTTP (lub jego zabezpieczonej wersji HTTPS patrz HTTPS - zabezpieczony protokół HTTP) i dlatego można dane przenosić nawet poprzez Ethernet.
Przez firmowy firewall protokół HTTP (standardowy port 80) i protokół HTTPS (standardowy port 443) standardowo przechodzi i nie jest konieczna ingerencja do tych urządzeń.
- Strony mogą być dostępne tylko niektórym użytkownikom. Może wykonywać się tzw. upoważnienie klienta przez wprowadzenie uprawnień w karcie "Uprawnienia". (Patrz również zdarzenie PmaWeb.onNewRequest).


Uwaga! Web serwer w systemie PROMOTIC podlega licencjowaniu, tzn. żeby działał w runtime (z licencją runtime), jest konieczne zakup pozycji dla klientów sieciowych do licencji runtime (Data lub Web klient - według rodzaju oferowanych Web komponentów - patrz dalej). Jest konieczne zakupić taką ilość licencji, jaka jest maksymalna przewidywana ilość klientów, z którymi aplikacja ma komunikować się w jednej chwili (okres 10 minut). Patrz cennik systemu PROMOTIC.
- Klucz do środowiska deweloperskiego posiada w celach testowania licencje dla 10 klientów typu PmWebClient.
- W aplikacji typu PmFree są zawsze dostępni 2 klienci typu PmWebClient.


Aplikacja PROMOTIC stanie się Web serwerem jeżeli umieścisz do niej obiekt PmaWeb. Zazwyczaj taki obiekt znajduje się w aplikacji tylko raz. Obiekt ten jest odpowiedzialny za to, że jakikolwiek Web komponent systemu PROMOTIC może zostać do tego obiektu zarejestrowany i po tym komponent ten może oferować swoje dane. Każdy PROMOTIC Web komponent (lista tych komponentów patrz dalej) posiada jednoznaczny identyfikator tekstowy (dalej będziemy go oznaczać jako "IdElementu").

Informacje w trybie runtime o stanie komunikacji Web serwera PROMOTIC z klientami (statystyka transmisji HTTP, zawartość kilku ostatnich transmisji, itd.) można obserwować w pozycji "/COMM/WebServer" INFO systemu.

W obiekcie PmaWeb można ustawić tzw. port. Port jest bardzo ważną informacją prza transmisji poprzez Ethernet (TCP/IP). Jego Wartość standardowa wynosi 80 dla HTTP i 443 dla HTTPS.
Jeżeli aplikacja PROMOTIC stanie się Web serwerem, wtedy każdy jego Web komponent jest w intranecie dostępny pod adresem URL:
http://NazwaKomputera:Port/IdElementu/default.htm

lub jeżeli port w obiekcie PmaWeb jest ustawiony na wartość standardową, wtedy prościej:
http://NazwaKomputera/IdElementu/default.htm

Strona default.htm jest zazwyczaj tylko podstawową stroną komponentu. Komponent oferuje jeszcze dużo innych (zazwyczaj pustych) stron, i to nie tylko z rozszerzeniem .htm, lecz również .xml, .png, itd. Na stronie default.htm znajduje się zazwyczaj lista pozostałych możliwych stron z odniesieniami do tych stron.
Sam obiekt PmaWeb również oferuje własną stronę. Jest zatem również komponentem lecz z pustym identyfikatorem. Na tej stronie znajduje się lista Web komponentów udostępnionych aplikacji z odniesieniami do tych komponentów Adres tej strony jest następujcy:
http://NazwaKomputera:Port/default.htm

Lub prościej (na standardowym porcie):
http://NazwaKomputera


Możliwości oferowania danych w systemie PROMOTIC w formie Web-u rozwijają się bardzo dynamicznie. Podsumujmy więc, co wszystko może aplikacja PROMOTIC zaoferować jako Web serwer. W aplikacji PROMOTIC mogą być Web komponentem następujące obiekty:
- PmaData: (patrz karta "Web serwer") Oferuje swoje wartości w formie danych XML.
- PmaDataTable: (patrz karta "Web serwer") Oferuje swoje wartości w formie danych XML.
- PmaWorkspace: (patrz karta "Web serwer") Oferuje cały wygląd graficzny obszaru roboczego w formie strony HTML.
- PmaPanel: (patrz karta "Web serwer") Oferuje wygląd graficzny (włącznie ze sterowaniem i transmisją danych bieżących) w formie dynamicznej strony HTML.
- PmaReport: (patrz karta "Web serwer") Oferuje HTML stronę definiowaną przez użytkownika z możliwością bardzo ogólnych zmian takiej strony przed jej wyświetleniem u klienta.
- PmaAlarmGroup: (patrz karta "Web serwer") Oferuje strony HTML do przeglądania stanu bieżącego i danych historycznych systemu alarmów/eventów.
- PmaTrendGroup: (patrz karta "Web serwer") Oferuje strony HTML do przeglądania trendów (w formie tabelkowej/wykresu) i oferuje dane XML dla obiektu PmgTrendViewer.
- PmaWebFolder: Umożliwia wytworzenie hierarchicznego poziomu adresu URL.
- PmaWebDir: Oferuje pliki w określonym folderze jako statyczne strony do Webu.
- PmaWebInfo: Oferuje INFO system jako strony HTML.
- PmaWebLang: Oferuje wybór języka narodowego.

Przy pomocy tych obiektów aplikacja PROMOTIC może oferować następująca dane:

1. Obszar roboczy aplikacji (PmaWorkspace)

Przy pomocy obiektu PmaWorkspace można w ten sposób oferować rozłożenie obszaru roboczego aplikacji tak, że jest oferowanych kilka paneli (ramek) równocześnie. W niektórych ramkach są wyświetlane strony HTML obiektu PmaPanel, w innych mogą jednak być także inne Web komponenty, jak PmaReport, PmaWebDir, itd. Podstawą do wyświetlenia graficznej postaci są jednak dynamiczne strony obiektu PmaPanel.

Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu PmWebClient.

2. Panele aplikacji (PmaPanel)

Panele aplikacji można udostępnić do Web serwera przy pomocy obiektu PmaPanel.

Obiekt PmaPanel oferuje swoje dane w formie dynamicznych stron HTML, które (jeżeli to jest dozwolone w konfiguratorze "Zezwól jako komponent WEBowy") automatycznie wytwarzają się. Te strony mają niektóre ograniczenia w porównaniu z obrazami uruchomionymi bezpośrednio w aplikacji PROMOTIC. Opis i ograniczenia patrz Web panele.
Obiekt PmaPanel oferuje również statyczne strony danego panela. Obiekt na życzenie Web klienta wytworzy bieżący obraz (pod postacią pliku w formacie PNG) i odeśle go do klienta.

Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu PmWebClient.

3. Raporty aplikacji (PmaReport)

Raporty aplikacji można udostępnić do Web serwera przy pomocy obiektu PmaReport.

Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu PmWebClient.

4. Dane bieżące w formacie XML (PmaData, PmaDataTable)

Aplikacja potrafi oferować dane bieżące, które są ulokowane W obiekcie PmaData oraz PmaDataTable. Te obiekty są wtedy Web serwerem danych, patrz karta "Web serwer". Oferowane dane są dostępne w formie tekstu XML w kilku możliwych formatach. Taki sposób oferowania umożliwia odczyt i zapisywanie danych do obiektu PmaData/PmaDataTable. Patrz również: Współdzielenie danych XML.
Pierwszą możliwością wykorzystania jest komunikacja pomiędzy dwoma lub większą ilością aplikacji PROMOTIC. Jedna aplikacja ma obiekt PmaData/PmaDataTable ustawiony jako Web serwer a następna posiada identyczny obiekt ustawiony jako Web klient. Web klient odczytuje lub zapisuje dane do Web serwera (patrz metoda PmaData.WriteToWeb oraz metoda PmaData.ReadFromWeb).
Drugą możliwością wykorzystania jest przeglądanie dynamicznych stron HTML. Jeżeli oferują się tylko strony HTML, których zawartość ma się zmieniać, wtedy jest konieczne periodycznie wznawianie tych stron, co może okazać się zbyt wolnym i może powodować migotanie. Przy pomocy XML można wytworzyć dynamiczną stronę HTML, która w tle periodycznie odczytuje dane XML i odświeża tylko konieczne części wizualne. Ten sposób jest w chwili obecnej najlepszy jeżeli chodzi o wytwarzanie "żywych" stron HTML. Jeżeli projektant chce takie strony wytworzyć, wtedy musi posiadać znajomość w sferze wytwarzania dynamicznych stron HTML i wykorzystania XML. To może być dosyć trudne i dlatego w systemie PROMOTIC istnieją prostsze sposoby jak wytwarzać "żywe" strony HTML - patrz dalej.
Oczywiście w ten sposób oferowane dane XML można wykorzystać do różnych innych celów, ponieważ praca z danymi XML powoli staje się jednym z największych standardów w świecie komputerów. Dzięki temu można takie dane przenosić również na inne systemy operacyjne, jakimi są UNIX, LINUX, itd.
Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu PmDataClient.

5. Wytworzenie struktury drzewiastej adresów Web komponentów (PmaWebFolder)

Obiekt PmaWebFolder przedstawia adres Web-owy, pod który można włożyć adresy Web-owe innych Web komponentów. W ten sposób można wytworzyć strukturę drzewiastą adresów Web komponentów. Na przykład pod jednym adresem mogę się znajdować Web komponenty wszystkich danych, pod dalszym adresem komponenty obrazów, pod dalszym trendy, alarmy, itd.

6. Oferowanie stron HTML wytworzonych przez projektanta aplikacji (PmaWebDir)

Obiekt PmaWebDir potrafi oferować HTML (ale i inne) pliki, które są ulokowane w ustawionym folderze na dysku. Klient zażąda o jakić plik i Web serwer ten plik odnajdzie w tym folderze i odeśle go klientowi.
To jednak nie było by zbyt pożyteczne, ponieważ w ten sposób byłyby oferowane tylko strony statyczne. Dlatego obiekt PmaWebDir posiada koncepcję, która umożliwia statyczny plik na dysku przed odesłaniem klientowi zmienić według stanu bieżącego. To jest umożliwione przy pomocy słów kluczowych, które mogą zostać zapisane do statycznej strony HTML a następnie dane słowa kluczowe zamienić na wartości bieżące przed odesłaniem. Słowo kluczowe może się w ten sposób zamienić na przykład za numer, który przedstawia temperaturę, może się zamienić za określenie koloru tła czy nawet za część kodu HTML i przedstawiać w różnym czasie różne informacje.
 
W ten sposób można prosto wytwarzać nawet bardzop ogólne "żywe" strony.
 
Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu PmDataClient.

7. Download plików

Obiekt PmaWebDir umożliwia wybrać folder na serwerze, którego zawartość (pliki) zostaną oferowane Web klientowi do wyświetlenia lub pobrania. Patrz: Download plików

8. Upload - Transfer plików z Web klienta do serwera

Obiekt PmaWebDir umożliwia zaoferowanie strony html z formularzem, który umożliwia klientowi wybrać plik (lub pliki) zapisane na komputerze Web klienta i te wysłać do serwera. Patrz: Upload - Transfer plików z Web klienta do serwera

9. INFO system

Obiekt PmaWebInfo potrafi oferować strony HTML, które zawierają informacje INFO systemu. Te strony Webowe są wytwarzane automatycznie i projektant może w prosty sposób zapewnić, że informacje o biegu aplikacji będzie można obserwować zdalnie poprzez Web.
Z punktu widzenia licencji jest klient, wymagający dane z tego Web komponentu klientem typu PmDataClient.

10. Wersje językowe stron HTML (PmaWebLang)

Obiekt PmaWebLang przedstawia wybór języka, tzn. oferuje do Webu stronę, w której można wybrać język. Po wyborze języka zostanie wyświetlona lista komponentów, które są zarejestrowane do obiektu PmaWebLang. Wszystkie te komponenty jednak będą wyświetlane już w wybranym języku.
Na przykład jeżeli zarejestrujesz Web panel (obiekt PmaPanel) do obiektu PmaWebLang, wtedy automatycznie generowana strona HTML danego panela będzie oferować w ten sposób, że wszystkie teksty panela, które są wprowadzone przy pomocy Makro wyrażenie $.text, zostaną wyświetlone w wybranym języku.

11. Przeglądarka stron Webowych (/#glob/webbrowser)

Przeglądarka stron Webowych umożliwia aplikacji PROMOTIC wyświetlanie obcych stron Webowych w wewnętrznej przeglądarce. Patrz Przeglądarka stron Webowych (/#glob/webbrowser)

Historia:
Pm8.01.05: usunięte luki w bezpieczeństwie (software security vulnerabilities):
- Za pośrednictwem obiektu PmaWebDir można było uzyskiwać informacje o plikach również poza folderem ustawionym w konfiguratorze "Folder z plikami".
- w obiekcie PmgWTable zostały poprawione niektóre niezinicjalizowane zmienne.
- w obiekcie PmgTrendViewer zostały poprawione metody, gdzie parametrem mógł być długi łańcuch (np. metody SaveCfg, AddTrend ...)
© MICROSYS, spol. s r.o.