Strona główna
Wstęp
Celem pracy było stworzenie wygodnych, łatwych w użyciu aplikacji
internetowych przeznaczonych dla osób przeglądających internetowe strony
Wydziału. Aplikacje napisano z użyciem nowoczesnych technologii,
takich jak PHP 4, DHTML, czy XML.
Zaprojektowano i wykonano następujące oprogramowanie:
- Plany Wydziału z systemem wyszukiwania pracowników to
aplikacja umożliwiająca osobom przeglądającym internetowe strony Wydziału
zapoznanie się z topografią budynku i z przeznaczeniem większości
pomieszczeń. W jej ramach jest również dostępny system wyszukiwania
pracowników.
- Wirtualne Laboratorium Komputerowe to aplikacja wizualizująca
wartości zmiennych SNMP uzyskanych od komputerów stojących w Laboratorium
Komputerowym. Zasadniczo informacje te przeznaczone są dla administratorów
sieci, jednak mogą być również wykorzystywane przez bardziej zaawansowanych
użytkowników Internetu.
- Edytor do tworzenia stron domowych to aplikacja umożliwiająca
pracownikom nie znającym języka HTML tworzenie swoich prywatnych stron
domowych.
Pierwsza część pracy zawiera wprowadzenie do zagadnień związanych z WWW.
W rozdziale drugim przedstawiono architektury aplikacji internetowych.
Rozdział trzeci zawiera opis technologii internetowych wykorzystanych w pracy.
Głównym rozdziałem pracy jest rozdział czwarty, w którym można znaleźć
szczegółowy opis wykonanych aplikacji. Podsumowanie całego projektu znajduje
się w ostatnim, piątym rozdziale.
Działające aplikacje można również zobaczyć na stronach
wydziałowego serwisu WWW, dostępnego pod adresem
http://www.mimuw.edu.pl.
Opis zrealizowanych aplikacji
Plany Wydziału z systemem wyszukiwania pracowników
Funkcjonalność narzędzia
Głównym celem aplikacji jest umożliwienie osobom przeglądającym
internetowe strony Wydziału zapoznanie się z topografią budynku i
przeznaczeniem poszczególnych pomieszczeń na wszystkich piętrach.
W jej ramach jest również dostępny wygodny system wyszukiwania
pracowników. Pozwala on na sprawdzenie, czy istnieje pracownik o danych
personaliach, a jeśli tak — gdzie znajduje się jego pokój.
Sposób użytkowania
Obsługa aplikacji jest bardzo prosta. Na stronie początkowej znajduje się
obrazek z rysunkiem budynku Wydziału z podziałem na piętra. Po kliknięciu
na fragment obrazka, który odpowiada danemu piętru, otwiera się strona
z planem tego piętra podzielona na trzy ramki.
W górnej ramce po lewej stronie znajdują się
dowiązania do innych pięter i numer bieżącego piętra. Kliknięcie na środkowe
dowiązanie powoduje otwarcie okna systemu wyszukiwania pracowników.
Zostanie on szczegółowo opisany w dalszej części rozdziału. Dowiązanie po prawej
stronie prowadzi do strony początkowej. W środkowej ramce znajduje się
obrazek z planem bieżącego piętra. Ramka jest automatycznie przewinięta w
prawo, aby ukryć część budynku należącą do Wydziału Biologii. Na planie są naniesione
numery pokojów, a w przypadku pomieszczeń, które nie mają numeru ich nazwa.
Po kliknięciu na fragment obrazka, który odpowiada danemu pomieszczeniu, zarys
tego pomieszczenia zostaje otoczony czerwonymi narożnikami, a w
dolnej ramce pojawia się strona z jego opisem.
Wyróżniamy następujące rodzaje pomieszczeń:
- sala wykładowa — strona z opisem zawiera jedynie informację, że
pomieszczenie jest salą wykładową;
- pokój nauczycieli akademickich — strona z opisem pokoju zajmowanego
przez nauczycieli akademickich zawiera dowiązania do generycznych stron domowych
tych pracowników. Strony te otwierają się w w dolnej ramce i można na nich
znaleźć takie informacje jak:
- imię i nazwisko,
- stopień i tytuł naukowy,
- zajmowane stanowisko,
- zainteresowania naukowo-badawcze,
- numer telefonu (opcjonalnie),
- dowiązanie do prywatnej strony domowej pracownika
(opcjonalnie);
- pokój należący do instytutu — strona z opisem zawiera informację
o przeznaczeniu pomieszczenia i dowiązanie do strony domowej instytutu;
- pokój dziekanatu — strona z opisem zawiera nazwę sekcji dziekanatu
i dowiązanie do jego strony głównej. W przypadku Sekcji Studenckiej
na stronie znajduje się informacja o godzinach otwarcia dla studentów;
- pokój laboratorium komputerowego — strona z opisem zawiera
informację o przeznaczeniu pomieszczenia i dowiązanie do strony głównej
laboratorium;
- biblioteka — strona z opisem zawiera dowiązanie do strony głównej
biblioteki;
- pomieszczenie administracyjne — strona z opisem zawiera
informację o przeznaczeniu pomieszczenia i dowiązanie do strony głównej
sekcji, do której należy pomieszczenie;
- pomieszczenie użyteczności publicznej, np. bufet, kiosk —
strona z opisem zawiera nazwę pomieszczenia i ważne informacje o nim, np.
godziny otwarcia, zasady korzystania.
Jak wcześniej wspomniano kliknięcie na dowiązanie "Szukaj
pracownika"
powoduje otwarcie okna systemu wyszukiwania pracowników uwidocznionego na
rysunku 4.1.
Po wpisaniu w pole tekstowe
wzorca wyszukiwania i kliknięciu na przycisk "Szukaj" otwiera się strona
zawierająca informację o liczbie znalezionych pracowników oraz ich listę
uporządkowaną alfabetycznie wg nazwisk i imion. Przykładowy rezultat
wyszukiwania ze wzorcem "min" pokazano na rysunku 4.2.
rys. 4.1 Okno startowe systemu
wyszukiwania pracowników
rys. 4.2
Wynik wyszukiwania
Do listy znalezionych należą pracownicy, których
nazwisko lub imię zawiera wzorzec wyszukiwania. Wielkość liter nie jest
uwzględniana. Polskie znaki narodowe dopasowują się do odpowiadających im
znaków łacińskich. Kliknięcie na personalia pracownika powoduje wykonanie
następujących akcji:
- w oknie głównym otwiera się strona piętra, na którym znajduje się pokój
pracownika,
- środkowa ramka zostaje przewinięta tak, aby ten pokój znalazł się w polu
widzenia,
- na planie piętra pokój jest zaznaczany przez otoczenie czerwonymi
narożnikami,
- w dolnej ramce jest otwierana generyczna strona domowa
pracownika.
Kliknięcie na numer pokoju daje ten sam wynik, z wyjątkiem
tego, że w dolnej ramce otwiera się strona z opisem tego pokoju. Użytkownik
może dokonać ponownego wyszukiwania. Kliknięcie na przycisk "Powrot"
powoduje powrót na stronę z formularzem, a tam kliknięcie na przycisk
"Wyzeruj" powoduje wyczyszczenie pola tekstowego i umożliwia ponowne
wpisanie wzorca wyszukiwania. Zarówno na stronie z formularzem, jak i na stronie z wynikami
wyszukiwania znajduje się przycisk "Zamknij". Kliknięcie na niego powoduje
zamknięcie okna systemu wyszukiwania pracowników.
Architektura
Aplikacja ma architekturę trzywarstwową. Baza danych Oracle zarządza danymi,
serwer WWW przetwarza dane a przeglądarka je wizualizuje (rys. 4.3).
rys. 4.3
Architektura aplikacji
Dane o pracownikach znajdują się w Systemie Obsługi Spraw Pracowniczych
SOSP
będącym modułem Uniwersyteckiego Systemu Obsługi Studiów USOS.
Głównym zadaniem USOS jest przechowywanie i przetwarzanie informacji dotyczących
studentów, pracowników danej uczelni oraz oferowanych przez nią studiów.
Pierwotnie dane z SOSP miały być ściągane przez aplikację
bezpośrednio przez wykonywanie zapytań do bazy danych. Jednak z uwagi na to,
że dane zmieniają się rzadko, zdecydowano się na inne rozwiązanie.
Aktualizacji danych potrzebnych aplikacji dokonuje uniksowy program
cron. Cron jest programem-demonem, który wywołuje określone
komendy, zgodnie z
ustalonym harmonogramem. Na potrzeby opisywanej aplikacji cron w ustalonych
odstępach czasu wywołuje skrypt napisany w języku powłoki uniksowej.
Skrypt ten ściąga potrzebne aplikacji dane do plików
tekstowych o określonym formacie. Pliki te znajdują się w ustalonym katalogu.
Ponieważ wydziałowy serwer WWW jest uruchamiany na komputerze, na którym nie
ma zainstalowanego klienta bazy danych Oracle, skrypt musi ściągać dane ze
zdalnej maszyny. Realizowane jest to za pomocą programu ssh, który umożliwia
uruchomienie klienta Oracle na zdalnym komputerze. Strumień wyjściowy tego klienta
jest przekierowywany do odpowiednich plików.
Dane wiążące pracownika z jego pokojem i generyczną stroną domową znajdują
się w pliku pracownicy.txt. Każdy wiersz pliku dotyczy jednego pracownika i
ma następujący format:
nr_piętra:nr_pokoju:nazwa_pliku_z_danymi_do_strony_generycznej:personalia
Z każdym pracownikiem jest związany plik z danymi do strony generycznej.
Jest to plik w formacie HTML bez nagłówka i stopki. Nagłówek i stopka
są doklejane przez odpowiedni skrypt PHP w trakcie dynamicznego tworzenia
strony pracownika.
Technologia
Użytkownik klikając na plan danego piętra w różnych miejscach otrzymuje
informacje o przeznaczeniu pomieszczeń na tym piętrze. Efekt ten
uzyskuje się dzięki zastosowaniu mapowania obrazka w języku HTML po
stronie klienta.
Ponieważ dane dotyczące pracownika uzyskuje się dynamicznie, więc większość stron
aplikacji również trzeba tworzyć dynamicznie. Jako język tworzenia
stron wybrano PHP.
Skrypty PHP używane przez aplikację to:
- pokoj.php3 — skrypt tworzący stronę z opisem pokoju
nauczycieli akademickich. Wywołuje się go z jednym argumentem — numerem
pokoju;
- pracownik.php3 — skrypt tworzący generyczną stronę
nauczyciela akademickiego. Wywołuje się go z dwoma argumentami — nazwą
pliku z danymi do strony i argumentem określającym, czy strona ma mieć
standardowy dla wydziałowego serwisu WWW nagłówek i stopkę.
- {parter,pierwsze,drugie,trzecie,czwarte}.php3 —
skrypty tworzące strony z planami pięter. Gdy strona jest otwierana przez
system wyszukiwania pracowników, skrypt jest wywoływany z czterema argumentami
określającymi współrzędne narożników otaczających zaznaczany pokój i
długość, o jaką należy przewinąć środkową ramkę. W przeciwnym przypadku skrypt
jest wywoływany bez argumentów.
- znajdz.php3 — skrypt tworzący stronę z wynikami generowanymi
przez system wyszukiwania pracowników. Skrypt wywołuje się bez
argumentów, zmienne przekazuje się z formularza wyszukiwania.
Aby obsługa aplikacji była jak najwygodniejsza, użyto technologii DHTML.
Po kliknięciu myszką na fragment planu dotyczący danego pokoju zarys tego
pokoju otaczany jest czerwonymi narożnikami. Ten sam rezultat osiąga się
wówczas, gdy użytkownik kliknie na dowiązanie będące wynikiem wyszukiwania pracownika.
Efekt ten uzyskuje się przez zastosowanie dynamicznie pokazywanych i
chowanych warstw. Każdy z narożników znajduje się na osobnej warstwie. Każda
z tych warstw jest przesuwana, chowana i pokazywana przez odpowiednie
funkcje w języku JavaScript.
Efekt dynamicznie zmieniającego się obrazka można by również zrealizować po
stronie serwera używając PHP z biblioteką graficzną GD GD.
Byłoby to jednak rozwiązanie gorsze, ponieważ każde kliknięcie na plan
powodowałoby stworzenie na serwerze nowego obrazka. Przeglądarka musiałaby
na nowo ściągnąć uaktualniony obrazek.
Języka JavaScript używa się również do:
- przewijania ramki zawierającej plan piętra,
- otwierania okna systemu wyszukiwania pracowników i obsługi
przycisków tego okna,
- otwierania stron w oknie głównym po kliknięciu dowiązania na
stronie z wynikami wyszukiwania i zaznaczania pokojów na planie w tym
oknie.
Wirtualne Laboratorium Komputerowe
Funkcjonalność narzędzia
Aplikacja służy do wizualizacji na stronach WWW informacji uzyskiwanych
przez klienta SNMP od komputerów w Laboratorium Komputerowym.
Korzystając z protokołu SNMP
(ang. Simple Network Management Protocol) administrator może
zlokalizować problemy w sieci TCP/IP. Klient SNMP kontaktuje się z serwerem
SNMP działającym na zdalnej maszynie. Serwer zarządza zbiorem zmiennych
prostych i tabel. Standard MIB (Managament Information Base) definiuje zbiór
zmiennych, którymi posługują się serwery SNMP, oraz ich semantykę. Zmienne
proste przechowują proste statystyki, np. liczbę
otrzymanych pakietów, a tablice — bardziej skomplikowane, np. pamięć ARP.
Niektóre zmienne są zebrane w grupy, np. zmienne dotyczące protokołu IP.
SNMP korzysta z modelu pobierz-zapisz. Klient wysyła prośby do serwera i
otrzymuje od niego odpowiedzi. W opisywanej aplikacji jedynie pobiera się
dane od serwera. Więcej informacji na temat SNMP można znaleźć
np. w Stevens98 i ComStev97.
Sposób użytkowania
Na stronie początkowej znajduje się obrazek z planem Laboratorium
Komputerowego. W Laboratorium jest rozmieszczonych kilkadziesiąt komputerów
podłączonych do lokalnej sieci. Każdy komputer może zostać przestawiony
w inne miejsce, jak
również może zostać zmieniona jego nazwa i numer IP. W związku z tym nie
zdecydowano się na wizualizację rzeczywistego położenia komputerów i
naniesienie na plan ich nazw. Zamiast tego na obrazku znajdują się
rysunki komputerów podłączonych do gniazd sieciowych. Każde gniazdo ma
swój unikalny numer (rys. 4.4).
Nazwa komputera pojawia się dynamicznie, po przeniesieniu wskaźnika myszki
na zarys tego komputera. Jeżeli nie można kliknąć na rysunek komputera przyłączonego
do danego gniazda i nazwa tego komputera nie jest uwidaczniana, to oznacza,
że w rzeczywistym świecie do tego gniazda nie jest podłączony żaden komputer.
W przeciwnym przypadku otwiera się okno z listą zmiennych SNMP.
Po kliknięciu na nazwę zmiennej otrzymujemy stronę z wartością zmiennej.
Tablice są wizualizowane jako tabele HTML. Rysunek 4.5
przedstawia przykład wizualizacji zmiennej.
rys. 4.4
Fragment planu laboratorium
rys. 4.5
Przykład wizualizacji zmiennej SNMP
Architektura
Aplikacja ma architekturę trzywarstwową. Serwer SNMP zarządza danymi, serwer
WWW przetwarza dane, a przeglądarka je wizualizuje.
Dane wiążące nazwę komputera z gniazdem, do którego jest podłączony, znajdują
się w pliku KOMPUTERY. Każdy wiersz pliku dotyczy jednego komputera i ma
następujący format:
nr_gniazda:nazwa_komputera:haslo:wspolrzedne
Pole "haslo" zawiera hasło dostępowe serwera SNMP (community), a pole
"wspolrzedne" — współrzędne rysunku danego komputera na obrazku.
Znając nazwę komputera można wysłać żądanie do
serwera SNMP uruchomionego na tym komputerze.
Żeby uzyskać wartość zmiennej prostej, aplikacja używa programu
snmpget a
żeby uzyskać wartość zmiennej tablicowej — programu snmpwalk. Oba programy
wchodzą w skład pakietu ucd-snmp. Nazwy zmiennych przechowywuje się w pliku MIB.
Nazwa każdej ze zmiennych znajduje się w osobnym wierszu. Grupy zmiennych
są oddzielone od siebie pustym wierszem.
Technologia
Użytkownik klikając na komputery narysowane na planie uzyskuje informacje o
wartości zmiennych SNMP dotyczących tych komputerów. Efekt ten uzyskuje się przez
zastosowanie mapowania obrazka w języku HTML po stronie klienta.
Skrypty PHP używane przez aplikację to:
- lab.php3 — skrypt tworzący stronę z planem Laboratorium.
Korzysta z pliku KOMPUTERY;
- snmp.php3 — skrypt tworzący stronę z dowiązaniami, których nazwy
są nazwami zmiennych SNMP. Korzysta z pliku MIB.
Wywoływany jest z jednym argumentem — nazwą komputera, do którego będą
wysyłane zapytania;
- snmpget.php3 — skrypt tworzący stronę z wyświetloną
wartością zmiennej prostej. Wywoływany jest z dwoma argumentami — nazwą
komputera, do którego będzie wysłane zapytanie i nazwą zmiennej, której
dotyczy zapytanie;
- snmptable.php3 — skrypt tworzący stronę z wyświetloną
tabelą będącą wizualizacją zmiennej tablicowej. Wywoływany jest z dwoma argumentami
— nazwą komputera, do którego będzie wysłane zapytanie i nazwą zmiennej, której
dotyczy zapytanie.
Dzięki użyciu języka JavaScript, aplikacja jest wygodna w użyciu. Funkcje
napisane w tym języku powodują otwarcie okna ze zmiennymi SNMP i zapewniają
obsługę przycisków tego okna.
Edytor do tworzenia stron domowych
Funkcjonalność narzędzia
Celem aplikacji jest umożliwienie pracownikom nie znającym języka
HTML ani żadnych wyrafinowanych edytorów tego języka tworzenie i redagowanie
swoich prywatnych stron domowych.
Użytkownik wypełnia formularz wpisując dane na swój temat.
Akceptacja formularza powoduje utworzenie auktualnionej strony WWW
dostępnej pod standardowym adresem pracownika
http://www.mimuw.edu.pl/~username.
Sposób użytkowania
rys. 4.6
Fragment formularza
Na stronie początkowej znajduje się lista pracowników. Kliknięcie na
personalia danego pracownika powoduje otworzenie strony z formularzem, którego
fragment został uwidoczniony na rysunku 4.6.
Formularz składa się z:
- elementów zawierających dane — pól i obszarów tekstowych oraz pola
wyboru pliku,
- przycisków wyboru,
- dynamicznie pojawiających się przycisków "Dodaj URL",
- przycisku "OK" — jego naciśnięcie powoduje wysłanie
formularza,
- przycisku "Przywroc" — jego naciśnięcie powoduje
przywrócenie formularzowi początkowych wartości pól.
Elementy zawierające dane to:
- pole tekstowe "Personalia" — do niego wpisuje się
personalia pracownika;
- pole tekstowe "Telefon" — do niego wpisuje się
telefon pracownika;
- pole tekstowe "Email" — do niego wpisuje się adres poczty
elektronicznej pracownika. Przy próbie wysłania formularza sprawdza się
składniową poprawność adresu. Jeżeli adres jest niepoprawny składniowo,
użytkownik może mimo to wysłać formularz albo zrezygnować z wysłania, aby
poprawić adres;
- obszar tekstowy "Dodatkowe" — do niego wpisuje się
dodatkowe informacje o pracowniku;
- listy pól tekstowych "Publikacje", "Dydaktyka",
"Magistranci" — do pól tekstowych będących elementami danej listy wpisuje się
pozycje związane z tematem listy. Zawsze po otwarciu formularza jedno z pól
listy jest puste, aby można było dodać nowy element;
- pole wyboru pliku "Fotografia" — po kliknięciu przycisku
"Browse" użytkownik może wybrać plik graficzny ze swoją fotografią
(zostanie ona dołączona do strony).
rys. 4.7
Wklejanie adresu URL
Jeśli z danym polem jest związany przycisk wyboru, to użytkownik może
wyłączyć wyświetlanie wartości tego pola na wynikowej stronie WWW. Dokonuje
się tego poprzez odznaczenie przycisku wyboru. Ponowne włączenie
wyświetlania następuje po zaznaczeniu przycisku wyboru.
Jeśli po
uaktywnieniu pola tekstowego (kliknięciu na nie) pojawia się przycisk "Dodaj URL",
użytkownik może do wpisywanego w pole tekstu wkleić dowiązanie w języku
HTML. Po kliknięciu przycisku otwiera się okno z prostym formularzem do
edycji dowiązania (rys. 4.7).
Do pola "Adres" wpisuje się adres strony WWW, a do pola "Nazwa" —
nazwę dowiązania. Kliknięcie na przycisk "OK" powoduje sprawdzenie
składniowej poprawności adresu. Jeśli adres jest niepoprawny składniowo, to
użytkownik może mimo to wkleić dowiązanie albo zrezygnować z wklejenia, aby
poprawić adres.
Wpisując dane do pól tekstowych, użytkownik nie może korzystać z innych
elementów języka HTML niż znaczniki definiujące dowiązanie <A> i
</A>.
Jeżeli wpisze inne znaczniki, to nie będą one traktowane jako elementy języka HTML,
tylko jako czysty tekst.
Ze względu na bezpieczeństwo wysłanie formularza wymaga autoryzacji.
Użytkownik musi wpisać hasło do okna dialogowego. Jeżeli autoryzacja przebiegła
pomyślnie, następuje wysłanie formularza i otwiera się uaktualniona strona
domowa pracownika. Zawiera ona przycisk "Edytuj". Po kliknięciu na niego następuje
powrót do formularza — można wówczas dokonać kolejnej aktualizacji.
Architektura
Aplikacja jest zaprojektowana w architekturze dwuwarstwowej klient-serwer. Przeglądarka
jest cienkim klientem ponieważ odpowiada tylko za prezentację danych.
Skrypty PHP działające na serwerze WWW zajmują się zarządzaniem danymi i ich
przetwarzaniem (rys. 4.8).
rys.
4.8 Architektura aplikacji
Dane dotyczące pracownika, których używa aplikacja, są przechowywane w pliku w
formacie XML.
Oto struktura dokumentu XML opisującego pracownika:
<?xml version="1.0" encoding="ISO-8859-2"?>
<PRACOWNIK>
<PERSONALIA>
...
</PERSONALIA>
<TELEFON WIDOK="tak">
...
</TELEFON>
<EMAIL WIDOK="tak">
...
</EMAIL>
<FOTO WIDOK="tak">
...
</FOTO>
<DODATKOWE>
...
</DODATKOWE>
<PUBLIKACJE WIDOK="tak">
<POZYCJA WIDOK="tak">
...
</POZYCJA>
<POZYCJA WIDOK="tak">
...
</POZYCJA>
.
.
.
</PUBLIKACJE>
<DYDAKTYKA WIDOK="tak">
<POZYCJA WIDOK="tak">
...
</POZYCJA>
<POZYCJA WIDOK="tak">
...
</POZYCJA>
.
.
.
</DYDAKTYKA>
<MAGISTRANCI WIDOK="tak">
<POZYCJA WIDOK="tak">
...
</POZYCJA>
<POZYCJA WIDOK="tak">
...
</POZYCJA>
.
.
.
</MAGISTRANCI>
</PRACOWNIK>
Atrybut WIDOK w danym znaczniku otwierającym określa, czy dane zawarte między
tym znacznikiem a odpowiadającym mu znacznikiem zamykającym mają być
widoczne na wynikowej stronie WWW. Jeżeli atrybuty wszystkich pozycji danej listy
mają wartość "nie", wówczas atrybut znacznika tej listy ma również wartość
"nie". Jeżeli przynajmniej jeden z atrybutów pozycji danej listy ma
wartość "tak", wówczas atrybut znacznika tej listy ma również
wartość "tak".
Technologia
Do definiowania sposobu wizualizacji plików w formacie XML służy język XSL.
Ponieważ jednak tylko przeglądarka Internet Explorer potrafi otwierać strony
w formacie XML, na potrzeby aplikacji stworzono zestaw skryptów w języku PHP do czytania
i aktualizacji plików XML:
- get.php3 — tworzy stronę w formacie HTML na
podstawie pliku w formacie XML z danymi pracownika. Listy pozycji
są przetwarzane na listy w języku HTML;
- form.php3 — tworzy stronę WWW z formularzem na
podstawie pliku w formacie XML z danymi pracownika. Użytkownik wypełnia
formularz, aby zaktualizować dane. Wysłanie formularza powoduje wywołanie
skryptu put.php3;
- put.php3 — otrzymuje dane z formularza stworzonego
przez skrypt form.php3 i aktualizuje plik XML z danymi pracownika. Aby
wywołać ten skrypt, trzeba pomyślnie przejść autoryzację.
Wszystkie skrypty pobierają jeden argument — identyfikator pracownika.
Stronę domową danego pracownika powinien móc aktualizować tylko ten pracownik.
Ścieżka do tej strony to ~username/public_html/index.html, gdzie
username to identyfikator pracownika w systemie Linux. Właścicielem zarówno
katalogu, jak i pliku, jest ten pracownik. Wynika z tego, że skrypt
aktualizujący stronę musi być uruchamiany na prawach użytkownika
username. Realizowane to jest za pomocą programu suexec, który
jest dostępny w standardowej instalacji serwera Apache. Jeżeli
suexec
nie jest używany, to skrypty na serwerze są uruchamiane na prawach specjalnego
użytkownika nobody. Program suexec
umożliwia uruchamianie na serwerze skryptów na prawach użytkownika innego
niż nobody.
Rozwiązanie to ma tę wadę, że programu suexec nie można używać, gdy PHP
jest zainstalowane jako moduł do serwera Apache. PHP musi być zainstalowane
"jako CGI", czyli tak, żeby interpreter PHP był programem obsługującym
dla plików z rozszerzeniem .php i .php3.
Dla każdego żądania od przeglądarki musi zostać uruchomiony osobny
proces-interpreter PHP, co zwiększa obciążenie serwera.
Na komputerze "duch" zainstalowane są również inne aplikacje
napisane w PHP. Nie korzystają one z programu suexec i niektóre z nich
są intensywnie wykorzystywane. Ponieważ nie można pozwolić na zbyt duże obciążanie serwera,
muszą one korzystać z PHP zainstalowanego jako moduł do Apache'a.
Zatem serwer jest skonfigurowany tak, że tylko skrypty znajdujące się w
ustalonym katalogu są wykonywane przez PHP działające jako CGI.
Skrypt jest wykonywany na prawach użytkownika, który jest właścicielem
pliku zawierającego kod tego skryptu. Zatem dla każdego pracownika musi
istnieć osobny skrypt put.php3. Aby skrypt należący do danego
pracownika mógł być uruchamiany wyłącznie przez tego pracownika, dostęp do
skryptu musi być autoryzowany. By to osiągnąć, używa się modułu
mod_auth,
będącego jednym ze standardowych modułów serwera Apache. Pozwala on na
ograniczenie dostępu do katalogu tylko dla upoważnionych użytkowników.
W ustalonym katalogu puts znajdują się podkatalogi, po jednym dla każdego
użytkownika. Podkatalog przypisany danemu użytkownikowi ma nazwę taką jak
jego identyfikator i zawiera skrypt
put.php3 należący do tego użytkownika oraz plik konfiguracyjny
.htaccess zawierający dyrektywy modułu mod_auth.
Moduł mod_auth oferuje dwa typy autoryzacji: Basic i
Digest.
W opisywanej aplikacji używana jest autoryzacja typu Digest, ze względu
na jej większe bezpieczeństwo. Hasło i identyfikator są przesyłane do serwera
po ich zaszyfrowaniu. Gdy używa się autoryzacji typu
Basic hasło i identyfikator przesyłane są jawnym tekstem.
Więcej informacji na temat metod autoryzacji można znaleźć w
RFC 2617.
Próba wysłania formularza z danymi pracownika o identyfikatorze
username powoduje otworzenie okna dialogowego, w które należy
wpisać hasło tego pracownika. Jeżeli hasło jest prawidłowe, to
jest uruchamiany skrypt put.php3 z podkatalogu username i strona
pracownika zostaje uaktualniona.
Aby osiągnąć efekt pojawiających się i znikających przycisków "Dodaj URL"
użyto technologii DHTML. Każdy taki przycisk znajduje się na osobnej
warstwie. Jednak ponieważ warstwy w przeglądarce Netscape są całkowicie
osobnymi dokumentami, formularze których elementy znajdują się na osobnych
warstwach nie będą działały prawidłowo.
Poniższy przykładowy formularz będzie działał prawidłowo w przeglądarce
Internet Explorer, a nie będzie działał w przeglądarce Netscape:
<FORM>
<DIV ID="warstwa1">
<INPUT TYPE="button" NAME="przycisk1">
</DIV>
<DIV ID="warstwa2">
<INPUT TYPE="button" NAME="przycisk2">
</DIV>
</FORM>
W związku z tym w opisywanej aplikacji każdy przycisk "Dodaj URL"
znajduje się na osobnym formularzu, a ten formularz na osobnej warstwie.
Poniższy fragment kodu będzie działał prawidłowo w obu przeglądarkach:
<DIV ID="warstwa1">
<FORM NAME="form1">
<INPUT TYPE="button" NAME="przycisk1">
</FORM>
</DIV>
<DIV ID="warstwa2">
<FORM NAME="form2">
<INPUT TYPE="button" NAME="przycisk2">
</FORM>
</DIV>
Ponieważ nie da się wysłać danych z wielu formularzy jednocześnie, stworzono
osobny formularz mainForm z ukrytymi polami. Kliknięcie na przycisk "OK"
powoduje wywołanie odpowiedniej funkcji JavaScript, która wypełnia te
pola wartościami z pól leżących na innych formularzach.
W ten sposób w formularzu mainForm są zbierane wszystkie potrzebne
dane i funkcja wysyła ten formularz.
Funkcje w języku JavaScript realizują także wklejanie adresów URL do pól
tekstowych. Test poprawności składniowej adresu wykonywany jest poprzez
sprawdzenie, czy adres pasuje do wyrażenia regularnego napisanego
na podstawie gramatyki zawartej w dokumencie RFC
1738.
Podobnie test poprawności adresu poczty elektronicznej jest wykonywany przez
sprawdzenie, czy adres pasuje do wyrażenia regularnego napisanego na
podstawie gramatyki zawartej w dokumencie RFC
822.
Zakończenie
Opisany zestaw aplikacji został stworzony tak, aby działał na
wydziałowym serwerze WWW (http://www.mimuw.edu.pl). Edytor stron może być
wykorzystywany przez każdego pracownika mającego konto na komputerze duch.
Z pozostałych aplikacji może korzystać dowolna osoba przeglądająca
internetowe strony Wydziału.
Wszystkie aplikacje mogą być w przyszłości zastosowane do obsługi innych wydziałów.
Zalety opisanych aplikacji to:
- przydatność w praktyce,
- wygoda użytkowania,
- dość duża elastyczność osiągnięta dzięki zastosowaniu dynamicznego
tworzenia stron.
Przyszłość
Plany Wydziału z systemem wyszukiwania pracowników
Obecnie system wyszukiwania pracowników jest stosowany do
pracowników naukowo-\break dydaktycznych, jednak może
być stosowany do wszystkich pracowników Wydziału. Generalnie można go
zastosować do pracowników dowolnej organizacji. Wyszukiwanie może być
wzbogacone o opcje wyszukiwania względem stopni naukowych, adresów poczty
elektronicznej, czy zainteresowań naukowo-badawczych.
Strona danego pokoju może zawierać informacje o sprzęcie komputerowym
znajdującym się w tym pokoju (możliwe jest wykorzystanie skryptów aplikacji
"Wirtualne Laboratorium Komputerowe").
Technika mapowania obrazka może być zastosowana do planów dowolnego budynku.
Wirtualne Laboratorium Komputerowe
Obecnie aplikacja pobiera dane od komputerów stojących w Laboratorium
Komputerowym, jednak może być zastosowana do dowolnych komputerów Wydziału
mających uruchomiony serwer SNMP. Korzystając z otrzymywanych danych można
dynamicznie generować statystyki np. procentową liczbę odrzuconych
datagramów IP. Informacje takie mogą być również uwidaczniane za pomocą
dynamicznie generowanych wykresów. Na użytek aplikacji można napisać
własnego klienta SNMP, aby nie trzeba było polegać na formacie danych
dostarczanym przez ucd-snmp.
Edytor do tworzenia stron domowych
Aplikacja została stworzona na potrzeby pracowników Wydziału. Może jednak
być przeniesiona na inny serwer i tam być używana przez użytkowników tego
serwera.
Edytor może być wzbogacony o możliwość definiowania wyglądu wynikowej
strony, a nie tylko jej struktury. Użytkownicy często chcą mieć możliwość wyboru
koloru tła, koloru, kroju i wielkości czcionek, jak również kolejności
ułożenia elementów na stronie.
Strona główna