Obsah | Dal¹à | Pøedchozà |
AdminAgent je samostatná klientská aplikace vytvoøená za úèelem dotazovánĂ a administrace dokumentografickĂ©ho informaènĂmu systĂ©mu Agent. HlavnĂmi kritĂ©rii pøi návrhu tohoto klienta byly:
Z dĂąvodu velkĂ© rozÂąĂøenosti a snadnĂ© implementovatelnosti byl pro spojenĂ klient-server zvolen protokol TCP/IP. Jako programovacĂ jazyk byla zvolena na platformì nezávislá, dynamicky se rozvĂjejĂcĂ JAVA. Java byla zvolena mimo jinĂ© takĂ© proto, Âľe nìkterĂ© èásti kĂłdu bude moÂľno v budoucnu vyuÂľĂt pøi tvorbì jednodu¹¹Ăho JAVA appletu, kterĂ˝ bude dostupnĂ˝ pro libovolnĂ©ho uÂľivatele Internetu pomocĂ webovskĂ©ho browseru a bude obsahovat pouze nástroje pro dotazovánĂ. Jak se pozdìji ukázalo, v tĂ© dobì dostupnĂ© verze Javy (hlavnì Java Foundation Classes pouÂľĂvanĂ© právì pro tvorbu uÂľivatelskĂ©ho rozhranĂ) trpìly øadou chyb, kterĂ© se vÂąak podaøilo obejĂt, odstranit nebo zanikly samy pøechodem na novìj¹à verze. Â
AdminAgent bì¾à na jakĂ©koliv platformì, která podporuje grafickĂ© uÂľivatelskĂ© rozhranĂ a je pro ni implementován virtuálnĂ stroj Javy, tzn. je k dispozici Java interpreter. Mù¾e bĂ˝t tedy spuÂątìn ve Win32 (Windows NT, kde byl odladìn, Windows 95, pøĂpadnì Windows 98), na systĂ©mech Unix s grafickĂ˝m uÂľivatelskĂ˝m rozhranĂm (XWindows), Macintosh atd. Na systĂ©mu musĂ bĂ˝t nainstalován virtuálnĂ stroj javy, tedy JRE (Java Runtime Environment), pøĂpadnì JDK (Java Development Kit) verze 1.2.
Dále je tøeba, aby bylo nainstalováno sĂ»ovĂ© rozhrannĂ TCP/IP. Nìkde v dosahu sĂ»ovĂ©ho spojenĂ TCP/IP by mìl bì¾et server Agent (AdminAgent je klientská aplikace a jejĂ spuÂątìnĂ bez napojenĂ na server nemá smysl, samozøejmì vÂąak spustitelná samostatnì je). Podrobnìj¹à informace o instalaci najdete v kapitole 9.1.2 Instalace (klient). Â
AdminAgenta lze pouÂľĂvat jak pro administraci a správu serveru na dálku tak pro dotazovánĂ. UÂľivatel se tedy mù¾e pøihlásit jako administrátor, nebo jako obyèejnĂ˝ uÂľivatel (guest). UÂľivateli jsou urèeny funkce pro dotazovánĂ a parametry sezenĂ. Administrátor smĂ navĂc mìnit parametry systĂ©mu, a dále databáze obsahujĂcĂ dokumenty a vÂąechny jejich vlastnosti.
Po dobu, kdy má klient zøĂzeno sezenĂ, mù¾e server provádìt jistĂ© optimalizace pøi vyhodnocovánĂ dotazĂą se zpìtnou vazbou (server si pro kaÂľdĂ© aktivnĂ sezenĂ pamatuje historii dotazĂą a odpovìdĂ). UdrÂľuje si navĂc napø. informace o maximálnĂm poètu dokumentĂą kterĂ© má server vracet na dotaz atd. Dal¹à informace najdete v kapitole 6.6 NapojenĂ na server, zøĂzenĂ sezenĂ. Â
Dotazy, kterĂ© lze pokládat serveru Agent, lze rozdìlit do následujĂcĂch skupin:
SloÂľitìj¹à dotazy jsou konstruovány kombinacĂ nìkterĂ˝ch (popøĂpadì vÂąech) tìchto elementárnĂch dotazĂą.
VĂ˝sledkem dotazu je mnoÂľina dokumentĂą, kterĂ© server vrátĂ jako relevantnĂ dotazu. HlavnĂ parametry dokumentĂą, jako je jeho název, autor, URL a váha se zobrazujĂ do tabulky. Detailnìj¹à informace o dokumentu si mù¾eme pøeèĂst, pokud nìjakĂ˝ dokument v tabulce vybereme. PotĂ© se v sekci Document Details zobrazĂ dal¹à detaily, jako jsou knihy, do kterĂ˝ch je dokument zaøazen, datum, kdy byl dokument vytvoøen, jazyk, ve kterĂ©m je napsán, a podobnì. Detailnìj¹à popis práce s vĂ˝sledky dotazĂą je popsán v kapitole 9.3 PøĂruèka uÂľivatele Â
Vzhled aplikace je podøĂzen snaze vytvoøit co nejjednodu¹¹à a pøitom maximálnì efektivnĂ (tzn. co nejrychlej¹à a nejpøehlednìjÂąĂ) ovládánĂ. UÂľivatelskĂ© rozhranĂ se skládá z mnoÂľiny formuláøù. KaÂľdĂ˝ formuláø vizualizuje urèitou funkcionalitu systĂ©mu. To znamená, Âľe existujĂ formuláøe pro zaindexovánĂ dokumentu, pro pokládánĂ dotazĂą, zobrazovánĂ odpovìdi atd. Formuláøe jsou dále zaøazeny jako uzly stromovĂ© struktury zohledòujĂcĂ logickou hierarchii tìchto formuláøù.
Tento návrh je potom implementován následovnì. Aplikace má z dĂąvodu pøehlednosti jen jedno okno,kterĂ© je vertikálnì rozdìleno na dvì èásti. V jeho levĂ© èásti je strom (podobnĂ˝ jako napø. ve Windows Exploreru), jehoÂľ uzly reprezentujĂ jednotlivĂ© formuláøe, v pravĂ© èásti okna je umĂstìn formuláø odpovĂdajĂcĂ zvĂ˝raznìnĂ©mu uzlu stromu v levĂ© èásti. Na obrázku 6.4-1 je okno AdminAgenta zobrazujĂcĂ vĂ˝sledky dotazu. Po kliknutĂ na urèitĂ˝ uzel stromu se v pravĂ© èásti okna objevĂ odpovĂdajĂcĂ formuláø, kterĂ˝ jiÂľ potom zpøĂstupòuje samotnou funkcionalitu. Pro svou pøehlednost byla tĂmto zpĂąsobem navrÂľena i nápovìda. Popis práce s jednotlivĂ˝mi formuláøi lze v podstromu Help najĂt pod stejnĂ˝m názvem nebo kliknutĂm na tlaèĂtko Help na samotnĂ©m formuláøi. VlastnĂ nápovìda je realizována v jazyce HTML, coÂľ umo¾òuje jejĂ snadnou modifikaci bez rekompilace aplikace. Strom formuláøù je dynamickĂ˝, tzn. Âľe zpøĂstupòuje vÂľdy jen ty formuláøe, kterĂ© lze v danĂ˝ moment pouÂľĂt, napø. nelze pokládat dotazy, pokud dosub nebylo navázáno spojenĂ se serverem a podobnì.
Tento uÂľivatelskĂ˝ model, tj. strom s formuláøi byl zvolen hlavnì z dĂąvodu pøehlednosti a jednoduchosti ovládánĂ. JednotlivĂ© funkce systĂ©mu jsou pøehlednì zaøazeny do hierarchie stromu, podobnì jako v menu, ale uÂľivatel mù¾e v jeden okamÂľik vidìt obsah celĂ©ho stromu a tak i veÂąkerou funkènost systĂ©mu a práce se tĂm stává rychlejÂąĂ. Mù¾e si ponechat otevøenĂ© jen nìkterĂ© vìtve stromu a velmi rychle a pruÂľnì jednĂm kliknutĂm myÂąi pak pøepĂnat mezi formuláøi, kterĂ© právì pouÂľĂvá (nìkterĂ© formuláøe se mezi sebou dokonce pøepĂnajĂ automaticky, napø. po spuÂątìnĂ dotazu se formuláø s dotazem vymìnĂ za formuláø s vĂ˝sledky ...). PouÂľitĂ menu by tedy bylo pomalej¹à a pro uÂľivatele mĂ©nì pohodlnĂ©.
Obrázek 6.4-1 - Okno AdminAgenta zobrazujĂcĂ vĂ˝sledky dotazu
Struktura stromu je èásteènì závislá na tom, zda jiÂľ klient navázal spojenĂ se serverem a zda se pøihlaÂąuje jako administrátor. Pokud jeÂątì nebylo navázáno spojenĂ, jsou uÂľivateli k dispozici pouze základnĂ funkce nezbytnĂ© pro navázánĂ spojenĂ, konzole, help ... Pokud je jiÂľ spojenĂ navázáno (tj. novĂ© sezenĂ), zále¾à na tom, zda se uÂľivatel napojil jako administrátor nebo anonymnì (volba guest). V kladnĂ©m pøĂpadì je mu k dispozici kompletnĂ strom tak, jak je naznaèeno nĂÂľe, v opaènĂ©m pøĂpadì ve stromu chybĂ vìtve urèenĂ© k administraci databáze a správì serveru. AnonymnĂ uÂľivatel tak nenĂ zbyteènì rozptylován vìtvemi stromu a formuláøi, kterĂ© by pro nìj stejnì nemohly bĂ˝t pøĂstupnĂ©, a ovládánĂ programu se pro nìj stává snadnìj¹à a pochopitelnìjÂąĂ.
Popis ĂşplnĂ© struktury stromu najdete v pøĂloze 10.2.5 Struktura stromu AdminAgenta. Â
AdminAgent pouÂľĂvá tyto dva konfiguraènĂ soubory:
Soubor hostbook.aag obsahuje informace o serverech (jmĂ©no, parametr host, parametr port), soubor browser.aag obsahuje specifikaci externĂho webovskĂ©ho prohlĂÂľeèe (absolutnĂ cestu). Za normálnĂch okolnostĂ nenĂ potøeba je ruènì mìnit, oba jsou editovatelnĂ© prostøednictvĂm klienta. Â
Po pøĂkazu Connect (pøĂpadnì ihned po spuÂątìnĂ) si klient poprvĂ© vytvoøà TCP/IP socket a zĂská tak èĂslo sezenĂ, kterĂ© pouÂľĂvá pozdìji pøi dotazovánĂ a administraci. PotĂ© socket zruÂąĂ. NovĂ˝ socket vytvoøà aÂľ pro kaÂľdĂ˝ dal¹à pøĂkaz nebo dotaz a po obdrÂľenĂ odpovìdi jej opìt zruÂąĂ. Tento pøĂstup dynamickĂ©ho vytváøenĂ a ruÂąenĂ socketù pro kaÂľdĂ˝ pøĂkaz nebo dotaz byl zvolen z tìchto hlavnĂch dĂąvodĂą:
AdminAgent pøedpokládá vysokou interaktivitu se serverem. Vlivem tohoto pøedpokladu byl zpùsob komunikace se serverem rozdìlen do dvou typù:
ZdrojovĂ˝ kĂłd je rozdìlen (jak je tomu v jazyce Java dobrĂ˝m zvykem) do nìkolika balĂkĂą (package). KonkrĂ©tnì jsou to balĂky:
Tento balĂk zapouzdøuje hlavnĂ funkcionalitu klienta a veÂąkerĂ© datovĂ© struktury, kterĂ© pouÂľĂvá. BalĂk takĂ© obsahuje v hlavnĂ spustitelnou tøĂdu AdminAgent a jejĂ hlavnĂ datovou strukturu AdminAgentData. AdminAgent je pøedevÂąĂm grafickĂ˝m rozhranĂm, nepouÂľĂvá ¾ádnĂ© speciálnĂ algoritmy nebo datovĂ© struktury.
Obsahuje tøĂdy zdìdìnĂ© od tøĂdy java.lang.Thread. PouÂľĂvajĂ se pro zøizovánĂ spojenĂ se serverem, která trvajĂ dlouho - typicky se jedná o indexace dokumentĂą, reorganizace databázĂ, ale i dotazovánĂ.
Obsahuje tøĂdy grafickĂ©ho uÂľivatelskĂ©ho rozhranĂ. Jako hlavnĂ tøĂdu tohoto balĂku mù¾eme povaÂľovat tøĂdu GUI, která volá vÂąechny ostatnĂ grafickĂ© komponenty. Obsahuje objekt strom a metody pro jeho zmìny. Nejvìt¹à podĂl balĂku tvoøà podtøĂdy tøĂdy Form jenÂľ reprezentuje formuláø.
AdminAgent byl navrhován tak, aby v pøĂpadì potøeby zmìny národnĂ podpory (aplikace komunikuje s uÂľivatelem anglicky), nebyly nutnĂ© velkĂ© zásahy do zdrojovĂ©ho kĂłdu a bylo moÂľno co nejjednodu¹¹Ăm zpĂąsobem aplikaci upravit pro jinĂ˝ jazyk. TøĂdy v tomto balĂku obsahujĂ veÂąkerĂ© statickĂ© texty a dialogy zobrazovanĂ© na obrazovku jako konstanty. Komponenty GUI pøitom pouÂľĂvajĂ vĂ˝hradnì tyto konstanty. Pøeklad do jinĂ©ho jazyka tedy vlastnì znamená pouhou zmìnu konstant v tìchto tøĂdách (a opìtovnĂ˝ pøeklad tìchto tøĂd do byte kĂłdu). NavĂc tøĂda Paths obsahuje cesty ke konfiguraènĂm souborĂąm AdminAgenta a k souborĂąm nápovìdy.
1999-03-05 | Robert Machacek |