Hoofdstuk 1: Wireless Application Protocol (WAP): doelstellingen en ontwikkeling

WAP, of Wireless Application Protocol is een nieuwe set standaarden, ontwikkeld om de Internetdiensten (services) uit te breiden naar mobiele telefonie, zoals bijvoorbeeld de GSM, pagers en PDA's. De ontwikkeling van dit protocol wordt gecoördineerd door het WAP Forum, een industriële samenwerking met als doel de beste principes van het Internet en de ontwikkeling van Internettoepassingen te implementeren in de draadloze gemeenschap.

 

    1. Ontstaan
    2. In 1995 begon Ericsson met de ontwikkeling van een protocol voor draadloze toestellen onder de naam ITTP, wat staat voor Intelligent Terminal Transfer Protocol, met als bedoeling om op eenvoudige wijze diensten voor mobiele telefoonplatforms te ontwikkelen en te implementeren. Ondertussen, in de periode 1995-1996 was ook Nokia volop bezig met het ontwikkelen van het concept Smart Messaging, en Unwired Planet creëerde HDML. De Handheld Device Markup Language was gelijkaardig aan HTML, maar dan wel geoptimaliseerd voor toestellen met klein scherm zoals telefoons en PDA's.

      Al snel realiseerde men zich dat deze protocollen mekaar zouden beconcurreren en zo een potentiële markt zouden vernietigen, al was het maar omwille van hun gebrek aan compatibiliteit. Daarom besloten Ericsson, Nokia, Motorola en Unwired Planet (vandaag gekend onder de naam Phone.com) hun krachten te bundelen in het WAP Forum, dat officieel boven de doopvont werd gehouden in december 1997. Na de release van de WAP 1.0 specificaties in de lente van 1998, werd lidmaatschap tot het Forum opengesteld voor eenieder die geïnteresseerd was en is in het bijdragen tot de ontwikkeling van één wereldwijde standaard. Op het einde van 1999 hadden zich al meer dan 90 ondernemingen geëngageerd, gaande van hardware-producenten en service providers tot netwerkoperatoren en softwareontwikkelaars.

       

    3. Scope

Het Wireless Application Protocol (WAP) is het resultaat van de inspanningen van het WAP Forum om uniforme specificaties voor de technologie, nodig voor het ontwikkelen van applicaties en diensten die over draadloze netwerken opereren, te promoten, en dit voor de hele telecommunicatie-industrie. WAP specifieert een kader waarin applicaties en ook netwerkprotocollen voor draadloze toestellen kunnen ontwikkeld worden. De specificatie is een uitbreiding op de mobiele netwerktechnologieën (zoals de digitale data netwerkstandaarden) en op de Internettechnologie (zoals XML, URLs, scripting, en verschillende inhoudsformaten). De inspanning is erop gericht om operatoren, producenten en ontwikkelaars toe te laten de uitdagingen die bij de ontwikkeling of de implementatie van diensten ontstaan, op een snelle en flexibele manier op te lossen.

De objectieven van het WAP Forum zijn:

Het volgende hoofdstuk, de WAP Architectuur, is bedoeld om de lezer de systeem- en de protocolarchitectuur van het Wireless Application Protocol toe te lichten, die essentieel is om de bovenstaande objectieven te bereiken. Dit hoofdstuk doet dan ook dienst als startpunt voor het begrijpen van de WAP technologieën en de resulterende specificaties. Het geeft een overzicht van de verschillende technologieën en verwijst naar de overeenstemmende hoofdstukken voor een verdere bespreking.

 

    1. Verantwoording

WAP bevindt zich op het raakvlak van twee snelgroeiende netwerktechnologieën en markten, deze van de draadloze datacommunicatie en het Internet. Beide markten groeien zeer snel en bereiken voortdurend nieuwe klanten. De explosieve groei van het Internet heeft de ontwikkeling van nieuwe services dan ook fel aangewakkerd.

Het grootste deel van de technologie die voor het Internet werd ontwikkeld, was bestemd voor netwerken van desktop- en grotere computers, en netwerken met gemiddelde tot hoge bandbreedte. Algemeen gesproken betrouwbare netwerken dus. Draadloze toestellen daarentegen functioneren in een veel beperktere omgeving in vergelijking met die van de desktop computer. Omwille van die fundamentele beperkingen wat betreft energie en vorm, is het zo dat de volgende eigenschappen zeer belangrijk zijn wanneer we gaan ontwikkelen voor draadloze toestellen:

Maar ook wat betreft de communicatieomgeving is het zo dat draadloze datanetwerken ook weer beperkt zijn, vergeleken met de traditionele netwerken. Belangrijke knelpunten zijn hier:

Mobiele netwerken groeien voortdurend in complexiteit en de kostprijs voor het voorzien van services die meerwaarde bieden, neemt toe. Om de eisen van de mobiele netwerkoperatoren tegemoet te kunnen komen, moeten voorgestelde oplossingen minimaal aan volgende voorwaarden voldoen:

Vele van de huidige mobiele netwerken beschikken over geavanceerde diensten die aan de eindgebruiker worden aangeboden. Mobiele netwerkoperatoren streven ernaar om deze geavanceerde diensten op een gebruiksvriendelijke en aantrekkelijke manier aan te bieden, teneinde zo een verhoogd gebruik van het mobiel netwerk en haar diensten te bekomen en de overloop van klanten te verminderen. Standaard diensten, zoals Call Control, kunnen veel verbeterd worden dankzij WAP door het voorzien van klantvriendelijke user interfaces. Zo bijvoorbeeld kan een dienst als Call Forwarding voorzien worden van een user interface die de gebruiker laat kiezen om een oproep te aanvaarden, deze naar voice mail door te zenden, of naar een andere persoon.

De WAP specificatie richt zich tot de specifieke kenmerken van de mobiele netwerken en de noden van de operatoren door bestaande netwerktechnologieën aan te passen aan de bijzondere eisen die de draadloze toestellen stellen, en tevens door het introduceren van nieuwe technologieën waar nodig.

 

    1. Uitdagingen

De uitdagingen voor het WAP Forum zijn:

    1. Toekomstige aandachtspunten

Onderstaande lijst geeft een overzicht van een aantal terreinen waar de leden van het Forum zich in de (nabije?) toekomst over zullen buigen:

 

    1. Logo

Hieronder vindt de lezer het officiële logo van het WAP Forum dat ongetwijfeld in de nabije toekomst nog van groter belang zal worden en meer bekendheid zal genieten wanneer de applicaties die gebruik maken van WAP en de GSM-toestellen die WAP ondersteunen op massaal de markt zullen komen. Bij het schrijven van dit werk is voorlopig slechts één GSM-toestel op de markt beschikbaar dat WAP services ondersteund. Het gaat om het toestel Nokia 7110, waarvan ook een afbeelding is opgenomen, samen met de programmeeromgeving. Een vooraanzicht wordt door figuur 3 weergegeven.

Figuur 1: het Officiële WAP Forum Logo

Figuur 2: Het eerste WAP GSM-toestel, de Nokia 7110 met ontwikkelomgeving

 

Figuur 3: De Nokia 7110

 

De bovenstaande figuur toont de Nokia 7110. Dit is dus, zoals gezegd, het eerste GSM toestel dat op de markt zal verschijnen in grote hoeveelheden, dat WAP ondersteund. Merk de extra knoppen die toegevoegd werden. Vooreerst zijn er de twee knoppen die net onder het scherm werden toegevoegd. Deze moeten de <back> en <next> functionaleit vervullen wanneer de gebruiker door verschillende pagina's wil navigeren. De scrollknop die middenin is aangebracht, moet er dan weer voor zorgen dat op efficiënte wijze doorheen de gegevens kan worden gezocht.

Belangrijk is wel, zoals later in dit werk wordt beschreven, dat de ontwikkelaar de navigatie- en scrollfunctionaliteit ook softwarematig kan voorzien. Het Wireless Application Protocol geeft hierin volledige vrijheid aan de ontwikkelaar. Maar het staat natuurlijk buiten kijf dat deze extra knoppen de gebruiksvriendelijkheid zeker ten goede komen.

 

 

Hoofdstuk 2: WAP Architectuur

 

2.1 Het World Wide Web Model

De architectuur van het Internet World Wide Web model (WWW) is een zeer flexibel en krachtig programmeermodel (figuur 4). Applicaties en inhoud (content) worden voorgesteld in gestandaardiseerde gegevensformaten, en worden doorzocht (gebrowsed) via toepassingen gekend als Web browsers. De Web browser is een netwerkapplicatie: het zend verzoeken voor data objecten naar een netwerk server en de netwerk server reageert daarop met het doorsturen van de data de standaard formaten.

Figuur 4: Word-Wide Web Programmeermodel

 

De WWW standaarden specifiëren veel van de mechanismen die nodig zijn voor het bouwen van een multifunctionele applicatieomgeving:

Deze infrastructuur laat de gebruikers toe om snel een groot aantal applicaties te gebruiken en gegevens te raadplegen. Maar ze zorgt er ook voor dat ontwikkelaars zeer eenvoudig applicaties en diensten kunnen ontwikkelen voor een grote groep klanten.

De WWW protocollen definiëren drie klassen van servers:

 

2.2 Het WAP Model

Het WAP programmeermodel (figuur 5) is gelijkaardig aan het WWW programmeermodel, dat in bovenstaande paragraaf werd behandeld. Dat betekent dat er heel wat voordelen zijn voor de applicatie-ontwikkelaars, meerbepaald een gekend programmeermodel, een bewezen architectuur, en de mogelijkheid om bestaande tools (zoals bijvoorbeeld Web servers en XML tools) te gebruiken. Verbeteringen en uitbreidingen zijn gebeurd om de specifieke karakteristieken van de draadloze omgeving zo goed mogelijk op te vangen. Waar mogelijk zijn bestaande standaarden overgenomen, of tenminste gebruikt als startpunt voor de WAP technologie.

Figuur 5: WAP Programmeermodel

 

 

WAP inhoud en applicaties worden gespecificeerd in een set welgekende inhoudsformaten, gebaseerd op de gekende WWW inhoudsformaten. De inhoud (content) wordt getransporteerd gebruik makend van een set standaard communicatie- protocollen die tevens gebaseerd zijn op de WWW communicatieprotocollen. Een microbrowser in de draadloze terminal coördineert de user interface en functioneert analoog met de web browser.

WAP definieert een set van standaard componenten die de communicatie tussen mobiele terminals en netwerk servers toelaten:

De WAP inhoudsformaten en hun types, evenals de protocollen zijn geoptimaliseerd voor de draadloze toestellen. WAP gebruikt proxy technologie om een verbinding te maken tussen het draadloze domein en het WWW. De WAP proxy omvat typisch de volgende functionaliteiten:

Deze infrastructuur zorgt ervoor dat gebruikers van mobiele terminals een breed spectrum aan WAP inhoud en applicaties kunnen doorzoeken via hun browser, en dat de auteur van een applicatie in staat wordt gesteld om applicaties te ontwikkelen die draaien op heel wat mobiele terminals. De WAP proxy laat toe dat data op standaard WWW servers is te vinden en staat eveneens toe dat deze data ontwikkeld wordt gebruik makend van bewezen WWW technologieën zoals CGI scripting.

Terwijl het normaal gebruik van WAP zal bestaan uit een Web server, WAP proxy en WAP client, kan de WAP architectuur ook zeer eenvoudig andere configuraties ondersteunen. Het is mogelijk om een origin server te creëren die over WAP proxy functionaliteit beschikt. Zo'n server kan gebruikt worden om de end-to-end veiligheidsoplossingen eenvoudiger te maken, of voor applicaties die een betere toegangscontrole of gegarandeerde respons vereisen, zoals WTA.

 

2.3 WAP netwerk: een voorbeeld.

Volgend voorbeeld is louter illustratief bedoeld. U vindt een voorbeeld van een WAP netwerk in figuur 6.

Figuur 6: Voorbeeld van een WAP netwerk

In dit voorbeeld is het zo dat de WAP client communiceert met twee servers in het draadloze netwerk. De WAP proxy vertaalt WAP verzoeken naar WWW verzoeken waardoor deze de WAP client toelaat om verzoeken naar de Web server te sturen. De proxy codeert ook het antwoord van de Web server in compact binair formaat dat door de client kan worden geïnterpreteerd.

Als de Web server WAP inhoud bevat (zoals WML), dan haalt de WAP proxy deze informatie rechtstreeks van de web server. Indien echter de gewenste gegevens in WWW formaat zijn opgeslagen op de web server (zoals HTML), dan wordt een filter gebruikt om de WWW inhoud te vertalen in WAP inhoud. In dit voorbeeld is het zo dat de HTML filter HTML vertaalt naar WML.

De Wireless Telephony Application (WTA) server is een voorbeeld van een origin of gateway server die reageert op directe verzoeken van de WAP client. Deze WTA server wordt gebruikt om WAP toegang te bieden tot de mogelijkheden van de telecommunicatiestructuur van de provider van het draadloze netwerk.

 

2.4 Wat met de veiligheid?

WAP laat een flexibele veiligheidsinfrastructuur toe die zich focust op het voorzien van een connectie tussen een WAP client en server. WAP kan end-to-end veiligheid voorzien tussen WAP protocol eindpunten. Als een browser en een origin server zulke end-to-end veiligheid wensen, dan moeten ze communiceren door rechtstreeks gebruik te maken van de WAP protocollen. End-to-end veiligheid kan ook bekomen worden als de WAP proxy "trusted" is, of bijvoorbeeld gelokaliseerd is in dezelfde fysisch veilige plaats als de origin server.

2.5 Componenten van de WAP architectuur

De WAP architectuur voorziet een uitbreidbare omgeving voor het ontwikkelen van applicaties voor mobiele communicatietoestellen. Dit wordt bekomen via een gelaagd ontwerp van de protocol stack (figuur 7). Elk van de lagen van de architectuur is toegankelijk via de laag erboven, maar ook via andere diensten en applicaties.

Figuur 7: de WAP architectuur

De gelaagde WAP architectuur laat toe dat andere diensten en applicaties de mogelijkheden van de WAP protocol stack gebruiken dankzij een welgedefinieerde set van interfaces. Externe applicaties kunnen dus de Session, Transaction, Security en Transport laag rechtstreeks gebruiken. De volgende paragrafen geven de lezer een korte beschrijving van de verschillende elementen van de protocol stack. Deze worden dan in de respectievelijke hoofdstukken verder uitgediept.

 

2.5.1 Wireless Application Environment (WAE)

De Wireless Application Environment (WAE) is een applicatieomgeving gebaseerd op een combinatie van het World Wide Web (WWW) en de mobiele communicatietechnologieën. Het hoofddoel van de WAE is het tot stand brengen van een ontwikkelomgeving waarin operatoren en service providers applicaties en diensten kunnen ontwikkelen voor een zo breed mogelijk gamma aan draadloze platforms, en dit op een efficiënte manier. In de WAE zit een micro-browser- omgeving ingebed die volgende ondersteuning biedt:

 

 

 

 

De Wireless Application Environment wordt verder uitgediept in hoofdstuk 3.

 

2.5.2 Wireless Session Protocol (WSP)

Het Wireless Session Protocol (WSP) voorziet de applicatielaag van het WAP van een consistente interface voor twee sessie diensten. De eerste is een connectie-georienteerde service die opereert boven op de transactielaag (het WTP protocol). De tweede is een connectieloze dienst die boven een beveiligd of onbeveiligd datagram werkt.

Het Wireless Session Protocol bestaat momenteel uit diensten die geschikt zijn voor browsers, of applicaties met analoge mogelijkheden (WSP/B). Wireless Session Protocol/Browser beschikt over de volgende functionaliteiten:

De protocollen in de WSP familie zijn geoptimaliseerd voor netwerken van dragers met lage bandbreedte en relatief hoge latentie. WSP/B is ontwikkeld om een WAP proxy toe te laten een WSP/B client met een standaard HTTP server te verbinden. Voor meer informatie kan de lezer in hoofdstuk 4 terecht.

 

2.5.3 Wireless Transaction Protocol (WTP)

Het WTP doet dienst als lichtgewicht transactie-georienteerd protocol dat geschikt is voor de implementatie van 'thin' clients. WTP heeft volgende functionaliteiten:

Een uitgebreide bespreking van het WTP vindt de lezer in hoofdstuk 5.

2.5.4 Wireless Transport Layer Security (WTLS)

Wireless Transport Layer Security is een veiligheidsprotocol gebaseerd op het standaardprotocol TLS (Transport Layer Security), voorheen beter gekend als Secure Sockets Layer (SSL). WTLS is bedoeld voor gebruik met de WAP transport protocols en is geoptimaliseerd voor gebruik over communicatiekanalen met nauwe bandbreedte. WTLS heeft volgende pluspunten:

WTLS kan ook gebruikt worden voor veilige communicatie tussen terminals, bijvoorbeeld voor de authentificatie bij de uitwisseling van elektronische business cards.

Applicaties worden in staat gesteld om deze WTLS opties te gebruiken, dan wel deze uit te schakelen. Dit is afhankelijk van de veiligheidsvereisten die ze stellen, en van de karakteristieken van het onderliggende netwerk. Zo kan het bijvoorbeeld best voorkomen dat privacy niet wordt geïmplementeerd als dit door het onderliggende netwerk al voldoende wordt gegarandeerd

Meer over WTLS vindt de lezer in hoofdstuk 6.

 

2.5.5 Wireless Datagram Protocol (WDP)

Hiermee wordt verwezen naar het Transport Layer Protocol in de WAP architectuur. De WDP laag opereert boven de dragers (bearers) die door de verschillende netwerken worden ondersteund. Het doet dan ook dienst als algemene transport service. Het biedt consistentie service aan de protocollen uit de bovenste lagen van het WAP, en communiceert zeer transparant over de beschikbare dragers.

Vermits de WDP protocollen een gemeenschappelijke interface voorzien voor de bovenste lagen, kunnen de Security, Session en Application lagen onafhankelijk functioneren van het onderliggende draadloze netwerk. Dit wordt bereikt door de transport laag aan te passen aan de specifieke kenmerken/eisen van de onderliggende drager.

In hoofdstuk 7 vindt de lezer hieromtrent meer informatie.

 

2.5.6 Bearers

De WAP protocollen zijn ontworpen om te kunnen werken op een groot aantal verschillende dragers, met inbegrip van technieken als de korte boodschappen (Short Message Service), circuit-switched data en packet data. De dragers bieden verschillende of variërende niveaus van diensten afhankelijk van de throughput, het foutenaantal en mogelijke vertragingen. De WAP protocollen zijn ontwikkeld om deze variërende niveaus van dienstenlevering te compenseren of te tolereren.

Vermits de WDP laag in feite het bindmiddel is tussen de dragers en de rest van de WAP stack, wordt in de specificatie van de WDP een lijst gegeven met de verschillende dragers die ondersteund worden. Het is natuurlijk de bedoeling dat deze lijst in de toekomst zal worden uitgebreid, en nieuwe dragers zullen toegevoegd worden naargelang de draadloze markt zich verder en verder ontwikkeld.

 

2.5.7 Andere diensten en applicaties.

De gelaagde structuur van WAP laat toe dat andere diensten en toepassingen gebruik kunnen maken van de functionaliteit van de WAP stack via een set van welomschreven interfaces. Externe applicaties kunnen dus rechtstreeks gebruik maken van de Session, Transaction, Security en Transportlaag. Dat laat toe dat de WAP stack gebruikt kan worden voor diensten en toepassingen die op dit ogenblik nog niet door WAP zijn gespecificeerd, maar van groot belang zijn voor de draadloze markt. Zo bijvoorbeeld kunnen toepassingen als elektronische post (e-mail), kalender, telefoonboek, notepad, en e-commerce of diensten zoals de witte en gele gids ontwikkeld worden voor gebruik met de WAP protocollen.

Een overzicht van andere toepassingen en diensten vindt de lezer in hoofdstuk 8.

 

2.5.8 Voorbeeldconfiguraties met WAP technologie

WAP technologie werd ontwikkeld om ook bruikbaar te zijn voor applicaties en diensten die deze gedefinieerd door het WAP Forum zullen overstijgen. Figuur 8 toont verschillende protocol stacks die gebruik maken van WAP technologie. Let wel: deze zijn enkel als illustratie opgenomen.

Figuur 8: voorbeelden van WAP stacks

 

De meest linkse protocolstack is een typisch voorbeeld van een WAP toepassing, bijvoorbeeld een WAE user agent die dus gebruikt maakt van het hele portfolio van WAP technologie. De middelste stack is bedoeld voor applicaties en diensten die transacties met of zonder beveiliging vereisen. De rechtse stack is dan voornamelijk geschikt voor applicaties en diensten die enkel datagram transport vereisen, ook hier met of zonder beveiliging.

De lezer kan hier in de figuur aflezen, net zoals in paragraaf 2.5.4 werd vermeld, dat het gebruik van het Wireless Transport Layer Security protocol (WTLS) door applicaties niet verplicht is. Het gaat steeds om een vrije keuze deze opties te benutten dan wel om ze uit te schakelen. Deze beslissing hangt af van de veiligheidsvereisten die men stelt, en van de karakteristieken van het onderliggend netwerk. Werd bijvoorbeeld in het onderliggende netwerk voldoende veiligheid geïmplementeerd, dan kan men opteren om de WTLS niet te benutten.

 

Hoofdstuk 3: Wireless Application Environment (WAE)

De Wireless Application Environment architectuur bevat alle elementen van de WAP architectuur (zie hoofdstuk 2) met betrekking tot de specificatie en de uitvoering van applicaties. Op dit ogenblik is de WAE architectuur voornamelijk gericht op de client-side aspecten van de systeemarchitectuur van WAP, met name die elementen die betrekking hebben op de user agents. Meerbepaald is het zo is de WAE architectuur gedefinieerd is in termen van netwerkschema's, inhoudsformaten, programmeertalen en gedeelde services ("shared services"). De interfaces zijn niet gestandaardiseerd en zijn heel specifiek voor een bepaalde implementatie. Deze benadering laat toe dat WAE geïmplementeerd kan worden op een hele reeks manieren, zonder dat de interoperabiliteit in het gedrang komt.

Deze benadering werkt dan ook bijzonder goed met een browser model (een klasse van user agents) zoals deze gebruikt in het World Wide Web (WWW). Het Internet en het WWW zijn de inspiratie en de motivatie achter grote delen van de WAE specificatie, en daardoor wordt een zelfde benadering gebruikt binnen de WAE.

Om de lezer de analogie die aanwezig is in het WWW model (zie paragraaf 3.1) en de WAE (zie paragraaf 3.2) zeer duidelijk aan te tonen, vertrekken we opnieuw van de bespreking van het WWW. Essentiële elementen en karakteristieken worden dan opgesomd, en vergeleken met deze van de WAE. Zo krijgt de lezer een precies beeld van de analoge opbouw.

 

3.1 Het WWW Model

Het Word Wide Web model van het Internet voorziet een zeer flexibel en krachtig logisch model. Toepassingen tonen inhoud (content, data) aan een client en dat via een set van standaard data formaten, die gebrowsed worden door client-side user agents, beter gekend onder de naam Web browsers. Het typische verloop van dit proces is als volgt: een user agent zend een verzoek voor één of meer benoemde data objecten (of inhoud) naar een origin server. Deze origin server reageert dan door de gevraagde data door te sturen naar de user agent. Hierbij wordt de data uitgedrukt of weergegeven in één van de standaardformaten die bekend zijn bij de user agent. Een typisch voorbeeld van zo'n standaardformaat is de Hypertext Markup Language (HTML). Onderstaande afbeelding (figuur 9) toont het logische model van het WWW.

Figuur 9: het logische model van het WWW

De WWW standaarden bevatten alle mechanismen die nodig zijn om een zeer ruime ontwikkelomgeving te creëren ("general-purpose environment"):

De WWW infrastructuur en model hebben gebruikers toegelaten om op zeer eenvoudige wijze een groot aantal vreemde data en applicaties te benutten, omwille van de universele en onbeperkte communicatiemogelijkheden. Maar ook auteurs en ontwikkelaars hebben de kans gekregen om services en data te leveren aan een grote groep van client die verschillende user agents gebruiken, zoals Netscape Navigator en Microsoft Internet Explorer.

 

3.2 Het Wireless Application Environment model (WAE)

Het WAE model volgt zeer nauw het model van het WWW. Alle inhoud is gespecificeerd in formaten die analoog zijn met de standaard Internet formaten. Inhoud (data) wordt getransporteerd gebruik makend van de standaard protocollen in het WWW domein en een geoptimaliseerd protocol (zeer verwant met HTTP) in het draadloos domein. Dus voor beide domeinen een afzonderlijk protocol! WAE heeft dan ook waar mogelijk de WWW standaarden geleend wat betreft authoring en publishing methods. De WAE architectuur staat toe dat allen inhoud(content) en services op standaard Web origin servers staan, die dan geïntegreerd kunnen worden via gekende technologieën (bijvoorbeeld CGI). Alle inhoud is gelokaliseerd gebruik makend van de WWW standaard, wat dus betekent dat via URL's wordt gewerkt.

Bovendien is het zo dat WAE sommige van de WWW standaarden verbetert voor wat betreft de karakteristieken van het netwerk en van de toestellen. WAE voegt extensies toe die ondersteuning biedt voor Mobile Netwerk Services, zoals Call Control en Messaging. Daarbij wordt speciale aandacht geschonken aan de beperkingen wat betreft het geheugen en de verwerkingssnelheid van de CPU, waarmee we in mobiele terminals zeker rekening moeten houden. Ook is in de architectuur ondersteuning voorzien voor netwerken met lage bandbreedte en hoge latentie.

WAE vereist wel de aanwezigheid van gateway functionaliteit die instaat voor het coderen en decoderen van de data die van en naar de mobiele client wordt getransfereerd De reden waarom men de data, die bij de client wordt geleverd, gaat coderen is tweevoudig. Vooreerst beperkt men zo de omvang van de data die door de ether naar de client moet worden verstuurd, en bovendien minimaliseert men dan ook de energie die vereist is bij de client om de data te verwerken. De gateway functionaliteit kan toegevoegd worden aan de origin servers, of zoals in figuur 10 wordt getoond, geplaatst worden in dedicated gateways.

Figuur 10: het WAE logische model

De belangrijkste elementen van het WAE model zijn:

Speciale client-side software (die ingebouwd zit in het toestel) voorziet specifieke functionaliteit voor de eindgebruiker, zoals het tonen van inhoud. User agents (zoals browsers) zitten geïntegreerd in de WAP architectuur. Ze interpreteren netwerkinhoud waarnaar gerefereerd wordt via een URL. WAE omvat user agents voor de twee primaire standaardconcepten: gecodeerde Wireless Markup Language (WML) en gecompileerde Wireless Markup Language Script (WMLScript).

Toepassingen of diensten op origin servers (zoals CGI scripts) produceren standaard inhoudsformaten als antwoord op een verzoek van een user agent in de mobiele terminal. WAE specifieert geen standaard generator, maar verwacht dat er een groot aanbod zal zijn die zullen draaien op typische HTTP origin servers die algemeen in gebruik zijn in het WWW.

Een geheel van goedomschreven inhoudscodering laat de WAE user agents toe om op eenvoudige wijze Web inhoud te doorzoeken. Dit betekent gecompresseerde codering voor WML, bytecode codering voor WMLScript, standaard image formaten en kalender data formaten.

Dit is een collectie van specifieke uitbreidingen op het vlak van de telefonie voor Call en Control mechanismen die auteurs (en dus ook de eindgebruikers) geavanceerde Mobile Network Services garanderen.

De uiteindelijke WAE architectuur past dan ook in een model dat volgende voordelen biedt:

Meestal is het zo dat een user agent in de terminal (bijvoorbeeld het GSM-toestel) een verzoek initieert met de vraag naar welbepaalde inhoud (data of content). Toch is het niet zo dat alle data die aankomt in de terminal het resultaat is van een verzoek vanwege die terminal. Het is bijvoorbeeld zo dat WTA ook mechanismen bevat die toelaten dat origin servers data leveren aan de terminal zonder dat daar een verzoek aan is voorafgegaan. We spreken dan van het push-based model, dat in onderstaande afbeelding wordt weergegeven (figuur 11).

Figuur 11: het WAP push-based model

In sommige gevallen is datgene wat de origin server aflevert aan het toestel afhankelijk van de karakteristieken van dat toestel. De kenmerken van de user agent worden naar de server gecommuniceerd via standaard 'capability negociation' mechanismen (die gaan na wat mogelijk is) die toelaten dat applicaties op de origin server kunnen determineren wat de karakteristieken van de mobiele terminal zijn. WAE definieert dan ook een set van user agent mogelijkheden ('capabilities') die kunnen uitgewisseld worden tussen server en terminal, gebruik makend van het WSP protocol. De mogelijkheden omvatten karakteristieken als:

Men kan op die manier dus steeds nagaan, daar de karakteristieke elementen van de mobiele terminal meegedeeld worden aan de origin server via 'capabilities negotiation', of bepaalde inhoud al dan niet geschikt is voor verwerking op de mobiele terminal.

 

3.3 URL benaming

WAE is gebaseerd op de architectuur die wordt gebruikt voor WWW proxy servers. Dan moet een user agent een verbinding maken via een proxy server om een origin server te bereiken (dat is de server die de gewenste inhoud bevat). Dit komt natuurlijk zeer sterk overeen met het geval waarin een draadloos toestel een server kan bereiken via een gateway.

De gateway heeft twee belangrijke functies: protocol conversie en inhoudsconversie.

Protocolconversie:

De meeste verbindingen tussen de browser en de gateway gebruiken WSP, ongeacht het protocol van de eind- of doelserver (de bestemming dus). De URL, die dus nodig is om het gewenste document te onderscheiden, specificeert altijd het protocol dat door de bestemming-server wordt gebruikt, ongeacht het protocol dat door de browser wordt gebruikt om met de gateway een verbinding te maken. Met andere woorden is het dus zo dat de URL enkel verwijst naar het protocol van de bestemming-server en niet naar de protocollen die mogelijk nodig waren voor tussentijdse verbindingen.

Inhoudsconversie:

Naast protocolconversie (het omzetten/vertalen van verzoeken in WSP naar andere protocollen en het antwoord terug omzetten in WSP), heeft de gateway dus nog een andere functie: inhoudsconversie. Deze is analoog met HTML/HTTP proxy's die beschikbaar zijn op het Web. Bijvoorbeeld, wanneer een HTTP proxy een FTP of Gopher directory-list ontvangt, converteert de proxy de lijst in een HTML document dat dus de gegevens voorstelt in een formaat dat geschikt is voor de browser. Deze conversie is dus analoog met de codering van inhoud voor wat betreft de WAE user agents in mobiele toestellen.

Momenteel is er slechts een schema dat verondersteld wordt ondersteuning te genieten bij de WAE user agents, en dat is HTTP. De browser zal in dit geval met de gateway communiceren via WSP. De gateway daarentegen voorziet dan functies voor protocolconversie om dan met een HTTP origin server te verbinden.

Bijvoorbeeld, veronderstel een gebruiker met een toestel dat WAP services ondersteund. Deze zendt een verzoek om inhoud en gebruikt hiervoor een specifieke URL. De browser in de telefoon maakt dan een verbinding, via WSP met de gateway (wordt door de operator gecontroleerd) en zendt een GET verzoek (GET request) met die URL. De gateway zal dan het adres van de host (gespecifieerd in de URL) omzetten en een HTTP sessie opzetten het die host. De gateway voert dan het verzoek uit voor de inhoud (content) die gespecificeerd werd door middel van de URL. De HTTP server (waarmee een verbinding werd gemaakt door de gateway) verwerkt dit verzoek en zendt een antwoord terug. De gateway ontvangt de gegevens, codeert ze en geeft ze dan opnieuw door aan de browser in de mobiele terminal.

 

3.4 Componenten van de WAE

Zoals weergegeven wordt in onderstaande figuur (figuur 12) is de Wireless Application Environment (WAE) opgedeeld in twee logische lagen:

WAE maakt een onderscheid tussen de diensten en de user agents, en gaat uit van een omgeving met meerdere gebruikers. Het is echter niet zo dat deze logische benadering een bepaalde implementatie vooropstelt. Bijvoorbeeld kunnen WAE implementaties kiezen om alle diensten te combineren in één user agent. Anderen daarentegen kunnen opteren om de diensten te verdelen over verschillende user agents. De resulterende structuur van de WAE implementatie wordt bepaald door de ontwerpbesluiten van de ontwerpers, en worden best getoetst door de specifieke beperkingen en de objectieven van de doelomgeving.

Figuur 12: de componenten van de WAE client

In wat volgt in dit hoofdstuk worden de twee elementen van de WAE (de user agents en de services/formaten) verder besproken.

 

3.4.1 WAE User Agents

De WML user agent is een fundamentele user agent van de WAE. WAE is echter niet beperkt tot de WML user agent, maar laat ook de integratie toe van user agent (van een specifiek domein) met verschillende architecturen en omgevingen toe. Zo is er bijvoorbeeld een Wireless Telephony Application (WTA) user agent gespecificeerd als uitbreiding op de WAE specificatie voor de mobiele telefonie omgeving. De WTA uitbreiding laat ontwikkelaars toe om toegang te krijgen tot en te interageren met de mobiele telefoons, maar ook met andere toepassingen die verondersteld worden aanwezig te zijn in de GSM's, zoals het telefoonboek en kalendertoepassingen. Wat verder wordt een overzicht gegeven van de WTA architectuur (zie WTA architectuur overzicht)

Formeel specificeert de WAE geen enkele user agent. De mogelijkheden van een user agents worden volledig overgelaten aan de ontwikkelaars. In plaats daarvan definieert de WAE enkel de fundamentele diensten en formaten die nodig zijn om ervoor te zorgen dat de samenwerking met andere implementaties behouden blijft.

 

3.4.2 WAE diensten en formaten

De WAE diensten en formaten laag (Services/Formats) omvat het (the bulk) van de technische bijdrage van de WAE inspanning. Hieronder volgt een overzicht van de belangrijkste componenten van de WAE met inbegrip van de Wireless Markup Language (WML), de Wireless Markup Scripting Language (WMLScript), WAE applicaties en inhoudsformaten die door de WAE ondersteund worden.

 

3.4.2.1 Wireless Markup Language (WML)

WML is een taal voor de opmaak van documenten die gebaseerd is op het principe van de tags. Men kan WML zien als een toepassing van een gegeneraliseerde mark-up language. WML deelt een erfenis met Hypertext Markup Language (HTML 4) en Handheld Device Markup Language (HDML 2). WML is gespecificeerd als een XML document. Het werd geoptimaliseerd wat betreft de voorstelling en de interactie met de gebruikers voor toestellen met beperkte mogelijkheden zoals telefoons (GSM) en andere mobiele terminals.

WML en de WML-ondersteunende omgeving werden ontworpen met de verschillende beperkingen van de kleine toestellen met lage bandbreedte voor ogen, met name kleine schermen (displays), zeer beperkte invoermogelijkheden voor de gebruiker, netwerkconnecties met lage bandbreedte, beperkt geheugen en beperkte reken van de processor. Gezien het brede gamma aan terminals die beoogd worden door het WAP, is heel wat inspanning gekropen in de juiste (en eerlijke)verdeling van de verantwoordelijkheid wat betreft de voorstelling van gegevens, tussen de ontwikkelaars (auteur) en de browser implementatie.

 

WML is gebaseerd op basis van een subset van HDML 2.WML verandert sommige van de elementen die ze van HDML 2 overgenomen had en introduceert tevens nieuwe elementen, waarvan sommigen gebaseerd zijn op gelijkaardige elementen in HTML. De hieruit resulterende WML werkt volgens het principe van cards en decks. De taal bevat constructors die de toepassing toelaten om documenten te specificeren die opgebouwd zijn uit verschillende cards. Een interactie met de gebruiker wordt beschreven in een set van cards, die dan samen gegroepeerd kunnen worden in een document, wat dan een deck wordt genoemd. Logischerwijze navigeert de gebruiker dan via een set van WML cards. De gebruiker navigeert naar een bepaalde card, bekijkt de inhoud, kan gevraagde informatie invoeren of keuzes maken, en gaat dan verder naar de volgende card. Instructies die in deze cards ingebed zijn kunnen dan diensten op de origin servers inroepen indien nodig voor een bepaalde interactie. Decks worden tevens van de origin server gehaald als ze gebruikt moeten worden. WML decks kunnen op statische wijze in een bestand op een origin server opgeslagen worden, of dynamisch gegenereerd worden door een content generator die op een origin server draait. Elke card in een deck bevat de specificatie voor een bepaalde interactie met de gebruiker.

WML is gespecificeerd op een manier die het weergeven van inhoud (content) op een breed gamma van toestellen mogelijk maakt (= universeel), maar toch ervoor zorgt dat verkopers hun eigen MMI (Man-Machine Interface) kunnen integreren (= specifiek). Als voorbeeld kunnen we stellen dat WML niet specificeert hoe de implementaties invoer van een gebruiker vragen, maar in de plaats daarvan gaat WML wel op een abstracte omschrijven wat de bedoeling is. Geen implementatiespecifieke beschrijvingen dus, wel algemene principes die bij elkeen op verschillende wijze kunnen geïmplementeerd worden. Dit laat dus toe dat WML op heel wat toestellen kan worden gebruikt. Eén bepaalde implementatie kan opteren om de invoer van de gebruiker visueel te laten gebeuren (zoals vele WWW user agents), of kan daarentegen gebruik maken van een interface gebaseerd op de stem. De user agent moet beslissen hoe op de beste manier alle elementen in een card kunnen gepresenteerd worden, rekening houdend met de mogelijkheden van het toestel. Zo kan het bijvoorbeeld voorkomen dat bij toestellen met een groot display alle informatie in één card wordt opgeslaan, terwijl men misschien bij toestellen met een kleiner scherm opteert om de inhoud te verdelen over verschillende cards (en dus verschillende schermpjes).

WAE heeft een hele reeks van karakteristieken, waaronder:

WML voorziet de ontwikkelaars van mogelijkheden om tekst en figuren te presenteren aan de gebruiker. Dit omvat zowel layout als presentatie hints. Net zoals bij andere mark-up talen is het zo dat WML van de auteur eist dat deze de weergave in zeer algemene vorm specificeert, en ook aan de user agent heel wat vrijheid biedt wat betreft het bepalen hoe informatie wordt getoond aan de eindgebruiker. WML biedt een set van tekst mark-up elementen waaronder verschillende elementen om tekst te benadrukken (vet, schuin, groot enz.), modellen om regels te splitsen (zoals line wrapping) en tab kolommen.

WML beschikt over verschillende elementen om de gebruiker om invoer te verzoeken. Deze elementen kunnen dus gecombineerd worden in één of meer cards. Zoals reeds vermeld worden alle verzoeken voor gebruikersinvoer in abstracte termen gedefinieerd, zodat aan de user agents de mogelijkheid wordt geboden om de opties voor een bepaald toestel te optimaliseren. WML voorziet wel een kleine set van invoercontrols. Zo voorziet WML een tekstinvoer control (text entry control) die tekst- en paswoordinvoer ondersteunt. De tekstinvoervelden kunnen begrensd worden om te verhinderen dat de gebruiker verkeerde karakters intypt. WML voorziet ook client-side validatie door de auteur toe te laten scripts in te roepen op gewenste tijdstippen om de invoer van de gebruiker te controleren. Daarnaast beschikt WML ook over een option selection control en een task invocation control. Via de option selection control kan aan de gebruiker een lijst van opties worden aangeboden, die data kunnen bevatten, navigatie tussen de cards kunnen verzorgen of scripts kunnen aanroepen. Wanneer de task invocation controls worden geactiveerd, vervullen deze een navigatie of geschiedenis management taak (history management). De user agent staat vrij in de keuze hoe deze controls gepresenteerd worden. Het kan bijvoorbeeld dat deze fysisch worden weergegeven via knoppen op het toestel zelf, via knoppen in een bepaalde schermregio of door hen te verbinden met bepaalde stemcommando's.

WML laat verschillende navigatiemechanismen toe die wel gebruik moeten maken van URL's. Het biedt ook een fantastisch geschiedenismechanisme. De navigatie omvat hyperlinks (zoals in HTML-stijl), inter-card navigatie-elementen, en dus ook elementen voor geschiedenisnavigatie.

De gebruikte tekenset in een WML document is de Unicode. Dit laat dus toe dat de meeste talen en dialecten kunnen worden gebruikt.

De abstracte specificatie in WML (zoals hierboven vermeld) van layout en presentatie van de gegevens laat de verkopers/ontwikkelaars van terminals en toestellen toe om het ontwerp van de MMI te controlleren voor hun specifiek product.

WML omvat een waaier van technologieën om de communicatie voor een toestel met lage bandbreedte te optimaliseren. Dit omvat de mogelijkheid om meerdere interacties met de gebruiker (cards) in één netwerk transfer te specificeren (een deck).

 

3.4.2.2 WMLScript

WMLScript is een beperkte procedurele scripttaal. Het verbetert de standaard browser- en presentatiemogelijkheden van WML, voegt intelligentie toe voor de client, voorziet een mechanisme om op eenvoudige wijze het toestel en eventuele randapparaten te adresseren, en vermindert de nood aan communicaties met de origin server.

WMLScript is ruwweg gebaseerd op een subset van de JavaScript taal. Het is een uitgebreide subset van de JavaScripttaal, en vormt een standaard methode om procedurele logica toe te voegen aan WML decks. WMLScript verfijnt JavaScript voor toestellen met lage bandbreedte en integreert het met WML.

WMLScript voorziet de programmeur met verschillende interessante mogelijkheden:

De belangrijkste kenmerken van WMLScript zijn dan ook:

WMLScript start met deze taal en zorgt voor een aanpassing aan de lage bandbreedte van de toestellen.

WMLScript voegt de procedurele logica toe aan de WAE.

WMLScript kan ingeroepen worden als antwoord op bepaalde events van de gebruiker of van de omgeving.

WMLScript kan gecompileerd worden is een bytecode die kleiner is in omvang en dus efficiënter is wat betreft het transport naar de client.

WMLScript is volledig geïntegreerd in de WML browser. Dit laat toe dat de ontwikkelaar zijn diensten kan ontwikkelen gebruik makend van beide technologieën (WML en WMLScript). WMLScript heeft toegang tot het WML model en kan WML variabelen lezen en schrijven. Dit laat heel wat extra functionaliteit toe, zoals de validatie van user input die in een WML card werd verzameld.

De WMLScript tekenset is Unicode. Dit laat dus het weergeven van de meeste talen en dialecten toe.

WMLScript kan gebruikt worden om de functionaliteit van het toestel uit te breiden zonder wijzigen aan de software van het toestel.

Het was dan ook een belangrijk objectief in het ontwerp van de WMLScripttaal dat zo dicht mogelijk aangeleund werd aan de JavaScripttaal. Het is meerbepaald zo dat WMLScript gebaseerd is op de ECMA-262 standaard "ECMAScript Language Specification". WMLScript is echter niet volledig compatibel met ECMAScript, maar werd enkel gebruikt als basis om de WMLScripttaal te definiëren. Het resultaat is een zwak getypeerde taal. Daarmee wordt bedoeld dat variabelen niet formeel getypeerd worden in de taal, omdat ze doorheen hun levenscyclus van type kunnen veranderen, afhankelijk van de data die ze bevatten. Volgende datatypes worden ondersteund: boolean, integer, floating-point, string en invalid. WMLScript poogt ook om te zorgen voor automatische conversie tussen de verschillende types wanneer dit nodig is. Daarbij komt ook dat de ondersteuning voor floating-point datatypes kan variëren afhankelijk van de mogelijkheden van het toestel.

WMLScript ondersteund verschillende categorieën van operaties, zoals de toewijzingsoperaties, de rekenkundige en logische operaties en de vergelijkingsoperaties. Ook worden verschillende groepen categorieën van functies ondersteund, met inbegrip van de Local Script functions (functies gedefinieerd binnen hetzelfde script waarin de aanroepende expressie zich bevindt), External Script Functions (functies die gedefinieerd zijn in een ander script dat dus de aanroepende uitdrukking niet bevat) en Standard Library Functions (functies die gedefinieerd zijn in een bibliotheek die deel uitmaakt van de WAE specificatie). Zo zijn er een aantal standaard bibliotheken gedefinieerd zoals een language library, een string library, een browser library, een floating-point library en een dialog library.

 

3.4.2.3 URL’s

WAE gaat uit van een rijke set van URL diensten die de user agents kunnen gebruiken. Meerbepaald is het zo dat WAE zeer afhankelijk is van het gebruik van URL’s bij HTTP en HTML URL. In sommige gevallen is het zo dat de WAE componenten het gebruik van URL’s gaan uitbreiden, zoals in WML, waar fragmenten van URL’s uitgebreid zijn om het linken naar welbepaalde WMLScript functies toe te laten.

 

 

3.4.2.4 WAE Content Formats (de inhoudsformaten)

WAE omvat een set van inhoudsformaten die het uitwisselen van data eenvoudiger maken. De manier waarop data uitgewisseld wordt, hangt af van twee zaken: het soort data en de "target" WAE user agent. De twee belangrijkste formaten die in WAE gedefinieerd werden, zijn het gecodeerde WML formaat, en de WMLScript bytecode formaten. WAE definieert WML en WMLScript formaten die de communicatie van WML en WMLScript efficiënter maken, en de vereiste inspanning (wat betreft bijvoorbeeld kracht van de processor) van de client minimaliseren.

Naast deze twee basisformaten zijn er ook nog een aantal andere formaten die in de WAE gedefinieerd worden: images, multipart messages en user agent-specific formats (zoals electronic business cards (vCard 2.1) en electronic calendering and scheduling exchange format (vCalendar 1.0). Daarenboven zijn er ook nog speciale formaten voor de Wireless Telephony Application, die in paragraaf 3.8 kort toegelicht worden.

 

3.5 WML en WMLScript uitwisseling

In onderstaande voorstelling (figuur 13) worden de verschillende delen van de logische architectuur van een WML user agent voorgesteld.

Figuur 13: De logische architectuur van de WML user agent.

De origin servers stellen dus applicaties en services ter beschikking voor de eindgebruiker. De interactie tussen de eindgebruiker (client) en de origin server gebeurt via standaard WML decks en scripts. De services kunnen steunen op scripts die statisch worden opgeslaan in de origin server, of op inhoud die dynamische wordt gegenereerd door een applicatie op de origin server.

Verschillende stappen moeten doorlopen worden wanneer origin servers en WML user agents WML en WMLScript uitwisselen. Onderstaande tekst geeft een volledige beschrijving van de nodige stappen. Vooreerst moet de gebruiker die een bepaalde service van de origin server wenst te raadplegen, een verzoek sturen naar de origin server door gebruik te maken van een WML user agent. De user agent vraagt dan de service aan de origin server, gebruik makend van een URL operatie (zoals bijvoorbeeld een HTTP GET request methode).

De origin server die belast is met het afhandelen van dit verzoek van de gebruiker, beantwoordt dit verzoek door het terugsturen van één enkel deck. In eerste fase is dit een volledig tekstueel deck. Op hun weg terug naar de client worden deze decks verondersteld te passeren door een gateway waar ze omgezet worden in formaten die beter geschikt zijn voor transmissie doorheen de ether en die ook beter aangepast zijn aan de beperkingen van de draagbare terminals. In principe is het zo dat wanneer de gateway het deck ontvangt, de gateway dan ook instaat voor alle noodzakelijke conversies tussen het tekstueel en het binair formaat. Een WML Encoder in de gateway converteert elk WML deck in diens binaire vorm. De gecodeerde inhoud (in binaire vorm dus) wordt dan naar de client gestuurd om geïnterpreteerd en getoond te worden. Ook kan optioneel bijkomende optimalisatie uitgevoerd worden in de gateway gebaseerd op de onderhandelde mogelijkheden met de client (zie ‘capabilities negotiation’).

Wanneer de client het deck heeft ontvangen, kan de deze dan nog bijkomende verzoeken doen (via het URL schema) om WMLScript wanneer de user agent referenties naar deze scripts tegenkomt in het WML deck. Ook hier speelt de gateway bij het beantwoorden van het verzoek een essentiële rol. Op de terugweg (dus van de origin server, die het verzoek heeft verwerkt, naar de client) zal een WMLScript Compiler het doorgestuurde script omzetten in bytecode die speciaal is ontwikkeld voor de lage bandbreedte waar de mobiele terminals mee werken. Deze gecompileerde bytecode wordt dan naar de client gestuurd voor interpretatie en uitvoering.

Belangrijk is wel dat de aanwezigheid van een niet verplicht is (zie figuur 13). Het is zelfs zo dat de plaats waar de feitelijke codering en compilatie doorgaat, van geen enkel belang is voor de WAE. Het is dan ook zeer goed mogelijk dat sommige origin servers ingebouwde WML Encoders en WMLScript Compilers hebben. Een andere mogelijkheid is dat men bepaalde WML code en gecompileerde WMLScripts statisch opslaat (caching). Zo wordt het real-time converteren van decks overbodig.

Figuur 14: de logische architectuur van de WML user agent (zonder gateway).

 

3.6 Internationalisatie

De WAE architectuur werd ontwikkeld om mobiele terminals en netwerkapplicaties te ondersteuning die gebruik maken van een hele hoop talen en tekensets. Dit werk wordt algemeen beschreven als internationalisatie (waarnaar gerefereerd wordt als I18N). Het is dan ook een doelstelling van de WAE om volledig globaal te zijn, en wil daarom elke taal ondersteunen.

WAE heeft een beduidend deel van zijn I18N architectuur gebaseerd op het WWW, en meerbepaald op SGML en HTTP technologiën. Bijvoorbeeld, het is algemeen aanvaard dat de HTTP header gebruikt worden om de gebruikte karakterset en taal aan te geven, die dan benut worden om welke inhoud dan ook aan de user agent af te leveren. Ook hier wordt dit principe toegepast.

De WAE architectuur maakt volgende veronderstellingen met betrekking tot I18N:

Het IANA register van karaktersets en talen werd gebruikt om de codeer- en taalkarakteristieken te definiëren. Inhoud die via een user agent opzoekt en toegestuurd krijgt via het WSP zal bepaald worden door twee attributen: ten eerste de karakterset (dit is de codering van de inhoud) en ten tweede de taal (de standaardtaal voor het document). Deze attributen worden in de WSP/HTTP content-type en content-language headers opgeslaan.

Zoals reeds gezegd heeft de WAE de Unicode 2.0 aangenomen als basis voor alle karakterdata. Unicode bevat de meerderheid van de symbolen en letters die in de menselijke talen aanwezig zijn, en wordt wereldwijd ondersteund in de Internetgemeenschap.

De meeste componenten van de WAE garanderen dan ook specifieke ondersteuning voor I18N:

 

3.7 Security en Access Control

WAE roept WTLS (Wireless Transport Layer Security) in wanneer services authentificatie of beveiligde overdrachten vereisen. Daar komt bij dat WML en WMLScript access control constructies voorzien waarmee aan de client eventuele URL access restricties worden meegedeeld Deze constructies kunnen aan de auteurs van WML decks en WMLScripts de mogelijkheid bieden om hun code publiek te maken (men kan er gewoon verwijzen naar het deck of script vanuit een andere plaats) of hij/zij kan ook de toegang beperken door gebruik te maken van een set van "trusted" decks of scripts.

 

3.8 De Wireless Telephony Application (WTA) Architectuur

WTA is een collectie van specifieke toevoegingen op het vlak van Call en Control mechanismes voor de mobiele terminals die geavanceerde Mobile Network Services toegankelijk maken voor de ontwikkelaars en eindgebruikers. WTA brengt de mogelijkheden en services van data netwerken samen met deze van voice netwerken. Het introduceert mechanismes die veilige toegang belangrijke functies in de mobiele toestellen mogelijk maken (zoals toegang tot het telefoonboek). Het WTA raamwerk laat de real-time verwerking van events toe, terwijl de gebruiker aan het browsen is. Binnen dit raamwerk is het zo dat de client en de server samen de set van regels voor het verwerken van events coördineren via een een event tabel. WTA origin servers kunnen de regels die door de client gebruikt worden, aanpassen door de event tabel van de client aan te passen (pushen) wanneer dit nodig is.

De WTA heeft vier belangrijke doelstellingen:

Het leeuwendeel van de functionaliteit van de WTA is gereserveerd voor de netwerkoperatoren. Toch is er een beperkte set van basis WTA functies die beschikbaar zijn voor de WTA ontwikkelaars, zoals het initiëren van telefoongesprekken.

 

3.8.1 De componenten van het WTA raamwerk

De subparagrafen die hieronder staan, bespreken de kernelementen van het WTA raamwerk.

 

3.8.1.1. WTA bibliotheken

WTA stelt zijn diensten ter beschikking aan ontwikkelaars door middel van een set van bibliotheken en interfaces. De functionaliteit van de WTA wordt opgedeeld in verschillende bibliotheken afhankelijk van het toepassingsgebied. WTA definieert drie klassen van WTA diensten:

WTA services die beschikbaar zijn onafhankelijk van het type netwerk. Ze zijn dus gemeenschappelijk in alle netwerken (zoals het beantwoorden van een inkomende oproep). De toegang tot deze services kan enkel beperkt worden door de inhoud die in een WTA user agent wordt uitgevoerd of verwerkt.

Dit zijn services die een bepaald type netwerk beogen. Deze kunnen dan ook beschouwd worden als uitbreidingen op de vorige klasse, die gebruik maken van de specifieke mogelijkheden van een bepaald netwerk. Opniew is de enige beperking hier die beperking gevormd door de inhoud die verwerkt wordt in een WTA user agent.

Hier gaat het om services die beschikbaar zijn voor iedereen. Er zijn geen beperkingen voor deze services, en het staat elke user agent dan ook vrij om deze services te adresseren.

Het classificeren en onderscheiden van services laat een betrouwbare uitvoering van inhoud toe. Het trekt een duidelijke streep (en stelt zo een limiet) wat betreft de functies die ter beschikking staan van de ontwikkelaar.De toegang tot de WTA services kan rechtstreeks gebeuren vanuit ofwel de WML Language (gebruik makend van het WTAI-URL schema), ofwel vanuit de WMLscript functies door de WTAI Library functies aan te roepen.

 

3.8.1.2 WTA URL schema

WTA introduceert een URL schema dat ontwikkelaars toelaat om de library services in te roepen. Deze services kunnen eigen zijn aan het toestel, of gedelegeerd worden via een server. Dankzij dit schema kunnen ontwikkelaars data doorgeven aan een service, en andere data terug ontvangen van deze services, zonder dat de browser context moet verlaten worden.

 

3.8.1.3 WTA Event Handling

Het WTA raamwerk voorziet ook een hele hoop middelen voor ontwikkelaars wat betreft het omgaan met telefonie-events in real-time en pseudo-real-time. Fundamenteel is het zo dat zo’n events naar de WTA agent kunnen gestuurd worden samen met vereiste en specifieke event-parameters en inhoud. Dit laat de netwerkoperator toe om decks te ontwerpen die Call Control en Network Event Handling functionaliteit bieden. Clients kunnen dan een eventtabel bijhouden die beschrijft hoe een user agent met bepaalde inkomende events moet omgaan. Deze eventtabel wordt opgesteld in samenwerking met een WTA origin server die door de netwerkoperator wordt gecontroleerd.

Voor het merendeel is het zo dat inhoud die wordt meegestuurd met een event (of de content die reeds bij de client aanwezig is) volstaat om de meeste events af te handelen. Toch verhindert het raamwerk niet dat er geavanceerde scenario’s mogelijkzijn waarbij toch extra content moet gehaald worden van een origin server, op vraag van de eindgebruiker. Hoe een netwerkoperator bepaalde events wil afhandelen, wordt bepaald door het type van event, de betrouwbaarheidsvereisten en de gewenste kwaliteit.

 

3.8.1.4 WTA Network Security

De operator wordt verondersteld controle te hebben op de inhoud die door anonieme of externe ontwikkelaars ter beschikking worden gesteld in zowel het mobiele netwerk als bij de client. De integriteit van het mobiele netwerk en de client worden afgedwongen door een beperkte WTA content delivery. Meerbepaald is het zo dat bepaalde WTA services enkel uitgevoerd worden wanneer ze afgeleverd worden aan een WTA user agent via een dedicated WTA poort gebruik makend van het WTLS protocol. Dit laat netwerkoperatoren toe om de standaard beveiligings-elementen voor het netwerk te gebruiken om hun netwerk te beschermen. Bijvoorbeeld is het zo dat origin servers die inhoud afleveren, geïdentificeerd kunnen worden (door de operator) als ofwel "trusted" WTA content servers die onder de controle staan van de operator van het toestel (mobiele terminal) ofwel als "untrusted" third party content servers, die dus in feite elke publieke origin server op het Internet kunnen zijn. Netwerkoperatoren kunnen in dit laatste geval standaard firewall technologieën gebruiken om de toegang tot mobiele poorten te regelen. Deze poorttoegang kan dan gebruikt worden om de geloofwaardigheid van de inhoud te determineren, die dan op zijn beurt bepaald tot welke priveleges van de WTA services er toegang is, zowel in het netwerk als bij de client.

 

 

 

 

 

3.8.2 Specifieke uitwisselingen voor de telefonie

WTA user agents, die door de WAE gedefinieerd worden als specifieke telefonie-uitbreidingen, gebruiken gelijkaardige constructies zoals een WML user agent. Hier is het echter zo dat de WTA user agents steunen op bijkomende en uitgebreide interacties die nodig zijn om zinvolle services te leveren.

De elementen van het logisch WTA netwerk, dat voorgesteld is in onderstaande figuur (figuur 15 ) zijn:

Figure 15: WTA logische architectuur.

De WTA user agent is verbonden met het mobiele netwerk via signaalconnecties. De WTA server (een origin server) communiceert met de client gebruik makend van de WAP protocol stack. De WTA server kan verbonden zijn met het mobiele netwerk en is verantwoordelijk voor het versturen van de content naar de clients. In het geval van call handling bijvoorbeeld, is het zo dat het mobiele netwerk de oproep (call) opzet naar de client, de server levert de event-handling content, en de user agent roept de event-handler content in, en zorgt voor de voorstelling van de call handling service aan de gebruiker.

De WTA user agent interpreteert dus inhoud, maar is hierin veel ruimer dan een typische WML user agent. De WTA user agent ondersteunt uitgebreide bibliotheken en voert WML decks en WMLScripts uit net zoals een WML user agent. Maar, in tegenstelling tot een typische WML user agent, bevat de WTA user agent ook een real-time context management component. Bijvoorbeeld, de user agent laat gedateerde events vallen, plaats tussentijdse resultaten niet in de history stack, en beïndigd wanneer een event is afgehandeld

 

3.8.2.1 WTA Origin Servers

De WTA Origin Server wordt verondersteld onder toezicht te staan van de netwerkoperator en wordt daarom beschouwd als een "trusted content server". De server van de operator moet de Mobile Network Switch controleren. Het succes van WTA content (zoals het afhandeling van Call Control) is in zekere zin, afhankelijk van de mogelijkheid van de operator om de mogelijkheden en de voordelen van het mobiele netwerk toegankelijk te maken en te controleren.

De operator heeft informatie met betrekking tot de capaciteit en de betrouwbaarheid voor de verschillende dragers (bearers) in het mobiele netwerk. Vermits de operator in staat is om WTA services aan te bieden zonder te steunen op het Internet, kan de operator meer controle uitoefenen op het gedrag van de services dan een externe service provider, en beter hun diensten optimaliseren om goede real-time karakteristieken te bereiken.

 

3.8.2.2 Externe (third party) Origin Servers

Inhoud (data of content) van externe providers kan niet overweg met een uitgebreide set van WTA functies. Het ontwikkelen van geavanceerde WTA applicaties vereist in de meeste gevallen grondige kennis van het mobiele netwerk. Als gevolg van de beperkingen die gesteld worden door de operator (voor wat betreft welke externe toegang verleend wordt tot het mobiele netwerk, de mogelijkheden ervan en de WTA services), is het zo dat de meeste externe content providers beperkt zijn tot het afhandelen van WAE content gebruik makend van standaard WML user agents.

 

3.8.2.3 Mobiel Netwerk

De netwerkoperator controleert het mobiele netwerk. Het mobiel netwerk zorgt voor de afhandeling van het switchen en het opzetten van oproepen naar de mobiele terminals. Het mobiele netwerk zorgt voor een verbinding met de client gebruik makend van in-band of out-band signaalconnecties. Alhoewel het netwerk bij het sturen van boodschappen naar de client gebruik maakt van systeemspecifieke signalen, is het zo dat deze signalen omgezet worden in meer algemene en abstracte WTA netwerkevents.

 

 

 

 

 

Hoofdstuk 1: Wireless Application Protocol (WAP): doelstellingen en ontwikkeling *

1.1 Ontstaan *

1.2 Scope *

1.3 Verantwoording *

1.4 Uitdagingen *

1.5 Toekomstige aandachtspunten *

1.6 Logo *

Hoofdstuk 2: WAP Architectuur *

2.1 Het World Wide Web Model *

2.2 Het WAP Model *

2.3 WAP netwerk: een voorbeeld. *

2.4 Wat met de veiligheid? *

2.5 Componenten van de WAP architectuur *

2.5.1 Wireless Application Environment (WAE) *

2.5.2 Wireless Session Protocol (WSP) *

2.5.3 Wireless Transaction Protocol (WTP) *

2.5.4 Wireless Transport Layer Security (WTLS) *

2.5.5 Wireless Datagram Protocol (WDP) *

2.5.6 Bearers *

2.5.7 Andere diensten en applicaties. *

2.5.8 Voorbeeldconfiguraties met WAP technologie *

Hoofdstuk 3: Wireless Application Environment (WAE) *

3.1 Het WWW Model *

3.2 Het Wireless Application Environment model (WAE) *

3.3 URL benaming *

3.4 Componenten van de WAE *

3.4.1 WAE User Agents *

3.4.2 WAE diensten en formaten *

3.4.2.1 Wireless Markup Language (WML) *

3.4.2.2 WMLScript *

3.4.2.3 URL’s *

3.4.2.4 WAE Content Formats (de inhoudsformaten) *

3.5 WML en WMLScript uitwisseling *

3.6 Internationalisatie *

3.7 Security en Access Control *

3.8 De Wireless Telephony Application (WTA) Architectuur *

3.8.1 De componenten van het WTA raamwerk *

3.8.1.1. WTA bibliotheken *

3.8.1.2 WTA URL schema *

3.8.1.3 WTA Event Handling *

3.8.1.4 WTA Network Security *

3.8.2 Specifieke uitwisselingen voor de telefonie *

3.8.2.1 WTA Origin Servers *

3.8.2.2 Externe (third party) Origin Servers *

3.8.2.3 Mobiel Netwerk *

 

Figuur 1: het Officiële WAP Forum Logo *

Figuur 2: Het eerste WAP GSM-toestel, de Nokia 7110 met ontwikkelomgeving *

Figuur 3: De Nokia 7110 *

Figuur 4: Word-Wide Web Programmeermodel *

Figuur 5: WAP Programmeermodel *

Figuur 6: Voorbeeld van een WAP netwerk *

Figuur 7: de WAP architectuur *

Figuur 8: voorbeelden van WAP stacks *

Figuur 9: het logische model van het WWW *

Figuur 10: het WAE logische model *

Figuur 11: het WAP push-based model *

Figuur 12: de componenten van de WAE client *

Figuur 13: De logische architectuur van de WML user agent. *

Figuur 14: de logische architectuur van de WML user agent (zonder gateway). *

Figure 15: WTA logische architectuur. *