Optimerad Mobil Netscape/Amadeus

Referat
Optimerad mobil Netscape/Amadeus är ett examensarbete som utförts vid Telia Promotor AB i Uppsala. Syftet med detta arbete har varit att granska olika lösningar för att hitta ett bra sätt för att ladda ned HTML-sidor på mobila klienter och sedan automatiskt uppdatera informationen när sidorna ändrats.

Denna översikt innehåller en presentation av tre lösningar där den mest användbara var HyperWave. HyperWave är inget nytt system utan en utvidgning av World Wide Web (WWW). Det är en multiprotokoll web server, dvs. den klarar att kommunicera med WWW-klienter genom HTTP, och med egna klienter genom HG-CSP protokollet. GSM används för dataöverföringen mellan de mobila klienterna och server-sidan, efter-som det är det mest lämpliga alternativet i dagsläget.

Anledningen till att utvärdera möjligheten att få en optimerad mobil Netscape/Amadeus är den ökande användningen av Internet i mobila datorer. Resultatet är att det går att optimera dataöverföringen genom att använda ett annat protokoll än det Netscape använder idag. Vinsten som fås är dock inte så lovande eftersom vi för närvarande har för låg bandbredd vid trådlös kommunikation.

Abstract
Optimized Mobile Netscape/Amadeus is a master thesis which has been performed at Telia Promotor AB in Uppsala. The aim of this work has been to look at different solutions for finding an easy way to download HTML-pages to the mobile clients and then automatically update the information when it has been modified in the server.

This survey includes a presentation of three solutions where Hyper-Wave was the most useful one. HyperWave is an extension of World Wide Web (WWW). It is a multiprotocol web server, i.e. it manages to communicate with WWW via the HTTP protocol and with own clients via HG-CSP. For transmitting the data between the mobile clients and the HyperWave-server GSM has been used, because it's the most suitable alternative for the moment.

The reason for evaluating the possibility to get an optimised mobile Netscape/Amadeus is the increasing use of Internet in mobile computers. The conclusion is that it's possible to optimise the data transmission through using another protocol than the one that Netscape uses today. However, the performance gained is not so promising because of the current low bandwidth wireless communication.


Innehåll
1 Inledning
1.1 Bakgrund
1.2 Mål
1.3 Dokumentupplägg
2 Mobila Radiosystem
2.1 Mobitex
2.2 GSM
2.3 GPRS
2.4 DAB
2.5 UMTS
2.6 GSM, Mobitex, GPRS, DAB eller UMTS?
2.7 Konnektivitetslimmet
2.7.1 Mobile/IP
2.7.2 Oracle Mobile Agents
2.8 Presentation av lösningar
2.8.1 Database Replication
2.8.2 JOE
2.8.3 HyperWave/Hyper-G
3 HyperWave/Hyper-G
3.1 HyperWaves fördelar
3.2 HyperWave strukturering
3.3 HyperWaves arkitektur
3.4 Hyper-G Client-Server Protocol (HG-CSP)
3.4.1 Öppna och stänga en förbindelse
3.5 HyperText Transfer Protocol (HTTP)
3.5.1 HyperText Transfer Protocol - Next Generation (HTTP-NG)
3.6 Client/Server-arkitektur 243.7 Hyper-G-klienter
3.7.1 Amadeus
3.7.2 Harmony
3.7.3 Easy och HGTV
3.8 Hyper-G Installation
4 Implementation
4.1 Kravspecifikation
4.2 Design
4.3 Konstruktion
4.4 Java klient-server
4.5 Resultat
4.5.1 Problem och begränsningar
4.5.2 Möjliga utvidgningar
4.5.3 Utvärdering
4.5.4 Under vilka kriterier är lösningen optimal?
4.6 Slutsatser och rekommendationer
5 Appendix
5.1 Ordförklaringar
6 Referenser


Förord
Denna rapport utgör dokumentationen av mitt examensarbete i datalogi om 20 poäng, vid institutionen för numerisk analys och datalogi (Nada) på Stockholm Universitet. Arbetet har utförts vid Telia Promotor AB i Uppsala. Handledare på Telia Promotor var Kennet Lövgren och på institutionen Jonas Mölsä. Jag vill tacka alla som hjälpt mig med detta arbete, speciellt mina hand-ledare och professor Gerald Q. Maguire Jr. på institutionen för Teleinformatik.


1 Inledning
Internet är ett världsomfattande nätverk av datorer. Det är ett medie som har växt explosionsartat de senaste åren. Det finns idag olika typer av tjänster att utnyttja på Internet. Den idag vanligaste tjänsten är World Wide Web (WWW). Det är ett grafiskt tilltalande sätt att leta information och förflytta sig på Internet. Inom WWW-tjänsten ryms idag elektronisk post, nyhetsgrupper, ftp samt all nya funktioner som inbegriper närmast multimediala funktioner, ljud, bild och video. Denna tjänst är mest anpassad för den fasta förbindelsen, dvs. för förbindelsen där överföringshastigheten av information är hög. Netscape och Amadeus är två program för att kunna använda WWW-tjänsten.

Eftersom det är allt vanligare att använda WWW-tjänsten hemma eller på arbetet, är intresset väldigt stort att kunna använda den när man befinner sig i något område där den fasta förbindelsen inte är tillgänglig. En lösning är att använda existerande mobiltelefoninät. Detta medför dock vissa problem, t.ex. dataöverföringshastighet över mobiltelefoninätet är väldig låg jämförd med det fasta nätet och överföringskostnaderna dessutom är för höga. Därför är det väsentligt att optimera datamängden för att uppfylla de förutsättningar som finns i dagens mobiltelefoninät.

Ett flertal europeiska mobil radiosystem har undersökts i denna rapport. Undersökningen visar både för- och nackdelar med att använda dessa system för överföringen av Internettrafiken. Dessutom har olika existerande WWW system undersökts för snabb överföring av hemsidor till mobil användare, samt presenteras ett nytt protokoll som är snabbare än vad WWW använder idag. I rapporten visas också en lösning som förbättrar överföringshastigheten av WWW-tjänsten över mobiltelfoninätet.

Arbetet visar att det går att optimera datamängden för att få snabbare nedladdning av hemsidor via det mobiltelefoninätet, dock vinsten är inte så lovande jämförd med den fasta förbindelsen. Utvecklingen av mobiltelefoninätet pågår i snabb takt och om ett par år kommer användningen av WWW-tjänsten över mobiltelefoninätet att uppfylla användarnas förväntningar, dvs. snabbare dataöverföring, lägre överföringskostnader och täckning över ett stort område.

WWW-tjänsten över ett mobiltelefoninät är ett relativt nytt område, vilket innebär att de flesta programvarorna och hårdvarulösningar endast finns i betaversion. Detta har försvårat utvärderingsarbetet och implementationen av den lösningen som presenterats i denna rapport.

1.1 Bakgrund
Detta arbete har utförts vid Telia Promotor AB i Uppsala. Inom Telia Promotor finns divisionen Informationsnät som består av tre team: Mobil IT, Informationstjänst och IT datasäkerhet. Divisionen har ett övergripande verksamhetsområde definierat såsom: distribuerade arbetsplatser, mötesplatser och marknadsplatser. De arbetar med att möjliggöra affärer på Internet och att effektivisera organisationer med Intranet.

I team Mobil IT, inom vilket examensarbetet utförts, levereras kompletta informationssystem för rörliga arbetsplatser, som är flexibla med avseende på radionät. Dessa system omfattar produktionsrapportering, meddelandehantering, databasaccess, automatiskt positionsangivning på en digital karta m.m.

På Mobil IT vill man studera möjligheten till optimering av trafiken inom den mobila länken vid t.ex. nedladdning av hemsidor, HTML-sidor,
i mobila klienter. Detta examensarbete har utformats inom ramen för detta åtagande.

1.2 Mål
Målet med arbetet var att hitta en effektiv lösning för nedladdning av hemsidor till mobila klienter och sedan ha ett program som uppdaterar sidorna automatiskt när de ändrats. Till exempel ett företag som vill hantera transportordrar mobilt till sina lastbilar eller trafikanter som får den senast uppdaterade trafikrapporten. Följande krav ställdes i första hand:

  • Säker och robust dataöverföring.
  • Snabb dataöverföring.
  • Tillgång till senast uppdaterade dokument.

I andra hand:

  • Adressering av en eller flera användare.
  • Täckning över ett stort område.
  • Låga kostnader.

1.3 Dokumentupplägg
Kapitel 2 beskriver olika mobila radiosystem och middleware. Dessutom presenteras tre lösningar till uppgiften. Kapitel 3 beskriver HyperWave -en sofistikerad webserver - vilka fördelar den har och vilka protokoll den klarar att använda. I kapitel 4 redogörs för den prototyp som utvecklats utifrån den kravspecifikation som ställts. Dessutom innehåller kapitlet en utvärdering av resultatet.


2 Mobila Radiosystem
För att hitta en effektiv lösning för nedladdning av hemsidor till mobila klienter var det väsentligt att undersöka för- och nackdelar med existerande europeiska mobila radiosystem. Denna del beskriver fem olika mobila radiosystem och presenterar tre lösningar till uppgiften, figur 2.1. Med mobila radiosystem avses i denna rapport system för överföring av data via radiovågor, så kallad trådlös datakommunikation.

Figur 2.1. Tänkbara radiolänkar till den mobila klienten

2.1 Mobitex
Mobitex är ett mobilt datanät som är ett av de globala näten med stor geografisk täckning. Mobitex har utvecklats av Ericsson i samarbete med Telia och har varit i kommersiell drift i Sverige sedan 1989. Mobitex är uppbyggt av självstyrande nätkomponenter, i form av basradiostationer och områdesväxlar. En basradiostation täcker ett visst geografiskt område. Ett eget ledningsnät förbinder alla basradiostationer med områdesväxlar. Basstationerna står i förbindelse med trådlöst anslutna enheter via radiomodem. Alla basstationerna knyts samman av områdesväxlar till ett eget nät. Växlarna behövs för att dirigera meddelanden som går över flera täckningsområden. Till Mobitex områdesväxlar kopplar man sin fasta anslutning som de trådlösa enheterna skall kommunicera med, figur 2.2.

Mobitex är ett paketförmedlande nät, dvs. all information skickas i paket. Detta innebär nästan omedelbar tillgång till nätet och att många samtidiga användare kan dela på en eller flera gemensamma frekvenser och använda dessa som en gemensam resurs.

Nackdelen med Mobitex är den låga frekvensen, vilket medför att radiomodem inte är bärbara och kräver mycket ström. I Sverige används frekvensbandet 68-88 MHz. Hastigheten för dataöverföring i det svenska nätet är 1 200 bit/s. I USA, Kanada och England är hastigheten 8 000 bit/s.

Figur 2.2. Mobitexnätets delar.

2.2 GSM
GSM, Global System for Mobile communications, är ett digitalt nätverk som snabbt har accepterats i vida kretsar runt om i världen. GSM sänds på 900 MHz. Utvecklingen av GSM började 1982 av en europeisk grupp som idag har sitt huvudsäte i Sophia Antipolis, Frankrike. Några av de grundläggande kriterierna för detta system är:

  • Bra talkvalitet.
  • Låg service- och tillverkningskostnad på terminal.
  • Stödjer internationell roaming.
  • ISDN-kompatibel.
  • Optimalt utnyttjande av tillgängligt frekvensband.

GSM-standarden är uppdelad i faser. Skälet för detta är att utvecklingsgruppen ansåg att det inte skulle vara möjligt att göra klart alla planerade tjänster och funktioner i GSM i tid. De skar då bort en hel del och det som blev kvar utgör fas 1. Det som skars bort sades tillhöra fas 2. Kommersiell drift av GSM-nätet började i mitten av 1992 i de europeiska länderna.

GSM är baserat på ISDN-nätets principer, vilket gör att de tjänster som är möjliga för GSM är en delmängd av de tjänster som finns i ISDN. Tyvärr är hastigheten i GSM-kanalerna mycket lägre än ISDN. Dataöverföringshastigheten är maximalt 9 600 bit/s. Nokia har presenterat en lösning där de kommer att kunna använda åtta kanaler samtidigt för att stödja upp till 64 000 bit/s.

Figur 2.3 GSM-nätets delar.

Den funktionella arkitekturen hos ett GSM-system kan delas upp i följande delar, figur 2.3:

  • En mobilstation (MS) som bärs av en abonnent och består av en fysisk mobilutrustning och ett SIM-kort. Genom att sätta in SIM-kortet i GSM-mobilutrustningen kommer abonnenten att kunna ta emot och skicka data.
  • Ett basstationdelsystem som kontrollerar radiolänken med MS och består av två delar BTS, Base Tranciever Station, och BSC, Base Station Controller. BTS tar hand om länken ifrån MS och BSC hanterar radioresurserna ifrån en eller flera BTS.
  • Ett nätverkdelsystem som uträttar växlingen av anrop mellan en mobil och andra fasta nätverksanvändare. Den består av flera delar där huvuddelen är MSC, Mobile services Switching Center, som beter sig som en vanlig PSTN- eller ISDN-kretsnod. Andra delar är:
  • HLR, Home Location Register, som innehåller den administrativa informationen om varje abonnent som är registrerad i det motsvarande GSM-nätet.
  • VLR, Visitor Location Register, som innehåller vald administrativ information ifrån HLR, nödvändig för samtalskontroll och villkor om abonnentens tjänster.
  • AC, Authentication Center och EIR, Equipment Identity Register som används för autenticiering och säkerhet. AC är en skyddad databas som lagrar en kopia av den säkerhetsnyckel som finns lagrad i varje SIM-kort. EIR är en databas som innehåller en lista över alla giltiga mobilutrustningar på nätet.

GSM är kretskopplat, dvs. en fysisk uppkoppling måste etableras och upprätthållas under den tid som sändningen sker. Detta ger en uppkopplingstid på 15-25 sekunder innan data kan börja sändas. Eftersom GSM är en krypterad bärartjänst lämpar den sig bra för överföring av konfidentiell information.

2.3 GPRS
GPRS, General Packet Radio Service, är en ny GSM tjänst som ordnar paketradioåtkomst för mobila GSM användare. Största fördelen med GPRS är att den endast reserverar radioresurser när det finns något att skicka. Tjänsten beräknas vara tillgänglig tidigast 1998. Med GPRS kommer flera användare att kunna dela på en kanal och sändningskostnaderna kommer att minska drastiskt i och med att den överförda datamängden kommer att användas som bas för debitering. Dataöverföringshastigheten är över 9 600 bit/s.

GPRS passar World Wide Web applikationer eftersom användaren endast läser information under längre tidsintervall, varför det inte finns något behov av aktiv överföring. En annan fördel är att flera användare kan sända sina data samtidigt till en server, och inte en i taget som är fallet med en kretskopplad uppkoppling.

2.4 DAB
DAB, Digital Audio Broadcasting, är ett system för digital radiosändning som utvecklats inom ett europeiskt samprojekt Eureka 147. Två av de viktigaste målsättningarna för utvecklingen av DAB-systemet har varit att frekvenseffektiviteten skall vara högre än för FM och att systemet skall lämpa sig lika bra för stationär, mobil och portabel mottagning. Alltså är DAB speciellt utvecklat för mobil kommunikation. Inom DAB-ensamblen finns möjligheter att sända rådata eller paketmode dvs. möjligheter att adressera en enskild användare.

DAB är en ren broadcasting-kanal, vilket leder till att den inte har returkanal, men om den kombineras med t.ex. GSM så blir det ett fullständigt datakommunikationssystem. Datahastigheten ligger runt 1,2 Mbit/s med felkodning. Om man skall använda paketmode kommer man inte upp i så höga hastigheter, men betydligt högre än GSM och Mobitex. Det finns inga tjänster som är tillgängliga idag men de håller på att utvecklas inom MEMO, Multimedia Enviroment for Mobiles.

2.5 UMTS
UMTS, Universal Mobile Telecommunication System, är ett av tredje generationens mobila kommunikationssystem. Det är ett resultat av ett forskningsprojekt som finansierats av EU. Den största fördelen med UMTS är att den ger större bandbredd till varje mobiltelefon, upp till 2 Mbit/s. Frekvensbandet är tänkt att vara 60 GHz.

Den projekterade tidsplanen för UMTS var tidigare ganska lång. Runt år 2010 var det tänkt att installationen av radionätet skulle vara påbörjad, med full utbyggnad runt år 2025, men succén för GSM kombinerad med hotet från konkurrerande amerikansk teknik har komprimerat denna tidsplan avsevärt. Tekniken skall vara färdig om ett par år med begränsad installation av radionätet år 2000 och full utbyggnad ett par år senare.

Även om denna teknik fanns idag skulle den inte kunna användas direkt till datakommunikation. En hel del problem måste lösas och det finns ingen programvara som fungerar. OnTheMove-projeket har fått i uppdrag att ta fram just sådan mjukvara. OnTheMove är en del av ett stort forsknings-program delfinansierat av EU, kallat ACTS. OnTheMove skall se till att UMTS-arkitekturen MASE (Mobile Application Support Enviroment) och dess gränssnitt MAPI (Mobile Application Interface) är färdiga i mars 1998.

Projektet har många deltagare. Ericsson står för en stor del av det tekniska arbetet tillsammans med Siemens. British Telecom och Deutsche Telekom representerar teleoperatörerna. Själva programmeringen står det franska företaget Tesci för. KTH och en liknande högskola i Aachen har också fått ett finger med i spelet. Slutligen har Bonniers fått i uppdrag att ta reda på vad användarna förväntar sig av tekniken och se till att de får det de önskar sig.

2.6 GSM, Mobitex, GPRS, DAB eller UMTS?
De avgörande egenskaperna i valet av mobil datateknik är: överföringskapacitet och överföringskostnad. Det är ingen tvekan om att det finns flera egenskaper som är viktiga, t.ex. enkelhet och tillgång till bra applikationer, men de båda först nämnda har störst betydelse.

I ett trådlöst datanät beror kapaciteten på vilken överföringsmetod som används. Det finns två överföringsmetoder, paketförmedling och krets-koppling. Mobitexnätet är effektivast vid frekventa sändningar av små datamängder, medan det kretskopplade GSM-nätet är effektivast vid sporadisk sändning av större datamängder. DAB, GPRS och UMTS är klart mycket effektivare än GSM och Mobitex, men eftersom de inte är tillgängliga idag kommer det inte att göras en jämförelse. Paketförmedlingstekniken ger nästan omedelbart tillgång till nätet - vilket är fallet med Mobitex. GSM är kretskopplat. Detta ger en fördröjning innan data kan börja sändas.

Kostnadsmässigt är det inte rättvisande att jämföra GSM och Mobitex eftersom de båda systemen har helt olika debiteringsgrunder. I GSM får användaren betala för uppkopplingstid, medan Mobitexanvändaren får betala för antal överförda datapaket. I GSMs kretskopplade sessioner loggas användaren in när förbindelsen etableras. När den bryts loggas användaren ut både från applikationen och sessionen. I Mobitex sker inloggning också vid första uppkopplingen, men det finns inget behov av att logga ut användaren. GSM-användaren betalar för uppkopplingstid, och därför är det väsentligt att logga ut. Mobitexanvändaren behöver däremot inte logga ut eftersom en Mobitex-applikation kan upprätthålla en förbindelse som kan beskrivas som "virtuellt-on-line".

Av det som nämns här ovan ser det ut som om Mobitex är ett bättre alternativ än GSM, men den största nackdelen med Mobitex är att data-överföringshastighet endast är 1 200 bit/s. GSM har betydligt högre dataöverföringshastighet 9 600 bit/s. Små datavolymer, t.ex. e-post eller några hundra tecken kan sändas iväg i stort sett omgående över ett Mobitexnät. När det gäller filöverföring kommer det att ta lång tid och då kommer GSM-nätet att föredras.

  GSM Mobitex GPRS DAB UMTS
Frekvens 900 MHz 66 - 88 MHz ? Kanske 30 MHz - 3 GHz Kanske 60 GHz
Datahastighet 9,6 kbit/s 1,2 kbit/s eller 8 kbit/s 9,6 kbit/s - 80 kbit/s Ca 1,2 Mbit/s Ca 2 Mbit/s
Överföringsmetod kretskopplad Paketförmedlad Paketförmedlad Braodcasting Paketförmedlad

Tabell 2.1. Jämförelse mellan olika mobila radiosystem.

2.7 Konnektivitetslimmet
För att få distribuerade applikationer att fungera kan det behövas middle-ware som är snedstrecket mellan klienten och servern, figur 2.1. Middle-wares uppgift är att gömma allt som sker på lägre nivåer i datakommuni-kationen och nätverkskopplingen. Middleware låter ofta respektive sida av applikationen använda sitt eget protokoll för att prata med den andra sidan och översätter mellan protokollen vid behov. Eftersom trådlösa data-system är distribuerade över ett nät som kopplar ihop mobila klienter med en fast värd eller server, kan man tala om trådlös middleware eller konnektiviteslimmet. På marknaden finns olika trådlösa middleware. De som studerats i denna rapport är Mobile/IP och Oracle Mobile Agents (OMA), eftersom båda använder TCP/IP-protokoll och GSM eller Mobitex för dataöverföringen.

2.7.1 Mobile/IP
Mobile/IP är en middleware-produkt som utvecklats av det holländska företaget Multihouse. Den ger användaren möjlighet att utöka TCP/IP-protokollets funktioner i stora trådlösa nät. Mobile/IP använder Mobitex för den mobila dataöverföringen, figur 2.4.

Figur 2.4. Mobile/IP skiss.

För att minska antalet byte och paket som flyttar sig över Mobitexnätet har man sett till att:

  • Informationen som överförs i både TCP- och IP-header för varje TCP/IP-paket skickas om möjligt endast en gång efter att båda stationerna lagrat informationen lokalt. Under resten av sessionen överförs inte denna information, utan ersätts med en unik referens till de lokala tabellerna, där den verkliga TCP- och IP-informationen är lagrad. Dessutom minskas mängden data som är lagrad i TCP-headern. Till exemple finns det ingen checksumma i en Mobile/IP- paket-header. Mobitex-protokollet garanterar pålitligheten av överförda data.
  • Verkligt använda data i Mobile/IP-paket kan komprimeras med hjälp av olika algoritmer. Hastigheten på komprimeringen beror på typen av data.

Mobile/IP är transparent mot applikationer. En applikation tror att den arbetar med TCP/IP och behöver inte veta att det är Mobile/IP istället. Denna produkt har inte använts i Sverige förut. Produkten är anpassad för Mobitex, som klarar en bithastighet på 8 000 bit/s. I Sverige har Mobitex en bithastighet på 1 200 bit/s, så efter installationen klarade Mobile/IP endast av att få kontakt med modemet men inte med nätet. Stödgruppen i Nederländerna gav upp och kunde inte hjälpa till. Alltså gick det inte att använda.

2.7.2 Oracle Mobile Agents
Oracle Mobile Agents (OMA) är Oracles applikationsutvecklingsmiljö i vilken klient/server-arkitekturen kan anpassas för mobila datasystem, figur 2.5.

OMA består i huvudsak av tre komponenter:

  • Meddelandehanterare, Message Manager, hanterar all kommuni-kation i mobilerna;
  • Meddelandeport, Message Gateway, sköter all kommunikation på den fasta sidan och administrerar hela det mobila datasystemet;
  • Agenter, Agents, sköter kommunikationen mellan servern och den mobila miljön. Agenterna avlastar den mobila länken från den frekventa trafik som finns i en klient-server-applikation.
Figur 2.5. Kommunikationsplattform Oracle Mobile Agents.

OMA förde inte problemet närmare sin lösning, eftersom den idag inte har något fungerande stöd för hantering av GSM-trafik. Man måste själv för närvarande ombesörja upp- och nedkopplingar för att OMA ska kunna fungera. Detta är inte helt trivialt, då det hela bör ske helt automatiskt. OMA (Message Manager) är fortfarande en 16-bitars applikation, man har således inte den stabilitet och naturliga integrering i 32-bitarsmiljö som riktiga 32-bitars applikationer.

2.8 Presentation av lösningar
Med tanke på de krav som ställde var det svårt att hitta en perfekt lösning. Om man däremot försummade vissa av kraven kunde man kringgå problemet och några lösningar blev möjliga.

2.8.1 Database Replication
En lösning var tänkt att använda Database Replication och Mobile/IP. Database replication är tekniken för kopiering av en databas så att två eller flera kopior förblir synkroniserade. Den ursprungliga databasen konverteras till en Design Master och varje följdkopia av databasen kallas för en replica. När man replikerar sin applikation, replikerar man inte bara datan i tabellen utan också applikationsobjekten. Om man gör föränd-ringar i databasen kommer förändringarna att överföras under nästa syn-kronisering. På grund av att Mobile/IP inte kunnat utnyttjas var denna lösning svår att realisera.

2.8.2 JOE
En annan lösning var att använda JOE som förenar Java och NEO till en miljö lämplig för att skapa interaktiva webb-applikationer, figur 2.6. Produkten JOE, som utvecklas av SUN, kunde endast testas i en beta-version. Version 1.0 beräknades komma ut i början av september 1996. JOE förbinder Java-Applet till ett icke lokalt NEO-objekt som körs över Internet på vilken maskin som helst.

Figur 2.6. Kommunikationen mellan JOE och Netscape

Till skillnad från HTML-formulär som genererar och skickar en ny websida varje gång man gör en förfrågan, skickar JOE och Java-Applet endast den uppdaterade informationen. Det system som krävs för att kunna utveckla klient-server-applikationer genom att utnyttja JOE är:

  • SPARC-system eller SPARC kompatibel.
  • OS Solaris 2.4 eller senare.
  • Andra mjukvaror
    1. Solaris NEO 1.0
    2. WorkShop NEO 1.0
    3. Java Development Kit 1.0
    4. HTTP server
    5. Java 1.0 kompatibel webbrowser
    • Slutanvändare behöver Java 1.0-kompatibel webbrowser som Netscape 2.0 eller senare.

På grund av osäkerhet i betaversionen, komplexiteten och den höga kostnaden som JOE skulle innebära blev denna lösning inte aktuell. Med komplexiteten menas att det under den begränsade tiden av detta examensarbete var svårt att lära sig de olika systemen för att kunna hantera JOE. Därutöver beräknades licenskostnaden för erhållandet av detta system uppgå till 60 000 kr.

Ett annat system som också utvecklas av SUN och har en kraftfull idé är Remote Method Invocation (RMI)-system (se Appendix 5.2). Tyvärr var även detta system en betaversion under examensarbetet. Det gick t.ex. inte att exekvera Java-Applets som utnyttjade RMI under Netscape. Om man försökte göra detta kraschade Netscape. Däremot kunde man ladda Java-Applets under programmet Appletviewer. En annan nackdel var att man endast kunde ha en enda användare vid körning av Java klient-server-applikation.

2.8.3 HyperWave/Hyper-G
Den tänkbara lösningen för att realisera uppgiften var att utnyttja Hyper-Wave/Hyper-G (se avsnitt 3) kombinerad med GSM-uppkoppling och en Java-Applet som utnyttjar socketkommunikation, figur 2.7.

Figur 2.7. Kommunikationen mellan Hyper-G och
den mobila klienten

.

HyperWave är en sofistikerad webserver baserad på en objekt-orienterad databas som utvecklats speciellt för hypermediadokumenthantering. Ett av följande system krävs för att utveckla en Hyper-G-server:

  • SUN SPARC (SunOS 4.1.3 eller Solaris 2.2 eller senare)
  • HP 700 serien (med HP-UX 9.01 eller högre)
  • IBM PC (med Linux)
  • SGI (med IRIX 3.0 eller senare)
  • DECstation (med Ultrix 4.2 eller senare)
  • Minst 32 MB RAM om PC-linux eller SUN används och 64 MB RAM för övriga
  • Slutanvändare behöver en webbrowser som t.ex. Netscape, Internet Explorer, Amadeus, Harmony, Mosaic, Easy eller HGTV.

3 HyperWave/Hyper-G
HyperWave/Hyper-G är ett andra generationens distribuerat system. Det är inget nytt system utan en utvidgning av World Wide Web (WWW). HyperWave ses som en sofistikerad webserver baserad på en objekt-orienterad databas som utvecklats speciellt för hypermediadokument-hantering. HyperWave förser första generationens webb-sidor med många funktionaliteter, t.ex. data- och länkhantering, sökmöjligheter, auktori-seringsmekanismer, dubbelriktade länkar m.m. Idén bakom HyperWave- utvecklingen började 1989 i IICM på Tekniska högskolan i Graz, Österrike.

3.1 HyperWaves fördelar
Det som är intressant i HyperWave är att allting är objekt, och att varje objekt som lagras i databasen får ett unikt identitetsnummer (ID). Varje gång man t.ex. modifierar ett dokument tilldelas ett nytt ID till objektet och det gamla ID får aldrig användas igen. Detta gör det enkelt att känna igen cachekopior och leder till att länkarna alltid pekar på de senast uppdaterade dokumenten.

HyperWave utnyttjar både HyperText Transfer Protocol, HTTP (se avsnitt 3.4) och Hyper-G Client-Server Protocol, HG-CSP (se avsnitt 3.3). Med sina egna klienter använder HyperWave HG-CSP-protokollet, med andra webbrowsers som Netscape eller Gopher användes däremot HTTP, figur 3.1.

Figur 3.1. Informationsöverföringen genom Hyper-G.

Andra egenskaper som HyperWave har är dubbelriktade länkar, länk-konsistens, hierarkisk strukturering, dokumentattribut, auktoriserings- mekanismer, flerspråkighet m.m.

  • Dubbelriktade länkar: innebär att man kan hitta källänken ifrån destinationen och tvärtom. Det som är intressant är att man kan generera en länkkarta som visar uppkommande och utgående länkar i ett dokument.
  • Länkkonsistens: dubbelriktade länkar garanterar länkkonsistensen. Om t.ex. ett dokument raderas, raderas även länken som pekar på det. Ofta får man meddelandet att "objekt kan ej hittats" när man söker en viss länk genom utnyttjande av vanlig webserver.
  • Hierarkisk strukturering: den hierarkiska struktureringen är väldigt effektiv vid sökning i databasen. Man kan välja en liten del av databasen för sökningen istället för hela.
  • Dokumentattribut: gör det enkelt för användare att se när ett objekt har skapats eller modifierats, vilken typ det är och vem som är författaren/ ägaren.
  • Auktoriseringsmekanismer: dokument som okända användare inte har åtkomsträttigheter till får användaren inte se eller läsa.
  • Flerspråkighet: detta gör det möjligt att skifta mellan olika språk; antag t.ex. att användaren har valt svenska för att läsa dokument och att mna i ett kluster (se avsnitt 3.2) har lagt olika dokument med olika språk. Då användaren laddar klustert kommer han/hon endast att se de svenska dokumenten. Vill man dessutom söka efter ett dokument i databasen har man möjlighet att bestämma vilket språk sökningen skall gälla.

3.2 HyperWaves strukturering
HyperWave erbjuder tre struktureringselement: Samling, kluster och sekvenser. Struktureringselementen förenklar inte bara navigeringen och sökningen utan minskar även ansträngningen för administratören. En samling, collection, är ett sammansatt objekt. Det innehåller dokument eller andra samlingar. Det är lättare att tänka på som en katalog i ett filsystem. Ett kluster, cluster, är ett sammansatt dokument som består av andra dokument. Klustrar är rätt bra att använda om man vill skapa en multimediakänsla, dvs. lyssna på en audio-fil, läsa dokument, titta på bilder eller film - allt samtidigt. En sekvens, sequence, är som en kollektion fast en ordnad lista av delkollektioner eller dokument.

3.3 HyperWaves arkitektur
HyperWave-servern består av ett antal moduler organiserade i tre skikt: Protokollkonverteringsskikt, sessionskikt och databasskikt, figur 3.2. Modulerna liknar UNIX-processer och kommunicerar med varandra genom användningen av TCP/IP-sockets.

Figur 3.2. Hyper-G arkitektur.
  1. Protokollkonverteringsskiktet gör HyperWave till en multiprotokoll- server. En mängd portar (gateways) omvandlar andra protokoll till HG-CSP så att de lägsta skikten endast behöver handskas med ett enda protokoll.
  2. Sessionskiket kommunicerar med databasskiktet, andra globala servrar och klienter.
  3. Databasskiktet lagrar serverinformation. Skiktet är organiserat som tre parallella processer: Objekt-servern skapar, modifierar och raderar objekt och deras relationer (t.ex. länkar). Den hanterar också användarens inloggning och åtkomsträttigheter. Fulltext-servern upprätthåller ett inverterat index av hela textdokumentet för sökning, dvs. allt som lagras är indexerat och på det sättet blir det enkelt att söka informationen med avseende på nyckelord, titel, ord, författare osv. Dokument-cache-servern lagrar både lokala dokument och cachade dokument från fjärrservrarna.

3. 4 Hyper-G Client-Server Protocol (HG-CSP)
HG-CSP är ett protokoll som används mellan HyperWave och de egna klienterna. HG-CSP-protokollet är baserat på TCP/IP, förbindelseorienterat, asynkront, och (nästan) tillståndslöst. Klienten skickar ett meddelande till servern och servern returnerar meddelandet med resultaten av transaktioner och/eller felkod.

Med förbindelseorienterat protokoll menas att TCP-förbindelsen alltid är öppen mellan klienten och servern. Asynkront protokoll innebär att en klient får utfärda ett antal kommandon i följd och tar en titt på resultatet litet senare. Likaså behöver några kommandon inte vänta på respons. Dessutom kan servern välja att sända ett icke begärt meddelande till klienten när som helst. Protokollet är nästan tillståndslöst i den meningen att efter att någon startat kommunikationen under initieringen av förbindelsen kan de tillgängliga transaktionskommandona utfärdas i vilken sekvens som helst. Servern återanvänder inte resultat från äldre transaktioner.

3.4.1 Öppna och stänga en förbindelse
För att öppna en förbindelse till Hyper-G-servern börjar klienten med att öppna en TCP-förbindelse till Hyper-Gs förvalda port nummer 418. Sedan är det servern som initialiserar en förhandling om vilket dataformat - ren text eller binär transfer-mode - som skall användas för denna förbindelse.

Servern kommer att erbjuda en binärförbindelse genom att sända ett T-tecken (binary=true) som svar på förbindelseförfrågan. Klienten sänder T för binär eller vägrar att sända binärt genom att sända ett F-tecken (binary=false). Klienten behöver inte vänta tills den tar emot någonting från servern innan den skickar detta tecken. När båda har tagit emot och skickat ett T är den binära moden tillgänglig. Det som nu kommer att behövas är att klienten och servern enas om byte-ordningen. Båda skickar B (Big-endian) eller L (Little-endian).

Efter att den ovan nämnda förhandlingen är klar skickar servern ett initialt READY-meddelande som innehåller serverns identifikationsparametrar eller ett felmeddelande, om förbindelsen har avslagits. För att stänga förbindelsen behövs inget speciellt ingripande. Det räcker med att klienten stänger TCP-förbindelsen. Om klienten har en förbindelse med servern men är inaktiv i 12 timmar avbryter servern förbindelsen med klienten.

3.5 HyperText Transfer Protocol (HTTP)
HTTP är ett transferprotokoll som används av det WWW-distribuerade hypermediasystemet för att få distribuerade objekt. Benämningen på protokollet är kanske lite misstolkad. Protokollet är inte bara till för överföringen av hypertext utan används för överföring av all sorts information; t.ex. bilder, text, ljud eller video. Protokollet är generiskt, tillståndslöst och objektorienterat. Åttabitars överföring används alltid. HTTP använder TCP som ett transportskikt. Protokollmodellen är väldigt enkel. Klienten börjar med att etablera en förbindelse till en server, sedan utfärdar denna en begäran och väntar på svar. Servern tar emot begäran, retunerar ett svar och stänger förbindelsen. Alltså är en förbindelse mellan klient och server endast inrättad för en transaktion.

Begärandeformatet är enkelt i HTTP. Det innehåller den typ av operation som klienten vill att servern skall utföra och något slags identifierare för objektet där operationen skall utföras. Operationstypen specificeras genom kommandot "method". Problemet med att referera till ett objekt har man löst genom att använda URL (Uniform Resource Locator).

HTTP är ett förbindelselöst protokoll. Ett förbindelselöst protokoll innebär att klienter öppnar en TCP-förbindelse till servern efter varje begäran. Fördelen med detta är att det är en enkel implementation, medan att öppna och stänga TCP-förbindelser är kostsamt. TCP kräver att tre paket utväxlas när en förbindelse öppnas samt fyra vid stängning. Dessutom har TCP en inbyggd "långsam-start"-mekanism för att undvika överbelastning av trafiken. Vid en ny förbindelse kommer data att överföras långsamt. Det har visat sig att HTTP utnyttjar endast 10% av bandbreddtillgängligheten. Till skillnad från HTTP är HG-CSP ett förbindelseorienterat protokoll. Detta innebär att HG-CSP kommer att utnyttja bandbredden mycket bättre (den kan komma upp till 100%).

3.5.1 HyperText Transfer Protocol - Next Generation (HTTP-NG)
HTTP-NG är ett protokoll som är designat för att ersätta HTTP. Med HTTP-NG vill man åstadkomma mer funktionalitet än vad HTTP erbjuder, vilket leder till att HTTP-NG kommer att använda en annan modell än HTTP. HTTP-NG tillåter flera förfrågningar att skickas över en enda förbindelse - jfr. med HG-CSP - klienten behöver inte vänta på ett svar innan den skickar en annan förfrågan. Samtidigt kan servern svara på dessa förfrågningar i den ordning som passar.

För att det skall bli möjligt att implementera sådana funktionaliteter kommer HTTP-NG att skicka alla meddelanden och data genom ett sessionskikt. Detta delar upp förbindelsen i flera olika kanaler. HTTP-NG skickar alla kontrollmeddelanden till en kontrollkanal och varje objekt returneras till sin egen kanal.

3.6 Client/Server-arkitektur
Till skillnad från WWW behöver Hyper-G klienterna inte ha en förbindelse till multipla Hyper-G-servrar, figur 3.3. Hyper-G använder proxy-arkitekturen, dvs. klienterna talar med en och samma server hela tiden. Detta uppfyller kravet på att hela tiden ha en öppen förbindelse mellan klienten och servern. Om informationen från en icke-lokal server efterfrågas, hämtar den lokala servern denna information och skickar den vidare till klienten. Fördelen med denna arkitektur är att klienterna är enkla och att de tillåter ett effektivt förbindelseorienterat protokoll samt möjliggör caching av icke-lokal information i den lokala servern.

Figur 3.3. Klient-Server arkitektur.

3.7 Hyper-G-klienter
Hyper-G har speciella egenskaper som andra webb-browsrar inte kan stödja. För att uppfylla dessa egenskaper har Hyper-G-gruppen utvecklat egna klienter. Dessa klienter är dessutom kompatibla med vanliga Webb-servrar. För närvarande finns fyra klienter: Harmony, Amadeus, Easy och HGTV. En klient för Macintosh är under utveckling.

3.7.1 Amadeus
Amadeus är den första Hyper-G PC-klienten för Microsoft Windows. Den används inte bara som browser/viewer utan också som ett verktyg för att ändra i serverns databas, ifall man har åtkomsträttigheterna för att göra detta. Amadeus finns nu i betaversion 2.0.2. Vissa huvuddrag ur Amadeus:

  • 32-bit applikation (Windows95/NT 3.51). Påstås kunna köras även under 3.1x med hjälp av Win32s.
  • Enkel att installera.
  • Typiska Windows-drag: Multipelt dokumentgränssnitt, pop-up- menyer, online-hjälp osv.
  • Browser/viewer klarar av att visa flera dataformat: Rasterbilder (GIF, JPG, TIFF, BMP, PCX, XBM, …), text (HTML, generisk SGML), film (MPEG, AVI), PostScript-dokument (Postscript 1 och 2, PDF), 3D-scen (VRML, SDF).
  • Inbyggd konverterare från RTF (Rich Text Format) till HTML.

3.7.2 Harmony
Harmony är Hyper-G-klienten och verktyget för UNIX och XWindows. Den stödjer de flesta drag som nämndes under Amadeus (se avsnitt 3.6.1). Dessutom ger Harmonys lokalkarta användaren en grafisk överblick över hur länkstruktureringen runt ett dokument ser ut.

3.7.3 Easy och HGTV
Hyper-G-gruppen har utvecklat dessa klienter för att uppfylla kraven för noviser. De är mest anpassade som presentationsverktyg. Lämpligt för museer, turistbyråer, osv.

Skulle man utnyttja Hyper-G via en modemförbindelse eller arbeta med en dator som inte har Web-klient är HGTV en lämplig browser. Eftersom HGTV är radorienterad är den väldigt snabb för erhållandet av information, nackdelen är dock att man inte får tillgång till bilder.

3.8 Hyper-G-installation
I arbetet ingick det att installera Hyper-G servern. Denna var inte lika lätt att installera som Hyper-G-klienterna. Det krävdes en viss kunskap i UNIX.

Hyper-G-servern installerades ifrån en CD-ROM på en SUN SPARC- maskin med Solaris version 2.5. Det finns möjligheter att ladda ned Hyper-G-servern via FTP (ftp.iicm.tu-graz.ac.at) och dessutom ett verktyg som gör det möjligt att alltid uppdatera servern till den senaste versionen. Genom att installera servern ifrån en CD-ROM eller FTP får man en licens för sju användare. Detta var dock för få för att servern skulle kunna testas ordentligt. På grund av att servern kommer att användas endast i utbildningssyfte fick vi en licens för ett obegränsat antal användare till slutet av september 1997. Se avsnitt 2.7.3 för information om andra system där Hyper-G kan installeras.


4 Implementation

4.1 Kravspecifikation
Nedan följer den kravspecifikation som upprättades inför arbetet med att utveckla en prototyp för optimerad mobil Netscape/Amadeus.

  • Den mobila klienten avses utrustas med en bärbar dator med Windows95, ett modem av typ PCMCIA-kort (se Appendix 5.3), Netscape och/eller Amadeus.
  • Trafikkommunikation mellan klienten och servern kommer att ske med hjälp av en GSM-koppling.
  • En Nokia mobiltelefon typ 2110 eller motsvarande.

Följande funktionalitet är krav:

  • Alltid tillgång till de senast uppdaterade dokumenten.
  • En nyhetsruta där servern alltid skickar aktuella nyheter till klienten.
  • Servern har alltid kontroll på vem som loggar in.
  • Snabbare dataöverföring.

4.2 Design
En specifikationskiss över hur gränssnittet kommer att se ut hos klienten visas i figur 4.1. Gränssnittet är uppdelat i fyra ramar: Xjobb Information-Tjänst Klient_index (XITK_index) ram 1, XITK_info ram 2, Java-Applet ram 3 och E-Post ram 4.

I XITK_index visas en lista över de länkar som klienten bör använda för att kunna komma åt de senast uppdaterade dokumenten. Då användaren har klickat på en länk under XITK_index, laddas informationen (dokumentet) i XITK_info. Alla dokument som laddas i XITK_info cachas i Netscape. Under XITK_info-ramen laddas de aktuella nyheter som är viktiga och som omedelbart skall uppmärksammas med hjälp av en Java-Applet. E-Post ger klienten möjlighet att sända elektroniska meddelanden till servern. Den sistnämnda ramen har lagts till eftersom Netscape och HyperWave inte har möjlighet att utväxla snabba meddelanden med varandra.

Figur 4.1. Specifikationskiss.

4.3 Konstruktion
För att uppfylla kraven i avsnitt 4.1 användes HyperWaveserver, Java och GSM. Figur 4.2 visar en systemskiss över hur prototypen konstruerades.

På den mobila sidan kopplar klienten (användaren) upp sig mot HyperWave-servern - Xjobb InformationTjänst Server (XITS) - med hjälp av GSM. XITS får en förfrågan av klienten och svarar då att en förbindelse har etablerats. Det protokoll som används mellan klienten och XITS kommer att bli HTTP i detta fall (se avsnitt 3.4). Java-Applets laddas ned då klienten laddar den specificerade HTML-sidan. I vårt fall laddas den ned direkt när klienten gör uppkopplingen till XITS. I XITS lagras all information. Informationen kan vara Java-program (Java-kod, Java-klasser), HTML- eller HTF-format, bildformat m.m. Den Java-Applet (se avsnitt 4.4) som laddas ned ser till att skicka nyheter som är viktiga att känna till omedelbart.

4.4 Java klient-server
För att kunna låta servern kontinuerligt skicka data till klienten krävs en klient-server-applikation. Språket som används för att möjliggöra detta är Java. Javas nätverkspaket stödjer en enkel mängd av klasser för att manipulera lågnivå TCP/IP-socket och dessutom finns en Java motor redan inkluderad i Netscape. Andra fördelar med att använda Java är att endast de data som behövs laddas ned, istället för att skicka hela HTML-dokumentet. Med Javas trådar är det dessutom väldigt smidigt att implementera en server-applikation eftersom en ny tråd kan skapas för varje ansluten klient.

En klient-server-arkitektur består av en serverapplikation som körs på en maskin och en eller flera klienter som körs på olika maskiner över nätverket. Kommunikationsmodellen bygger på att man har en server som hanterar förfrågningar från ett flertal klienter. Klienten frågar och servern svarar.

Figur 4.2. Systemskiss.

I implementationen av Java-Applet, som skriver ut data i den aktuella nyhetersrutan, används en socket-förbindelse för att få en pålitlig kommunikation. Innan klient-server-implementationen beskrivs, förklaras nedan några termer som används i implementationen och därefter visar ett diagram hur klienten och servern kommunicerar över en TCP/IP-nätverksförbindelse, figur 4.3.

Socket Ett socket-objekt är Javas representation av en TCP-förbindelse. När en socket skapas öppnas en förbindelse till den specificerade destinationen. Strömobjekt kan inhämtas för att skicka och ta emot data ifrån andra änden.
ServerSocket Representerar en lyssnande TCP-förbindelse. När en inkommande förbindelse är begärd kommer ServerSocket att returnera ett socket- objekt som representerar förbindelsen.
DataInputStream Används för att läsa primitiva Java-datatyper från en indataström på ett portabelt sätt.
InputStream Java använder denna klass för att hantera dataläsning från en indatakälla, t.ex. en fil, en sträng, minne eller något annat som innehåller data.
OutputStream Denna klass är motsatsen till InputStream. Den används för att hantera dataskrivning till en utdatakälla.
PrintStream Denna klass används för att skriva ut utdata som text.
Figur 4.3. Klient-server förbindelse över ett TCP/IP- nätverk.

Serverimplementation
Servern använder ServerSocket-klass för att acceptera förbindelser från klienter. När en klient ansluter sig till den port som ServerSocket lyssnar på, allokerar ServerSocketen ett nytt socket-objekt för klienten att kommunicera genom. Sedan går servern tillbaka till att lyssna på ServerSocket för ytterligare klientförbindelser. Servern är multitrådad, vilket ger möjlighet för flera klienter att kommunicera med servern. För varje klient startas en ny tråd.

Applet-klientimplementation
Klienten skapar ett socket-objekt för att etablera en förbindelse med servern. Sedan skapar den en DataInputStream för att läsa textrader från sockets InputStream, och PrintStream för att skriva textrader till Output-Stream. I den Java-Applet som används här är klienten halvt passiv, dvs. det enda som klienten behöver göra är att tala om för servern att den har anslutit sig och är beredd att läsa textrader ifrån servern.

De klasser som användes för implementationen av Applet-klient-server- applikation är:

  • Server-klass: Skapar en ServerSocket för att lyssna på en förbindelse. Sedan loopar man i en oändlig slinga, vilken lyssnar på och accepterar förbindelser från klienter.
  • Connection-klass: Hanterar all kommunikation och ser till att kontinuerligt skicka den specificerade filen. Fyra filer har definierats för att sändas till klienten med ett visst intervall och efter ca 7 minuter avbryter servern förbindelsen med klienten.
  • AppletClient-klass: Skapar en socket för att kommunicera med servern på en port. Skapar också ett gränssnitt som består av en textarea.
  • Listen-klass: Väntar på data ifrån servern på den specificerade strömmen och visar den sedan i textarean.

4.5 Resultat
I detta avsnitt tas de problem och begränsningar upp som tillstötte under konstruktionen av prototypen. Dessutom redogörs för en utvärdering och diskussion kring eventuella utvidgningar av prototypen.

4.5.1 Problem och begränsningar
Ett av de största problemen som tillstötte under framtagandet av prototypen var att många av de produkter som användes var i betaversion, t.ex. HyperWaves klienter. Dessutom är HyperWave-servern fortfarande under utveckling och nya verktyg läggs till kontinuerligt.

Applet-klient-server-applikation
Socketimplementationerna är usla på många plattformar. Under Netscape på PC fungerade Java-Applet som det ska, men under Netscape på SUN fungerade det slumpmässigt. Problemet är fortfarande inte löst. Användning av Appletviewer under SUN medförde däremot inte något problem.

Dataöverföring via GSM
Dataöverföring via GSM fungerar felfritt. Det kan hända att förbindelsen avbryts men uppkopplingen kan göras automatiskt utan att användaren talar om det. Innan data börjar överföras krävs en manuell uppkoppling. Detta kan uppfattas som osmidigt av några användare. Vid ett omedelbart förbindelseavbrott kommer Applet-klient-server att upphöra med dataöverföringen. Användaren kommer att märka detta genom det meddelande som skrivs ut i Java-Appletrutan "Servern stängde förbindelsen".

HyperWave-klienter
I Amadeus leder ett förbindelseavbrott till en omedelbar krasch i programmet. Amadeusutvecklare håller på att utreda problemet (programmet är fortfarande i betaversion). HyperWave-klienterna stödjer varken Java eller ramar, frames. Eftersom klienterna fungerar som browsrar och verktyg för att editera i HyperWave servern, är det litet besvärligare att lagra Java-program jämfört med andra web-servrar.

4.5.2 Möjliga utvidgningar
Som det fungerar nu kan man med hjälp av HyperWave se vilka användare som är inloggade för närvarande. Dessutom kan man sända meddelanden till HyperWaves egna klienter rakt av, medan mellan Netscape och HyperWave detta kan ske endast genom e-post. Detta vill man utvidga så att direkt meddelandehantering mellan Netscape och HyperWave blir möjlig. Ett sätt är att låta Netscape använda HG-CSP- protokollet så fort den kopplar upp sig till HyperWave. Då kommer man att ha ett förbindelseorienterat protokoll vilket gör att meddelande-utväxling fungerar enkelt. Möjligen kan detta vara realiserbart genom införandet av HTTP-NG, eftersom detta protokoll har stor likhet med HG-CSP.
Med en riktig version av RMI har man möjlighet att tillämpa RMIs eget protokoll istället för HTTP. Protokollet är likt RPC (Remote Procedure Call).
Man skulle kunna implementera en mjukvara som ser till att "cacha" hypertextlänkarna i bakgrunden då man håller på att läsa ett dokument. Detta optimerar både tiden för att ladda ett nytt dokument och kostnaden vid användning av GSM-länken.

4.5.3 Utvärdering
För att ta lärdom av det arbete som lagts ned krävs en utvärdering av systemet. I detta avsnitt presenteras testresultat och slutsatser med avseende på dataöverföringshastighet, robusthet och kostnader.

Tabell 4.1 visar ett utdrag över de tester som utfördes under examens-arbetet. I tabellen lägger man märke till att HG-CSP är snabbare än HTTP. När man laddar ned ett dokument som innehåller olika format syns det tydligt att HG-CSP är 30 sek. snabbare än HTTP. Vid laddning av ett textdokument som har storleken 30 Kbyte visade det sig däremot vara snabbare med HTTP än HG-CSP. Det långsamma beteendet beror inte på HG-CSP utan snarare på HyperWave-klienten. Amadeus har flera saker att tänka på innan den laddar texten. Den ser till att tolka texten för inkluderade länkar och sätter in den som separat objekt i databasen. Amadeusutvecklare håller f.n. på att snabba upp insättningsprocessen.

    HyperWave Annan web- server*
Dataöverföring (via GSM) Storlek Amadeus Netscape Netscape
Starta och ladda 1:a dokument   37 sek** 70 sek 70 sek
Ladda ett textdokument 2 Kbyte 5 sek 5 sek 5 sek
Ladda ett textdokument 30 Kbyte 40 sek 27 sek 27 sek
Ladda ett dokument som innehåller både bild- och textformat 35 Kbyte 50 sek 80 sek 80 sek
Ladda ett dokument som innehåller både bild- och textformat 70 Kbyte 105 sek 137 sek 137 sek
Ladda ett dokument i genomsnitt 34 Kbyte 50 sek 62 sek 62 sek

*) Apache web-server (se Appendix 5.4). **) Amadeus kan inte ladda Java-Applet.
Tabell 4.1.

Att använda Netscape uppkopplat till HyperWave eller till en Apache- server visade ingen skillnad i dataöverföringshastighet. Genom Hyper-Wave-server har man dock alltid tillgång till det senaste uppdaterade dokumentet, vilket inte är fallet i Apache-servern. Anledningen till att HyperWave klarar att ha tillgång till det senast uppdaterade dokumentet är att varje dokument som modifieras får ett unikt ID, och att detta unika ID utnyttjas när man refererar till ett dokument. Detta leder i sin tur till att man alltid får tillgång till det nya dokumentet. En annan fördel med Hyper-Wave är att man, då man skapar/modifierar ett nytt dokument, kan definiera hur länge dokumentet skall vara åtkomligt för klienterna. Detta är lämpligt t.ex. vid väderprognos, trafikinformation, nyheter m.m.

Som nämndes i avsnitt 3.3 och 3.4 är både HTTP- och HG-CSP- protokollen baserade på TCP, dvs. de bygger på en pålitlig förbindelse. Frågan är vad som händer då GSM-uppkopplingen bryts? I fallet då man använder Netscape kommer användaren att märka detta genom att Java-Applet, som sänder data till klienten, upphör och lämnar meddelandet: "Servern stängde förbindelsen". I HyperWave-servern registeras alla användare som loggar in i en statusfil. Om användaren är inaktiv i 2 minuter eller inte lyckats att få igång förbindelsen under denna tid när GSM-uppkopplingen brutits, slänger servern användaren från statusfilen, dvs. servern tolkar det som att användaren har loggat ut.

När man använder Amadeus leder ett förbindelseavbrott till en total krasch. Detta är ett fel i Amadeusprogrammet. Enligt Amadeusutvecklaren skulle ett felmeddelande dyka upp som talar om att förbindelsen med servern har avbrutits och att omkopplingen sker så fort en ny förbindelse har etablerats.

Det är viktigt att veta vilka kostnader man får genom att använda Hyper-Wave istället för den första generationens webb-servrar. Prismässigt är HyperWave rätt dyr. En HyperWaveserver kostar ca $30 000 för ett obegränsat antal användare. I gengäld får man många funktionaliteter som inte existerar på den första generationens webservrar, t.ex. multiprotokollegenskap, snabb meddelandeutväxling, m.m. En annan kostnad HyperWave medför är att klienterna fortfarande är i betaversion och varken stödjer Java eller ramar.

Netscape kommer inte att kunna utnyttja HG-CSP och dessutom finns det inte möjlighet för snabb meddelandeutväxling mellan klienten och servern.

  HyperWave server Apache server
Protokoll HTTP/HG-CSP HTTP
Kostnader Dyr Gratis
Meddelandeutväxling Snabb meddelandeutväxling Saknar meddelande-utväxling
Tidvinst vid dataöverföring (via GSM) 20 % snabbare vid användning av HG-CSP Ingen vinst

Tabell 4.2. Jämförelse mellan HyperWave-server och Apache-server.

4.5.4 Under vilka kriterier är lösningen optimal

I denna rapport har det visat sig att genom att använda HG-CSP får man snabbare dataöverföring än HTTP, vilket leder till att det är nödvändigt att tänka över vilket protokoll som skall användas mellan klient och server för att uppnå ett bra resultat. Tidsvinsten är ca 20 % (se tabell 4.1). Att tids-vinsten inte är större beror på det mobila radiosystem i dagsläget har rätt blygsamma dataöverföringshastigheter. Denna tidsvinst skulle öka avse-värd vid högre mobila dataöverföringshastigheter.

Med hjälp av HyperWave och Java får man alltid aktuella nyheter och senast uppdaterade dokument. På det sättet har trafiken optimerats över den mobila länken, dvs. man behöver inte ladda om ett och samma dokument för att kunna få fram det senaste uppdaterade dokumentet, det är Java klient-server applikationer som tar över och skickar korta nödvändiga meddelanden till inloggade klienter.

För kostnadsoptimering kan man använda WebWhacker. WebWhacker är ett verktyg som gör det möjligt att ladda ned webb-sidor till den lokala disken och sedan läsa dem utan att vara uppkopplad på nätet. I Web-Whacker kan man tala om vilka webb-sidor eller dokument som skall sparas på disken, samt när och hur ofta de skall sparas. Detta program använder Windows 95 eller Windows NT 4.0. Man kan också använda Peak Net-programmet. Programmet laddar hem de mest sannolika sidorna till datorn, innan användaren ens har klickat på hyperlänken för sidorna. Detta gör att hämtningen av information går betydligt fortare. Peak Net analyserar även cacheminnet och uppdaterar kontinuerligt de senast besökta hemsidorna, vilket medför att åtkomsten av favorithemsidorna går betydligt fortare.

4.6 Slutsatser och rekommendationer
Den som vill använda de mobila radiosystem som täcker ett stort område för att få en snabb dataöverföring, får nöja sig med rätt blygsamma hastigheter. Den högsta mobila dataöverföringshastigheten är för närvarande endast 9,6 kbit/s. I denna rapport har det visats sig att det går att förbättra dataöverföringen mellan klient och server, t.ex. genom att utnyttja andra protokoll än det som Netscape och andra liknande webb-browsrar använder. Detta uppfyller ändå inte kraven på vad användarna förväntar sig. Att ladda ned ett litet dokument (1-2kbyte) tar ca 5 sek. via GSM, vilket är acceptabelt. Om man däremot vill inkludera en kartbeskrivning över en kollision som skett i ett visst område får man vänta minst 50 sek., vilket kan uppfattas som en lång tid för vissa användare.

Med hjälp av HyperWave kan man alltid komma åt de senast uppdaterade dokumenten och dessutom har man möjlighet att utnyttja HTTP- och/eller HG-CSP-protokoll. Man kan fråga sig hur HyperWaves framtid ser ut? För skolor och utbildningssyften kommer HyperWave att vara väldigt attraktivt och användbart med avseende på de många funktionaliteter som den erbjuder. För det kommersiella bruket kommer HyperWave inte att vara lika attraktivt, dels beroende på kostnaden och dels på att de egna klienterna för närvarande inte stödjer Java och ramar. HyperWave används idag i stort sett endast av utbildningsinstitutioner.

Detta arbete har medfört insikt om de olika lösningar man kan begagna vid utformning av Optimerad mobil Netscape/Amadeus. Arbetet har också givit kunskap om t.ex.hur man skall angripa ett problem för att få en bra lösning, hur olika system fungerar, hur man skall använda den tekniken man har för att åstadkomma en användbar produkt och hur användaren kommer att uppfatta en sådan lösning.

5 Appendix

5.1 Ordförklaringar

5.1.1 Broadcasting
Sändning till alla noder på ett nät.

5.1.2 Browser
Ett program som gör det möjligt att navigera genom hyperdokument och visar enskilda dokument. Viewer är komponenter av browser.

5.1.3 Datagram (Internet-sammanhang)
Ett datablock som bär tillräcklig information för att kunna ta sig från ett Internetläge till andra utan att vara beroende av tidigare utväxling mellan käll- och destinationsdatorer.

5.1.4 Header
Den del av ett datagram som sänds först ut på nätet. Innehåller information som behövs för överföring av datagrammet såsom destinationadress m.m.

5.1.5 HTF
HyperText format. Hyper-Gs eget format för text dokument. Numera är HTML huvudtextformat för Hyper-G.

5.1.6 HTML
HTML står för HyperText Markup Language och är ett SGML-baserat format som beskriver strukturen av ett web-textdokument.

5.1.7 Hypermedia
Hypermedia är kombineringen av hypertext och multimedia i ett online- dokument.

5.1.8 Hypertext
En typ av text med interaktiva länkar till andra dokument. Genom att klicka på eller välja en hypertextlänk visas andra dokument. WWW innehåller hypertext.

5.1.9 ICMP
ICMP står för Internet Control Message Protocol och är en del av IP. Tar hand om felhantering och routehantering. [RFC 791]

5.1.10 IP
IP står för Internet Protocol. Ett protokoll för att sända datagram över flera ihopkopplade datanätverk, dvs. datagram kan plockas isär i mindre delar för överföringen över nät med mindre paketstorlek och sedan sättas ihop igen. Innehåller ingen kontroll av att datagrammet kom fram eller att mottagaren ens existerar. Mängden data som överförs i ett datagram begränsas av nätet m.m. [RFC 791]

5.1.11 Java
Java är ett enkelt, objektorienterad, distribuerat, interpreterande, robust, arkitekturneutralt, portabelt, multitrådat och dynamiskt språk.

5.1.12 Java-Applet
Java-Applet är ett litet Java-program som kan bäddas in i andra applikationer. I HTML-dokument brukar man inkludera Java-Applet för att få interaktivt och exekverbart innehåll på en websida.

5.1.13 Java Appletviewer
Med Java Appletviewer-kommandot kan man köra Java-Applet utanför en WWW-browser.

5.1.14 Klient
Ett datorsystem eller en process som begär en tjänst av andra datorsystem eller processer.

5.1.15 Klient-Server
En kommunikationsmodell som bygger på att man har en server som hanterar förfrågningar från ett flertal klienter. Klienten frågar och servern svarar. Den enkla modellen möjliggör att ett enkelt och effektivt kommunikationsprotokoll, data och funktionalitet kan delas upp i oberoende moduler vilket underlättar modifikationen.

5.1.16 LAN
LAN står för Local Area Network och är ett kommunikationsnät som innefattar en eller ett fåtal byggnader, eller en maximal sträckning på något hundratal meter.

5.1.17 Protokoll
Protokoll är "språket" som talas mellan datorer för att hjälpa de att växla information. Tekniskt ses protokollet som en beskrivning av ett meddelandeformat och regler som två datorer måste följa för att växla dessa meddelanden.

5.1.18 Proxy
Ombud ,proxy, är en server-applikation som kommer ihåg den senast hämtade informationen. Proxy lagrar informationen i en lokal server. Detta medför att det går snabbare att hämta informationen.

5.1.19 RPC
RPC står för Remote Protocol Call. Ett protokoll för anrop av procedurer och program som exekveras på en annan fysisk maskin med i stort sätt samma syntax som för Local Procedure Call (LPC). [RFC 1057]

5.1.20 Server
En dator som innehåller resurser, t.ex. filer och annan information som kan förmedlas till klienter genom ett kommunikationsprotokoll.

5.1.21 Socket
Gränssnittmjukvara som ger möjlighet till process-kommunikation. Från början var det endast möjligt i UNIX, men nuförtiden är den tillgänglig i många system. I TCP/IP-mening är en nätförbindelse generellt definierad av femtupeln: protocol, local-address, local-process, foreign-address, foreign-process.

5.1.22 TCP
TCP står för Transmission Control Protocol och är byggt på IP och ICMP. TCP är en pålitlig förbindelse mellan två processer. TCP garanterar att överförd information kommer fram inom en viss tid, och om det misslyckas meddelas användaren. TCP används med fördel för överföring av större datamängder över Internet och i de fall då det är viktigare att informationen kommer fram än att man har hög överföringshastighet. [RFC 793]

5.1.23 URL
URL står för Uniform Resource Locator. Den refererar till en adress som är igenkänd "universellt" som adress för en Internetresurs. Varje resurs på Internet har en unik URL. URLen börjar med bokstäver som definierar protokollet (t.ex. http, hyperg, ftp m.m.), sedan följs den av kolon och dubbla snedstreck. Därefter kommer datorns namn följt av katalog och filnamnet till den önskade resursen. Exempel http://schubert.upp.promotor.telia.se/entry.html

5.1.24 Viewer
Ett program för att presentera en specifik typ av dokument. Generellt används ordet browser som en synonym till viewer.

5.1.25 World Wide Web (WWW eller Webb)
WWW är samling av online-dokument som är lagrade på Internetsservrar runt om i världen. Webb-dokument är skrivna, kodade, i HTML. För att få tillgång till dessa dokument krävs en web-browser, t.ex. Netscape, Internet explorer, Amadeus m.fl. När dessa browsrar hämtar en sida använder servern HTTP för att skicka dokumentet till din dator.

5.1.26 X.25
X.25 är ett pakettransmissionsprotokoll som definierar procedurer för att utväxla data mellan en användarenhet, ofta kallad DTE (Data Terminal Equipment), och en nätverksnod kallad DCE (Data Circuit-Equipment). Detta innebär att DCE är nätverksgränssnittet till användarens DTE. DTE kan var en dator eller en arbetsstation.

5.2 Remote Method Invocation (RMI)
RMI är en Java-specifik lösning framtagen av SUN och använder Java gränssnitt och Java-typer för att beskriva tjänster. RMI använder dessutom ett eget protokoll för att överföra parametrar och returvärden. Protokollet liknarRemote Procedure Call (RPC).

5.2.1 Systemarkitekturen
RMI består av tre skikt: Stub/skelettskikt, fjärreferensskikt och transportskikt. Varje skikt är definierat av ett specificerat gränssnitt och protokoll, dvs. varje skikt är oberoende av de andra och kan ersättas med en alternativ implementation, figur 5.1.


Bild 5.1. RMI systemarkitektur.


Stub/skelettskikt
Stub/skelettskiktet är gränssnittet mellan applikationsskiktet och resten av RMI-systemet. Skiktet överför data till fjärreferensskiktet via abstraktionen av Object Serilization. Ett stub för ett fjärrobjekt är en klientsida proxy för det fjärrobjektet. Ett skelett för fjärrobjektet är en serversida som sänder anrop till den aktuella fjärrobjektimplementationen.

Fjärreferensskiktet
Fjärreferensskiktet arbetar med den nedre gränssnittsnivån, dvs. transport gränssnittet. Skiktet är också ansvarigt för utförandet av ett specifikt fjärreferensprotokoll, som är oberoende av klientstub och serverskelett.

Transportskiktet
Transportskiktet ansvarar för att:

  • Sätta upp förbindelser till fjärradressrymd.
  • Hantera förbindelser.
  • Se till att förbindelsen är vid liv.
  • Lyssna på förekommande anrop.
  • Sätta upp en förbindelse till ett kommande anrop.
  • Lokalisera sändaren av ett fjärranrop och etablera förbindelse till denna sändare.

5.3 PCMCIA
PCMCIA står för Personal Computer Memory Card International Association. PCMCIA är en företagsorganisation som utvecklat persondatorkort (PC-kort) standard. Ett PC-kort är lika stort som ett bankomatkort.

PCMCIA-standarden beskriver tre typer av kort, typ I, II, III. Varje PCMCIA-kort har ett 68-pinnars gränssnitt och alla har samma längd och bredd, men däremot varierar de i tjocklek. PC-kort av Typ I har tjockleken 3.3 mm, Typ II har 5 mm och Typ III har 10,5 mm.

Ett Typ I PC-kort kan användas för olika typer av minnesförbättring såsom RAM-minne (Read Only Memory), Flash-minne, och EEPROM-minne (Electronically Programmable Read-Only-Memory). Ett Typ II PC-kort kan användas för minnesförbättring och/eller för indata/utdata- huvuddrag såsom ett modem, LAN, ljudkort, globalt positioneringssystem (GPS) och värdkommunikation. Ett Typ III PC-kort används huvudsakligen för Winchester-enheter. Det PC-kort som används för kunna få att komma åt HyperWave och Internet är av Typ II.

5.4 Apache web server
Apache är en första generationens web server och är den populäraste WWW servern på nätet enligt Netcraft Survey. Apache är en gratis web- server och bland de snabbaste. Protokollet som den använder för att kommunicera med WWW-klienter är HTTP. Det system som krävs för att installera är Unix eller OS/2. Servern kan laddas ned ifrån “http://www.apache.org/".

5.5 Amadeus och Harmony (Bilder)

Figur 5.2. Amadeus 2.0.2
Figur 5.3. Harmony 2.0.

6 Referenser

Kurslitteratur
FLANAGAN DAVID. 1996. Java in a Nutshell. O'Reilly och Associates, Inc.
MAURER HERMAN. 1996. Hyper-G now HyperWave The Next Generation Web Solution. Addison-Wesley Publishing Company.

Annan litteratur
H&AUMLM&AUMLL&AUMLINEN JARI. Architecture of wide band GSM. April 1996. Packet Radio Service for the GSM Network. April 1996.

SCOURIAS JOHN. Overview of the GSM cellular system. April 1995.
Mobile Communications International. Issue 28, February 1996. Using
Eureka 147 for Mobile Multimedia
. Sidan 53-58.
Mobile Communications International. Issue 31, Mars 1996. Two new terminals to break the GSM mould. Sidan 57-58. Integrating GSM with new satellite systems. Sidan 62- 65.
Mobile Communications International. Issue 32, Juni 1996. Implemantation of UMTS/FPLMTS. Sidan 63-65. A graceful path for GSM's evolution. Sidan (53-56).
Nät och Kom. November 1996. Breddband i luften ett måste. Sidan 42
JoeTM: Developing Client/Server Appication for the Web. SUN White Paper March 1996.
Mobile/IP flyer English translation. Multihouse Automatisering. 1994.
Data Communications March 21,1996. A continental Drift Toward Wireless Data. Sidan 68-74.
Trådlös Datakommunikation idébok för Mobitex. nov. 1992. Utgiven av Ericsson Mobile Communication AB.
Oracle Mobile Agents. Technical Product Summary. Oracle White Paper March 1995.
Mobile Data News 1/95. Mobitex eller GSM. Sidan 11-12.
Mobile Data News No.1 February 1996. Trådlös middelware. Sidan 10-11.
Mobile Data News No.2 April 1996. Nytt om trådlös middleware. Sidan 10.

Internet referenser:
Samtliga referenser var åtkomliga under perioden juni - december 1996
ftp://ftp.iicm.tu-graz.ac.at/pub/Hyper-G/
http://hyper-g.iicm.tu0graz.ac.at/hgbook
http://www.eu.sun.com/sunsoft/neo/
http://www.kp.dlr.de/DAB/
http://www.magi.com/~moted/dr/
http://www.club.nokia.com/library/0596/video.html
http://www.club.nokia.com/laptop/library/0496/tele.html
http://www.club.nokia.com/laptop/library/0496/grpsbook.html
http://ccnga.uwaterloo.ca/jscouria/
http://www.vtt.fi/tte/nh/UMTS/
http://www.vtt.fi/tte/nh/UMTS/umts.html/
http://www.w3.org/pub/WWW/Protocols/
http://www.w3.org/pub/WWW/Protocols/HTTP-NG/
http://ds.internic.net/ds/rfc-index.html
http://www.techweb.com/tools/agents/agents6.html/
http://www.sics.se/~onthemove/

Koden till Java klient-server-applikation finns under
http://tpuweb.upp.promotor.telia.se/~ibbe/java/