Linux-PHP-Interbase administrátorské rozhraní

Předběžná analýza projektu diplomové práce

 Autor projektu:  Ondřej Kasan, 771004/0492
 Předpokládaná obhajoba:  únor 2002
 Katedra:  336, Fakulta elektrotechnická ČVUT v Praze 2, Karlovo náměstí
 Obor:  26178 - Výpočetní technika, magisterské studium
 Vedoucí:  Valenta Michal Ing.
 Oponent:
 Anglické zadání:  Linux-PHP-Interbase And Administration Environment

Obsah dokumentu

  1. Pokyny - deklerace záměru
  2. Odborný článek - motivace projektu
  3. Sémantická (funkční) analýza
  4. Implementační analýza
  5. Náklady na výbavení - cena projektu

Hlavním důvodem, proč je analýza rozdělena na "sémantickou" a "implementační", je snaha odlišit ty části, které se zabývají funkcemi, chováním a uživatelskou interakcí, kdežto implementační se zabývá blíže technickými detaily, na jejichž základech stojí celá motivace projektu (PHP, Interbase, Linux, ...) a současně shrnuje možnosti v současné době jejich dostupných verzích.

Poznámka: Většina termínů a pojmů (technické, databázové, notace schémat, sw, hw) není zde vysvětlena, v užším odborném kruhu se považují za samozřejmé, ale ve výsledné dokumentaci diplomové práce budou více rozepsány (vysvětleny) na konstantní úrovni kvality textu.


Pokyny - deklerace záměru

"Navrhnetě a realizujte administrátorské prostředí pro vzdálenou správu Interbase v jazyce PHP. Systém bude pracovat přes WWW prohlížeč, tedy bez nutnosti instalovat klientské aplikace. Pro uživatelské rozhraní se inspirujte produkty Oracle Enterprise Manager a Toad."

Text představuje formulaci, která byla schválena jako zadání diplomové práce a je zapsána též v informačním systému fakulty.


Odborný článek - bližší specifikace

Celý projekt je motivován v současné době intenzivně se rozvijejícím prostředím internetu, kdy vzrůstá potřeba - nebo lépe řečeno přichází velice vhod (až k nezaplacení) - možnost snadných vzdálených úprav na internetovém serveru. Takovým serverem je zde míněn zpravidla elektronický obchod, redakční systém, firemní informační systém či pouhé vyhodnocování zábavných anket, tedy takový systém, který je založen na databázovém stroji a se světem uživatelů komunikuje prostřednictvím dynamicky generovaných WWW stránek nebo prostřednictvím nativní aplikace používající ke komunikaci např. protokol TCP/IP.

Jednou z možných oblíbených kombinací softwarového vybavení internetového serveru bývá použití operačního systému Linux a databázového stroje Interbase. Výhodou této sestavy je fakt, že je oba dva produkty jsou v současné době zcela zdarma (i pro komerční použití) a to především díky produktu Interbase, který je již od verze 6 není zpoplatňován a naopak je zpřístupněn jako tzv. "Open Source Project".

Vzdálená administrace Interbase prostřednictvím WWW stránek by měla přinést maximální uživatelský (nebo lépe řečeno administrátorský) komfort. Namísto možné alternativní konzolové správy (přes telnet a příkazovou řádku) bude systém více ukazovat a nabízet, než se sám ptát - administrátora by měl v jeho požadavcích vést. Měl by usnadnit změny a sledování databáze kdekoli ve světě, kde je připojen internet - připravenost k okamžitému použití zajistí potřeba pouhého WWW prohlížeče, tedy bez nutnosti instalovat jakýkoli další ovládací program (což navíc není ani vždy možné, např. v internetové kavárně). Bude zohledněna i možnost použití i ve zjednodušených (textových) prohlížečích, která se osvědčí v rozvíjejích se mobilních terminálech.

Navíc - projevuje se jako "vedlejší" efekt, že pro prostředí operačního systému Linux v současné době pravděpodobně stále neexistuje program, který by zajišťoval administraci Interbase v grafickém prostředí - tento projekt by mohl tento nedostatek potlačit při provozu v lokálním prostředí v nainstalovaném prohlížeči.

PHP zadaný jako prostředek pro komunikaci s Interbasí nabízí coby skriptovací jazyk pro generování dynamických HTML stránek výborné možnosti přímé spolupráce s databázemi a umožnuje přehledně psát kompaktní ucelené zdrojové texty. Kromě toho není (na rozdíl od konkurenčních produktů) vázán na použití konkrétního operačního systému, WWW serveru či hardware - tedy platformní nezávislost. Navíc jeho vývoj směřuje v nových verzích ke zrychlování a zdůrazňuje přechod od interpretace k částečné kompilaci zdrojového kódu - tato změna se promítne do celého tohoto projektu.

Projekt sleduje v průběhu průzkumu a vývoje ještě následující obecné aspekty, zaměřující se na praktickou využitelnost podobných aplikací:


Sémantická (funkční) analýza

Kontextový diagram

main-scheme.gif (11563 bytes)

Schéma si neslibuje být striktně dodrženo podle běžných formálních notací, ale zdůrazňuje zařazení projektu administrátorského rozhraní přes WWW (a PHP) do prostředí (kontextu) reálného světa - kdy na daném serveru (internetovém) běží i několik na sobě technologicky nezávislých aplikací (PHP, Java, CGI, ...) a kdy může být k prostředkům serveru přistupováno nejen prostřednictvím WWW stránek (server Apache). Schéma dále podtrhuje i možnost simultánní obsluhy požadavků více uživatelů ve stejném čase.

Samozřejmě - schéma představuje pouze část instalovaných komponent na serveru - jen těch, které se bezprostředně týkají databáze Interbase a nevylučuje zapojení i jiných (i databázových) strojů na témže serveru.

V daném kontextovém diagramu je uživatelská role ("Uživatel" nebo "Administrátor") ztotožněna s WWW prohlížečem (zpracovávající HTML stránky), který představuje komunikační nástroj se systémem.

 

Uživatelské role

Co je na podstatné - předmětem projektu je kromě samotného serveru Linux-Interbase administrátorské rozhraní v jazyce PHP a jediná zvažovaná uživatelská role - role Administrátora. Protože je jediná (běžný uživatel nemá v administraci co dělat), bude v celém projektu často zaměňován pojem uživatel a administrátor - v prostředí administrátorského rozhraní se v obou případech bude jednat o administrátora.

Může se však v této jedné roli jednat o více uživatelských účtů (identifikace do systému jménem a heslem) z důvodů odlišení činnosti více administrátorů (činnost bude evidována). Nebudou se však lišit přístupovými právy k objektům nebo činnostem - vybudovaný systém by se v opačném případě podobal "státu ve státě" a odporoval by zamýšůenému principu maximální jednoduchosti pro rychlou a bezproblémovou administraci.

Další aspekty administrátorské role:

 

Výchozí bod - Oracle Enterprise Manager a Toad

Součástí zadání projektu je nabídnutá inspirace již existujícími produkty Oracle Enterprise Manager a Toad. Oba tyto produkty pracují pouze s databázovým systémem Oracle, první z nich je oficiálně dodáván výrobcem jako součast licence, druhý je od nezávislého výrobce (typu shareware).

Každý z obou systémů nabízí při prvním pohledu podobné funkce, avšak s poněkud rozdílným přístupem. Oběma systémům je ale společná určitá ryzí nepřímočarost pro přistup k funkcím a objektům, na druhou stranu samotné ovládání těchto produktů je i tak poměrně operativní a svižné.

Z uživatelského pohledu bude snaha eleminovat (drobné) nevýhody systémů:

Existují dva přístupy k administraci (správě) objektů (nejen databázových - obecně) - pokud jde o pořadí akcí:

  1. 1) Nejdříve vybrat CO se bude dělat. 2) S ČÍM se bude dělat.
  2. 1) Nejdříve s ČÍM se bude dělat. 2) CO se bude dělat.

Toad pracuje hlavně s variantou A (pouze Schema browser se od toho odchyluje).
Oracle je v zásadě typu B (hybridně s A), sice nabízí stromovou strukturu, ale ta je pouze dvouúrovňová - v podstatě lineární (není příliš zřetelná hierarchičnost objektů databáze i určité oddělení důležitých i méně důležitých (nepoužívaných) objektů).

Oproti tomu se tento projekt se v uživatelském přístupu soustředí spíše více na "stromově objektový" přístup ve variantě B - tj. aby se v každé úrovni a situaci nabízely především jako první ty možnosti (modifikace), které dané úrovni nejlépe přísluší (např. editace triggerů bude nabízena hlavně v editaci struktury konkrétní tabulky). Slovo hlavně je zmiňováno záměrně - jde o zdůraznění možnosti rozsáhlé hypertextovosti systému a možnosti bleskových přesunů do jiných částí systému.

 

Základní funkce

S ohledem na rozdíl mezi specifičností databází Oracle a Interbase, jsou tyto funkce zcela inspirovány Oracle a Toad, v jejichž ucelenosti oba produkty naopak velice převyšují očekávání. Následně uvedené funkce jsou považovány za nezbytné, aby bylo možné projekt považovat za komplexnější administrační nástroj pro ovládání databáze Interbase. Uvedený seznam (lineární) obsahuje:

 

Datové paměti

Datovými pamětmi jsou myšleny paměti, s nimiž systém (administrátorské rozhraní) pracuje a do nichž dlouhodobě ukládá výsledky své činnosti.

Stávající - nad nimi hlavní operace administrátorského rozhraní

Nové - přidávaná hodnota ke stávajícím pamětem (jako součást administrátorského rozhraní)

Tyto nové paměti jsou navzájem nezávislé a nezávislé jsou i vůči stávajícím pamětem - není třeba specifikovat závislosti a integritní omezení (netřeba v této fázi E-R model).

 

Funkční model (DFD diagram)

Pro danou aplikaci WWW administrátorského rozhraní se ucelený funkční model jako nástroj specifikace nejeví jako příliš vhodný prostředek. Jeho konstrukce je obtížná z toho důvodu, že v téměř každém kroku se pracuje se všemi datovými pamětmi a datové toky vždy obsahují jejich obsah, modifikace a uživatelský příkaz. Dále se struktura tzv. stávajících datových pamětí značně mění v čase (dynamicky). navíc v systému se objevuje pouze jeden terminátor - administrující uživatel.

Přesto alespoň náznak typické dílčí operace - DFD datového toku:

dfd.gif (9385 bytes)

 

Stavový diagram (STD diagram)

Konstrukce stavového diagramu není též snadná, tentokrát z jiných důvodů: Administrátorské prostředí bude maximálně těžit ze základní vlastnosti HTML, tedy důsledné provázanosti hypertextem. STD coby automatový popis by tím představoval velmi hustý graf, ba přímo téměř úplný graf.

Následně uvedený STD diagram chce oproti tomuto faktu spíše nastínit určitou hierarchičnost a to bez nároků na přesnost všech hypertextových vazeb. Rovněž řada stavů je z důvodu přehlednosti reprezentována pouze svým zástupcem na vyšší úrovni (např. úpravy tabulek, pohledů, ...), kdy jsou dílčí elementární operace zřejmé. Taktéž je vynechána celá řada zpětných hran (přechodů).

std.gif (52449 bytes)

 


Implementační analýza

Implementaci a provádění administrátorského rozhraní můžeme rozdělit do dvou samostatných částí:

  1. Na straně serveru
  2. Na straně klienta

Z hlediska kódování prováděného zdrojového textu:

  1. Server - PHP skripty s napojením na databázi Interbase
  2. Klient - HTML a JavaScript

Vztah mezi nimi je v souladu s kontextovým diagramem v sémantické analýze vyjádřen po technické stránce takto:

html-php.gif (9680 bytes)

 

K oběma částem podrobněji - bodované pasáže jsou mezerou mezi odstavci rozdělené do dvou částí - první z nich poukazuje na obecné vlastnosti produktu, druhá pak zdůrazňuje hlavní technické rysy, které budou využity v projektu administrátorského rozhraní.

A. Server

Red Hat Linux - operační systém


InterBase - databázový stroj

Apache - WWW server

PHP - skriptovací jazyk pro generování dynamických HTML stránek


B. Klient

WWW prohlížeč

Podpora JavaScriptu

Následující schéma naprosto obecně shrnuje možné větvení v případech, kdy není JavaScript na straně klienta k dispozici (situace A) a kdy je v prohlížeči implementován (situace B).

javascript.gif (12057 bytes)

 

Další poznámky k implementaci

Instalace: Jako součást vývoje projektu se považuje i snadný instalační program daného administrátorského prostředí, resp. bude se instalovat jako RPM balíček. Tento způsob se prosazuje jako standard v celém Linuxovém světě (nikoli jen mezi RedHat distribucemi).

Jazykové verze: Odpovídající řetězce pro komunikaci s uživatelem budou soustředěny na jednom místě a v místě zobrazení budou vyvolány dosazením pomocí funkce. V projektu bude zaměřeno na dva jazyky - čeština a angličtina, přičemž uvažováno bude zobecněné použití více jazyků.

Bezpečnost: Zaměřeno bude především na bezpečnost v přihlašování a v komunikaci - aby nebylo možné (snadno) odposlechnout data na cestě mezi systémem a prohlížečem (serverem a klientem). Zvolena byla technika autentifikace v http protokolu, kterou podporuje i server Apache. Bezpečnostní prvky posiluje i fakt, že PHP je integrovaný v Apache serveru jako modul. Bude zvážena i možnost použití šifrování SSL (Secure Sockets Layer) s ohledem na náklady ohledně digitálního certifikátu (vlastní jednoúčelový certifikační server).


Náklady na vybavení - cena projektu

Uvažuje se rozdělení na hardwarovou a softwarovou část - nezahrnujíce vlastní vývoj projektu:

Hardware

Nároky na hardwarové vybavení projektu na straně serveru odpovídají současnému rozumnému provoznímu minimu operačního systému Linux, kde lze předpoklát víceuživatelské zatížení při provozu (i jako internetovského serveru):

K tomu je pro vzdálenou administraci připočítat vlastní připojení do internetu, odhadem by pro minimální zatížení ("takřka jednouživatelské") dostačovala linka o přenosové rychlosti 64kbit/s.

Protože ale předpokládáme nasazení administrátorského rozhraní do již funkčního a zaběhnutého serveru (i internetového), instalace projektu do systému nezvyšuje řádově nároky a tudíž nevyžaduje žádné další přímé investice do hardware.

Klientská část hardware není zvažována - "všude ve světě".

Cena hardwarové části - náklady: 0 kč


Software

Server - zadání projektu bylo v principu stavěno na ucelené a soběstačné kombinaci softwarových komponent Linux, PHP a Interbase, které jsou v současné době dostupné naprosto zdarma, včetně jim případných příslušných vývojových nástrojů (dokumentace, editory).

Jediný klientský software - WWW prohlížeč - byl prakticky vždycky zdarma a to na všech hw a sw platformách.

Cena softwarové části - náklady: 0 kč


Výsledná cena: Pouze cena vývoje samotného administrátorského prostředí.

(Další rozbor není podrobněji zjišťován - ve smyslu softwarového inženýrství a popisu životního cyklu sw projektu.)