SilverStream 1.0 -- nejen v²vojovΘ prost°edφ pro webovΘ aplikace
Roman Bartßk
Rozvoj Internetu vzbudil v poslednφ dob∞ zßjem velk²ch korporacφ. Ty zaΦaly vyu₧φvat wobov²ch slu₧eb nejen pro prezentaci sv²ch produkt∙, ale stßle vφce takΘ pro internφ komunikaci v rßmci Intranetu, pro komunikaci mezi vzdßlen²mi poboΦkami v rßmci Extranetu, i pro p°φm² kontakt se zßkaznφky prost°ednictvφm Internetu.
Velk² tok dat a po₧adavky na jejich aktußlnost samoz°ejm∞ vy₧adujφ prßci s dynamicky se m∞nφcφmi webov²mi strßnkami p°φmo napojen²mi na firemnφ databßzovΘ systΘmy. KlasickΘ HTML editory a pou₧itφ CGI skript∙ pak u v∞tÜφch projekt∙ p°estßvajφ staΦit a nßvrhß°i t∞chto komplexnφch °eÜenφ vy₧adujφ snßze pou₧itelnΘ integrovanΘ v²vojovΘ nßstroje. Mezi takovΘ produkty se °adφ i SilverStream 1.0 firmy SilverStream Software.
Zßklady
SilverStream nese ve svΘm podtitulku charakteristiku aplikaΦnφ platforma pro Web. Voln∞ p°elo₧eno to znamenß, ₧e se jednß o integrovanΘ v²vojovΘ prost°edφ pro nßvrh javovΘho front-end rozhranφ k databßzφm a obecn∞ pro nßvrh "webov²ch aplikacφ" zalo₧en²ch na technologii Java. SilverStream je vlastn∞ cel² balφk softwaru obsahujφcφ vÜe, co pro takov² v²voj pot°ebujete. Krom∞ vlastnφho v²vojovΘho prost°edφ SilverStream tak na instalaΦnφm CD-ROMu najdete i Fulcrum SearchServer 3.7 pro fulltextovΘ vyhledßvßnφ a databßzov² server SQL Anywhere 5.5 (SilverStream pro sv∙j b∞h vy₧aduje alespo≥ 1 instalovan² databßzov² server, pou₧φvat lze takΘ Oracle). Vlastnφ SilverStream se potom sklßdß ze 2 aplikacφ, aplikaΦnφho serveru slou₧φcφho jako HTTP server a vizußlnφho v²vojovΘho prost°edφ nazvanΘho Designer.
SilverStream je tedy prost°edφ pro v²voj javov²ch aplikacφ, kterΘ mohou b∞₧et jak na serveru jako agenti, tak na klientskΘ stran∞, typicky ve webovΘm prohlφ₧eΦi -- ale t°eba takΘ samostatn∞ prost°ednictvφm mo₧nosti SilverStream Client.
SouΦßstφ vyvinutΘ komplexnφ aplikace mohou b²t formulß°e p°edstavujφcφ zßkladnφ u₧ivatelskΘ rozhranφ, HTML strßnky pro p°φstup k formulß°∙m na Webu, p°φpadn∞ agenti rozÜi°ujφcφ schopnosti aplikaΦnφho serveru. Tvorba aplikace zde typicky zaΦφnß u nßvrhu struktury databßzov²ch tabulek (nap°. tabulky odd∞lenφ, zam∞stnanc∙ apod.) a vazeb mezi nimi. PokraΦuje se p°es tvorbu formulß°∙ slou₧φcφch jako zßkladnφ rozhranφ k databßzi, p°φpadn∞ pohled∙, co₧ je tabulkovΘ zobrazenφ obsahu databßze, kterΘ se m∙₧e vklßdat do formulß°∙. Navr₧enΘ formulß°e lze potom vklßdat do webov²ch strßnek a o₧ivovat pomocφ program∙ v Jav∞.
Ka₧dß z t∞chto Φinnostφ mß v Designeru vyhrazen² samostatn² nßstroj. Dvojice Table a Relationship Designer slou₧φ nap°. pro prßci s databßzov²mi tabulkami. Page, Form a View Designer zase umo₧≥ujφ nßvrh webov²ch strßnek, formulß°∙ a pohled∙. Poslednφ z nßstroj∙, Agent Designer, slou₧φ pro programovßnφ agent∙, tj. program∙ b∞₧φcφch na serveru a aktivovan²ch nap°. n∞jakou udßlostφ (p°φchozφ e-mail, ₧ßdost o strßnku apod.) nebo podle zvolenΘho ΦasovΘho rozvrhu. Jak Agent Designer, tak Form Designer poskytujφ p°φstup k Programming Editoru slou₧φcφmu pro vlastnφ zßpis programu v Jav∞. Proto₧e v SilverStreamu jsou vÜechny prvky nßvrhu ulo₧eny v databßzφch (vlastnφch nebo externφch), je pot°eba mφt pro prßci v Designeru zßrove≥ spuÜt∞n² i aplikaΦnφ server.
Databßze, formulß°e a pohledy
Jak ji₧ bylo °eΦeno, SilverStream je hlavn∞ urΦen pro nßvrh javovΘho (a tedy i webovΘho) rozhranφ k databßzφm. Napojit se m∙₧ete na vlastnφ ji₧ pou₧φvanΘ databßze nebo je mo₧nΘ vytvo°it novΘ databßze p°φmo v SilverStream Designeru. Pro zßkladnφ nßvrh databßzovΘ tabulky zde slou₧φ Table Designer, ve kterΘm lze definovat jednotlivΘ sloupeΦky tabulky, resp. typy polo₧ek zßznam∙. Proto₧e SilverStream umo₧≥uje p°φstup k SQL databßzφm p°es javovΘ aplikace, automaticky se starß takΘ o p°evod p°φsluÜn²ch SQL datov²ch typ∙ na objektovΘ typy Javy. Podporovßny jsou pln∞ relaΦnφ databßze a v Relationship Designeru tak lze navrhovat vazby mezi jednotliv²mi tabulkami (pro vytvo°enφ vztahu se pou₧φvß oblφbenß metoda tßhni a pus¥).
Jakmile je p°ipravena struktura databßzov²ch tabulek, je mo₧nΘ p°ikroΦit k nßvrhu formulß°∙ slou₧φcφch pro zp°φstupn∞nφ vlastnφch zßznam∙ v databßzi. Formulß°e se vytvß°ejφ pomocφ vizußlnφho nßstroje Form Designer, jeho₧ souΦßstφ je i Form Wizard. Ten se aktivuje v₧dy p°i tvorb∞ novΘho formulß°e a umo₧≥uje snadno navrhnout zßkladnφ formulß°, kter² je pak mo₧nΘ dßle upravovat. Mo₧nosti p°i tvorb∞ formulß°∙ jsou pom∞rn∞ rozsßhlΘ, pou₧φvat lze r∙znß tlaΦφtka (vΦetn∞ obrßzkov²ch), zaÜkrtßvacφ polφΦka, vytahovacφ nabφdky, seznamy a do formulß°e lze dokonce vlo₧it oblast slou₧φcφ jako HTML editor.
Prßce s formulß°em je WYSIWYG, kdykoliv lze takΘ p°epnout do "b∞hovΘho" modu a vid∞t formulß° p°φmo s ·daji z databßze. Navr₧en² formulß° se uklßdß v podob∞ javovΘho k≤du (SilverStream pou₧φvß kompilßtor ze Symantec CafΘ), p°φstup k n∞mu je takΘ formou HTML formulß°∙, ty ale postrßdajφ °adu prvk∙ (nap°. kontrola obsahu polφΦka po editaci) a takΘ ztrßcejφ pracn∞ navr₧en² vzhled. Form Designer se stejn∞ jako vÜechny ostatnφ nßstroje vyvolßvß z hlavnφho okna SilverStream Designeru. Trochu mi ale vadilo, ₧e pro prßci s dalÜφm formulß°em je pot°eba Form Designer nejprve zav°φt a znova otev°φt s p°φsluÜn²m formulß°em (to ostatn∞ platφ o vÜech nßstrojφch).
Formulß°e jsou schopnΘ v danΘ chvφli zobrazit pouze 1 zßznam databßze, n∞kdy je ale vhodn∞jÜφ zobrazit vφce zßznam∙ formou tabulky. Aby se nepletly pojmy, pou₧φvß se pro takov² typ zobrazenφ termφn pohled (view). Pohled vlastn∞ urΦuje, jakΘ sloupce databßzovΘ tabulky se zobrazφ a jak se zobrazφ (tj. po°adφ a Üφ°ka sloupc∙, formßt zobrazenφ nap°. u data a Φφsel). Pohledy se navrhujφ ve View Designeru, kde lze takΘ urΦit, zda se majφ zobrazovat °ßdky s r∙zn²mi mezisouΦty. Pohled je potom mo₧nΘ vlo₧it do formulß°e, kter² nap°. zobrazuje ·daje o odd∞lenφ firmy spolu se seznamem zam∞stnanc∙ pracujφcφch na tomto odd∞lenφ.
Trochu programovßnφ
Vytvo°enφm formulß°∙ je p°ipraven zßkladnφ vzhled front-end rozhranφ k databßzi, formulß°e je ale jeÜt∞ pot°eba o₧ivit nap°. urΦenφm, co majφ d∞lat pou₧itß tlaΦφtka. Form Wizard sice automaticky p°i°azuje k tlaΦφtk∙m zßkladnφ akce, pro sofistikovan∞jÜφ chovßnφ formulß°e je ale vhodn∞jÜφ definovat akce vlastnφ.
K programovßnφ funkce ovlßdacφch prvk∙ se pou₧φvß Programming Editor, kter² lze vyvolat p°φmo z Form Designeru. Programming Editor umo₧≥uje zadßvat k≤d Javy, mΘn∞ nßroΦnφ u₧ivatelΘ se ale mohou obejφt i bez Javy. Tento editor toti₧ m∙₧e pracovat ve 2 modech, bu∩ jako plnohodnotn² editor javov²ch program∙, nebo jako editor "jednoduch²ch akcφ".
VÜe je zde zalo₧eno na principu udßlostmi °φzen²ch program∙. V hornφ Φßsti editoru se nejprve vybere prvek (nap°. tlaΦφtko), pro kter² se definuje akce, a p°φsluÜnß udßlost (stisknutφ tlaΦφtka myÜi). V modu jednoduch²ch akcφ lze potom sklßdat program z p°ipraven²ch blok∙ obsahujφcφch v∞tvenφ, cykly a sadu zßkladnφch akcφ (nap°. ulo₧ zßznam, p°ejdi na dalÜφ zßznam apod.). Vytvß°et lze i slo₧it∞jÜφ akce, nap°. "zav°i dialogovΘ okno zobrazujφcφ tento formulß°".
O p°evod symbolickΘho zßpisu do k≤du Javy se postarß SilverStream sßm. U₧ivatel si m∙₧e p°eveden² k≤d prohlΘdnout v modu Javy, kde lze takΘ vygenerovan² k≤d dßle upravovat. SilverStream v tomto sm∞ru zvolil velice sympatick² p°φstup. P°edn∞ pou₧φvß standardnφ jazyk, Javu, tak₧e se v²vojß°i nemusφ uΦit dalÜφ programovacφ jazyk. Pou₧itφ jednoduch²ch akcφ navφc umo₧≥uje rychle p°ipravit zßkladnφ kostru procedury, kterou lze potom doladit ·pravami k≤du Javy (zp∞tn² p°eklad z Javy do jednoduch²ch akcφ mo₧n² nenφ).
(Nejen) na Webu
Navr₧enΘ formulß°e spolu s p°idan²mi akcemi tvo°φ jßdro databßzovΘ aplikace. K tΘ lze p°istupovat prost°ednictvφm programu SilverStream Client, spuÜt∞nΘho se zadanou adresou aplikaΦnφho serveru (tedy i vzdßlen∞) a jmΘnem p°φsluÜnΘho formulß°e. Formulß° se zobrazφ v samostatnΘm okn∞ a jeho prost°ednictvφm lze pracovat se zßznamy databßze.
Asi b∞₧n∞jÜφ zp∙sob p°ipojenφ k vytvo°enΘ aplikaci bude prost°ednictvφm webovΘho prohlφ₧eΦe, SilverStream Designer proto nabφzφ modul Page Designer pro nßvrh webov²ch strßnek. Page Designer je vlastn∞ vizußlnφ webov² editor s podobn²mi schopnostmi, jakΘ majφ dalÜφ produkty tΘto kategorie. WebovΘ strßnka se zde vytvß°φ ve WYSIWYG modu podobn∞ jako v textovΘm editoru. Nenφ tedy nutnΘ ji k≤dovat p°φmo v HTML, i kdy₧ je mo₧nΘ zadßvat bloky HTML k≤du (tak lze takΘ naΦφst celΘ strßnky p°ipravenΘ v jinΘm HTML editoru). Do strßnky lze vklßdat obrßzky i tabulky (Üφ°ka sloupc∙ se nastavuje ta₧enφm, lze dßt obrßzek do pozadφ), je mo₧nΘ vytvß°et takΘ rßmce. Na prßci s ΦeÜtinou ale rad∞ji zapome≥te.
Na Page Designeru je zvlßÜ¥ u₧iteΦnß schopnost vklßdat do strßnek p°ipravenΘ formulß°e a pohledy, kterΘ jsou reprezentovßny javov²m appletem (Page Designer jinak p°φmo nenabφzφ formulß°ovΘ prvky). Lze tak vytvo°it sadu webov²ch strßnek tvo°φcφch rozhranφ k navr₧enΘ aplikaci.
Pou₧itφ
SilverStream je profesionßlnφ nßstroj, se vÜφm co k tomu pat°φ. ZaΦφnajφcφ u₧ivatele, kte°φ zatφm jen p°iΦichli k tvorb∞ jednoduch²ch webov²ch strßnek, je proto t°eba varovat. P°esto₧e SilverStream nabφzφ vizußlnφ v²vojovΘ prost°edφ, prßce s nφm vy₧aduje jistΘ netrivißlnφ znalosti a pro plnΘ vyu₧itφ jeho schopnostφ je pot°eba zvlßdnout programovßnφ v Jav∞. Na druhou stranu, jednoduchΘ aplikace lze vytvß°et i bez znalostφ Javy. V ka₧dΘm p°φpad∞ se ale neobejdete bez podrobnΘho studia manußl∙ -- a to dokonce ani p°i instalaci.
Prßv∞ instalace, podle kterΘ si u₧ivatelΘ ud∞lajφ prvnφ nßzor na produkt, je na dneÜnφ zvyklosti dost komplikovanß. Kompletnφ instalace SilverStreamu tak zahrnovala shßn∞nφ p°φsluÜnΘho Service Packu pro Windows a novΘho Java VM na Internetu (nov∞jÜφ instalaΦnφ CD-ROM by je m∞l u₧ obsahovat) a neobeÜla se bez n∞kolika restart∙ poΦφtaΦe mezi instalacemi jednotliv²ch Φßstφ. PodobnΘ je to i s nastavenφm (setup), kterΘ je nutnΘ provΘst ruΦn∞.
SilverStream je takΘ pom∞rn∞ hardwarov∞ nßroΦn², hlavn∞ pokud jde o velikost pam∞ti. 32 MB RAM rozhodn∞ pro rozumnou prßci nestaΦφ, doporuΦenΘ minimum je 64 MB, ale rad∞ji si po°i∩te jeÜt∞ vφce (p°i testu s jednoduchou aplikacφ byla "spot°eba" p°es 100 MB). Je sice pravda, ₧e ceny pam∞tφ jdou dolu, ale k Φemu tolik pam∞ti SilverStream v∙bec pot°ebuje?
Proto₧e je zde vÜe, od v²vojovΘho prost°edφ p°es aplikaΦnφ server a₧ po vytvß°enΘ aplikace, zalo₧eno na jazyce Java, je nezbytn² takΘ dostateΦn∞ v²konn² procesor. O nutnosti pou₧φvat nejnov∞jÜφ Javu 1.1 zde ji₧ °eΦ byla, neobejdou se bez nφ samoz°ejm∞ ani klienti, kte°φ p°istupujφ k aplikacφm navr₧en²m v SilverStreamu.
Celkov∞ nabφzφ SilverStream p°φjemnΘ (ale pomalΘ) u₧ivatelskΘ rozhranφ, unifikovanΘ ve vÜech modulech, tak₧e se zßkladnφmu ovlßdßnφ nauΦφte pom∞rn∞ rychle. Samoz°ejm∞ zvlßdnutφ tvorby vlastnφch webov²ch aplikacφ trvß podstatn∞ dΘle a jenom pr∙chod ·vodnφm kurzem zabere minimßln∞ den. P°esto₧e je celΘ v²vojovΘ prost°edφ vytvo°eno v Jav∞, ukßzalo se po dobu testu pom∞rn∞ stabilnφ. To u₧ ale tak ·pln∞ neplatilo o vytvo°en²ch aplikacφch, se kter²mi m∞ly webovΘ prohlφ₧eΦe problΘmy.