Trykket i Nettverk & Kommunikasjon nr.5/2000
(c) Anders Fongen 2000
Anders Fongen er høgskolelektor ved Den Polytekniske Høgskolen i Bærum. Webstedet hans er på www.fongen.no
Hvorfor Java på en tynn klient? Fordi Java er et arkitekturnøytralt språk, dvs. at et ferdig kompilert Java-program kan kjøres på mange slags datamaskiner, uavhengig av operativsystem og prosessortype. Java byr på store muligheter for å valge og vrake mellom konkurrerende maskinsystemer uten å måtte lage separate programmer for hver type.
Det har eksistert et produkt som heter ”Java-PC” som omgjør en standard DOS-basert PC til en ”Java-stasjon”, og det er selvfølgelig mulig å bruke Java-programmer skrevet for en tynn klient på en vanlig Windows-PC. Dette er ikke noe argument mot å benytte seg av tynne klienter, derimot så skaper Java på denne måten en migrasjonsvei for en gradvis utplassering av slikt utstyr.
Java er et ganske ”tungt” kjøremiljø, og det krever ganske mye minne og prosessorkraft for å få kjørt Java-programmer. Vi har derfor ikke ventet å se Java-muligheter i enkle håndholdte datamaskiner, men nå har vi fått anledning til å teste ut en håndholdt datamaskin med Java-egenskaper:
Psion (www.psion.com) har mye erfaring med utvikling av håndholdte datamaskiner, og "leder" på sett og vis utviklingen på tastaturbaserte enheter (foran produkter som baserer seg på Windows CE). Ved siden av Psion 5 og Revo, som er i lommestørrelse, har de også Psion 7 og Psion netBook. Psion 7 importeres etter det vi vet ikke til Norge, og Psion netBook rettes først og fremst mot bedriftsmarkedet.
I likhet med de andre Psion-modellene baserer også netBook seg på bruk av operativsystemet EPOC (www.symbian.com), men denne modellen er utstyrt med ressurser som gjør det fornuftig for den å kjøre Java-programmer. Den har som standard 32MB minne, den har et fargeskjerm på 640*480 punkter og tilstrekkelig med prosessorkraft.
Forøvrig er maskinen utstyrt med den vanlige programvaren for Psion-maskiner, bl.a. en enkel tekstbehandler, et regneark, tegneprogram, kommunikasjonsprogramvare for tilkopling til Internet og klientprogram for Web og E-post. Programvaren for tekstbehandling blir ganske anvendelig når den får denne store skjermen å arbeide med.
Tastaturet på netBook er nesten på størrelse med et standard PC-tastatur, avstanden mellom A og L er bare 5mm kortere. Dette er en maskin som man greit nok kan skrive på i timevis (norsk tastatur kommer i løpet av juni måned).
Psion netBook leveres også med den vanlige programvaren for å samarbeide med en PC gjennom en seriekabel. Programmene tilbyr synkronisering med diverse planleggere på PC, backup til PCens disk, og kopiering av enkeltfiler med innebygget konvertering til og fra diverse office-formater. Vi forsøkte å skrive litt på et dokument vekselvis på Word og på netBook, og kopieringen frem og tilbake gikk greit så lenge vi ikke brukte avansert formatering.
I tillegg til å kople seg til Internet gjennom et telefonmodem (evt. infrarød via mobiltelefonen), så kan man putte inn et PCMCIA-basert Ethernet-kort i netBook, nærmere bestemt et kort fra Psion. Leverandøren klarte ikke å skaffe oss et slikt kort, og vi kan derfor ikke si noe om hvorvidt dette virker eller ikke.
Kombinasjonen mellom Java og portabilitet gjør denne enheten meget interessant, fordi det gjør den til en mobil tynn klient. Hva er en typisk oppgave for slikt utstyr? Jo, lokal registrering "off-line", deretter overføring og synkronisering med sentrale tjenere "on-line". Derfor ønsket vi å finne ut om denne maskinen effektivt støtter lokal lagring og abstrakt kommunikasjon.
netBook er utstyrt med et program som kalles "Java Virtual Machine" (JVM), som tolker det ferdigkompilerte Java-programmet og utfører det. Man kan ikke utvikle Java-programmet på netBook, fordi den ikke har noen kompilator. Som nevnt er Java arkitekturnøytralt, så man kompilerer simpelthen Java-programmet på en annen maskin (f.eks. Windows eller Linux) og overfører den kompilerte koden til netBook med den medfølgende programvaren for filkopering.
Java-programmer kan utføres på netBook enten som Applets inne i Web-leseren eller som frittstående Java-applikasjoner. De kan også installeres slik at de fremstår i maskinens menysystem, men det er en litt omstendelig prosess. Forøvrig finnes det et utvikler"skrin" for Windows for å lage Java-programmer på EPOC, og det fant vi på Internet. Bortsett fra noe dokumentasjon, brukte vi derimot ikke mye av dette skrinet. Vi syntes ikke det var mye hjelp i den programvaren, f.eks. en EPOC-simulator for å teste Java-programmene før de ble overført til netBook.
Man sier at Java-programmer er "compile once, run everywhere", men sånt tror vi ikke før vi får se det. Vår erfaring med å flytte ferdigkompilerte Java-programmer mellom Windows og Linux har vært sånn passe gode. Og vi var ikke bare interessert i å flytte våre egne Java-programmer, men også biblioteker som vi har fått andre steder fra.
Det er Java versjon 1.1 som følger med netBook, og det betyr at det grafiske brukergrensesnittet heter AWT, ikke Swing. Andre egenskaper som krever versjon 1.2 er følgelig ikke støttet, f.eks. den nye sikkerhetsmodellen og avanserte greier som Jini.
Et enkelt Java-program med grafisk brukergrensesnitt, bruk av mus og nedtrekksmenyer fungerte greit, men utseendet ble som ventet det som er "standard" i EPOC. Menyene ble f.eks. ikke festet til toppen av programvinduet, men til toppen av skjermen. Dessuten fikk ikke vinduet en "close"-box, slik at programmet ikke ville stoppe frivillig med mindre vi la avslutningskode eksplisitt under et menyvalg.
Skal netBook brukes som en mobil tynn klient, må den kunne lagre data lokalt og siden overføre dataene til en sentral lagringstjener. Dette kan skje på flere måter, og vi tenker oss bruk av en lokal relasjonsdatabase eller et lager av XML-dokumenter for å få dette til (avhengig av hvordan dataene lagres på en sentral tjener).
Vi ønsket derfor å teste en relasjonsdatabase. Vi har liggende en gratis SQL-database skrevet i Java, kalt "InstantDB" (www.instantdb.co.uk). Denne ble overført til netBook sammen med et klientprogram egnet for litt testing. Det er ikke mer å si enn at dette fungerte uten problemer (når først konfigurasjonsfilene ble satt opp slik at det passet med det lokale filsystemet). Med klientprogrammet skrev vi inn SQL-setninger i et tekstfelt, og fikk resultatsettet vist i et vindu.
Med andre ord, med netBook kan vi lage programmer som lokalt registrerer informasjon inn i en SQL-database. Dessuten har faktisk selveste Oracle portet sin lett-versjon av Oracle8 til netBook.
En annen oppgave til en mobil tynn klient er å synkronisere sitt lokale lager med en sentral tjener. Til det trenger programmene kommunikasjonsmuligheter. Java har rikelig med det, men det er viktig at dette fungerer som ventet. Vi lagde først derfor noen enkle programmer for å teste ut enkel nettverkskommunikasjon, deretter mer avanserte mekanismer som RMI.
Først kan vi si litt om hvordan vi koplet netBook til et TCP/IP-nettverk. I mangel av et Ethernet-kort satte vi opp en forbindelse gjennom mobiltelefonen (infrarød link) til en ISP. Her var det noen login-scripts som måtte redigeres, og det måtte settes opp profiler både for selve modemsambandet, innloggingen og for TCP/IP-konfigurasjonen. Dette krevde noe plundring, og som kjent er hastigheten gjennom en mobiltelefon ikke mye å skryte av.
Men våre tester av Java-programmer som benyttet TCP/IP-kommunikasjon direkte (Socket- og URL-klassene) viste ingen forskjeller med andre Java-miljøer. Data ble hentet og sendt over Internet gjennom den forbindelsen vi nettopp har beskrevet. Og vi gikk videre til å teste Remote Method Invocation (RMI).
Hvorfor RMI? Fordi ingen klient, tynn eller mobil, kan basere sin kommunikasjon med en tjener på direkte bruk av TCP-forbindelser (Sockets). Det skaper for mye arbeid knyttet til dataformatering og feilbehandling. Vi ønsker at mellomvaren skal ta seg av disse dagligdagse bekymringene og tilby oss et abstrakt API, gjerne i form av Java-objekter. Og det er det RMI gjør, nemlig å fremstille nettverkskommunikasjonen som om to objekter kommuniserer gjennom metodekall.
Vår RMI-klient ble laget som en Java-applet, og RMI-tjeneren ble satt opp til å kjøre på en Linux-maskin. Test-programmet lot to Java-objekter på ulike maskiner kommunisere gjennom Internet, GSM-nettet og en infrarød link i form av enkle metodekall (se figur).
Psion netBook er en mobil tynn klient som burde kunne skape stor interesse blant utviklerne av moderne klient-tjener løsninger. Den representerer en interessant mulighet for å studere utvikling av denne typer programmer, og vi ser frem til at slike enheter får tilkoplingsutstyr for trådløst lokalnett. Med støtte for Java versjon 1.2 kan man også lage distribuerte applikasjoner basert på Jini, noe som byr på enda flere interessante muligheter.