Aplicaciones Inalámbricas (WAP-WML)

Consideraciones de una Aplicación Inalámbrica

Al diseñar una aplicación de este tipo deben ser contemplados aspectos tanto en la aplicación de cliente como en la aplicación de servidor , estos detalles y algunos más se mencionan a continuación.

El Cliente

A diferencia del cliente típico que es utilizado en Internet: "Un Navegador en una Computadora Personal(PC)", el cliente que es utilizado para una aplicación inalámbrica es "Un navegador en un Teléfono Celular o PDA", las diferencias entre una "Computadora Personal" y un "Teléfono Celular" y/o "PDA" de inmediato influyen sobre la aplicación:

  • La pantalla es más pequeña y de menor resolución en un aparato inalámbrico.
  • La memoria para procesar y ejecutar instrucciones en un aparato inalámbrico es limitada.
  • El tipo de conexión ("Bandwidth") para un aparato inalámbrico es más limitado que para un aparato alambrico (PC).

Si suele abusar de la Interfase gráfica o esta acostumbrado a velocidades de DSL , tendrá que ir cambiando sus costumbres. Inclusive aunque realice diseños apropiados (bajo en gráficas y alto en contenido), también tendrá que aprender otra cosa nueva ya que los navegadores de "Aparatos Inalámbricos" NO ENTIENDEN HTML (algunos dispositivos (10-15% del mercado) si lo interpretan, pero muy limitado).

WML y HDML

WML ("Wireless Markup Language") y HDML ("Handheld Device Markup Language") son los dos lenguajes de marcación que son compatibles con la gran mayoría de aparatos inalámbricos en el mercado, HDML fue desarrollado por phone.com (hoy openwave.com ), mientras WML fue creado por WAP Forum en 1997 por Erricson, Nokia, Motorola...y otras 250 empresas en el medio inalámbrico. Hoy en día generalmente se utiliza WML, ya que casi todos los navegadores en aparatos inalámbricos logran interpretar apropiadamente el lenguaje.

WML es un poco diferente que HTML pero esencialmente cumple las mismas funciones, enviar el contenido a pantalla, a continuación un fragmento de un documento con WML.

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//"
        "http://www.wapforum.org/DTD/wml_1.1.xml">
<WML>
<HEAD>
<TITLE>Bienvenido al mundo Inalámbrico </TITLE>
</HEAD>
<TEMPLATE>
....
</TEMPLATE>
<CARD id="directorio" title="Busque el Teléfono" 
         newcontext="true">
 <p mode="nowrap">
   <fieldset>
      Nombre: 
     <input name="nombre" type="text" title"Nombre" />
   </fieldset>
   <fieldset>
      Apellido: 
     <input name="apellido" type="text" title"Apellido" />
   </fieldset>
   <anchor>Enviar
     <go method="post" href="buscar">
       <postfield name="nombre" value="$nombre" />
       <postfield name="apellido" value="$apellido" />
     </go>
   </anchor>
 </p>
</CARD>

<CARD>
...
</CARD>

<CARD>
...
</CARD>

</WML> 
   

La primera parte del documento es llamada prologo y contiene información sobre el tipo de Documento, esta sección es necesaria por el WAP Gateway , posteriormente se inicia con los TAGS WML, HEAD, TITLE que producen el mismo efecto que HTML , sin embargo son los TAGS CARD los que merecen atención especial.

A diferencia de los documentos HTML donde todo el contenido se encuentra entre los TAGS <BODY> (Vea documento básico de HTML ) en WML se definen varios CARD's , este diseño permite que en un solo documento (por lo tanto requisición) puedan ser definidos varios sub-documentos; una de las razones de esto es que mientras en una conexión alambrica es relativamente fácil solicitar un documento del servidor, el estar solicitando documento tras documento en un medio inalámbrico es un proceso más involucrado (Lo observará en "WAP Gateway" ) y por ende se opta por enviar varios sub-documentos (CARDs) en una sola requisición.El único CARD definido en el documento es un CARD que solicita datos al usuario (muy similar a una forma en HTML ), los CARDs restantes pueden ser sub-documentos que definen: otros sub-menús, despliegue de agradecimiento,errores...etc.

Lo anterior son solo detalles mínimos sobre WML, ya que como HTML posee un sin numero de opciones, inclusive también existe WML Script que seria un homologo de JavaScript .

Una vez que desarrolle su aplicación puede utilizarla/refinarla en su computadora personal en uno de los tantos Simuladores de Navegadores inalámbricos

Ya que haya integrado una aplicación en lenguaje WML, lo más lógico seria integrarla al sitio que ya contiene información para sus usuarios en medios alambricos, pero ahora la pregunta es: Si un usuario de un teléfono celular visita www.osmosislatina.com y otro en una computadora personal también visita www.osmosislatina.com , que información será enviada ? Esto lleva al tema del Servidor de Páginas.

El Servidor de Páginas

Cuando arriva una solicitud al "Servidor de Páginas", éste inspecciona los "Headers" HTTP de la solicitud , en estos "Headers" va incluido un parámetro llamado Accept el cual indica el tipo información que puede recibir el navegador que esta realizando la solicitud, TODO aparato inalámbrico esta diseñado para enviar: text/vnd.wap.wml, este parámetro es una (de las pocas) manera de distinguir si el navegador es inalámbrico (WML) o el clásico Navegador (HTML) "Netscape" o "Explorer" . Ya conocido el tipo de Navegador el servidor debe enviar el contenido pertinente, esto es, si la requisición es de un "Navegador Inalámbrico" enviar información en WML, de no ser así, enviar el documento típico de HTML

La Aplicación de Servidor

Si esta contemplando el acceso inalámbrico a su sitio, seguramente ya utiliza aplicación de servidor como JSP, ASP, ADP o quizás Scripts en Perl para generar contenido dinámico , sin embargo, estas aplicaciones de Servidor fueron diseñadas para regresar contenido en HTML . Que ocurrirá cuando un aparato inalámbrico solicite la página principal de osmosislatina.com y se deba enviar información en WML ? Se deben definir otro juego de JSP, ADP, y ASP para "Navegadores-Inalámbricos" ? No necesariamente, si esta utilizando XML en sus JSP o ADP. (Esto es discutido en Desarrollo de sitios para Diferentes Clientes ).

WAP Gateway

Otro detalle de las aplicaciones inalámbricas es que la comunicación entre el aparato inalámbrico y el "Servidor de Páginas" no se establece directamente sino a través de lo que es denominado WAP Gateway

WAP Gateway

Cuando el Servidor de páginas intercepta una requisición de un navegador inalámbrico (Accept:text/vnd.wap.wml) la información es enviada vía el mismo backbone de Internet hasta otro servidor llamado "WAP Gateway", este servidor aun debe verificar y procesar la información que será enviada al aparato inalámbrico.

La verificación de Información se realiza para validar la escritura del WML, esto es, si el documento que esta intentándose mandar al aparato inalámbrico no es valido el "WAP Gateway" debe descartarlo, esta es una de las razones por la cuales debe incluirse el Prologo que fue mencionado en el documento WML .

El procesar Información se debe a que el anillo inalámbrico de transmisión (el mismo que es utilizado para llamadas telefónicas), no utiliza HTTP , sino utiliza WSP ("Wireless Session Protocol"), sin entrar en detalle, esto se debe a que el protocolo HTTP utiliza solo texto para enviar información algo que no seria eficiente para un servicio inalámbrico, por lo tanto antes de enviar la información al aparato inalámbrico el "WAP Gateway" debe transformar la información a una forma más eficiente:"binaria". El CARD que fue enviado en el documento WML del servidor:

     
<CARD id="directorio" title="Busque el Teléfono" newcontext="true">
 <p mode="nowrap">
   <fieldset>
      Nombre: 
     <input name="nombre" type="text" title"Nombre" />
   </fieldset>
   <fieldset>
      Apellido: 
     <input name="apellido" type="text" title"Apellido" />
   </fieldset>
   <anchor>Enviar
     <go method="post" href="buscar">
       <postfield name="nombre" value="$nombre" />
       <postfield name="apellido" value="$apellido" />
     </go>
   </anchor>
 </p>
</CARD>

es convertido por el "WAP Gateway" en lo siguiente:

     
02 08 6A 'X' 00 'Y' 00 7F E7 55 03 'a' 'b' 'c' 00
33 01 60 E8 38 01 AB 4B 03 'y' 'z' 00 83 03 
's' 00 01 01 03 ' ' ':; 00 82 00 26 03 38 7B 30    
 
            Y otras 50 lineas similares  


Ya que ha combinado TODAS estas tecnologías seria conveniente hacer unas recomendaciones sobre el tipo de desarrollos para medios inalámbricos.

Consideraciones de una Aplicación Inalámbrica

Si ha visto comerciales donde gente escribe mensajes y los envía por un medio inalámbrico, han recortado 5 minutos del comercial, los 5 minutos que tarda oprimiendo 200 o 300 veces los botones de su aparato inalámbrico, ya que si requiere la letra c debe oprimir el numero 1 tres veces,la letra s el numero 7 cuatro veces y así sucesivamente , de manera que si empieza a enviar mensajes como:

     
 "Nos vemos en la junta de distribuidores en el primer piso a las 8:00 AM"  

Posiblemente este en linea para ser automatizado o simplemente despedido por ineficiente e impractico. Además no solo tendrá que pagar una tarifa por utilizar el servicio Inalámbrico de su prestadora de servicios sino también por la transmisión de datos, quizás el estar a la vanguardia no siempre es bueno. Solución: En los 80's surgió una tecnología llamada BUZÓN DE VOZ que no solo le ahorrará oprimir 100 botones para enviar un mensaje de 15 palabras sino le permitirá dar un toque humano a su mensaje algo realmente innovador hoy en día.

Aplicaciones que si son de gran utilidad para un medio Inalámbrico

Links: