Previous Contents Next

Dodatek D   Instrukcje do programów

D.1   Instrukcja użytkownika programu paramd

D.1.1   Wstęp

Program paramd jest serwerem HTTP, który udostępnia informacje o wartościach parametrów uzyskanych z zewnętrznego źródła, w szczególności ze sterowników przemysłowych. Jest częścią systemu ISL, umożliwiającego kontrolowanie przebiegu procesu technologicznego przez sieć Internet. Pozwala także na ustawianie wartości parametrów. Podstawową jego rolą jest rola serwera pomocniczego dla serwera przetwarzającego dokumenty xslt (np. Apache Cocoon lub ISL xsltd). Po uruchomieniu programu można podglądać wartości parametrów także w postaci HTML, za pomocą dowolnej przeglądarki internetowej.

Wszelkie zauważone błędy proszę zgłaszać do autora: pawel@praterm.com.pl.

D.1.2   Instalacja

Program był pisany i testowany na komputerze z systemem operacyjnym Mandrake Linux 8.1 i 8.2, oraz RedHat Linux 6.2, 7.2 i 7.3. Nie powinno być jednak większych problemów z jego kompilacją i uruchamianiem także w innych dystrybucjach Linuksa.

Instalacja programu polega na skompilowaniu go przez wydanie poleceń:
./configure
make
w głównym katalogu projektu ISL.

Wcześniej może być konieczne ustalenie w pliku paramd/Makefile.in prawidłowej ścieżki do katalogu ze skompilowanymi źródłami systemu SZARP.

Po udanej kompilacji w katalogu paramd powstaje plik paramd, gotowy do uruchomienia. Może być uruchamiany z dowolnego katalogu. Po wydaniu polecenia make install zostanie zainstalowany w odpowiednim katalogu, domyślnie /opt/szarp/bin.

Do kompilacji program wymaga kilku bibliotek, z których część nie musi być standardowo dostępna w systemie. Jedną z nich jest jest libSzarp -- biblioteka systemu SZARP firmy Praterm.

D.1.3   Konfiguracja

Konfiguracja programu jest trzymana w pliku /etc/szarp/szarp.cfg. Dokładny opis formatu tego pliku zawiera dodatek A.1. Parametry są standardowo czytane z sekcji o nazwie paramd. Jeśli nie zostaną w niej znalezione, to będą szukane w sekcji głównej. Są to:

Przykładowy plik konfiguracyjny może wyglądać tak:

PTT=/opt/szarp/leg1/config/PTT.act
parcook_path=/opt/szarp/bin/parcook

:paramd
port=8081
log_level=4
log=/var/log/paramd.log
max_connections=10
timeout=30
ssl_port=8082
keypass=paramd
access=/opt/szarp/resources/paramd_access.conf
key=/opt/szarp/resources/server.pem
cert=/opt/szarp/resources/server.pem
ssl=yes

D.1.4   Uruchamianie

Program może być uruchomiony z parametrami postaci -Dvar=value. Parametry te pozwalają na ustalenie wartości zmiennych przekazywanych do parsera pliku konfiguracyjnego, mogą więc wpływać na konfigurację programu. Dokładny opis można znaleźć w dokumentacji do biblioteki libparNT, będącej częścią systemu SZARP (dodatek A.1).

Po uruchomieniu, jeżeli nie wystąpią żadne błędy, program sam usuwa się w tło, przekazując kod powrotu 0. Jeżeli wystąpił błąd, to kod powrotu jest równy 1. Informacje o błędach i ewentualne inne (zależnie od ustawionego w pliku konfiguracyjnym poziomu komunikatów diagnostycznych), dostępne są w dzienniku programu.

Po uruchomieniu program oczekuje na przychodzące połączenia na zadanym porcie TCP/IP i w odpowiedzi na żądania przeglądarki generuje stronę HTML lub dokument XML o odpowiedniej zawartości.

D.1.5   Działanie serwera

Program implementuje niewielki, ale funkcjonalny podzbiór protokołów HTTP w wersji 1.0 i 1.1. Obsługuje połączenia stałe (nagłówek Connection: Keep-Alive), które zgodnie ze specyfikacją są domyślne przy użyciu wersji HTTP/1.1. Odpowiada wersją protokołu taką samą, w jakiej przyszło zgłoszenie klienta. Jedyną obsługiwaną metodą HTTP jest GET. W przypadku błędów, odsyła informację z kodem błędu HTTP, zgodnie z RFC 2616. Jedynym dostępnym kodowaniem wyjściowym jest UTF-8 (Unicode). Dokumenty serwowane są z nagłówkiem Expires zgodnym z częstotliwością odświeżania wartości parametrów.

Wersja serwera z autoryzacją obsługuje autoryzację Basic HTTP, a połączenia HTTP są tunelowane przez protokół SSL (w przeglądarce zwykle oznacza się to przez podanie protokołu https). Obsługiwane są protokoły SSL wersja 2 i 3 oraz TSL (przy użyciu biblioteki OpenSSL).

Serwer testowany był z następującymi przeglądarkami:

Przechowywana przez program informacja o parametrach ma postać drzewa. Dostęp do niego uzyskuje się przez specyfikowanie ścieżki dostępu podobnie jak do zasobów WWW. Dokładne informacje o postaci ścieżki (lokatora -- URI) znajdują się w następnym rozdziale. Lokator musi być zakodowany w ISO-8859-2, przy czym obsługiwane jest kodowanie za pomocą sekwencji %kod. Są one obowiązkowe np. dla spacji. Alternatywnie, w lokatorze można używać zamiast polskich liter ich angielskich odpowiedników, a zamiast spacji i ukośnika występującego w nazwie parametru znaku podkreślenia (szczegóły w następnym rozdziale).

D.1.6   Dostęp do zasobów serwera

Dostęp do informacji udostępnianych przez serwer wymaga podania, np. w oknie przeglądarki internetowej, odpowiedniego adresu zasobu. Adres ten ma postać:

protokół://adres_serwera:port/ścieżka?opcje

Protokół może przyjmować wartość http dla połączeń zwykłych lub https dla szyfrowanych (o ile ich obsługa została włączona w konfiguracji serwera).

Adres serwera specyfikuje adres internetowy komputera, na którym działa program.

Port (po dwukropku) jest numerem portu, podanym w pliku konfiguracyjnym programu. Dla połączeń szyfrowanych jest to port podany jako wartość parametru ssl_port.

Ścieżka jest to ścieżka dostępu do żądanego zasobu. Może być pusta, co oznacza dostęp do korzenia drzewa parametrów. Jeśli jest niepusta, to zawiera listę kolejnych węzłów drzewa, począwszy od korzenia, oddzielonych ukośnikami. Przykład:
http://localhost:8081/Kocioł 1/Sterownik/temperatura zadana
Ścieżka w tej postaci zostanie poprawnie zinterpretowana tylko wówczas, gdy przeglądarka potrafi odpowiednio zakodować występujące w niej polskie litery i spacje. To także jednak nie wystarczy, jeżeli w nazwie węzła znajdzie się np. ukośnik. W związku z tym polskie litery można zastąpić ich angielskimi odpowiednikami (zamiast "ą" - "a", "Ą" - "A", "ń" - "n", "ż" i "ź" - "z" itp.). Zamiast spacji i ukośnika w nazwie parametru można stosować znak podkreślenia. Tak więc podana ścieżka zapisana zgodnie z tymi zasadami może wyglądać tak:

http://localhost:8081/Kociol_1/Sterownik/temperatura_zadana
Węzły takie jak np. Kocioł 1 są rodzajem katalogów, zawierają tylko inne węzły. Natomiast węzeł temperatura zadana odpowiada parametrowi. Każdy parametr posiada atrybuty, dostęp do nich jest możliwy przez dodanie na końcu ścieżki znaku @ i nazwy atrybutu. Na przykład:

http://localhost:8081/Kociol_1/Sterownik/temperatura_zadana@value
Dostępne są następujące atrybuty: Po znaku zapytania można podać opcje do zapytania. Opcje mają postać nazwa=wartość i są oddzielane od siebie znakiem &. Na przykład:
http://localhost:8081/Kociol_1/Sterownik?_opcja1=wart1&_opcja2=wart2
Obecnie obługiwana jest jedna opcja o nazwie output. Określa ona, co ma pojawić się na wyjściu serwera (zostać wysłane do przeglądarki). Może ona przyjmować następujące wartości: Jeżeli podana ścieżka zawiera nazwę atrybutu, to wartość opcji output nie może być równa html -- jeśli jest różna od xml, to jest traktowana jak text. Wysyłany jest dokument XML zawierający węzeł z wartością atrybutu parametru w kodowaniu UTF-8.

Wszystkie generowane dokumenty XML zgodne są z DTD, które można znaleźć w dodatku B.1.

D.1.7   Ustawianie wartości parametrów

Ustawianie wartości parametrów jest bardzo proste -- polega na dodaniu do ścieżki wpisywanej w przeglądarce opcji put, z wartością będącą żądaną wartością parametru. Ustawianie parametrów możliwe jest tylko przy wykorzystaniu połączenia szyfrowanego. Cała ścieżka może więc mieć postać:

https://localhost:8082/Kociol_1/Sterownik/temperatura_zadana?put=92.3
Należy zwrócić uwagę, że dla różnych typów parametrów dopuszczalne są tylko pewne wartości. Dla większości będą to wartości liczbowe. Inne możliwe zestawy wartości to:

Przy próbie ustawienia wartości parametru przeglądarka poprosi o nazwę użytkownika i hasło. Podany użytkownik musi być znany na komputerze, na którym działa serwer paramd z podanym hasłem, a poza tym użytkownik musi mieć zapisane w konfiguracji serwera dostęp do podanego parametru (zobacz D.1.3). Przy kolejnym ustawieniu wartości parametru podawanie hasła nie będzie już konieczne, chyba że od ostatniego dostępu do parametru upłynęło więcej niż 5 minut. Ma to zabezpieczyć przed sytuacją, gdy ktoś z uprawnieniami ustawi wartość parametru, po czym zostawi komputer z włączoną przeglądarką.

D.2   Instrukcja użytkownika programu xsltd

D.2.1   Instalacja

Program był pisany i testowany na komputerze z systemem operacyjnym Mandrake Linux 8.1 i 8.2, oraz RedHat Linux 6.2, 7.2 i 7.3. Nie powinno być jednak większych problemów z jego kompilacją i uruchamianiem także w innych dystrybucjach Linuksa.

Instalacja programu polega na skompilowaniu go przez wydanie poleceń:
./configure
make
w głównym katalogu projektu ISL.

Wcześniej może być konieczne ustalenie w pliku xsltd/Makefile.in prawidłowej ścieżki do katalogu ze skompilowanymi źródłami systemu SZARP.

Po udanej kompilacji w katalogu xsltd powstaje plik xsltd, gotowy do uruchomienia. Może być uruchamiany z dowolnego katalogu. Po wydaniu komendy make install zostanie zainstalowany w odpowiednim katalogu, domyślnie /opt/szarp/bin.

Do kompilacji program wymaga kilku bibliotek, z których część nie musi być standardowo dostępna w systemie. Jedną z nich jest jest libSzarp -- biblioteka systemu SZARP firmy Praterm.

D.2.2   Konfiguracja

Konfiguracja programu jest trzymana w pliku /etc/szarp/szarp.cfg. Dokładny opis formatu tego pliku zawarto w dodatku A.1. Parametry są standardowo czytane z sekcji o nazwie xsltd. Jeśli nie zostaną w niej znalezione, to będą szukane w sekcji głównej. Są to:

D.2.3   Uruchamianie

Program może być uruchomiony z parametrami postaci -Dvar=value. Parametry te pozwalają na ustalenie wartości zmiennych przekazywanych do parsera pliku konfiguracyjnego, mogą więc wpływać na konfigurację programu. Dokładny opis można znaleźć w dokumentacji do biblioteki libparNT, będącej częścią systemu SZARP (dodatek A.1).

Po uruchomieniu, jeżeli nie wystąpią żadne błędy, program sam usuwa się w tło, przekazując kod powrotu 0. Jeżeli wystąpił błąd, to kod powrotu jest równy 1. Informacje o błędach i ewentualne inne (zależnie od ustawionego w pliku konfiguracyjnym poziomu rejestrowania komunikatów diagnostycznych), dostępne są w dzienniku programu.

Po uruchomieniu program oczekuje na przychodzące połączenia na zadanym porcie TCP/IP i w odpowiedzi na żądania przeglądarki wysyła dokumenty o odpowiedniej zawartości.


Previous Contents Next