INTRODUCCION WAP significa Wireless Application Protocol , y surge como la combinación de dos tecnologías de amplio crecimiento y difusión durante los últimos años: Las Comunicaciones Inalámbricas e Internet. Los protocolos WAP son similares a aquellos utilizados por Internet pero son optimizados para el uso con periferia como los teléfonos móviles, los cuales están dotados de poca memoria, pequeños displays y relegados a redes con poca banda así como a largos tiempos de espera. Más allá de la posibilidad de acceder a los servicios de información contenidos en Internet, el protocolo pretende proveer de servicios avanzados adicionales. Para ello se parte de una arquitectura basada en la definida para el World Wide Web, pero adaptada a los nuevos requisitos del sistema. Cliente Agente de usuario WAE (Entorno de aplicación inalámbrica) Servidor de Información Pasarela Petición Codificada Codificadores y Decodificadores Respuesta Codificada Petición Respuesta (contenido) CGI, Scripts, etc. Contenidos Fig.1 Modelo de funcionamiento de WAP En el terminal inalámbrico existiría un “micro navegador” encargado de la coordinación con la pasarela, a la cual se le realiza peticiones de información que son adecuadamente tratadas y redirigidas al servidor de información adecuado. Una vez procesada la petición de información en el servidor, se envía esta información a la pasarela que de nuevo procesa adecuadamente para enviarlo al terminal inalámbrico. Para conseguir consistencia en la comunicación entre el terminal móvil y los servidores de red que proporcionan la información, WAP define un conjunto de componentes estándar: Un modelo de nombres estándar. Se utilizan las URIs( Universal Resource Identifier) definidas en WWW para identificar los recursos locales del dispositivo. Y las URLs para identificar el contenido WAP en los servidores de información. Un formato de contenido estándar, basado en la tecnología WWW. Unos protocolos de comunicación estándares, que permitan la comunicación con el micro navegador del terminal móvil con el servidor WEB en red. Así como TCP e IP forman parte de un modelo de referencia OSI (Open Systems Interconnection), el modelo de interconexión de sistemas abiertos, WAP define su propio modelo de referencia a seis niveles: nivel físico o portador, nivel datagrama, seguridad, nivel de transacción o intercambio, sesión y aplicación. A simple vista podemos apreciar los cambios entre el modelo de referencia OSI y el modelo WAP: WAP CAPA 7 Aplicación: Al igual que el modelo OSI es la que se encarga del contenido de las consultas y 6 de las respuestas. Sesión: Se encarga de negociación de parámetros entre el cliente y el servidor y establece la conexión para intercambiar la 5 información. Transacción: Define y asegura el establecimiento de la conexión entre extremos. 4 Seguridad: Parecida a la capa superior pero dota de seguridad 3 la conexión realizada. Datagrama: Servicio basado en datagramas que asegura de forma transparente a las capas superiores la comunicación. 2 Portadora: Se entiende como la frecuencia o forma de la 1 transmisión de datos. OSI Aplicación: En esta última capa hablamos de la semántica de la información, de cómo nos viene representada. Presentación: Realiza los trabajos de compresión y cifrado de la información, intentando estandarizar la representación (ASCII y otros). Sesión: Esta capa cubre desde el "login" inicio de una sesión de trabajo hasta el "logout". Es una de las capas menos importantes pero realizará funciones de sincronización entre otras que no puedan hacer las capas inferiores. Transporte: A través de los encabezamientos de la trama y su información, nos asegura una comunicación fiable de extremo a extremo. Red: Tiene funciones de control y encaminamiento. Enlace: Asegura una comunicación de tramas o conjuntos de bits. De alguna manera encapsula los bits recibidos marcando un inicio y un final. Esta capa está subdividida en dos subcapas (LLC y MAC) Física: Se intenta la normalización total de toda la maquinaria. Conectores, pines, cableado, etc. COMPONENTES DE LA ARQUITECTURA WAP Como se ha dicho antes, la arquitectura WAP esta formada por una estructura de niveles o capas en la que cada capa es accesible por la superior así como por otros servicios y aplicaciones a través de un conjunto de interfaces bien definidos. Con ellos se consigue proporcionar un entorno escalable y extensible para el desarrollo de aplicaciones para dispositivos de comunicación móvil. La estructura es la siguiente: CAPA DE APLICACIÓN (WAE) CAPA DE SESIÓN(WSP) CAPA DE TRANSACCIONES(WTP) CAPA DE SEGURIDAD(WTLS) CAPA DE TRANSPORTE(WDP) Protocolos portadores: GSM IS136 CDMA PHS CDPD PDC-P iDEN Etc. Fig. 2 : Arquitectura de WAP CAPA DE APLICACIÓN (WAE) Wireless Application Environment es un entorno de aplicación de propósito general, cuya función es permitir construir aplicaciones y servicios de manera eficiente, sin depender de sí se están ejecutando en un móvil, un PDA, etc. Incluye un microborwser con las siguientes funciones: WML(Wireless Application Environment): es un lenguaje similar a HTML pero optimizado para ser usado en dispositivos móviles. WMLScript:Lenguaje similar a JavaScript. WTA(Wireless telephony application): son servicios telefónicos que pueden prestar las operadoras. Formatos de contenido: conjunto de estructuras de datos, incluye imágenes, listín telefónico y calendario. La arquitectura WAE sigue el modelo internet, respalda el uso de una arquitectura sencilla en el lado cliente para permitir dispositivos mas baratos y manejables, permite a los operadores sacar recursos de la web para sus aplicaciones, y permite que sea ampliada en el futuro. El mecanismo de url tiene en cuenta tres casos: Servicios seguros donde se usa la capa WTLS y un gateway seguro controlado por el servidor. El servidor desea que el gateway guarde en cache los datos para acelerar el acceso de los clientes. El servidor es exclusivo para dispositivos Wap y trabaja sobre WSP en lugar de usar HTTP. En el url se especifica el protocolo usado por el servidor , independientemente del que use el cliente, que casi siempre será WSP. El gateway se debe encargar de las conversiones del protocolo HTTP-WAP. WAE se divide en dos capas, los agentes de usuario(browsers,..)y los servicios y formatos(WML,...). Al intercambiar un archivo Wml o wmlscript entre servidor y cliente se siguen varios pasos, el usuario le pide a sus agentes lo que quiere, este le transmite al servidor la petición usando un esquema URL, el servidor responde con un deck, que al pasar a través del gateway se convierte al formato codificado. La existencia del Gateway no es obligatoria y algunos servidores se pueden encargar ellos mismos de las tareas de codificación y bytecodes. Seguridad: WAE permite autentificar a los usuarios en base al método de pedir un nombre de usuario y una clave , y también permite que los autores del código Wml limiten que otros decks puedan acceder a los suyos. CAPA DE SESION (WSP) Wrieless Session Protocol proporciona una interface con dos servicios de sesión, uno opera sobre la capa WTP y es orientado a conexión, el otro no lo es y opera sobre la capa WDP. Su funcion es: Da la funcionalidad y semántica de HTTP/1.1 con una codificación compacta. Establecer sesiones fiables entre cliente y servidor y liberarlas de manera ordenada. Posibilidad de suspender y reanudar las conexiones. Permite hacer Push de los datos(tecnología por la que se puede recibir información sin tener que buscarla, se verá más extensamente en el apartado WSP). Negociación de las características del protocolo. Intercambiar cabeceras de sesión. Interrumpir transacciones en procesos. Intercambiar contenidos entre cliente y servidor usando codificación compacta. Éstos protocolos están optimizados para portadoras con poco ancho de banda y con latencias altas. El núcleo del diseño WSP es una forma binaria de HTTP, por tanto las transacciones entre el cliente y el servidor incluirán cabeceras y datos y son soportados los métodos definidos por HTTP. Las cabeceras sirven para definir los tipos de contenidos, lenguajes, etc. en transferencias de datos, y para reducir el tráfico hay definidas unas formas compactas de cabecera. Estas cabeceras no las interpreta el WSP sino las cabeceras superiores. Como esta capa es independiente de las inferiores, se puede suspender la sesión y después reanudarlo sin problemas, incluso sobre una portadora diferente, sin la sobrecarga de establecer una sesión desde 0. Esta capa permite hacer Push y pull de datos, el pull se realiza con los mecanismos especificados en HTTP/1.1 y el push se puede realizar de tres maneras diferentes: 1. Push confirmado dentro de una sesión: permite al servidor mandar datos al cliente durante la sesión, y es servidor recibe confirmación de que fue entregada. 2. Push no confirmado dentro de una sesión: como antes pero sin confirmación. 3. Push no confirmado sin sesión abierta: sirve para enviar mensajes sobre un medio no fiable. Opcionalmente, el WSP puede permitir enviar peticiones asíncronas, lo que permite al servidor a unir las respuestas en menos mensajes. CAPA DE TRANSACCIÓN(WTP) Wireless Transaction Protocol es un protocolo orientado a transacción que funciona sobre la capa WDP(datagramas), funciona igualmente si la capa de datagramas es segura como si no. Sus características son: Opcionalmente se puede tener comunicaciones fiables entre usuarios (hay confirmación por cada mensaje recibido). Las PDU se pueden concatenar para reducir el número de mensajes a enviar. Transacciones asíncronas. Tres tipos de transacciones diferentes: Peticiones unidireccionales no fiables Peticiones unidireccionales fiables Transacciones bidireccionales fiables. WTP funciona sobre WDP, que es no fiable, y debe ser el primero el que debe ocuparse de que el servicio sea fiable de cara al usuario El interface entre la capa WTP y el entorno es la WTP Management Entity, y su función es proporcionar información a la capa WTP de los cambios en el entorno del dispositivo que pueda afectar al funcionamiento de WTP. Para ello el dispositivo móvil debe tener las siguientes capacidades: El móvil esta en el arrea de cobertura de la portadora invocada. El móvil tiene suficiente potencia y esta en marcha. Hay recursos suficientes disponibles para la capa WTP El protocolo WTP esta bien configurado. El usuario desea transmitir o recibir datos. La WTP Management Entity informara a WTP si alguno de ellos no esta disponible. Las primitivas de comunicación son: Request: usado cuando una capa pide servicio a su inmediata inferior. Indication: la capa que debe proporcionar el servicio indica a su progenitora algo relacionado con la petición. Response: La capa superior indica acuse de recibo del indication recibido de la inferior. Confirm: La capa inferior indica que la actividad se ha llevado a cabo satisfactoriamente. Se utiliza ACK para asegurarse de que la comunicación ha sido realizada con éxito. CAPA DE SEGURIDAD(WTLS) Wireless Transport Layer Security el protocolo de seguridad se ha basado en el estándar TLS, antes conocido por SSL. Para los casos donde la seguridad no es básica se puede deshabilitar el uso de esta capa. Las características son: Integridad en los datos: asegura que los datos son intercambiados no están cambiados o corrompidos. Privacidad: los datos transmitidos son privados y no han de poder ser leídos por alguien que intercepte su envío. Autentificación: puede establecer la autenticidad del terminal y el servidor. Protección contra la denegaron de servicio: puede detectar y rechazar datos que sean reenviados o que no estén verificados, impidiendo los ataques de negación de servicio. Para la comunicación entre capas, se utilizan además de las primitivas anteriores las siguiente: Unitdata: intercambiar información entre iguales(solo si hay conexión segura) Create: para iniciar el establecimiento de una conexión segura. Exchange: usada por el servidor cuando quiere realizar una autentificacion de la clave pública o intercambio de claves entre clientes. Commit: cuando termina el acuerdo (handshake) y ambos quieren pasar al estado de transmisión negociado. Terminate: para terminar la conexión. Exception: para terminar la conexión. Create_request: el servidor pide al cliente que inicie un nuevo handshake (acuerdo). CAPA DE TRANSPORTE(WDP) Wireless Datagram Protocol es la capa de transporte según ISO/OSI , su función principal es lograr la independencia de las capas superiores del bearer que tienen por debajo, esto lo logra adaptando la capa de transporte a las características de cada portadora determinada. WDP ofrece un conjunto de servicios a las capas superiores, estos servicios incluyen direccionamiento de las aplicaciones por número de puerto, segmentación y reensamblamiento (opcional), y detección de errores(opcional). Al ofrecer estos servicios independientemente de la portadora tiene que realizar más funciones o menos dependiendo de las que realice la portadora. El rendimiento del protocolo sobre cada portadora variará, pero los servicios que existen siempre son los mismos. El siguiente esquema muestra lo dicho anteriormente: WDP Adaptacion a portadora A Adaptacion a portadora B Adaptacion a portadora C Portadora A Portadora B Portadora C Portadora D Capa física – Tecnologias inalámbricas La portadora D realiza todo el trabajo por lo que WDP no ha de preocuparse. Sin embargo, la portadora A, ofrece muy pocos servicios y es la capa WDP la que ha de realizar la mayor parte de los servicios. Con WDP es posible tener varias instancias de comunicación de capas superiores sobre un único servicio de la portadora, siendo el número de puerto la manera de identificar a la entidad de la capa superior que será transmitiendo. La capa de adaptación es la capa del protocolo WDP que mapea las funciones de WDP directamente sobre la portadora, por lo que es diferente para cada una. En el Gateway se pasan los paquetes WDP al proxy / servidor por medio de un protocolo de túnel, que sirve de interface entre ambos. La subred es cualquier tecnología de red que permita unir dos dispositivos comunicadores. Al igual que en WDP la interface entre la capa WDP y el entorno es la WDP Management Entity, y su función es proporcionar información a la capa WDP de los cambios en el entorno del dispositivo que pueda afectar al funcionamiento de WDP. Para que sea posible el dispositivo móvil debe tener las mismas capacidades que las numeradas en WTP. La comunicación entre capas se lleva a cabo por medio de primitivas de servicio, que representan el intercambio de información entre la capa de seguridad y sus adyacentes, de una manera abstracta y sin entrar en la implementaron. Los tipos de primitivas usadas en esta capa (y que ya hemos comentado antes) son: Request, Indication, Response y Confirm, además de: T-Dunitdata: primitiva usada para transferir datos en forma de datagrama. No requiere una conexión preestablecida y puede ser lanzada en cualquier momento. T-Derror: Cuando se produce un error que puede afectar al servicio demandado se informa a la capa superior con esta primitiva. Para implementar el protocolo WDP se necesita: Puerto destino Puerto origen Segmentación y reensamblaje. PROTOCOLOS PORTADORES: son las diferentes portadoras encargadas de transportar los datos entre los dispositivos y la base. Las mas usadas actualmente son CSD, SMS y próximamente GPRS. El elemento wml es la etiqueta de ruta, que identifica todo el deck. Tarjeta define una nueva tarjeta. El elemento id es necesario para la navegación. El elemento tarjeta puede contener solamente p párrafos (con texto, enlaces y demás elementos de texto) o elementos do, que definen un menú de opciones. BREVE INTRODUCCION A WML(Wireless Markup Language) Wireless Markup Language es el lenguaje para crear documentos WAP. XML es el lenguaje elegido para la base de WML debido a que los documentos WAP poseen pequeñas cantidades de RAM y ROM por lo que los datos deben ser estructurados para facilitar la conversión del documento. Las próximas dos líneas se encuentran al principio de cada documento WML. Es la forma que tiene WML para constatar que el documento es un documento XML. <?xml version='1,0'?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> Un documento WML es llamado un deck (cubierta). Una cubierta está compuesta por muchas "tarjetas" (cards). La idea es que el WAP muestre solamente una tarjeta por vez, y los usuarios puedan ir navegando a través de éstas sin tener que hacer un llamado al servidor para un nuevo documento. El elemento go específica un tarea de navegación: <go href="nombredeldeck.wml#cardid"> Variables de WML WML soporta variables globales para guardar información de la sesión. Las variables se introducen con el objetivo de minimizar la interacción con el servidor. Elementos de texto Por supuesto, la habilidad de las variables es la de guardar los datos generados por el usuario. Eso es posible a través de una serie de elementos parecidos a los de HTML: input similar al elemento de HTML. Permite a los usuarios ingresar texto a través del teclado. El atributo name es el nombre de la variable que permitirá hacer esto. select/option lista de opciones de donde el usuario puede elegir, Idéntico al HTML. postfield similar al campo escondido (input hidden field) en los formularios de HTML. name/value: Es mucho mas poderoso que los campos escondidos (hidden fields) de HTML. Debido a la forma de utilización de las variables en WML, usted puede recolectar información contextual en los "postfields" y pasar esta información al servidor. Finalmente, es importante aclarar que WML también soporta algunos elementos tradicionales como por ejemplo small, aunque los primeros aparatos WAP no son suficiente buenos para soportarlos. BIBLIOGRAFÍA: Luis Alberto Vielba Villegas “El protocolo inalámbrico de aplicaciones(WAP)”, 1998 www.hackhispano.com/paginas/phreaking/d_wap_0001.pdf Especificaciones del WAP Forum (www.wapforum.org): o o o o o o o o Wireless Application Protocol Architecture Specification (1998) Wireless Application Environment Overwiew (1999) Wireless Application Environment Specification(1999) Wireless Session Protocol Specification (1999) Wireless Transaction Protocol Specification (1999) Wireless Datagram Protocol Specification (1999) Wireless Transaction Protocol Specification (1999) Wireless Transport Layer Security Specification (1999) WML en interntet: - Tutoriales de WML: http://www.mviva-online.com/etiquetas.htm http://teleline.terra.es/personal/wapfacil/manwml.htm http://asp.programacion.net/tutoriales/aspywap/arquitectura.htm http://www.abcdatos.com/tutoriales/htmlxvwd.html - Editores de WML: http://194.140.40.110/soft/soft_editor_wml.htm http://recursos.hypermart.net/Internet/Wap/Program/