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.
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:
|
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 ("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.
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.
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
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
).
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
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.
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.