domingo, 23 de mayo de 2010

El Entorno Inalámbrico de Aplicaciones


El objetivo del Entorno Inalámbrico de Aplicaciones es construir un entorno de aplicación de propósito general, basado fundamentalmente en la filosofía y tecnología del World Wide Web (WWW). Principalmente, se pretende establecer un entorno que permita a los operadores y proveedores de servicios construir aplicaciones y servicios que puedan utilizarse en una amplia variedad de plataformas inalámbricas de forma útil y eficiente.


De esta forma, la arquitectura del Entorno Inalámbrico de Aplicaciones (en adelante WAE) está enfocado principalmente sobre los aspectos del cliente de la arquitectura del sistema de WAP, esto es, de los puntos relacionados con los agentes de usuario11. Esto es debido a que la parte que más interesa de la arquitectura es aquella que afecta principalmente a los terminales móviles, esto es, a aquellos puntos en los cuales van a estar ejecutándose los diversos agentes de usuario.

Si volvemos sobre la Figura 1, vemos que entre los agentes de usuario localizados en el cliente (en el terminal móvil) y los servidores de información se define un nuevo elemento: Las Pasarelas. Su función es codificar y decodificar la información intercambiada con el cliente, para así minimizar la cantidad de datos radiados, así como minimizar el proceso de la información por parte del cliente.

Basándonos en esta arquitectura, vamos a profundizar un poco más en los componentes de este Entorno Inalámbrico de Aplicación. Tal y como podemos observar en la Figura 5, se divide en dos partes, dos capas lógicas:



* Los Agentes de Usuario, que incluye aquellos elementos como navegadores, agendas telefónicas, editores de mensajes, etc.
* Los Servicios y Formatos, que incluyen todos aquellos elementos y formatos comunes, accesibles a los Agentes de Usuario, tales como WML, WMLScript, formatos de imagen, etc.

Como se puede ver en la Figura, dentro de WAE se separan Servicios de Agentes de Usuario, lo que proporciona flexibilidad para combinar varios Servicios dentro de un único Agente de Usuario, o para distribuir los Servicios entre varios Agentes de Usuario.

Los dos Agentes de Usuario más importantes son el Agente de Usuario para WML y el Agente de Usuario para WTA.

El Agente de Usuario para WML es el Agente de Usuario fundamental en la arquitectura del Entorno Inalámbrico de Aplicación. A pesar de su importancia, este Agente de Usuario no está definido formalmente dentro de esta arquitectura, ya que sus características y capacidades se dejan en manos de los encargados de su implementación. El único requisito de funcionalidad que debe cumplir este Agente de Usuario, es el proporcionar un sistema intérprete a los lenguajes WML y WMLScript, de forma que se permita la navegación desde el terminal móvil.

Por otra parte, el Agente de Usuario para WTA permite a los autores acceder e interactuar con las características de los teléfonos móviles (p. e. Control de Llamada), así como otras aplicaciones supuestas en los teléfonos, tales como agendas de teléfono y aplicaciones de calendario.

El Protocolo Inalámbrico de Sesión


El Protocolo Inalámbrico de Sesión constituye la capa que se sitúa por debajo de la capa de Aplicación, proporcionando la capacidad necesaria para:
* Establecer una conexión fiable entre el cliente y el servidor, y liberar esta conexión de una forma ordenada. 
* Ponerse de acuerdo en un nivel común de funcionalidades del protocolo, a través de la negociación de las posibilidades. 
* Intercambiar contenido entre el cliente y el servidor utilizando codificación compacta. 
* Suspender y recuperar la sesión.

Hoy por hoy, este protocolo ha sido definido únicamente para el caso de la navegación, definiéndose como WSP/B12. Esta implementación está realizada para el establecimiento de una conexión sobre la base de un protocolo compatible con HTTP1.1.
De esta forma, se han definido un conjunto de primitivas de servicio para permitir la comunicación entre la capa de sesión integrada dentro del equipo cliente y la capa de sesión integrada en el equipo servidor. Estas primitivas, junto con una pequeña descripción de las mismas, puede verse en la Tabla 1:


Nombre
Descripción
S-ConnectEsta primitiva se utiliza para iniciar el establecimiento de la conexión, y para la notificación de su éxito
S-DisconnectEsta primitiva se utiliza para desconectar una sesión, y para notificar al usuario de una sesión que esa sesión no se puede establecer, que ha sido desconectada
S-SuspendEsta primitiva se utiliza para solicitar la suspensión de la sesión
S-ResumeEsta primitiva se utiliza para solicitar que se recupere la sesión utilizando para las direcciones el nuevo identificador de punto de acceso de servicio.
S-ExceptionEsta primitiva se utiliza para notificar aquellos eventos que no están asignados a una transacción en particular, ni provocan la desconexión o suspensión de la sesión.
S-MethodInvokeEsta primitiva se utiliza para solicitar una operación que deba ser ejecutada en el servidor.
S-MethodResultEsta primitiva se utiliza para devolver una respuesta a una petición de operación.
S-MethodAbortEsta primitiva se utiliza para abortar una solicitud de ejecución de operación, que no haya sido aún completada.
S-PushEsta primitiva se utiliza para enviar información no solicitada desde el servidor, dentro del contexto de una sesión de forma y sin confirmación.
S-ConfirmedPushEsta primitiva realiza las mismas funciones que la anterior, pero con confirmación.
S-PushAbortEsta primitiva se utiliza para anular una primitiva anterior del tipo S-Push o S-ConfirmedPush.
Tabla 1: Primitivas de Servicio de Sesión
 
Adicionalmente, existen cuatro tipos de cada una de estas primitivas, tal y como puede verse en la Tabla 2:


Tipo
Abreviación
Descripción
RequestreqSe utiliza cuando una capa superior solicita un servicio de la capa inmediatamente inferior
IndicationindUna capa que solicita un servicio utiliza este tipo de primitiva para notificar a la capa inmediatamente superior de las actividades relacionadas con su par, o con el proveedor del servicio
ResponseresEste tipo de primitiva se utiliza para reconocer la recepción de la primitiva de tipo Indication de la capa inmediatamente inferior
ConfirmcnfLa capa que proporciona el servicio requerido utiliza este tipo de primitiva para notificar que la actividad ha sido completada satisfactoriamente.
Tabla 2: Tipos de Primitivas de Servicio. 

Por último, reseñar que cada una de estas primitivas está perfectamente definida dentro de la especificación, tanto desde el punto de vista del diagrama de tiempos en el que se tienen que invocar las primitivas, como desde el punto de vista de los parámetros intercambiados.

El Protocolo Inalámbrico de Transacción

El Protocolo Inalámbrico de Transacción se establece para proporcionar los servicios necesarios que soporten aplicaciones de "navegación" (del tipo petición/respuesta). Es a este dúo petición/respuesta, lo que vamos a denominar como transacción. Este protocolo se sitúa por encima del Protocolo Inalámbrico de Datagramas y, de forma opcional, de la Capa Inalámbrica de Seguridad de Transporte, que serán estudiados posteriormente.

Las características de este protocolo son:
 
* Proporciona tres clases de servicios de transacción: 
       - Clase 0: mensaje de solicitud no seguro, sin mensaje de resultado.
      
- Clase 1: mensaje de solicitud seguro, sin mensaje de resultado.
       - Clase 2: mensaje de solicitud seguro, con, exactamente, un mensaje de resultado seguro.
* La seguridad se consigue a través del uso de identificadores únicos de transacción, asentimientos, eliminación de duplicados y retransmisiones. 
* Seguridad opcional usuario a usuario. 
* De forma opcional, el último asentimiento de la transacción puede contener algún tipo de información adicional relacionada con la transacción, como medidas de prestaciones, etc.
* Se proporcionan mecanismos para minimizar el número de transacciones que se reenvían como resultado de paquetes duplicados.
* Se permiten las transacciones asíncronas.

Al igual que en el protocolo anterior (el protocolo inalámbrico de sección), en la Tabla 3 vamos a ver las primitivas de servicio que sustentan la comunicación entre dos capas de transacciones situadas en dos equipos distintos:



NombreDescripción
TR-InvokeEsta primitiva se utiliza para iniciar una nueva transacción.
TR-ResultEsta primitiva se utiliza para devolver el resultado de transacción iniciada anteriormente
TR-AbortEsta primitiva se utiliza para abortar una transacción existente
Tabla 3: Primitivas de Servicio de Transacción

A modo de ejemplo, vamos a ver en la Figura 6 la concatenación de Primitivas de Servicio de Sesión y de Transacción para el caso de una petición-respuesta:




Para finalizar, vamos a detallar un poco más las principales características de este protocolo:


* Transferencia de Mensajes.Dentro de este protocolo se distinguen dos tipos de mensajes: mensajes de datos y mensajes de control. Los mensajes de datos transportan únicamente datos de usuario, mientras que los mensajes de control se utilizan para los asentimientos, informes de error, etc. pero sin transportar datos de usuario.


* Retransmisión hasta el asentimiento. Esta característica se utiliza para la transferencia fiable de datos desde un proveedor WTP a otro, en caso que haya pérdida de paquetes. A modo de comentario, dejar claro que para reducir lo máximo posible el número de paquetes que se transmiten, este protocolo utiliza asentimiento explícito siempre que sea posible.


* Asentimiento de usuario. El Asentimiento de Usuario permite al usuario de este protocolo, confirmar cada mensaje recibido por el proveedor WTP.


* Información en el Último Asentimiento. Se permite, así pues, enviar información en el último, y únicamente en el último, asentimiento de una transacción. De esta forma, se puede enviar, por ejemplo, información del rendimiento proporcionado por el sistema durante la transacción realizada, etc.


* Concatenación y Separación. Podemos definir concatenación como el proceso de trasmitir múltiples Unidades de Datos del Protocolo (PDU) de WTP en una Unidad de Datos del Servicio (SDU) de la red portadora. Por el contrario, separación es el proceso de separar múltiples PDUs de un único SDU (esto es, el proceso inverso al anterior). El objetivo de estos sistemas es proveer eficiencia en la transmisión inalámbrica, al requerirse un menor número de transmisiones.


* Transacciones Asíncronas. Para un correcto funcionamiento del protocolo, múltiples transacciones deben ser procesadas de forma asíncrona, debe ser capaz de iniciar múltiples transacciones antes que reciba la respuesta a la primera transacción.


* Identificador de la Transacción. Cada transacción está identificada de forma única por los pares de direcciones de los sockets (Dirección fuente, puerto fuente, dirección destino y puerto destino) y por el Identificador de Transacción (TID), el cual se incrementa para cada una de las transacciones iniciadas. Este número es de 16 bits, utilizándose el bit de mayor orden para indicar la dirección.


* Segmentación y re-ensamblado. (opcional). Si la longitud del mensaje supera la Unidad Máxima de Transferencia (MTU), el mensaje puede ser segmentado por el WTP y enviado en múltiples paquetes. Cuando esta operación se realiza, estos paquetes pueden ser enviados y asentidos en grupos. De esta forma, el emisor puede realizar control de flujo cambiando el tamaño de los grupos de mensajes dependiendo de las características de la red.

La Capa Inalámbrica de Seguridad de Transporte

La Capa Inalámbrica de Seguridad de Transporte (en adelante WTLS), constituye una capa modular, que depende del nivel de seguridad requerido por una determinada aplicación. Esta capa proporciona a las capas de nivel superior de WAP de una interfaz de servicio de transporte seguro, que lo resguarde de una interfaz de transporte inferior.

El principal objetivo de esta capa es proporcionar privacidad, integridad de datos y autentificación entre dos aplicaciones que se comuniquen. Adicionalmente, la WTLS proporciona una interfaz para el manejo de conexiones seguras.

Al igual que hemos hecho en los protocolos anteriores, en la Tabla 4 vamos a ver las primitivas de servicio que sustentan la comunicación entre dos capas situadas en dos equipos distintos:


Nombre
Descripción
SEC-UnitdataEsta primitiva se utiliza para intercambiar datos de usuario entre los dos participantes. Sólo puede ser invocada cuando existe previamente una conexión segura entre las direcciones de transporte de los dos participantes.
SEC-CreateEsta primitiva se utiliza para iniciar el establecimiento de una conexión segura.
SEC-ExchangeEsta primitiva se utiliza en la creación de una conexión segura si el servidor desea utilizar autentificación de clave pública o intercambio de claves con el cliente.
SEC-CommitEsta primitiva se inicia cuando el handshake se completa y cualquiera de los equipos participantes solicita cambiar a un nuevo estado de conexión negociado.
SEC-TerminateEsta primitiva se utiliza para finalizar la conexión.
SEC-ExceptionEsta primitiva se utiliza para informar al otro extremo sobre las alertas de nivel de aviso.
SEC-Create-RequestEsta primitiva se utiliza por el servidor para solicitar al cliente que inicie un nuevo handshake.
Tabla 4: Primitivas de Servicio de Capa de Seguridad 

Hemos hablado anteriormente del proceso de establecimiento de una sesión segura o handshake. En la siguiente figura podemos ver este intercambio de primitivas:

 
El Protocolo Inalámbrico de Datagramas

El Protocolo Inalámbrico de Datagramas (en adelante WDP 21) ofrece un servicio consistente al protocolo (Seguridad, Transacción y Sesión) de la capa superior de WAP, comunicándose de forma transparente sobre uno de los servicios portadores disponibles.

Este protocolo ofrece servicios a los protocolos superiores del estilo a direccionamiento por número de puerto, segmentación y re-ensamblado opcional y detección de errores opcional, de forma que se permite a las aplicaciones de usuario funcionar de forma transparente sobre distintos servicios portadores disponibles. Para ello, se plantea una arquitectura de protocolo como el que se muestra en la Figura 8:
Al igual que hemos hecho en los protocolos anteriores, en la Tabla 5 vamos a ver las primitivas de servicio que se utilizan en este protocolo:


Nombre
Descripción
T-DUnitdataEsta primitiva es la utilizada para transmitir datos como datagramas. No requiere que exista una conexión para establecerse.
T-DErrorEsta primitiva se utiliza para proporcionar información a la capa superior cuando ocurre un error que pueda influenciar en el servicio requerido.
Tabla 5: Primitivas de Servicio de la Capa de Datagramas

Por último, vamos a ver la arquitectura de este protocolo dentro de la arquitectura global de WAP, para el caso de utilizarse GSM como servicio portador, que es el protocolo que más nos puede interesar por su amplia implantación en los sistemas de comunicaciones móviles telefónicas existentes hoy en día.




Hernández Caballero Indiana
Asignatura: CRF
Fuente:http://www.richardcrebeck.com/cclca/mantenimiento/wap.pdf

No hay comentarios:

Publicar un comentario