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  (6)

Autor: Givanildo Francisco da Silva Junior

(Esta página contém muitas figuras grandes. Aguarde a carga se a conexão estiver lenta)


6.0 WAE (Wireless Application Environment)

6.1 Descrição Geral

  O WAE (Wireless Application Environment - Ambiente de Aplicação Sem Fio) é um ambiente de aplicação
 de propósito geral baseado, fundamentalmente, nas tecnologias e filosofias web e tem como objetivo primário estabelecer um ambiente interoperável que permita a operadores e provedores de serviços construírem aplicações e serviços que possam atingir uma grande variedade de plataformas sem fio de maneira útil e eficiente. 

O WAE adota um modelo bastante semelhante ao modelo WWW, o que significa dizer que todo o conteúdo foi especificado em formatos que são bastante similares aos padrões da Internet. Todo conteúdo é transportado usando protocolos padrões se o domínio for do tipo WWW, e otimizado em um protocolo semelhante ao http, se for um domínio sem fio. 

O WAPForum foi cuidadosamente atencioso no que diz respeito às restrições de memória e capacidade de processamento dos terminais móveis, além de levar em conta a baixa largura de banda e a alta latência das redes sem fio para a especificação da arquitetura. O WAE assume a existência de um gateway funcionalmente responsável pela codificação e decodificação dos dados transferidos para e a partir do cliente móvel. O propósito da codificação do conteúdo entregue é minimizar o tamanho dos dados enviados para o cliente aéreo, bem como minimizar a energia computacional requerida pelo cliente para processar aqueles dados. A funcionalidade de gateway pode ser adicionada aos servidores de origem ou ser colocada em gateways dedicados, conforme mostra a Figura 13.

Figura 13: Modelo Lógico do WAE  

6.2 Componentes do WAE

   

Figura 14: Componentes do Cliente WAE  

 

6.2.1  Agentes-usuários

  O WAE não especifica formalmente nenhum agente-usuário, ou seja, suas características e capacidades são deixadas para os implementadores. O WAE somente define serviços e formatos fundamentais que são necessários para assegurar a interoperabilidade entre as diferentes implementações.

6.2.2 – Serviços e Formatos

6.2.2.1 – WML

  O WML é uma linguagem de marcação baseada no XML e objetiva ser usada na especificação de conteúdo e interface para dispositivos de banda estreita, incluindo telefones celulares e pagers. O WML e seu ambiente de suporte foram projetados tendo em vista as restrições dos dispositivos de banda estreita, o que inclui pequenos displays, facilidades de entrada do usuário limitadas, conexões para de rede de banda estreita e recursos de memória e de processamento limitados.

    A linguagem é baseada em subconjunto do HDML versão 2.0, entretanto o WML mudou alguns elementos adotados do HDML e introduziu novos elementos, alguns dos quais foram modelados de acordo com elementos similares do HTML.

  O WML introduziu a metáfora de card e deck, o que contêm conceitos de que a interação com o usuário é descrita em um conjunto de cards, os quais podem ser agrupados .em um documento, que normalmente é referido por deck. O usuário navega através de um conjunto de cards WML, onde pode ver o conteúdo de cada um, pode entrar com informações requisitadas, pode fazer escolhas e pode se

mover de um card para outro. As instruções contidas nos cards podem invocar serviços no servidor, se for necessário interação de maneira particular, e os decks são requisitados ao servidor conforme sejam necessários. Os decks WML podem ser armazenados em arquivos estáticos ou podem ser gerados dinamicamente por geradores de conteúdo como, por exemplo, scripts e servlets.

    O WML foi especificado de maneira a permitir a apresentação do conteúdo em uma grande variedade de dispositivos, além de permitir que cada fabricante incorpore suas próprias MMI 4 (Man-Machine Interface – Interface Homem-Máquina). Um exemplo disso é que o WML não especifica como a requisição de entrada do usuário será implementada e sim especifica sua intenção de maneira abstrata. Esta filosofia permite que o WML seja implementado em uma grande variedade de dispositivos e mecanismos de entrada. Por exemplo, uma implementação pode escolher que o usuário insira seus dados visualmente como os agentes-usuários WWW, enquanto outra pode escolher uma interface baseada em voz. Cabe ao agente-usuário decidir qual a melhor maneira de apresentar todos os elementos dentro de uma carta dependendo das capacidades do dispositivo, uma vez que alguns deste possuem grandes displays e podem apresentar a informação de uma vez só em um único card, outros, contudo, têm displays menores e, portanto, precisam quebrar o conteúdo em várias telas.

  A linguagem possui uma grande variedade de características, incluindo:

    ·      Suporte a texto e a imagem: o WML provê aos autores de conteúdo várias maneiras de especificar os textos e as imagens que serão mostradas aos usuários, incluindo sugestões de layout e apresentação. Como todas as outras linguagens de marcação, o WML requer que o autor especifique a apresentação em termos gerais e dá ao agente-usuário uma grande liberdade para determinar como ele deve apresentar a informação ao usuário final.

    ·     Suporte à entrada de dados do usuário: a linguagem suporta vários elementos para solicitar ao usuário a entrada de dados e estes elementos podem ser combinados em uma ou mais cartas. Todas as requisições de entrada do usuário são feitos de maneira abstrata, dando ao agente-usuário liberdade para otimizar as características para um dispositivo em particular. O WML possui um pequeno conjunto de controles de entrada e suporta validação de dados no lado do cliente, pois permite ao autor chamar scripts em momentos apropriados para checar a entrada do usuário. A linguagem inclui também controles de invocação de tarefas que quando ativados iniciam uma tarefa de navegação ou uma tarefa de gerenciamento de história, como passar de um link para outro card ou script ou mesmo retirar o card atual da pilha de história. O agente-usuário é livre para escolher como irá apresentar estes controles. Ele pode, por exemplo, ligá-los às teclas do dispositivo ou a comandos de voz. 

     ·      Pilha de História e Navegação: O WML permite vários mecanismos de navegação usando URL, incluindo o uso de hiperlinks semelhante ao HTML e elementos de navegação entre cards, assim como elementos de navegação na história.

  ·      Suporte internacional: O conjunto de caracteres do WML é o conjunto de Caracteres Universais do ISO/IEC (International Standards Organization/International Engineering Consortium - Organização de Padronização Internacional/Consórcio Internacional de Engenharia), definido no documento ISO/IEC-10646, o qual, atualmente, é idêntico ao Unicode 2.0, mas não é obrigatório que os decks WML sejam codificados usando todo o Unicode e sim que o conjunto de caracteres de codificação seja um subconjunto do Unicode.

  ·       Independência de MMI: A especificação abstrata do layout e da apresentação do WML permite aos fabricantes de dispositivos controlarem o projeto da MMI para seus dispositivos.

  ·      Otimização para banda estreita: a linguagem inclui uma grande variedade de tecnologias para otimização da comunicação para dispositivos de banda estreita, como a capacidade de especificar múltiplas interações com o usuário (cards) em uma única transferência da rede (deck) e facilidades de gerenciamento de estado, o que minimiza a necessidade de requisições ao servidor. O WML permite, por exemplo, ao autor parametrizar ou passar variáveis a um contexto subseqüente.

  ·      Gerenciamento de Estado e de Contexto: o WML expõe um contexto simples ao autor, onde cada controle de entrada do WML pode introduzir variáveis e o estado destas variáveis podem ser usados para modificar o conteúdo de um card parametrizado sem que seja necessário comunicação com o servidor. Além disso, o tempo de vida de uma variável de estado pode ser estendido para além de um único deck podendo, assim, ser compartilhado por vários decks sem que se use um servidor para gravar o estado intermediário entre as chamadas dos decks.   

6.2.2.2 – WMLScript

  O WMLScript é uma linguagem de script leve e procedural, que realça as facilidades de navegação e  apresentação do WML, além de possuir capacidades de: suporte a comportamento da UI (User Interface Interface ao Usuário) de modo mais avançado, adicionar inteligência ao cliente, prover um mecanismo conveniente de acesso aos dispositivo e seus periféricos e reduzir a necessidade de idas e voltas ao servidor. A linguagem é fracamente baseada no ECMAScript, que é um subconjunto da linguagem de script da Internet - JavaScript, entretanto é refinada para dispositivos de banda estreita.

 O WMLScript é uma linguagem fracamente tipada, ou seja, uma variável não é formalmente definida e, portanto, o seu tipo pode variar durante o seu ciclo de vida dependendo do dado atribuído a dela. Os tipos de dados suportados pelo WMLScript são lógico, inteiro, ponto flutuante, cadeia de caracteres e inválido, e a própria linguagem tenta fazer a conversão automaticamente entre os tipos. O suporte ao tipo ponto flutuante varia de acordo com as capacidades do dispositivo alvo.

  A linguagem suporta também várias categorias de operações, como: atribuições, aritméticas, lógicas e comparações, e vários tipos de funções, como locais, externas e de bibliotecas, além de definir uma série de bibliotecas incluindo uma para linguagem, uma para cadeia de caracteres, uma para navegador, uma para ponto flutuante e uma para diálogo.   

A linguagem tem como características principais:

  ·      Baseada no JavaScript: o WMLScript parte de uma solução padrão da indústria e o adapta para o ambiente de banda estreita, o que o faz bastante fácil de aprender e usar.

  ·      Lógica Procedural: adiciona o poder da lógica procedural ao WAE.

  ·      Baseado em Eventos: o WMLScript pode ser chamado em resposta a certos eventos ambientais ou do usuário.

 ·      Implementação Compilada: o WMLScript pode ser compilado para um bytecode bem pequeno, que é transportado ao cliente.

  ·      Integração ao WAE: a linguagem é totalmente integrada com o navegador WML, o que permite ao desenvolvedor construir serviços usando ambas as tecnologias, escolhendo a mais apropriada para a tarefa. O WMLScript tem acesso ao modelo de estado do WML e pode setar e recuperar variáveis WML.

  ·      Suporte internacional: O código-fonte do WMLScript é representado como uma seqüência de caracteres constantes do Unicode 2.0.

  ·      Suporte a bibliotecas extensíveis: a linguagem pode ser usada para expor e estender a funcionalidade do dispositivo sem mudanças no software deste. 

6.2.2.3 URL

O WAE utiliza bastante a semântica do HTTP para definição de endereços e, em alguns casos, seus componentes estendem a da URL como no WML, onde os fragmentos de uma URL podem ser usados para permitir a ligação seja uma chamada para funções particulares do WMLScript.   

6.2.2.4 – Formatos do Conteúdo

  O WAE inclui um conjunto de formatos do conteúdo, que facilitam a troca de dados, entretanto o método de troca irá depender dos dados e do agente-usuário alvo do WAE. 

Os dois formatos mais importantes na camada são os de bytecodes codificados do WML e do WMLScript, o que torna a transmissão destes mais eficiente e minimiza a necessidade de capacidade computacional do cliente. Além destes, o WAE adota outros formatos de dados como imagens, mensagem e formatos específicos do agente-usuário. 

6.3 – Transporte do WML e WMLScript     

Os servidores de origem provêem os serviços de aplicação para o usuário final e a interação destes serviços entre o usuário final e os servidores de origem é empacotada em decks WML e scripts padrões, os quais podem estar armazenados estaticamente ou serem dinamicamente gerados. Um codificador WML em um gateway converte cada deck WML em seu formato binário, que depois é enviado ao cliente para ser interpretado e mostrado. Algumas otimizações podem ser feitas pelo gateway baseado nas características do cliente. 

 

Figura 15: Arquitetura Lógica do Agente-Usuário do WML

    O agente-usuário pode enviar uma ou mais requisições adicionais (usando algum esquema de endereço URL) ao WMLScript quando o primeiro encontrar referências para a linguagem em um deck WML. Ao retornar a requisição ao cliente, o compilador do WMLScript traduz o script para o bytecode que é enviado para o cliente para interpretação e execução.   

A existência de um gateway não é obrigatória, uma vez que a compilação e codificação podem ser funções internas dos servidores de origem, o que não afetaria em nada o processo já descrito. A Figura 15 ilustra a arquitetura sem o gateway. 

Figura 16: Arquitetura Lógica sem um Gateway do Agente-Usuário do WML    

6.4 – WTA    

6.4.1 – Descrição Geral  

O WTA é uma estrutura de aplicação para serviços de telefonia, onde o agente-usuário WTA é uma extensão do agente-usuário padrão WML com capacidades de se conectar com serviços disponíveis de rede móvel para um dispositivo de telefonia móvel. A Figura 17 descreve uma possível configuração da estrutura da WTA, levando em conta somente os componentes do cliente.

 

Figura 17: Exemplo da Arquitetura WTA

    A Figura 17 ilustra como o agente-usuário WTA, o repositório (armazenagem persistente) e a WTAI (Wireless Telephony Application Interface – Interface para Aplicação para Telefonia Sem Fio) interagem uns com outros e com outras entidades em um dispositivo cliente móvel com capacidades de usar a WTA. O agente-usuário WTA é capaz de solicitar conteúdo de um repositório e a WTAI assegura que o agente-usuário da WTA possa interagir com as funções da rede sem fio (como fazer ligações) e com as capacidades do dispositivo (como manipular a lista de telefones). O agente usuário WTA recebe os “eventos da rede” que podem ser ligados ao conteúdo e, assim, disponibiliza aplicações dinâmicas de telefonia.     

6.4.2 – Os agentes-usuários WTA e WAE   

É claro que a capacidade de suportar simples funções de telefonia de dentro de um agente-usuário do WAE é muito importante e para tal intento uma biblioteca especial do WTA foi definida: a Biblioteca Pública WTAI – que contém funções que podem ser chamadas de dentro de qualquer aplicação WAE, de acordo com a Figura 17, e provê acesso a funcionalidades de telefonia simples como um adicional à experiência do usuário. Por exemplo, os programadores WML podem incluir a funcionalidade “clique para ligar” dentro do seu conteúdo para resguardar os usuário de digitar um número usando a MMI padrão.   

Os eventos de rede que estarão disponíveis para o agente-usuário do WTA são aqueles que são resultados das ações tomadas pelos serviços rodando no próprio agente-usuário WTA. Os eventos de telefonia iniciados de fora do dispositivo também são passados para o agente-usuário WTA.  

A Figura 18 ilustra como o agente-usuário WAE e a Biblioteca Pública WTAI interagem uma com a outra e com outras entidades de cliente móvel. O agente-usuário WAE somente requisita seu conteúdo via gateway WAP e somente tem acesso às funções da Biblioteca Pública WTAI.

Figura 18: O Agente-Usuário WTA e a Biblioteca Pública WTA


                  Anterior                          Home WirelessBR                         Próxima