|
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
- Solaris NEO 1.0
- WorkShop NEO 1.0
- Java
Development Kit 1.0
- HTTP server
- 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.
|
- 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.
- Sessionskiket kommunicerar med databasskiktet, andra globala servrar
och klienter.
- 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.
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/
|