INTERAKTIV TÉRKÉPEK ÉS BESZÉLŐ GOPHER (Formok, scriptek, gatewayek az ME Gopher-WWW serverein) Perlaki Attila*, Dr.Vitéz Gáborné** *ME Informatikai Intézet **ME Számítóközpont 1. Interaktív miskolci Gopher 1. 1. A háttér A Miskolci Egyetemen 1993. őszén telepítették az első Gopher szervert. Mi is ez a Gopher és honnan származik? 1991 elején a Minnesotai Egyetem Számítóközpontjában elhatározták, hogy egy hálózatra épülő, egyszerű egyetemi információs rendszert hoznak létre, amit Gophernek neveztek el. A Gopher két fő részből áll, egy a felhasználót támogató u.n. kliens programból (Gopher), és egy az adatokat szolgáltató szerverből (Gopherd). A kliens kéréssel fordul a szerver felé, a szerver elküldi a kért információt. A hálozati kapcsolat a párbeszéd utan lebomlik, majd a következő kliens oldali kérés esetén újra épül. Ez a párbeszéd, a Gopher protokoll a TCP/IP protokollra épül. A Gopherben a két alapvető információ forrás a textfile és a directory. A Gopher az elküldött directoryt menüként mutatja meg, az elküldött file-t pedig megjeleníti a képernyőn. 1992-ben a minnesotai fejlesztők bemutatták a Gopher+ változatot. Ez támogatja (több új lehetőség mellett) a különféle képfile formátumot, valamint az un. ASK blokkot. Igy már kitölthető űrlapot (input form) is tud kezelni a szerver, tehát a felhasználó is küldhet adatot a szervernek. 1.2. A jelen nálunk A ME Számítóközpontjában a gold nevű IBM 970-es gépen egy 2.1.3-as verzió számú Gopher szerver fut. A megbízható hardware-software hátteret a gold rendszergazdája, Burmeister Norbert és munkatársai biztosítják. A szervert a Gopher-csoport látja el információval, azaz begyüjti az adatokat, elhelyezi a Gopher-space-ben (egy hatalmas directory struktúra), naprakészen tartja és ellátja extra szolgáltatásokkal. A főszerkesztő Drótos László, kinek lelkesedése és tiszteletre méltó INTERNET kultúrája erős hatással van a csoport tagjaira. Nem véletlenül hozzák példaként az ujságok a miskolci Gophert. A csoport tagjai az évek során változtak. Jelenleg Perlaki Attila, Fülep Dávid, egyetemi hallgatók, Bodnár József és Somosvári Béla számítástechnikai munkatársak tevékenykednek a legaktívabban. Bodnár József a szerver scriptek területén, Fülep Dávid az interaktiv térképek létrehozásánál tett legtöbbet a csoport munkájához. Én 1994. szeptemberében csatlakoztam a csoporthoz. Számomra a legizgalmasabb kérdés : Mit tud egy programozó hozzátenni a Gopherhez? 1.3. Formok, scriptek, gatewayek a miskolci Gopheren Már egy éve üzemelt a goldon a Gopherd, amikor újabb szolgáltatást akartunk nyujtani megsokasodott olvasóinknak. Először is, lehessen apróhirdetést feladni a Gopherbe! Ehhez egy input formot (ASK blokk) és mögé egy szerver scriptet kellett írni. A felhasználó beírhatja a nevét, címét, telefonszámát, email címét és egy 10 soros hirdetést. A klienstől kapott adatokat a szerver továbbítja a scriptnek A scriptből a unix mail parancsát használva elküldjük a hirdetést egy gohir nevü usernek, akinek a postaládája (mail box) a Gopher-space egy file-jához van linkelve. A Gopherd a mail boxot menüként tudja megmutatni. A script perl nyelven van írva. Másik hasonló szolgáltatás a Vendégkönyv. Itt bárki elmondhatja a véleményét, ötletét a ME Gopherrel kapcsolatban, ez perceken belül megjelenik és olvasható a Gopherben. A szerkesztők számára is érdekes információt nyujt a szerver log file kiértékelése, amely "Statisztika a Gopher használatáról" című menüpontból kérhető. A Gopherd indítható úgy, hogy jegyezze, kik "látogatták" meg és honnan, és mire voltak kiváncsiak. A statisztika az időtartam (napi, heti), host (belföld, külföld, minden host, csak a szerver host, stb), esemény (connect, directory, file elérés) függvényében nyujt tömör információt a látogatottságról. A scriptet Bodnár József kollégám irta , a Gopherbe én integráltam be. A szerver scripteket lehet shell-ben is írni, vagy készíthetünk egy C programot, ami shell-ből indul. A szerver ezeket meg tudja "futtatni". Ha szétnézünk a miskolci Gopheren, további példákat is találunk erre. (angol-magyar , magyar-angol szótár; a 12-es, 22-es busz indulása , stb...) Újabb verzióju szerverek egy script kimenetét directoryként is tudják kezelni. Igy lehet egyszerün írni gatewayeket (átjárókat). Ilyen például a GopherArchie gateway, GopherFinger gateway. Részletesebben: lehet, hogy egy másik gépen fut egy szerver, melynek szolgáltatásait a Gopherből is szeretnénk nyujtani. A Gopherd egy másik gépen, másik porton futó u.n. daemon programot is le tud kérdezni a gateway programon keresztül. A kapott kimenetet text vagy directoryként átveszi és elküldi a kliensnek. Ehhez hasonló módon fut a goldon a Jughead nevü progaram (free software), melyet néhány hónapja installáltam. A Jughead naponta leindexeli a Gopher-space-ben lévő file-ok neveit, (illetve a menük nevét) és így mindig aktuális cimlistán lehet keresni. Ezeken fellelkesülve irtunk meg egy speciális kereső programot kollégámmal Bodnár Józseffel, mely a MEK (Magyar Elektronikus Könyvtár) file-jainak fejlécében keres. A program két változatban készült, szerver scriptként és daemonként. 2. A miskolci Gopher és a WWW 2.1. WWW az INTERNETEN Mire szívünkhöz nőtt a Gopher, megjelent az INTERNETEN egy új, látványos szolgáltatás, a WWW ( World Wide Web) . Eredetileg az Europen High-Energy Phisics Research Center-ben fizikusok számára hozták létre ezt a hypertext kezelő rendszert, de hamarosan meghódította a világot. Hasonló a Gopherhez, de nem menükben, hanem hypertextben lépegetve jutunk el a kívánt információhoz. A szöveges és képes információ u.n. web lapokon helyezkedik el, melyeken kiemelt szó, vagy mondatrész, vagy kép jelzi, hogy ott további tudnivaló rejtőzik. Ha kiemelt részre "enterezünk" , a témához kapcsolódó, új információhoz jutunk., amely a világ bármely web vagy Gopher vagy egyéb INTERNET szerverén lehet. A web oldalak HTML (HyperText Markup Language) nyelven iródnak. A hyperlinkeket az URL (Uniform Resource Locator) segítségével hozzuk létre. A kliensek közül a Netscape a kedvenc. Grafikus (X-es) felülettel rendelkezik , azaz ablakos, egeres környezetben keresgélhetünk az INTERNETEN. 2.2. WWW nálunk, a Gopher-csoportban Ez a fantasztikusan szép, új lehetőség a Gopher csoport fantáziáját is megmozgatta. Mostanra a miskolci Gopher jelentős mennyiségű információt tartalmaz. Felmerült az igény: jó lenne hozzá egy olyan www oldal, mely az egyetem terképéről egér inputtal; nyujtana gyors információt. 1995 elején a 486-os PC-men futó Linux rendszeren egy http szervert (httpd) installáltam. Célom az volt, hogy a Gopher-csoport kipróbálhassa a WWW lehetőségeit HTML nyelvű dokumentumok keszítésével. 2.3 Formok, scriptek, gatewayek a Linuxos WWW szerveren Mint a Gopher esetében, a WWW-nél is az nagyon érdekelt, hogyan lehet olyan rendszert építeni, amely interaktív. Tehát a felhasználó nem passzív, és csak ül és olvas, hanem olyan adatokat, kérdéseket küld a szervernek, amelyre a számára szükséges választ kaphatja Az X-es kliens felület kétféle input lehetőséget kínál. -Irhatunk HTML nyelvű formokat, melyek rendelkezhetnek input mezővel, chekbox-al, radio button-nal, textareaval. és select taggal. Ezeket alkalmaztam a "Egyetemi telefonkönyv" és az "Új könyvek a Központi Könyvtárban" www változatánál. -A másik érdekes input lehetőség a grafikus azonositáson alapuló egér input. Egy kép hot-pointjához (image map) akciót rendelhetünk. Ezzel a lehetőséggel éltünk, amikor elkészítettük az egyetem interaktív térképét. A térkép pontjaihoz rendelt képeket, szövegeket egér kattintásra hívhatjunk elő, vagy indíthatunk egy szerver scriptet, vagy lekérdezhetünk egy másik Gopher vagy www szervert. A város számára is készült egy hasonló interaktív térkép, ahonnan szép, a városról készült képeket, iskolákról készült ismertetőket hívhatunk elő egy kattintással. Az interaktív közlekedési térképről menetrendet szolgáltatunk ugyancsak hasonló módon. Ahogyan a Gopher eseteben, a WWW szerver installálása után első dolgom a programozási lehetőségek felderítése volt. A httpd konfigurálásánál meg kell adni egy u.n. CGI (Common Gateway Interface) directoryt, ahol a szerver a futtatható scripteket keresi. Ezeket a scripteket is leggyakrabban perl-ben irják, vagy C nyelven. A ME Számítóközpontjának gold gépén Oracle szerver is fut. Az SQL lekérdezések c programból is indíthatók. Igy mód nyílt arra, hogy www-oracle gateway-t probáljak írni. A már említett "Egyetemi telefonkönyv" és az "Új könyvek a Központi Könyvtárban" eddig is lekérdezhető volt. A Számítóközpont munkatársai készítették az Oracle Forms eszközzel az applikációkat és telnet-tel lehetett kapcsolódni az Oracle szerverhez a Gopherből. Ezt áttéve C nyelvbe, X-es környezetben, szebb és kényelmesebb felületet tudtam készíteni ezekhez a lekérdezésekhez, felhasználva a gateway írás tapasztalatait.. 2.4. Gopher és WWW szerverek együtt Miután megtettük a kezdő lépéseket a WWW világába, egy különleges Gopher fejlesztésről kaptunk hírt. Újabb Gopher szerverek a HTML lapokat is tudják kezelni, mégpedig úgy, hogy a szépen megformázott WWW oldalra felírjak a Gopher menüt, mint hyperlink hivatkozásokat. A HTML nyelvü file-t a Gopher directoryban kell elhelyezni .about.html néven. Ezt a ragyogó lehetőséget kár lett volna kihagyni. Ez év szeptemberében installáltam a 2.1.3-as verziójú Gopher szervert, amely képes volt értelmezni a .about.html file-okat, és megjelent a Gopher a Netscape kliens szemüvegén keresztül színesben, képekkel, hyperlink hivatkozásokkal. 2.5. További lehetőségek Az említett interaktív Miskolc térkép egy városi információs rendszer alapja lehetne. Ehhez rengeteg további információra és újabb lelkes Gopher-csoport tagok munkájára lenne szükség. Már néhány példa van erre: a Bartók Béla Zeneművészeti Szakközépiskola home page-e, a már említett városi fotók, a menetrendek, vagy a Somosvári Béla által indított Első Miskolci Elektronikus Galéria. A Gopher és WWW lehetőségei kis fantáziával sok irányban kibontakoztathatók. Létezik olyan gateway, mely a Gopher menüpontokat elküldi e-mail-en, és megfelelő válasz esetén ez a "levelezős párbeszéd" folytatható. Perlaki Attila is előállt egy különleges ötlettel. Ez a beszélő Gopher, melynek fejlesztése elkezdődött. A jelenlegi verziót Robot-Gophernek nevezhetnénk. 3. Gopherphone A Gopher szolgáltatások elérése számítógéppel nem rendelkezők részére is 3.1. Bevezetés Amikor a számítógép elé ülünk, hogy a hálózaton át kapcsolatba kerüljünk a világban megtalálható információs rendszerekkel, magától értedődőnek tartjuk, hogy a szemünket és a kezünket használjuk. A képi információra a legfogékonyabb az agy, s a kezünkkel tudunk a leggyorsabban, ugyanakkor a legprecízebben dolgozni. Vajon ezek nélkül nincs módunk adatokat szerezni a hálózatból? Világtalan barátommal a számítástechnikáról és az új információk megszerzésének módjairól beszélgettünk. Nekem a Gopher használata volt mindennapos, neki a számítógép képernyő nélküli, beszédszintetizátoros használata. Az ötlet ezután magától adódott: legyen beszélő Gopher! 3.2. Mit ad? Képes arra, hogy a lehető legegyszerűbb, mindenki által ismert és használt eszközzel hozzon létre a lehetőségekhez mérten a lehető legjobb kapcsolatot az egyébként számítógép nélkül elérhetetlen információszolgáltatókkal. Lényegében a felhasználó oldalán nem igényel mást, mint egy nyomógombos (tone dialing) telefont. A Gopher az eredetileg a képernyőn megjelenő adatokat olvassa be a telefonba, a felhasználó pedig a megfelelő szám beütésével kérhet új információt. 3.3. Mi kell hozzá? 3.3.1 Hardware A szolgáltató oldalán szükséges egy beszédszintetizátor. Alapkövetelmény, hogy az előállított beszédhang a telefon átviteli viszonyai mellett könnyen érthető maradjon. A beszédszintetizátor megvalósítása lehet céleszköz, vagy hangkimenetre (hangkártyára) dolgozó program is. Az utóbbi előnye a hangállományok lejátszásának egyszerű lehetősége. Ekkor csak a hangkimenet telefonvonalra illesztése marad hátra. Szükséges továbbá egy tone-dekóder, amely a felhasználó által bebillentyűzött számokat felismeri és a számítógép felé továbbítja. Számos hasonló alkalmazás létezik. 3.3.2 Software A rendszert a létező Gopherre építhetjük rá. A GopherMail jó példa az ilyen bővítésre. Természetesen a Gopher továbbra is nyújtja az alapszolgáltatást. Programozástechnikailag egy Gopher-kliens mutáns létrehozása a feladat. Szükséges egy olyan program, amely a beszédszintetizátort hajtja meg. Ennek bemenete a Gopher által szolgáltatott szöveges információ. A programnak legalább két nyelvet helyesen kell kezelnie, a magyart és az angolt. (Igény lehet további nyelvekre is.) Minden nem szöveges anyagot (a hanginformációk kivételével) hibajelzéssel kell visszautasítania. A program az alkalmazott hardware megoldástól függ. Szükséges egy másik program a tone-dekóder kezelésére. Ennek a számjeleket kell átalakítania a Gophert vezérlő információkká. A rendelkezésre álló jelkészlet korlátozott (0-9), ezt figyelembe kell venni. 3.4. Hogyan működik? A felhasználó felhívja a GopherPhone-t. A kapcsolat létrejötte után a GopherPhone bemutatkozik, majd várja a felhasználó parancsait. Ezek a következők lehetnek: Menüben: Következő sor [KS] Előző sor [ES] Aktuális sor visszaolvasása [AS] Belépés (a következő menüszintre) [BE] Visszalépés (az előző menüszintre) [KI] Kilépés [EL] Segítségkérés [??] Szövegben: Olvasás folyamatosan (megszakítás/folytatás) [OL] Vissza egy sorral [ES] Visszalépés (az előző menüszintre) [KI] Kilépés [EL] Segítségkérés [??] Célszerű a telefonbillentyűzet kiosztását valamilyen logika (pl. a kurzorbillentyűknek megfelelően) felhasználni és csak a számbillentyűkre korlátozni. A kapcsolat megszakadását kilépésként kell kezelni. Hosszabb szünet esetén figyelmeztető üzenetet szükséges küldeni. 1 2 3 [?] [ES] 4 5 6 [KI] [OL] [BE] 7 8 9 [EL] [KS] * 0 # 3.5. Korlátok A rendszer csak szöveges és esetleg hanginformációk (ezek bejátszása esetleg más hardware-t és software-t igényel) tud kezelni. A kezelhetőség nagyon szigorúan rendbentartott menüstruktúrát igényel. (Pl. kerülendő a többoldalas, több tucat menüpontot tartalmazó menü; a karaktergrafikák; a többhasábos szövegek és táblázatok; a nem találó menüpontnevek) 3.6. Fejlesztési lehetőségek A rendszert hozzá lehet igazítani a Lynx-hez is, de ekkor a vezérlés fent ismertetett módján is változtatni kell. Adatbazisrendszerek a fenti módszerrel (beviteli lehetőségek szűkössége) valószinűleg nem kezelhetők gazdaságosan. Felmerül a menüpontok közvetlen hívhatóságának lehetősége. Amennyiben erre egy külön kapcsolószámot (pl. 9-es) definiálunk, úgy ez elvileg megoldható. Ekkor azonban egy menüoldal nem tartalmazhat tíz menüpontnál többet és a felhasználónak legalább részben már ismernie kell a rendszert. (Keressük pl. a második menüpont hatodik almenüjének harmadik pontjában lévő információt! "Tárcsázandó" ekkor a 9263.) Ehelyett célszerűbbnek látszik csak bizonyos információkat (pl. most wanted) bevonni a közvetlen hívásba, s ekkor fix hosszú hívószám használható. További ötletek: hangpostafiók, hangos homepage, nagyobb anyagok lekérése faxra, telefonwurlitzer, játékok, ... 3.7. Gazdasági és egyéb megfontolások A rendszer elterjedését segítheti, hogy a felhasználó részéről nem igényel külön beruházást (pl. számítógépet). A rendszer használatának költsége a felhasználó oldalán függ az információ megkeresésének és átvitelének sebességétől. (A telefon drága jószág!) A szolgáltatónak be kell szereznie beszédszintetizátor(oka)t és tone-dekóder(eke)t. Ezeket részben az adott feladathoz át kell alakítani, esetleg helyben előállítani és ki kell fejleszteni a megfelelő programillesztéseket is. A rendszer jóval szélesebb réteg számára teszi elérhetővé a Gopher szolgáltatásait, mint a jelenlegi megoldások. Ez természetesen visszahat a Gopherekbe kerülő adatokra is. Külön kihangsúlyozandó a világtalanok bekapcsolódása a hálózatba. 3.8. A RobotGopher A RobotGopher az a kísérleti berendezés, amelyet tapasztalatszerzés céljából állítottunk össze. Első feladatunk a megfelelő beszédszintetizátor kiválasztása volt. A rendszerhez szükséges beszédszintetizáló eszközöket az eddigi felmérésünk szerint három csoportba sorolhatjuk: 1. Önálló hardware egység 2. Speciális PC kártya 3. PC hangkártyára épülő software Két egységet sikerült eddig kipróbálnunk. A Brailab PC eszköz a második csoportba sorolható, vakok számára fejlesztették ki a KFKI-ban (Arató András és Vaspöri Teréz munkája). Egy soros és egy párhuzamos portot foglal el, rezidens meghajtóprogrammal rendelkezik (ennek mérete 60 kbyte), a programok számára COM4 eszközként jelentkezik. Érthetősége jó, de csak magyarul tud (korlátozottan kiegészíthető angol szótárral). A másik egy Sound Blaster kártyára épülő software, ennek előnye az egyéb hanginformációk kezelhetősége, azonban a tapasztalatok szerint beszédérthetősége rosszabb, bár angol nyelven is tud. Mindkét eszköz külső hangszóróra dolgozik, így illesztésük a telefonvonalra megoldható. Mi az első eszkőz mellett döntöttünk. Néhány további eszközt (pl. a DECtalk, Braile'n'Speak) magas ára vagy elérhetetlensége miatt nem vizsgáltunk meg. A következő lépés a beszédszintetizátort a Gopher felől "tápláló" összekötőprogram működésének tisztázása volt. Meg kellett határoznunk, melyek azok a funkciók, amelyeket megvalósítani érdemesnek tartunk, s melyeket hagyjuk ki. Mennyiben befolyásolja a hagyományos Gopher működését és felépítését egy ilyen szolgáltatás (különös tekintettel a rövid, érthető menüelnevezésekre, valamint a szigorú struktúrára). Hogyan tudjuk a rögzített anyagok egyes visszatérő problémáit (legfőképpen az ékezet nélküli szövegekét) kezelni. Milyen állományokat tudunk szolgáltatni? (Nem egyszerű kérdés, hiszen a szövegállományokon belül más és más szintetizálási módszer kell a magyar, az angol, stb. nyelvű szövegekhez, valamint hangállományok kezelése is elképzelhető.) A programozástechnikai kérdések közt olyan alapvetőek is akadtak, mint például, hogy a szolgáltató és a hardver meglévő programjai különböző operációs rendszerek alatt futottak. Dönteni kellett, melyik oldalt írjuk meg újra. A RobotGopher egyfajta "lopakodóprogrammal" rendelkezik, amely képes megteremteni az egyébként nem erre a célra tervezett programok közti együttműködést. Reméljük, hogy a csekély ráfordítással létrehozott kísérleti berendezéssel is bizonyíitani tudjuk, ennek a megoldásnak helye van a már létező információtecnikai eszközök közt és érdemes a továbbfejlesztésre. IRODALOM: [1] Drótos László - Popovics Péter : Hogyan csináljunk saját Gophert? N.I.I.F. Budapest, 1995 [2] Gopherd Manual Page [3] Adam Gaffin : Nagy Internet kalauz mindenkinek 3.1