WirelessBR

WirelessBr é um site brasileiro, independente, sem vínculos com empresas ou organizações, sem finalidade  comercial,  feito por voluntários, para divulgação de tecnologia em telecomunicações 

WAP – WIRELESS APPLICATION PROTOCOL  (1)

Autor: Givanildo Francisco da Silva Junior

Introdução   

A Telefonaktiebolaget LM Ericsson iniciou, em 1995, um ambicioso projeto que visava o desenvolvimento de um protocolo genérico para serviços que agregassem valor às redes móveis. Este novo protocolo foi denominado ITTP (Intelligent Terminal Transfer Protocol – Protocolo de Transferência para Terminal Inteligente) e gerenciava a comunicação entre o nó de serviço, onde a aplicação estava instalada, e um telefone móvel inteligente. 

A Unwired Planet, por sua vez, apresentou em julho de 1996, o HDML (Handheld Device Markup Language – Linguagem de Marcação para Dispositivo Portátil), semelhante ao HTML (HyperText Markup Language – Linguagem de Marcação para HiperTexto) usado na WWW (World Wide Web – Teia de Alcance Mundial), como uma linguagem de descrição de conteúdo e interface, porém otimizada para permitir o acesso à Internet a partir de dispositivos portáveis com pequenos displays e capacidade de entrada limitada. 

Em março de 1997, a Nokia apresentou oficialmente os conceitos de Serviço de Mensagem, uma tecnologia de serviço para acesso à Internet especialmente projetada para os dispositivos GSM (Global System for Mobile Communication – Sistema Global para Comunicação Móvel). A comunicação entre o usuário móvel e o servidor contendo informações da Internet usava o SMS (Smart Messaging Service – Serviço de Mensagem Inteligente) e uma linguagem de marcação chamada TTML (Tagged Text Markup Language – Linguagem de Marcação de Texto com Tags), que, assim como o HDML, foi otimizada para a comunicação sem fio. 

A Unwired Planet apresenta, em maio do mesmo ano, o HDTP (Handheld Device Transport Protocol – Protocolo de Transporte para Dispositivo Portátil), que era o equivalente sem fio para o HTTP (HyperText Transfer Protocol – Protocolo de Transferência de HiperTexto). 

Com esta multiplicidade de conceitos, havia um risco substancial de que o mercado ficasse fragmentado: um desfecho com que nenhuma das companhias envolvidas iria beneficiar-se. Assim sendo, as empresas concordaram em caminharem para uma solução conjunta.  

Em 26 de junho de 1997, a Ericsson, a Motorola, a Nokia e a Unwired Planet (hoje Phone.com) iniciaram a criação de um padrão para fazer dos serviços avançados dentro do mercado sem fio uma realidade. Este novo padrão foi chamado WAP (Wireless Application Procotol – Protocolo para Aplicação Sem Fio). Em dezembro do mesmo ano, o WAPForum foi oficialmente criado e a primeira versão das especificações do protocolo foi disponibilizada em abril de 1998.

 Em fevereiro de 1999, mais de 90 companhias eram membros do WAPForum, entre elas companhias de fabricação de terminais e infra-estrutura, companhias de software, operadoras e provedoras de serviços etc. Para se ter uma idéia de sua abrangência, os fabricantes de telefones que participam do WAPForum representam mais de 90% do mercado de telefonia.
 Diante deste cenário, somado o fato de que a literatura acadêmica sobre o assunto é escasso, é que a escolha do tema se justifica.

1.0 – Visão Geral 

É fato que os usuários tornam-se cada vez mais dependentes dos serviços oferecidos via Internet, mas para acessá-los se faz necessário que eles estejam conectados à rede através de um fio. Entretanto, milhões de usuários passam muito tempo em trânsito e o fato de necessitarem de um cabo para a conexão torna-se um empecilho.  

Nos últimos anos, as tentativas de acabar com esta barreira e transformar a Internet em uma plataforma de 
serviços sem fio não foram bem sucedidas, pois o leque de padrões era muito  extenso. O WAP surge como uma  promessa de ser um protocolo largamente aceito, com capacidade de reconhecer os serviços WWW, além de  oferecer serviços diversos como   telefônicos e mensagens eletrônicas.

1.1 – O Modelo WWW

Durante os últimos anos, a Internet tem oferecido uma grande variedade de serviços que atraem os usuários, principalmente, pelo fato destes serviços serem convenientemente acessíveis pelo navegador web.

Os provedores de serviço também se beneficiam com o paradigma WWW, uma vez que seus serviços podem ser fornecidos para qualquer parte do mundo independente de plataforma e de sua localização. Estes serviços são criados e armazenados em um servidor, o que significa que sua alteração é muito fácil.

 A arquitetura Internet provê um modelo de programação flexível e poderoso, onde aplicações e conteúdo são apresentados em formatos de dados padrões e são mostrados por aplicações conhecidas como web browsers ou navegadores web. O web browser é uma aplicação para rede, o que significa que ele envia requisições para objetos de dados nomeados para um servidor de rede e este responde com o dado codificado, usando os formatos padrões. Todo o processo é ilustrado na Figura 1, extraída de [WAPArch:1998].

 

Figura 1: Modelo de Programação Internet

 Os padrões WWW especificam a maioria dos mecanismos necessários para a construção de um ambiente de aplicação de propósito geral, incluindo:

             -  Servidor de Origem: servidor onde um dado recurso reside ou será criado. 

             -  Proxy: um programa intermediário que age tanto como cliente quanto como servidor. Este tipo de servidor reside entre os clientes e os servidores que não têm meios de comunicação direta.

             -  Gateway: um servidor que age como intermediário para algum outro servidor. Diferente do proxy, um gateway recebe as requisições como se ele fosse o servidor de origem para o recurso solicitado.

 Tal infra-estrutura permite aos usuários utilizarem facilmente aplicações e conteúdo de terceiros e permite também aos desenvolvedores criarem aplicações e conteúdo para um grande número de clientes.

1.2 – O Modelo WAP

 O modelo de programação WAP é similar ao modelo de programação WWW. Isto significa que ele provê vários benefícios para a comunidade desenvolvedora de aplicações, incluindo um modelo de programação familiar e a capacidade de reutilização das ferramentas atuais, como os servidores web. Entretanto, otimizações e extensões foram feitas de maneira que a característica do mundo web fosse ao encontro do ambiente sem fio. Sempre que possível, os padrões existentes foram plenamente adotados ou foram usados como ponto de partida para a tecnologia WAP.

O conteúdo e as aplicações WAP são especificados em um conjunto de formatos de conteúdo bastante conhecido baseado no modelo de formato de conteúdo WWW. O conteúdo é transportado usando um conjunto de protocolos padrões de comunicação baseados nos protocolos de comunicação WWW. Um microbrowser em terminais sem fio coordena a interface de maneira similar aos browsers padrões. Todo o processo é ilustrado na Figura 2, extraída de [WAPArch:1998].

 

 

Figura 2: Modelo de Programação WAP

 O WAP define um conjunto de componentes padrões que permitem a comunicação entre terminais móveis e servidores de rede, incluindo:

Os tipos de conteúdo e protocolos WAP foram otimizados para dispositivos de mão sem fio. O WAP utiliza a tecnologia de proxy para conectar um domínio sem fio à Internet. O proxy WAP é tipicamente comprometido com a seguinte funcionalidade: 

 A infra-estrutura assegura que os usuários de terminais móveis possam navegar por uma grande variedade de conteúdos e aplicações WAP . O proxy WAP permite que conteúdo e aplicações sejam hospedados em servidores WWW padrões e sejam desenvolvidos usando tecnologias WWW como, por exemplo, scripts CGI (Common Gateway Interface - Interface Comum de Gateway).

 

Figura 3: Exemplo de uma Rede WAP

 Na Figura 3, o cliente WAP se comunica com dois servidores da rede sem fio. O proxy WAP traduz as requisições WAP para as WWW, permitindo, assim, que o cliente WAP possa enviá-las para o servidor web. O proxy também codifica as respostas do servidor web em um formato binário compacto, que é entendido pelo cliente. Se o servidor web provê conteúdo WAP, o proxy o recupera diretamente do servidor, caso contrário um filtro é usado para traduzir o conteúdo WWW para o WAP. Por exemplo, este filtro traduziria todo conteúdo  HTML para o WML. Já o servidor WTA (Wireless Telephony Application – Aplicação para Telefonia Sem Fio) é um exemplo de servidor de origem ou gateway que responde às requisições do cliente diretamente. O servidor WTA é usado para prover acesso WAP às capacidades da infraestrutura de telecomunicações do provedor da rede sem fio.

1.3 – Modelo de Segurança

 O WAP disponibiliza uma infra-estrutura de segurança flexível que enfoca a provisão de segurança na conexão entre um cliente WAP e o servidor.
 O WAP pode prover segurança entre os pontos finais do protocolo WAP, mas tanto o navegador quanto o servidor de origem devem comunicar-se diretamente usando os protocolos WAP.
Os aspectos de estruturação de segurança e como o protocolo trata isto serão abordados no tópico 4.0, que traz a camada WTLS.

1.4 – Os Componentes da Arquitetura WAP

A arquitetura WAP provê um ambiente escalável e extensível para desenvolvimento de aplicações para dispositivos móveis de comunicação. Tal ambiente é alcançado por meio de uma estrutura em camadas de toda a pilha do protocolo, conforme a Figura 4. Cada camada da arquitetura é acessível pelas camadas abaixo, assim como por outros serviços e aplicações. A arquitetura em camadas do WAP possibilita outros serviços e aplicações que utilizam as capacidades da pilha WAP através de um conjunto de interfaces bem definidas. Aplicações externas podem acessar as camadas de sessão, transação, segurança e transporte diretamente. 

 

Figura 4: A Arquitetura WAP

    Todas as camadas serão abordadas em detalhes em tópicos posteriores nesta obra. 

Além das camadas do protocolo, a Figura 4 apresenta ainda dois componentes que não fazem parte da pilha do WAP. São eles: 

A Figura 5 traz três representações de possíveis implementações da tecnologia, o que permite 
 ter uma idéia prática do uso do protocolo. A pilha mais à esquerda representa um exemplo  típico de uma aplicação WAP, o agente-usuário WAE, sendo executado sobre o topo da pilha  WAP. Já a pilha do meio, é voltada para aplicações e serviços que requerem transações com  ou sem segurança. E, por fim, a pilha à direita é voltada para aplicações e serviços que  somente requerem datagrama de transporte sem ou com segurança.

 

Figura 5: Exemplos de pilhas WAP

 

1.5 Modelo de Cache da Arquitetura WAP

 O modelo de cache do WAP é baseado no protocolo HTTP/1.1, com algumas extensões e esclarecimentos, que se fizeram necessários para facilitar a operação de cache do HTTP/1.1 em dispositivos de funções limitadas, como os terminais sem fio. 

A interação entre o cache do agente-usuário e o histórico do WML (Wireless Markup Language - Linguagem de Marcação Sem Fio) é controlada pelo cabeçalho Cache-control:must-revalidate. O navegador deve suportar as seguintes interações entre os recursos em cache e o histórico WML:

 Como o modelo de cache do HTTP/1.1, no qual o modelo de cache do WAP foi baseado, é bastante sensível à perda de tempo de sincronização, o gateway WAP deve manter um relógio confiável com a hora do dia, sendo recomendável para implementação deste que seja usado o NTP (Network Time Protocol - Protocolo para Hora de Rede) a fim de se manter uma base de tempo real confiável. 

O armazenamento de informações sensíveis em meios de armazenamento não-voláteis levanta uma série de considerações de segurança e os implementadores devem assegurar-se de que informações privadas no agente-usuário são protegidas de acesso acidental ou para fins maliciosos.

1.6 Indicação de Serviço

 A Indicação de Serviço (SI - Service Indication) é uma aplicação do XML (eXtensible Markup Language - Linguagem de Marcação Extensível), que fornece uma maneira de notificar ao cliente que um evento assíncrono ocorreu e indica que um serviço pode ser ativado para reagir àquele evento. Isto é feito por meio do envio de uma mensagem para o cliente, que informa ao usuário final sobre o evento e que um URI do serviço certo pode ser carregado. A Figura 6 traz um exemplo prático.

 

Figura 6: Concepção Básica da Indicação de Serviço 

A mensagem é apresentada para usuário final e a este são dadas as opções de iniciar o serviço indicado pelo URI imediatamente (ouvir as mensagens) ou postergar a SI. Se a segunda opção for selecionada, o cliente armazena a SI e ao usuário final é dada a possibilidade de atuar mais tarde a partir daquele ponto.

 Além da funcionalidade básica descrita, a SI também fornece vários mecanismos para aprimorar a experiência do usuário, dentre eles:

1.7 Carregamento de Serviço

 O Carregamento de Serviço (SL - Service Loading), que também é uma aplicação do XML, que fornece meios ao cliente de armazenar preemptivamente o conteúdo indicado pelo URI tão logo este se torne disponível ao agente-usuário no cliente, o que permite também controlar se o carregamento do serviço será feito por intervenção do usuário ou não. É o SL que permite ao agente-usuário de um cliente móvel carregar e executar um serviço que pode, por exemplo, estar em um deck WML (Wireless Markup Language - Linguagem Sem Fio de Marcação). O SL contém um URI indicando o serviço a ser carregado pelo agente-usuário sem a intervenção do usuário, quando apropriado. 

Figura 7: Concepção Básica do Carregamento de Serviço

 O exemplo da Figura 7 ilustra como o operador de rede móvel pode forçar um usuário final com uma assinatura pré-paga a tomar uma ação sobre seu saldo baixo através do uso do agente-usuário para carregar e executar o serviço apropriado (no nosso caso, um formulário de um deck WML).

 Além da funcionalidade básica já descrita, o SL também provê dois mecanismos adicionais: 

Todo agente-usuário que suporta o SL está sujeito a ataques, mas a implementação deve prover meios de proteção contra estes riscos de segurança. Um SL ou um recurso referenciado por um SL pode ser descartado, se a política de segurança escolhida não for satisfeita e esta política de segurança deve seguir a implementação especificada.


        Anterior                      Home WirelessBR                         Próxima