Desmitificando las sesiones en Flex
El tema de las sesiones es una pregunta que cada cierto tiempo suele salir a la luz debido a que practicamente todos venimos del mundo de las aplicaciones web tradicionales. Debido a una pregunta en la lista de correo de MIF me he animado a escribir este artículo.
Ante todo, la pregunta que deberíamos formularnos es: ¿Son necesarias las sesiones en una aplicación RIA con Flex?.
La respuesta es NO. En clientes RIA creados con Flex, al igual que con las aplicaciones cliente-servidor tradicionales, no es necesario el mantener una sesión con el servidor en la forma tradicional que conocemos y que practicabamos con las viejas aplicaciones HTML. De hecho si habeis creado alguna vez una aplicación cliente-servidor…¿habeis necesitado alguna vez el concepto de sesión?. Lo normal es que la respuesta sea negativa, ya que este es un “hack” creado por las necesidades de los clientes ligeros y que ha terminado siendo un vicio heredado que intentamos usar en las nuevas aplicaciones RIA.
En mi experiencia creando aplicaciones RIA (con Flex o Flash) no he encontrado hasta ahora ningún caso de uso en el que necesitase mantener una sesión con el servidor ya que dispongo de un cliente con estado. Es decir el cliente “no pierde la memoria” entre petición y petición al servidor manteniendo dicha información siempre accesible. Por tanto, el uso de sesiones en aplicaciones RIA creadas con Flex es algo que deberiamos ir dejando de lado ya que son innecesarias. En su momento, en la epoca de las aplicaciones basadas en clientes ligeros, era necesario este concepto ya que las aplicaciones no mantenian el estado y cada petición significaba el enviar el identificador de sesión para que el servidor supiese que cliente estaba realizando la petición. De esta forma se podía recoger la información guardada en el servidor para usarla en el procesamiento de la petición en curso. Ahora, la información sensible a la sesión, se guarda en el cliente, por tanto se mantiene activa y viva mientras dura la sesión de ese cliente o, lo que es lo mismo, mientras el cliente Flex permanece en memoria. De forma colateral esto supone un ahorro de memoría (aunque muy pequeño) en el lado del servidor.
En cuanto a temas de seguridad, conviene tener en cuenta que Flex permite añadir las credenciales de un usuario al invocar servicios en el servidor (ver “Passing credentials from client-side components” y el uso de los métodos setCredentials y setRemoteCredentials) securizando aquellos servicios que queramos que solo sean accesibles por determinados usuarios. Además podemos delegar la seguridad al servidor de aplicaciones de forma que sea este el que gestione la autenticación de los usuarios (normalmente mediante un sistema como JAAS, o un API similar)
Además, podemos usar Local Shared Objects (LSOs) para persistir información entre sesiones (si por ejemplo, quereis que el cliente recuerde el último usuario logado y lo escriba al inicio de la sesión en la ventana de login para facilitar al usuario el acceso en sucesivas sesiones).
Aún asi, y para aquellos nostalgicos apegados a antiguas prácticas, hay soluciones para acceder a una sesión HTTP. En OpenAMF teneis la clase RequestContext (org.openamf.RequestContext). En FDS2 buscad por “Working with session data” para saber como se accede a los datos de sesión. Para otros paquetes supongo que también existirá algo implementado por el estilo. El motivo real para que este tipo de soluciones existan es por un lado mantener la flexibilidad dando más posibilidades y a la vez evitar que un recién llegado a esta tecnología la menosprecie por desconocimiento, pero lo recomendado es usar el cliente para guardar la información sensible a la sesión.
Acerca de esta entrada
Usted está leyendo “Desmitificando las sesiones en Flex,” una entrada de MadeInFlex
- Autor: Carlos Rovira
Carlos es un Consultor especializado en Rich Internet Applications y en la Plataforma Flash. Actualmente trabaja en Codeoscopic como Director Tecnológico.
- URL del Autor:
- http://www.carlosrovira.com
- Publicada:
- 01.11.06 / 9pm
- Categorías:
- Artículos
- Entradas relacionadas:
- Transparencias de las presentaciones
- Últimas plazas para mif onSite I
- Próxima parada: MAX 2007 Barcelona
- Directo desde MAX 2006
- Número de visitas:
- 3796
13 Comentarios
Ir al formulario de comentarios | rss (comentarios) [?] | trackback url [?]