iNet Developer 2.0 - vývojové prostředí pro Web

1. 1. 1998

Sdílet

Tvorba kompletního řešení webovského serveru v rámci intranetu i Internetu v sobě zahrnuje celou řadu činností, ...


Tvorba kompletního řešení webovského serveru v rámci intranetu
i Internetu v sobě zahrnuje celou řadu činností, od přípravy
obsahu stránek přes jejich grafickou úpravu, přidání
interaktivního chování nebo vazbu na databáze až po správu
webovského serveru. Na těchto činnostech se zpravidla podílejí
různé skupiny pracovníků, používající pro svoji část úkolu
rozdílné programové nástroje. Sladit potom spolupráci
jednotlivých prvků do fungujícího mechanismu, jehož výstupem je
funkční a přitažlivé hnízdo webovských stránek se stále aktuálním
obsahem, není vůbec jednoduchý úkol. Pomoci při tom může software
iNet Developer kanadské firmy Pictorius ( www.pictorius.com ),
který lze charakterizovat jako týmově orientované vývojové
prostředí pro tvorbu síťových aplikací.
Balík iNet Developer se skládá z trojice modulů: editor iNet
Developer, ve kterém se vytváří struktura i obsah hnízda WWW
stránek, Application Server, zodpovídající ve spolupráci
s webovským serverem za publikování stránek na Webu, a konečně
grafické vývojové prostředí Prograph, ve kterém to vše bylo
naprogramováno. Cílem tohoto rozdělení je poskytnout všem
uživatelům snadno ovladatelné a přitom dostatečně flexibilní
prostředí, které mohou sdílet tvůrci webovských stránek
i programátoři síťových aplikací.

iNet Developer

Svým způsobem jádro celého vývojového balíku tvoří aplikace iNet
Developer pro tvorbu struktury a obsahu webovského hnízda.
Charakterizovat iNet Developer pouze jako další webovský editor
by ale bylo silným podceněním jeho možností.
V editoru iNet Developer se nejprve definuje hierarchická
struktura hnízda webovských stránek, kterou lze později bez
velkých otřesů libovolně měnit. Protože všechny stránky jsou zde
uchovávány v interním formátu v jediném souboru, lze k nim snadno
přiřadit přístupová práva pro různé uživatele. Správce hnízda tak
může zpřístupnit určité části jen určitým skupinám uživatelů,
kteří budou mít tvorbu daných stránek na starosti.
Každé stránce lze také jednoduše přiřadit podmínky , kdy se
může ve webovském prohlížeči zobrazit. Pokud některá ze zadaných
podmínek není splněna, je možné určit alternativní stránku, která
se zobrazí. V podmínkách lze například testovat použitý webovský
prohlížeč, datum nebo čas přístupu, doménu, z níž se přistupuje,
případně je možné vyžadovat heslo pro přístup ke stránce.
iNet Developer 2.0 má také nově zařazenu možnost definovat
stránku jako kanál (channel), který se potom automaticky načítá
do prohlížeče (tzv. Push technologie). Stačí jen zaškrtnout
příslušné políčko v parametrech stránky, případně ještě na
stránku vložit tlačítko Subscribe pro zařazení kanálu. To je vše.
Tím jsme se již pomalu dostali k tvorbě obsahu stránky. iNet
Developer umožňuje do stránek importovat již vytvořené HTML
soubory, takže lze zachovat kontinuitu při přechodu z klasických
stránek (podporován je i export do HTML souboru). Do importované
stránky ale nelze přidávat další prvky, a tak se schopnosti
editoru projeví jen při přímé tvorbě stránek.
Do stránek lze na libovolné místo vkládat běžné HTML prvky
jako jsou text nebo obrázky, je možné vytvářet oblasti
s formulářovými prvky nebo vkládat Java aplety a ActiveX prvky.
Až na možnost volného rozmístění po stránce tedy zatím nic
převratného.

Tabulky a databáze

V iNet Developeru ale existuje jeden prvek, tzv. datový objekt ,
který u jiných editorů nenajdete. Datové objekty těží
z integrovaného prostředí iNet Developeru a Application Serveru,
vlastně se jedná o front-end rozhraní k tabulkám a databázím.
Tabulky lze interně vytvářet přímo v iNet Developeru a přes
webovskou stránku je lze potom zobrazit, přidávat do nich další
řádky/záznamy nebo řádky upravovat, resp. mazat (pozor, nejedná se
o tabulky ve smyslu HTML, ale spíše o malé databáze).
Stejným způsobem lze přistupovat i k externím ODBC databázím
jako je Oracle, Sybase nebo Informix. Prostředí iNet Developeru
potom slouží jako front-end rozhraní pro přístup k databázím přes
Web. Prostřednictvím webovské stránky tak lze zobrazovat obsah
databáze, přidávat, ubírat i opravovat jednotlivé záznamy nebo
záznamy podle zadaného kritéria vyhledávat. Nejen správci
databází jistě vidí, jak obrovský potenciál takto jednoduše
připravené rozhraní může znamenat pro přístup k databázím.

Navigační prvky

U textu i obrázků lze definovat odkaz na jiné místo na Internetu
zadáním URL adresy podobně jako v jiných webovských editorech.
iNet Developer ovšem navíc nabízí možnost vložit na stránku
automatické navigační prvky, odkazující například na všechny
potomky stránky, na sousedy stránky nebo na jejího rodiče
v hierarchické struktuře. Takto vytvořené navigační prvky potom
mají jednu velkou výhodu. Při změně struktury hnízda, přidání,
ubrání nebo přemístění stránek, zůstává platnost všech takových
relativn ích odkazů zachována. U pravidelně updatovaných souborů
stránek je pak taková vlastnost k nezaplacení.

Agenti

Kromě víceméně klasických HTML prvků jako jsou Java aplety
a ActiveX lze funkčnost stránek dále obohatit použitím tzv.
agentů. K dispozici jsou jednodušší agenti, kteří na stránku
umisťují aktuální datum a čas, případně oblíbený čítač počtu
přístupů, dále agenti pro vkládání reklamních nápisů, kteří ze
zvolené sady obrázků při každém přístupu jeden náhodně zobrazí,
až po agenty nabízející komplexní služby. Mezi takové komplexní
agenty patří například Sitemap, zobrazující strukturu webovského
hnízda, nebo Search pro vyhledávání v lokálních stránkách. Na
stránku lze vložit také agenta Calendar (viz obrázek 2),
zobrazujícího kalendář a umožňujícího do něj přes webovský
prohlížeč vkládat záznamy, nebo agenta Collaboration, který pro
změnu umožňuje zaznamenávat textové zprávy se jménem autora.
Podobnou funkci má také agent Survey, s tím rozdílem, že zde lze
definovat formulář, který uživatelé vyplní a odešlou. Takto
získaná data jsou pak dostupná formou textového souboru.
Práce s agenty je přes jejich schopnosti triviální. Prostě
je umístíte na stránku, případně upravíte některé jejich
parametry (například vzhled), a vše hned funguje. Žádné složité
programování CGI skriptů.

Application Server

Přestože by se mohlo zdát, že pro publikování stránek, které
jsou všechny zabaleny v jediném souboru, bude potřeba nějaký
speciální webovský server, není tomu tak docela. O publikování
stránek se sice stará zvláštní Application Server, ten je ale
prostřednictvím iNetHelperu napojen na běžný webovský server. Díky
tomu lze hnízdo stránek připravené v iNet Developeru ihned
bezbolestně integrovat do stávajícího webovského prostředí.
Vše dohromady to pak vypadá asi takto. Na webovský server
přijde žádost o zobrazení stránky. Tato žádost je podstoupena
iNetHelperu (dostupný je v podobě CGI nebo DLL knihovny pro ISAPI
kompatibilní servery), který spustí Application Server (pokud už
neběží) a požádá ho o dotyčnou stránku. Application Server
stránku vygeneruje a předá ji zpět webovskému serveru, přes který
se dostane až k uživatelovu prohlížeči (viz obrázek 3).
Webovské stránky jsou tedy generovány na žádost, což má oproti
statickým stránkám své nesporné výhody. Stránku lze například
přizpůsobit použitému prohlížeči, a stejnou vlastnost je tak možné
jinak vyjádřit ve stránce pro Netscape Navigator a jinak pro
Internet Explorer. O možnosti testovat různé podmínky před
zobrazením stránky a následně poslat uživateli přizpůsobenou
stránku již zde řeč byla. Zmíněny byly také bezpečnostní výhody
integrace stránek do jediného souboru.
Na celém principu je důležité i to, že ho lze prakticky
snadno realizovat. Do příslušné složky na webovském serveru
umístíte soubor iNetHelperu (cgi nebo dll), ve svém webovském
prohlížeči zadáte adresu stránky (ta má méně obvyklý, ale
pochopitelný tvar) a ono to funguje. Osobně jsem při testu
používal Microsoft Personal Web Server a byl jsem mile překvapen,
jak snadno se mi vše podařilo sestavit a zprovoznit.

Prograph

Poslední, ale o to mocnější součástí balíku iNet Developer je
grafické vývojové prostředí Prograph, ve kterém byly obě
předchozí aplikace vytvořeny. Prograph je vizuální objektově
orientovaný jazyk, důsledně zaměřený na tvorbu programů řízených
tokem dat. Má také rysy funkcionálních jazyků (vše je zde
funkce), což se například projevuje na přirozené práci se seznamy
a tvorbě funkcí typu map (aplikace funkce postupně na všechny
prvky seznamu).
Programy se v Prographu vytvářejí v grafickém prostředí , kde
se skládají jednotlivé programové bloky/funkce, a spojnice mezi
bloky pak přirozeně reprezentují tok dat. Prograph nabízí podobné
programové konstrukce jako ostatní jazyky. Zvlášť dobře se zde
pracuje s iterací, rekurzí a cykly, trochu netradičně je řešeno
větvení programu, kdy se odskakuje do jakési další úrovně.
K dispozici je celá řada nadefinovaných funkcí.
Přirozená je zde tvorba paralelních větví výpočtu, a tak
jsou programy již dnes připraveny pro paralelní zpracování na
více procesorech (zatím ale není implementováno). Protože na
druhou stranu při tvorbě programu nevíte, která funkce
z paralelních větví se bude provádět dříve, má vývojář možnost
zařadit do programu synchronizační větve, určující, že daná funkce
se bude počítat až po jiné funkci. Tímto způsobem lze například
zajistit, že test na správnost vstupní proměnné bude proveden
před použitím této proměnné v paralelní větvi.
V Prographu lze vytvářet univerzální funkce a globální
proměnné, stejně jako třídy a jejich metody. Pro přehlednost
vytvářených funkcí je důležitá schopnost "zapouzdřit" část kódu
do lokální funkce.
Pro vývoj aplikací je vždy nezbytné kvalitní ladicí
prostředí (debugger). To je v Prographu integrováno a práce s ním
je velice jednoduchá. Prograph má totiž vestavěný interpreter,
a tak lze v kterékoliv fázi vývoje vyzkoušet funkčnost již
vytvořených částí. Vzhledem ke grafickému zápisu funkcí je
zobrazení běhu programu přirozené, barevně jsou odlišeny části,
které se již provedly, od částí, jež na provedení teprve čekají,
resp. od funkce, jež je právě prováděna. A pokud vás zajímá
hodnota vstupující, resp. vystupující z nějaké funkce, stačí
ukázat na příslušný port a tato hodnota se ihned zobrazí.
Mimochodem, vestavěný interpreter je slušně rychlý.
Díky vestavěnému interpreteru lze tedy ihned spouštět
vytvořené programy. Na závěr vývoje je ale také možné nechat
program zkompilovat do samostatně spustitelné aplikace.
Prograph není součástí balíku iNet Developer jen tak náhodu.
Jak již bylo několikrát zmíněno, iNet Developer i Application
Server byly vytvořeny právě v tomto vývojovém prostředí. Důležité
je ovšem to, že je přiložen zdrojový kód Application Serveru , což
v praxi znamená, že lze Application Server uzpůsobit vlastním
potřebám a přidat do něj zcela libovolné funkce. Tato činnost je
přirozeně vyhrazena programátorské části vývojového týmu, ostatní
členové potom mohou přidané funkce využívat stejně, jak o kdyby
byly součástí původního programu (mohou je volat z tlačítek na
webovské stránce).
Dokumentace k Prographu je v elektronické podobě. Zvlášť
vydařený je úvod do Prographu, kde se na příkladech seznámíte se
způsobem programování v tomto prostředí.

Shrnutí

Je až překvapivé, jak se ve vývojovém balíku iNet Developer
podařilo integrovat moderní webovské technologie do snadno
ovladatelného prostředí. Za vyzdvihnutí určitě stojí jednoduchá
práce s agenty, podpora push technologie a DHTML, a zvláště pak
možnost vytvářet front-end rozhraní k databázím. Vše lze navíc
ihned zařadit do stávajícího webovského prostředí. Plusem je také
přiložené vývojové prostředí, které mohou zkušení uživatelé
využít pro přizpůsobení iNet Developeru vlastním potřebám. Cena
softwaru na druhou stranu rozhodně není zanedbatelná (1 495 USD).

Software iNet Developer 2.0 pro recenzi poskytla firma Pictorius,
Inc., 2000 Barrington Street, Halifax, Canada ( www.pictorius.com )

Obrázky:

1) V editoru iNet Developer se vytváří struktura webovského
hnízda i obsah stránek (editor.tif)
2) Agenti dodávají do webovských stránek řadu pokročilých
funkcí (agent.tif)
3) iNetHelper tvoří bránu do Application Serveru
(server.tif)
4) Vše je naprogramováno v grafickém vývojovém prostředí
Prograph (prograph.tif)