Dispositivos móviles
De TW
- Este artículo ha sido reformateado automáticamente desde http://www.tejedoresdelweb.com/307/article-1873.html y su formato necesita ser revisado
- Este artículo es bastante antiguo. Su contenido posiblemente está obsoleto y necesita ser actualizado.
Los dispositivos móviles como teléfonos celulares y asistentes personales digitales (PDAs) se están conectando a la Web. El problema reside en encontrar aplicaciones atractivas para los usuarios de estos aparatos.
La llegada de la Web a dispositivos portátiles es un fenómeno muy interesante de analizar, puesto que involucra cuestiones económicas y técnicas. Entre otras cosas, existe una duda sobre la convergencia de tecnologías: ¿deben los celulares crecer hasta tener las capacidades de un PDA? o ¿deben los PDAs crecer hasta tener las capacidades de un celular?.
Esto es muy importante, porque es muy lógico pensar que tarde o temprano habrá una cierta convergencia, aunque también puede esperarse que cada uno encuentre su nicho.
Esta pregunta sería mucho más fácil de responder si supieramos para qué queremos acceder a Internet desde un dispositivo móvil.
Tabla de contenidos |
Aplicaciones del acceso inalámbrico
Uno de los primeros ejemplos históricos del acceso inalámbrico a un sistema computacional lo constituyen los tricorders de la serie Star Trek.
La gracia de los tricorders es la interacción con el medio. Un tricorder es un arreglo de sensores que (presumiblemente) sube y baja información.
La industria está fuertemente preocupada de encontrar killer-applicacions y hasta ahora tiene poco éxito.
Aplicaciones hasta ahora:
- Compras en contexto
- Mapas y navegación
- Búsqueda, acceso tradicional a Internet
- Comunicaciones, Chat de texto
- Aplicaciones corporativas
Aplicaciones corporativas:
- Ventas en terreno
- CRM
- Time tracking
- Inventario
- Fichas médicas
El problema parece ser que se necesita algo más que acceso a "información" para estar dispuesto a pagar.
Las particularidades de los dispositivos móviles
Los dispositivos inalámbricos presentan particularidades:
- Dificultades en la comunicación con el humano: pantallas muy chicas, dispositivos de entrada lentos o cansadores.
- Dificultades tecnológicas: fuente de energía limitada y menor velocidad de procesamiento.
- Dificultades en la conección de red: tiempos de latencia muy prolongados, y ancho de banda altamente variable, por infinidad de factores como el cambio de celda, condiciones de tráfico, competencia con la señal de voz, etc.
Respecto a la usabilidad, el problema mayor es que los usuarios de estos sistemas en teoría están además haciendo otras cosas, por lo que la aplicación no es el foco de su atención como en un PC de escritorio.
Otro punto respecto al mercado es que un celular, por ejemplo, es más barato que un computador y por lo tanto el público es más amplio (esto es una forma elegante de decir que en promedio tiene menos dinero); por lo tanto serán muy sensibles al precio que deban pagar por el uso de sus aplicaciones.
Debido a estas particularidades, se estimó que una serie de protocolos debían ser creados. Esto para maximizar la eficiencia de los pocos recursos disponibles.
Sistemas competitivos son AvantGo, my.palm (ex palm.NET) y WAP.
El WAP FORUM
Al comienzo partió muy bien: todos los actores (AOL, Intel, Nokia, Ericsson, Sun, Microsoft, etc...) se pusieron de acuerdo para formar el WAPFORUM, que sería una corporación que se encargaría de desarrollar varios estándares que tenían que ver con la incorporación a internet de los dispositivos inalámbricos.
Estos protocolos incluían transporte, transferencias, transacciones, seguridad y aplicaciones; esta diversidad ha sido el gran talón de aquiles. Ellos inventaron un conjunto de protocolos para hacer cosas que HTML, HTTP, TCP, TLS ya hacían. Existe una gran controversia acerca de si era realmente necesario hacer tal cantidad de cosas "desde cero" y eso ha alejado a muchos desarrolladores, porque atenta contra la modularidad y la reutilización de código.
http://slashdot.org/articles/01/06/14/0046213.shtml
En esta misma línea, otra pregunta a plantearse es si los supuestos (instalados hace dos años) de bajo ancho de banda, conección intermitente, operación con una sola mano, pantallas pequeñas (y lentas), procesadores lentos y que usan poca energía son válidos si las redes inalámbricas van aumentando su capacidad. Los defensores de Wap señalan que si bien el costo de la conección cae, nunca llega a cero, y que además con el tiempo los usuarios demandan más y más ancho de banda y eventualmente querrán muchas aplicaciones multimedia.
(Este es el inverso del problema que ocurre respecto a los PCs de escritorio: en el caso de los PCs el único aliciente para hacer upgrades últimamente son los juegos, porque cualquier PC barato sirve para procesamiento de texto. En el caso de los dispositivos WAP el problema es que puede pasar bastante tiempo antes de que el ancho de banda permita transmision relativamente economica de video, por ejemplo).
Componentes de WAP
WAP funciona con unos gateway o proxies que conectan internet con los servicios móviles. Se espera que los gateway sean operados por los proveedores de las redes de telefonía inalámbrica.
Los gateways son la pieza fundamental, puesto que además de conectar dos mundos (la Web tradicional y la Web inalámbrica), ellos realizarán procesos de codificación de datos (por ejemplo, reducción de resolución en imágenes, convertir formatos de sonido, etc.)
Adaptadores WDP: para la capa de transporte y funcionar sobre distintos dispositivos ej.: celulares con mensajes cortos de 160 caracteres.
WTLS: para seguridad
WTP: algo parecido a TCP, pero sin tanta complicación con los números de secuencia ni el routing (se estima que el celular habla directamente con el gateway). En particular no es necesario mantener un stack TCP así que se necesita menos memoria.
WSP: para sesiones. Esto es importante en un entorno stateless desde el punto de vista del servidor; la implementación es un HTTP con soporte para conecciones intermitentes. En el caso del Web las sesiones son normalmente emuladas con algun tipo de persistencia de datos a nivel de la aplicación.
WML: para describir documentos
WMLc: documentos compilados en bytecode (compresión de XML puede ser posible sin perder capacidades de streaming si se conoce la DTD)
WMLScript: para crear aplicaciones. Un ejemplo de WMLScript para validar un formulario WAP: http://www.wmlscript.com/library/M-Commerce/cc_validate.asp.
WAP 2.0
La versión más reciente de la especificación es WAP 2.0. En esta versión, se incorpora soporte para protocolos ya existentes, que era la gran crítica. Se incorporó TCP y HTTP como parte de la especificación.
Además se agregaron nuevos protocolos de transporte (adaptadores para las redes existentes).
Se separan los protolos en los del WAP Stack (Bajo nivel) y los de WAP applications (alto nivel).
Por otra parte, el mismo W3C ha introducido algunos protocolos relacionados con atender las necesidades de dispositivos móviles: CC/PP (protocolo para especificar las capacidades de un useragent), CSS con un selector para medio dispositivo móvil y la misma modularidad de XHTML.
WAP 2.0 también reutiliza los protocolos más antiguos, respondiendo a las críticas de que no es necesario crear todo de nuevo.
WML
Para servir WML, primero hay que hacer algunos cambios al servidor, en el caso de un servidor Apache:
AddType text/vnd.wap.wml wml AddType image/vnd.wap.wbmp wbmp AddType text/vnd.wap.wmlscript wmls AddType application/vnd.wap.wmlc wmlc AddType application/vnd.wap.wmlscriptc wmlsc
Lo anterior es para que el servidor envíe el encabezado apropiado Content-type en respuesta a un requerimiento del cliente o del gateway.
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1_1.xml"> <wml> <card id="portada" title="Bienvenido"> <p>Hola <i>Mundo</i>. Esta es una prueba <br/> de WAP.</p> <p>Avanza a la <a href="index.wml#segunda">segunda página</a></p> </card> <card id="segunda" title="Segunda Página"> <p>Esta es la segunda pagina <br/> <img alt="foto" src="foto.wmp"/></p> </card> </wml>
Otro ejemplo
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="first"> <onevent type="onenterforward"> <refresh> <setvar name="num" value=""/> </refresh> </onevent> <p> <do type="accept" label="Check"> <go href="validator.wmls#validate()"/> </do> Enter a whole number between 25 and 50 <input type="text" name="num" format="*N"/> </p> </card> <card id="invalid"> <p> <do type="accept" label="Start"> <go href="#first"> <setvar name="num" value=""/> </go> </do> $(num) is not between 25 and 50 </p> </card> <card id="valid"> <p> <do type="accept" label="Start"> <go href="#first"> <setvar name="num" value=""/> </go> </do> $(num) is between 25 and 50 </p> </card> </wml>
Y el archivo con el WMLScript:
extern function validate()
var validNum = WMLBrowser.getVar("num");
var validNumAsInt = Lang.parseInt(validNum);
var max = 50;
var min = 25;
if (validNumAsInt) {
if ((validNumAsInt < min) || (validNumAsInt > max)) {
WMLBrowser.go("validate.wml#invalid");
{}
else WMLBrowser.go("validate.wml#valid");{}}
else
Dialogs.alert("The number " + validNum + "is not a whole number");
WMLBrowser.setVar("num", "");
WMLBrowser.go("validate.wml#first");
{}
}
Más información
http://www.oasis-open.org/cover/wap-wml.html
Categorías: Reformateado | Obsoleto | Artículo | Red