55
Capítulo II: Análisis Capítulo II: Análisis 1 – Planteamiento del problema El mercado de la telefonía móvil es un sector en constante evolución. Cada vez aparecen terminales con mayor capacidad de proceso, mas memoria y capaces de transmitir datos a mayor velocidad. Por otro lado, la tecnología 3G está presente casi en la totalidad de los móviles, por lo que prácticamente todo el mundo tiene acceso a la misma. Esto último, unido al abaratamiento de las tarifas de datos, está consiguiendo que la gente acceda, cada vez más, a Internet desde su móvil. El principal problema del acceso móvil a Internet son precisamente las limitaciones del dispositivo. Un ejemplo son las pantallas, que generalmente suelen ser pequeñas. Si a esto unimos que la gran mayoría de páginas web están pensadas para acceder únicamente desde un PC, podemos encontrarnos con imágenes demasiado grandes que requieren del uso de scroll para verlas en su totalidad o con textos en los que no se puede visualizar una línea completa sin hacer scroll. También suele ocurrir que los contenidos están estructurados de tal forma que puede resultar un poco caótico moverse por la página. Imágenes 17 y 18: Ejemplos de páginas no adaptadas Otro problema es la gran variedad de dispositivos que existen. Cada uno posee no solo una resolución de pantalla distinta, sino que son capaces de soportar tecnologías distintas, como pueden ser JavaScript y Flash y poseen distintos grados de compatibilidad con XHTML. También pueden ser muy distintas las capacidades de reproducción multimedia, soportando unos formatos y no otros, y un largo etcétera. Esto, en algunos casos, hace que las páginas supuestamente “optimizadas para móviles”, acaben siendo muy pobres visualmente, para obtener una alta compatibilidad, o visualmente muy 30

Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Capítulo II: Análisis

1 – Planteamiento del problema

El mercado de la telefonía móvil es un sector en constante evolución. Cada vez aparecen terminales con mayor capacidad de proceso, mas memoria y capaces de transmitir datos a mayor velocidad.

Por otro lado, la tecnología 3G está presente casi en la totalidad de los móviles, por lo que prácticamente todo el mundo tiene acceso a la misma.

Esto último, unido al abaratamiento de las tarifas de datos, está consiguiendo que la gente acceda, cada vez más, a Internet desde su móvil.

El principal problema del acceso móvil a Internet son precisamente las limitaciones del dispositivo. Un ejemplo son las pantallas, que generalmente suelen ser pequeñas. Si a esto unimos que la gran mayoría de páginas web están pensadas para acceder únicamente desde un PC, podemos encontrarnos con imágenes demasiado grandes que requieren del uso de scroll para verlas en su totalidad o con textos en los que no se puede visualizar una línea completa sin hacer scroll. También suele ocurrir que los contenidos están estructurados de tal forma que puede resultar un poco caótico moverse por la página.

Imágenes 17 y 18: Ejemplos de páginas no adaptadas

Otro problema es la gran variedad de dispositivos que existen. Cada uno posee no solo una resolución de pantalla distinta, sino que son capaces de soportar tecnologías distintas, como pueden ser JavaScript y Flash y poseen distintos grados de compatibilidad con XHTML. También pueden ser muy distintas las capacidades de reproducción multimedia, soportando unos formatos y no otros, y un largo etcétera.

Esto, en algunos casos, hace que las páginas supuestamente “optimizadas para móviles”, acaben siendo muy pobres visualmente, para obtener una alta compatibilidad, o visualmente muy

30

Page 2: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

atractivas, pero solo compatibles con unos pocos de modelos.

2 – Planteamiento de las necesidades

El objetivo principal de este proyecto es la creación de una plataforma o sistema que tenga en consideración las características anteriores.

Éste constará de portal web, al que se le añadirán distintas funcionalidades para permitir una navegación adecuada con dispositivos móviles, por lo que será necesario algún tipo de adaptación.

Para ello no es suficiente con crear un portal web al uso, sino que debemos de apoyarnos en herramientas que nos faciliten la adaptación del contenido a dispositivos móviles. Además, deseamos dotar al sistema de contenido dinámico con el objetivo de aprovechar el contenido de otras webs con el objetivo de hacerlo más atractivo. Además, de esta forma, podremos añadir nuevas funcionalidades que ofrezcan otras webs.

Imagen 19: Ejemplo de adaptación y no adaptación

En primer lugar debemos elegir qué software de base vamos a usar. Para cada uno de los componentes del sistema realizaremos un pequeño estudio, en el que analizaremos los diferentes alternativas disponibles, para elegir la que mejor se adapte a nuestras necesidades, teniendo en consideración características como la disponibilidad de documentación, soporte, portabilidad entre distintos sistemas operativos, facilidad de uso, lenguajes de programación, disponibilidad de módulos adiciones que aporten mayor funcionalidad, etc., haciendo especial hincapié en todo software que esté basado en código libre.

Se tendrá en consideración que la plataforma que creemos será ampliable, por lo que se expondrán una serie de herramientas de desarrollo para la creación de nuevos módulos que hagan uso de los demás elementos de la plataforma.

Teniendo en cuenta las consideraciones anteriores deberemos hacer la siguiente elección métodos de funcionamiento y módulos del sistema:

● Método de adaptación a los dispositivos móviles.

31

Page 3: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

● Portal CMS, que servirá de base para los módulos que se van a crear.

● Base de datos del portal y de los módulos que la requieran.

● Servidor de aplicaciones para las aplicaciones que lo requieran.

● Técnicas de generación de contenido dinámico.

● Entorno de desarrollo.

3 – Evaluación de las posibilidades

3.1 - Método de adaptación

Debido a las características propias de un dispositivo móvil, para visualizar una página web en el mismo es necesario, en la gran mayoría de los casos, realizar algún tipo de adaptación. Ésta adaptación puede ser realizada y entendida de muy diversas maneras, dando lugar a distintos “tipos”.

3.1.1 – Adaptación realizada en el terminal

En primer lugar consideramos el caso de la adaptación realizada en el propio terminal. Podría considerarse que este es un caso de no-adaptación, pero cuando se accede desde un dispositivo móvil a cualquier web, el terminal siempre acaba realizando alguna transformación que podemos considerar, en mayor o menos medida, una adaptación.

Diagrama 6: Adaptación realizada en el terminal

Es el navegador quien, tras solicitar la página solicitada, la analiza y la procesa. En este punto puede realizar algunas transformaciones, como la desactivación de parte del código de la página

32

Page 4: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

para que, aunque no se visualice como en un PC, se pueda mostrar parte del contenido. Como esta “adaptación” depende tanto del navegador, como de la capacidad de proceso del terminal, no se puede confiar en la misma para una correcta visualización.

3.1.2 – Portal paralelo o especializado

Una forma de despreocuparse de si un dispositivo móvil puede visualizar correctamente o no un portal que hayamos diseñado, consiste en crear otro similar, específicamente diseñado para estos terminales, usando una serie de estándares que garanticen una correcta visualización del mismo. Lógicamente, este portal no será igual de atractivo visualmente, ya que se tratará de una versión “limitada” del portal original.

Para ello incluso existe un tipo de dominio específico, el .mobi, que solo se concede después de comprobar que cumple con una serie de requisitos técnicos y de accesibilidad entre los que están el uso de XHTML-MP (WAP 2.0) en el portal, para garantizar la compatibilidad con una gran cantidad de terminales móviles.

Imágenes 20 y 21: msn.mobi y es.msn.com

Esta opción es, por definición, con la que obtiene un mejor resultado, al menos en cuanto a compatibilidad. El principal problema viene por la diversidad de terminales que existen el mercado. Si comparamos un terminal de gama media con uno de gama alta último modelo podremos observar varias cosas.

Imaginemos que el portal esta implementado con un determinado lenguaje que es soportado por ambos terminales. Probablemente, el terminal de gama alta soporte otros estándares con los que la visualización y/o la navegación sea más cómoda, o simplemente que sea capaz de soportar algún tipo de tecnología que mejore visual o funcionalmente una página web, como flash. En ese caso se estaría infrautilizando la capacidad del dispositivo.

Por otro lado, si se opta por la construcción de un portal paralelo hay que tener en cuenta que

33

Page 5: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

habría que mantener 2 portales independientes, lo cual es algo muy costoso que generalmente no compensa crear ni mantener.

En definitiva, con el uso de portales paralelos se consigue un tipo de compatibilidad “a la baja”, a cambio de sacrificar el potencial de unos terminales por la compatibilidad con la mayoría de ellos y de un incremento notable de costes.

3.1.3 – Adaptación del contenido

Existe una tercera opción que consiste en la adaptación del contenido. En los portales que usan este tipo de adaptación, es usual usar una estructura sencilla, tanto en la portada como dentro de cada página, con el objetivo de que la visualización con un terminal de gama media sea aceptable, aunque visualmente rica.

La gran diferencia con los anteriores tipos de adaptación es que en este caso el portal es el mismo para PC y para dispositivos móviles. La única diferencia está en que los contenidos mostrados en ambos casos son ligeramente distintos.

Según la forma en la que se genere el contenido “adaptado” podemos distinguir entre los siguientes tipos de adaptación del contenido.

3.1.3.1 – Adaptación estática del contenido

En el caso de la adaptación estática existen diferentes “versiones” del mismo contenido, ya sea diferentes textos de un mismo artículo, imágenes a distintas resoluciones, o cualquier otra cosa. Según el dispositivo de acceso a la página en cuestión se mostrará una versión u otra del contenido.

Imagen 22: Adaptación estática de contenido

34

Page 6: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Por ejemplo, si queremos acceder a un determinado artículo sobre algún tema desde un PC, se mostrará el texto con una determinada tipografía, una determinada imagen y una serie de opciones. En el caso de que accedamos desde un terminal móvil de gama alta, podemos mostrar el mismo artículo, con un tamaño de letra algo más pequeño, la misma imagen, pero con menor resolución y solamente algunas opciones. Finalmente, si el dispositivo es de gama media o baja podemos mostrar el artículo con el menor tamaño de letra posible, una imagen pequeña y no ofrecer ninguna opción adicional.

El principal problema de este modo de adaptación es que es necesario crear previamente todas las copias o versiones del contenido, lo cual puede llegar a ser muy engorroso al no hacerse con un proceso automático. También implica tener que preparar varias copias de un determinado contenido.

3.1.3.2 – Adaptación dinámica del contenido

Cuando se usa este tipo adaptación, no es necesario disponer previamente de diferentes versiones de los contenidos. En lugar de ello, existe una capa intermedia que se encarga de la adaptación.

En el momento en el que se realiza una solicitud de cualquier página, imagen, archivo multimedia, etc. en definitiva, de cualquier elemento del portal, esta capa se encarga de obtener dicho elemento y, si es necesario, generar otro que este especialmente adaptado a las características del dispositivo que realiza la petición.

Por ejemplo, imaginemos el caso que existe un documento, un video en formato “.avi” y una persona intenta acceder a él desde un dispositivo que no soporta dicho formato. En esta situación, esta “capa de adaptación” se daría cuenta de que el formato del video no está soportado por el terminal. Posteriormente buscaría en algún tipo de base de datos un formato de video soportado, como 3GP, realizaría la conversión de manera automática en tiempo real (si no existía ya en caché) y serviría el video, que sería visualizado correctamente en el terminal.

Imagen 23: Adaptación dinámica de imágenes en tiempo de ejecución

35

Page 7: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

De esta forma nos aseguramos que siempre vamos a poder realizar una adaptación correctamente, sin tener que preocuparnos de tener contenido duplicado, como imágenes a varias resoluciones, audio y video con distintos formatos y calidades, etc. Podemos optimizar el acceso desde cualquier tipo de dispositivo, pero siempre y cuando tengamos toda la información sobre características y compatibilidades de todos los modelos de dispositivos desde los que se accedan al portal.

3.2 – Esquema general

Dependiendo del método de adaptación elegido y de los sistemas intermedios que intervengan en el proceso de adaptación, el esquema real del sistema puede llegar a ser muy distinto. No obstante se mostrará un esquema general de alguna posibilidad de implementación.

3.2.1 – Peticiones de forma secuencial

En el caso que se presenta tenemos los diferentes subsistemas configurados de forma en los que las llamadas se hacen de forma secuencial.

Diagrama 7: Petición de forma secuencial

36

Page 8: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Cuando el dispositivo móvil realiza una petición de acceso al portal para visualizar algún tipo de contenido, éste hace una llamada a la capa de adaptación, pasándole como parámetros el contenido solicitado y el modelo del terminal, para realizar una adaptación optimizada al mismo.

Seguidamente, desde la desde la capa de adaptación, se realiza una petición al sistema encargado de obtener el contenido de forma dinámica.

El contenido obtenido no está adaptado, puesto que el sistema de extracción de contenido externo no conoce el destino final de la información que está obteniendo. Una vez que este sistema completa el proceso de petición del contenido original le pasa el mismo a la capa de adaptación, que hace un análisis de compatibilidad del contenido teniendo en cuenta las características del dispositivo y las tecnologías soportadas por el mismo y adapta, dentro de sus posibilidades, el contenido a las características y capacidades del dispositivo móvil.

Una vez realizada dicha tarea, el portal responde a la petición del dispositivo, mostrándole el contenido adaptado a sus características, de forma totalmente transparente al mismo.

3.2.2 – Peticiones de contenido y adaptación independientes

Este esquema de funcionamiento es similar al anterior. La principal diferencia estriba en la independencia de los módulos de obtención de contenido y adaptación.

Diagrama 8: Petición de contenido y adaptación independientes

Según este esquema, es el propio portal quien se encarga de coordinar ambas tareas. En primer lugar, el portal realiza una petición al módulo de extracción dinámica de contenido externo y espera la respuesta. Una vez recibido el contenido sin adaptar, debe realizar una llamada al

37

Page 9: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

módulo de adaptación, debiendo de existir un proceso de control para sincronizar ambas tareas.

Una vez obtenido el contenido adaptado se muestra al dispositivo que realizó la petición, de forma transparente al mismo.

Como observamos, la capa de adaptación deja de ser una “caja negra” de la que se obtiene el contenido listo para ser entregado al portal.

Aunque ahora el portal se encarga de más tareas, (ahora no solo realiza una petición, sino 2 de forma coordinada), la modularidad otorgada puede facilitar la sustitución y/o mejora de dichos subsistemas, al tratarse de módulos independientes.

3.2.3 – Sistema de adaptación independiente

En los ejemplos anteriores la extracción de contenidos y su adaptación estaban integrados en la funcionalidad que ofrecía el portal, por lo que eran transparentes de cara al terminal móvil.

Diagrama 9: Sistema de adaptación independiente

En este esquema de funcionamiento, para el usuario final, todo el proceso de extracción de contenido externo y de adaptación es transparente, pero no totalmente para el dispositivo móvil.

38

Page 10: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Al igual que en los casos anteriores, desde el terminal móvil se hace la petición de una página o contenido al portal y éste, usando el sistema de extracción de contenido, obtiene parte del mismo.

Realmente lo que se obtiene es una página HTML en las que las imágenes y objetos multimedia no están físicamente, sino que solo aparecen las URL donde localizarlos. Dichas URL no llegan al terminal móvil, ya que el contenido al que enlazan no está adaptado. En su lugar pasan por una capa de pre-adaptación.

La capa de pre-adaptación únicamente se encarga de modificar las URL de localización del contenido. El objetivo de esta acción será redirigir las peticiones de imágenes y objetos multimedia a un sistema de adaptación. En las URL aparecerá como destino el propio sistema de adaptación, pero se le pasarán por parámetros la ubicación real del elemento a adaptar y la información necesaria para la adaptación.

Cuando se resuelvan las URL en terminal móvil, hará la llamada al sistema de adaptación, que obtendrá el recurso solicitado y aplicará las transformaciones necesarias. Una vez obtenido el contenido final, devolverá el resultado al terminal móvil y se mostrará correctamente por la pantalla.

3.3 – Gestor de portales

En el mercado hay una gran cantidad de CMS de calidad, tanto comerciales como de código abierto. En nuestro caso, solo analizaremos alternativas de código libre por las razones esgrimidas con anterioridad (ver Cap I Aptdo 8).

3.3.1 – Joomla!

Joomla es un sistema gestor de contenidos dinámicos (CMS o Content Management System) que permite crear sitios web de alta interactividad, profesionalidad y eficiencia. La administración está enteramente basada en la gestión online de contenidos.

El término gestión online alude al hecho de que todas las acciones que realizan los administradores del sitio web, ya sea para modificar, agregar, o eliminar contenidos se realiza exclusivamente mediante un navegador web conectado a Internet, es decir, a través del protocolo HTTP (Protocolo de transferencia de hipertexto).

Tipos de webs que se pueden crearJoomla permite crear sitios web de noticias, sitios corporativos, sitios web de presencia, portales

39

Page 11: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

comunitarios, e incluso también puede crearse sistemas que funcionen en redes cerradas (Intranets) para gestionar información interna, como clientes o usuarios, de compañías o empresas de negocios.

Conocimientos previos requeridosPara desarrollar un sitio web sobre este sistema es preciso poseer conocimientos sobre diseño web y programación, pero para la administración solo se necesita una mínima capacitación sobre el manejo del programa.

La interfaz administrativa es bastante sencilla, lo que permite que cualquier persona pueda administrar sus propios contenidos web sin la necesidad de poseer conocimientos técnicos, sin saber lenguaje HTML, y sin recurrir a un administrador cada vez que quiera actualizar cualquier cosa.

Todos los aspectos técnicos del sistema están ocultos al usuario común, facilitando la tarea de administración y edición de contenidos.

Tecnologías utilizadasEstá programado en lenguaje PHP (Hypertext Pre Processor) y SQL (Structure Query Language). Utiliza bases de datos relacionales, más específicamente MySQL. Tanto PHP como Mysql son programas Opensource de libre distribución y uso.

Al estar basados en la filosofía opensource funcionará mejor en plataformas Linux/Unix y en servidores HTTP Apache. A pesar de ello, también funciona en plataformas Windows con servidores IIS (Internet Information Server, de Microsoft), aunque no con toda su potencia y funcionalidades

El funcionamiento interno del portal se basa principalmente en:

● La base de datos Mysql: Es aquí donde se guarda toda la información y la mayor parte de la configuración del sistema, de una forma ordenada y en distintas tablas, las cuales cada una de ellas almacena información específica y determinada.

● Un sistema de archivos PHP: son los que ejecutan las acciones de consulta y realizan modificaciones en la base de datos convirtiendo los datos en páginas web interpretables por los navegadores web y perfectamente inteligibles para los usuarios finales y administradores.

Existen también otro tipo de archivos que realizan importantes tareas, como archivos XML, scripts Javascript JS, CSS, etc. pero el motor fundamental de Joomla son los dos enunciados anteriormente.

Tipo de distribuciónEste software es de uso gratuito, de libre distribución, y de código abierto. El mismo se usa y distribuye bajo licencia pública general (GNU/GLP).

Esto implica que:

● Es gratuito● Se puede redistribuirlo y compartirlo bajo ciertas condiciones● Se permite modificarlo, adaptarlo y customizarlo, así como distribuir las modificaciones o

40

Page 12: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

personalizaciones que se hagan siempre que se respete la licencia GNU/GLP● Está permitido ofrecer servicios de creación, configuración y desarrollo de páginas web.

Imagen 24: Portal creado con Joomla!

Características de CMSSólo es necesario ocuparse de la información que se desee publicar, ya que el sistema gestiona todos los demás detalles técnicos y administrativos.

● Organización del sitio web: Los contenidos del portal están organizados en secciones y categorías, lo que facilita la navegabilidad para los usuarios y permite crear una estructura sólida, ordenada y sencilla para los administradores. Desde el panel administrador se pueden crear, editar y borrar las secciones y categorías del portal de la manera más conveniente.

● Publicación de Contenidos: Se pueden crear un número ilimitado de páginas. Éstas se pueden modificar desde un editor que permite formatear los textos con estilos e imágenes. Los contenidos son totalmente editables y modificables.

● Escalabilidad e implementación de nuevas funcionalidades: Se ofrece la posibilidad de instalar, desinstalar y administrar componentes y módulos, que agregarán nuevos servicios de valor, como por ejemplo: galerías de imágenes, foros, newsletters, clasificados, etc.

● Administración de usuarios: En el portal se almacenan datos de usuarios registrados, existiendo la posibilidad de enviar correos masivos. La administración de usuarios es jerárquica, y los distintos grupos de usuarios poseen diferentes niveles de permisos dentro de la gestión y administración del portal.

41

Page 13: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

● Diseño y aspecto estético del sitio: Es posible cambiar todo el aspecto del sitio web tan solo con un par de clicks, gracias al sistema de plantillas que se utiliza.

● Navegación y menú: Totalmente editables desde el panel administrador.● Administrador de Imágenes: Posee una utilidad para subir imágenes al servidor y

usarlas en todo el sitio.● Disposición de módulos modificable: La posición de los módulos puede ubicarse como

se prefiera.● Encuestas: Posee un sistema de votaciones y encuestas dinámicas con resultados en

barras porcentuales.● Feed de Noticias: Trae incorporado un sistema de sindicación de noticias por RSS/XMS

de generación automática.● Publicidad: es posible hacer publicidad en el sitio usando el Administrador de Banners● Estadísticas de visitas: con información de navegador, SO, y detalles de las páginas mas

visitadas.

Imagen 25: Editor de contenido Joomla!

Características de publicación de páginas web en Joomla:

● Automatización en la publicación: Las páginas y documentos pueden programarse con fecha de publicación y fecha de caducidad. Es decir un documento puede programarse para que se publique automáticamente al llegar una determinada fecha, y luego despublicarse también de forma automática en otra fecha.

● Archivo e historial: Las páginas o publicaciones que hayan perdido vigencia pueden enviarse a un "archivo" de almacenamiento, sin necesidad de tener que borrarlas. Esto permite también dar la posibilidad de consultar artículos de un historial.

● Formatos de lectura: Cada documento puede ser generado automáticamente en formato PDF, en versión imprimible, y en XML.

● Envío por E-mail: Los usuarios del sitio podrán enviar automáticamente a un amigo por

42

Page 14: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

email cada documento publicado.● Valoración de contenidos: Los visitantes del sitio podrán votar la calidad de lo

publicado.● Comentarios: Se da la posibilidad de que los usuarios puedan comentar sus opiniones en

la misma página de contenidos.

Plataformas compatiblesJoomla está basado en el lenguaje PHP. Al ser éste un lenguaje interpretado no es necesario una compilación previa, lo que hace la aplicación portable entre distintos sistemas operativos, ya sea una distribución de Linux, Windows o MacOS.

Estado Actual del ProyectoActualmente está disponible la versión 1.5.15, la última estable de Joomla, que incorpora notables mejoras en el área de seguridad, administración y cumplimiento con estándares W3C. Actualmente cuenta con una gran cantidad de componentes, módulos y plugins, aunque se pueden usar los de la versión anterior (1.0.X).

Resumen:A favor:

● Fácil desarrollo● Interfaz de administración intuitiva● Edición simple de contenido● Gran cantidad de módulos disponibles.● Incorporación fácil de nuevos módulos● Sistema de control de versiones● Posee una gran comunidad de desarrolladores de apoyo● Multi-idioma● Módulos bien integrados

En contra:

● Solo un sitio web por instalación● Categorías solo admiten 2 niveles de profundidad● Roles y permisos limitados● Módulos de pago● Actualización de módulos complicada● Funcionalidad de blogs mediocre

Es posible crear un sitio aceptable de forma rápida, a pesar ser un sistema más lento, poseer una categorización de contenido rígida y unas opciones de configuración y de diseño limitadas.

3.3.2 – Drupal

Drupal es un sistema de gestión de contenido modular y muy configurable.

Es un programa de código abierto, con licencia GNU/GPL, escrito en PHP, desarrollado y

43

Page 15: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

mantenido por una activa comunidad de usuarios. Destaca por la calidad de su código y de las páginas generadas, el respeto de los estándares de la web, y un énfasis especial en la usabilidad y consistencia de todo el sistema.

El diseño de Drupal es especialmente idóneo para construir y gestionar comunidades en Internet. No obstante, su flexibilidad y adaptabilidad, así como la gran cantidad de módulos adicionales disponibles, hace que sea adecuado para realizar muchos tipos diferentes de sitio web.

El sitio principal de desarrollo y coordinación de Drupal es drupal.org, en el que participan activamente varios miles de usuarios de todo el mundo.

Características generalesAyuda on-line: Posee sistema de ayuda online y páginas de ayuda para los módulos del núcleo, tanto para usuarios como para administradores.

Búsqueda: Todo el contenido en Drupal es totalmente indexado en tiempo real y se puede consultar en cualquier momento.

Código abierto: El código fuente de Drupal está disponible bajo los términos de la licencia GNU/GPL. Al contrario que otros sistemas de gestión de contenido propietarios, es posible extender o adaptar Drupal según las necesidades.

Módulos: Existe una gran gran cantidad de módulos aportados por la comunidad de Drupal con el objetivo de proporcionar funcionalidades adicionales como 'página de categorías', autenticación mediante Jabber, mensajes privados, bookmarks, etc.

Personalización: Posee un entorno de personalización implementado en el núcleo de Drupal. Tanto el contenido como la presentación pueden ser individualizados de acuerdo las preferencias definidas por el usuario.

URLs amigables: Drupal usa el mod_rewrite de Apache para crear URL que son manejables por los usuarios y los motores de búsqueda.

Gestión de usuariosAutenticación de usuarios: Los usuarios se pueden registrar e iniciar sesión de forma local o utilizando un sistema de autenticación externo como Jabber, Blogger, LiveJournal o otro sitio Drupal. Para su uso en una intranet, Drupal se puede integrar con un servidor LDAP.

Permisos basados en roles: Los administradores no tienen que establecer permisos para cada usuario. En lugar de eso, pueden asignar permisos a un 'rol' y agrupar los usuarios por roles.

Gestión de contenidoControl de versiones: El sistema de control de versiones de Drupal permite seguir y auditar totalmente las sucesivas actualizaciones del contenido: qué se ha cambiado, la hora y la fecha, quién lo ha cambiado, y más. También permite mantener comentarios sobre los sucesivos cambios o deshacer los cambios recuperando una versión anterior.

Enlaces permanentes (Permalinks): Todo el contenido creado en Drupal tiene un enlace

44

Page 16: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

permanente asociado a él para que pueda ser enlazado externamente sin temor a que el enlace falle en el futuro.

Objetos de contenido (Nodos): El contenido creado es, funcionalmente, un objeto (Nodo). Esto permite un tratamiento uniforme de la información. Por ejemplo, promocionar cualquiera de estos objetos en la página principal o permitir, o no, comentarios sobre los mismos.

Plantillas (Templates): El sistema de temas separa el contenido de la presentación permitiendo controlar o cambiar fácilmente el aspecto del sitio web. Se pueden crear plantillas con HTML y/o con PHP.

Sindicación del contenido: Es posible exportar el contenido en formato RDF/RSS para ser utilizado por otros sitios web. Esto permite que cualquiera con un 'Agregador de Noticias', visualice el contenido publicado en la web desde el escritorio.

Imagen 26: Página creada con Drupal

BloggingAgregador de noticias: Drupal incluye un potente Agregador de Noticias para leer y publicar enlaces a noticias de otros sitios web. Incorpora un sistema de cache en la base de datos, con temporización configurable.

Soporte de Blogger API: La API de Blogger permite que el sitio sea actualizado utilizando diversas herramientas, que pueden ser 'herramientas web' o 'herramientas de escritorio' que proporcionen un entorno de edición más manejable.

PlataformaIndependencia de la base de datos: Aunque la mayor parte de las instalaciones utilizan MySQL,

45

Page 17: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

existen otras opciones. Drupal incorpora una 'capa de abstracción de base de datos' que actualmente está implementada y mantenida para MySQL y PostgreSQL, aunque permite incorporar fácilmente soporte para otras bases de datos, excepto para el caso de Oracle.

Multiplataforma: Drupal ha sido diseñado desde el principio para ser multi-plataforma. Puede funcionar con Apache o Microsoft IIS como servidor web y en sistemas como Linux, BSD, Solaris, Windows y Mac OS X. Por otro lado, al estar implementado en PHP, es totalmente portable, al ser éste un lenguaje interpretado.

Múltiples idiomas y Localización: Drupal está pensado para una audiencia internacional y proporciona opciones para crear un portal multilingüe. Todo el texto puede ser fácilmente traducido utilizando una interfaz web, importando traducciones existentes o integrando otras herramientas de traducción como “GNU ettext”.

Administración y AnálisisAdministración vía Web: La administración y configuración del sistema se puede realizar enteramente con un navegador y no precisa de ningún software adicional. La plataforma de administración es totalmente independiente a la de instalación por lo que no importa el Sistema Operativo que se use para administrar el sistema.

Análisis, Seguimiento y Estadísticas: Drupal puede mostrar en las páginas web de administración informes sobre “referrals” (enlaces entrantes), popularidad del contenido, o información de cómo los usuarios navegan por el sitio.

Registros e Informes: Toda la actividad y los sucesos del sistema son capturados en un 'registro de eventos', que puede ser visualizado por un administrador.

Imagen 27: Página de administración de Drupal

46

Page 18: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Características de comunidadComentarios enlazados: Se proporciona un modelo de comentarios enlazados que posibilita seguir y participar fácilmente en la discusión sobre el comentario publicado. Los comentarios son jerárquicos, como en un grupo de noticias o un foro.

Encuestas: En el portal incluye un módulo que permite a los administradores y/o usuarios crear encuestas on-line totalmente configurables.

Foros de discusión: Drupal incorpora foros de discusión para crear sitios comunitarios vivos y dinámicos.

Libro Colaborativo: Esta característica es única de Drupal y permite crear un proyecto o "libro" a ser escrito y que otros usuarios contribuyan contenido. El contenido se organiza en páginas cómodamente navegables.

Rendimiento y escalabilidadControl de congestión: Drupal incorpora un mecanismo de control de congestión que permite habilitar y deshabilitar determinados módulos o bloques dependiendo de la carga del servidor. Este mecanismo es totalmente configurable y ajustable.

Sistema de Caché: El mecanismo de caché elimina consultas a la base de datos incrementando el rendimiento y reduciendo la carga del servidor.

Estado Actual del Proyecto:Actualmente está disponible la versión 7 de Drupal. Esta versión lleva incorporada algunos los módulos más usados, para evitar problemas de integración. Al ser esta versión relativamente reciente, no existen una gran cantidad de módulos compatibles, razón por la que se sigue usando Drupal 6.

Resumen: características a favor:• Fácil despliegue inicial.• Edición de contenido simple.• Configuración muy flexible.• Sistema de control de versiones.• Permite múltiple niveles de categorías, integrado con un sistema de etiquetas muy fácil de

usar.• Sistema de URL amigables.• Una única instalación de Drupal permite mantener varios portales totalmente.

independientes.• Sistema de permisos altamente configurables.

Características en contra:• Área de administración de apariencia un poco tosca.• Terminología complicada en el apartado de administración.• Añadir un tema visual es complicado, y puede consumir una gran cantidad de tiempo.• Puede llegar a ser muy difícil encontrar soporte para alguno de los módulos disponibles.• El uso de plantillas está bastante limitado, sobre todo respecto a los menús.

47

Page 19: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Es un CMS muy adecuado para organizaciones que requieran el uso de comunidades. Alto grado de flexibilidad respecto a la categorización y al sistema de permisos asignados a cada rol. Sistema de módulos gratuitos, pero en ocasiones muy complicados de configurar y con bajo soporte. Administración a veces complicada debido a la terminología.

Posee un alto rendimiento, escalabilidad, buen gestor de contenidos y una flexibilidad de diseño significativa, pero requiere mucho tiempo conseguir un sitio profesional.

3.3.3 – Liferay

Liferay es un portal de gestión de contenidos de código abierto escrito en Java. Se creó en 2000 en principio como solución para las organizaciones sin ánimo de lucro, pero con el tiempo se ha convertido en uno de los portales CMS mas usados.

Conceptualmente, un portal Liferay es distinto en su composición a los portales anteriormente descritos, debido a que se incluye en el grupo de los “portales altamente estandarizados”.

Liferay puede ser considerado como un “contenedor de portlets”, ya que dentro del portal, la interfaz está compuesta por portlets. Los portlets son una serie de módulos interactivos y relativamente independientes, que aportan alguna funcionalidad concreta y está escritos siguiendo un determinado estándar. Dichos portlets siguen una arquitectura orientadas a servicios (SOA) y son desarrollados de forma independiente.

Conocimientos previos requeridosPara administrar un sitio con Liferay no es necesario disponer de ningún conocimiento concreto sobre lenguajes de programación. Solo se necesita tener unas nociones sobre el sistema de permisos, usuarios, roles y comunidades, que son propios de un portal Liferay y sobre la gestión de contenidos.

La interfaz de usuario es muy sencilla y amigable. Todos los aspectos técnicos del sistema están ocultos al usuario común, y han sido resueltos, haciendo las cosas sencillas para que los administradores y editores de contenidos puedan prescindir casi completamente de una capacitación técnica especializada.

Tipo de distribuciónEl software Liferay es de uso gratuito, de libre distribución, y de código abierto (OpenSource). El mismo se usa y distribuye bajo licencia pública general (MIT).

Esto implica que:● Es gratuito

48

Page 20: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

● Se puede redistribuirlo y compartirlo bajo ciertas condiciones● Se permite modificarlo, adaptarlo y customizarlo, así como distribuir las modificaciones o

personalizaciones que se hagan siempre que se respete la licencia.● Está permitido ofrecer servicios de creación, configuración y desarrollo de páginas web.

Imagen 28: Portal básico creado con Liferay

Características principalesLiferay, actualmente posee 3 características fundamentales

● Es una plataforma para portales empresariales basados en las especificaciones JSR-168/JSR 286 y con otras características que lo hacen muy útil.

● Liferay usa el estándar JSR-170 para su sistema de gestión de contenido (CMS) y contenido web (WCM).

● Basado en software colaborativo y social. (blogs, calendarios, correo, foros, encuestas, feeds de RSS, Wiki, etc.) .

Características● Funciona en la mayoría de los servidores de aplicaciones, contenedores de servlets, base

de datos y sistemas operativos.

● Administración completa del portal online.

● Usa Java, J2EE y tecnologías de la Web 2.0.

● Usa un framework basado en arquitectura basada en servicios (SOA) abierto.

49

Page 21: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

● Cumple las especificaciones JSR-168/JSR-286 (portlets).

● Alta usabilidad; incorpora más de 60 portlets a los que hay que añadir los disponibles de aportados por la comunidad y la posibilidad de desarrollarlos fácilmente.

● Páginas personalizadas para cada usuario.

● Soporte multi-idioma.

● Integración con LDAP y soporte con Single Sign On (SSO).

● Sistema de permisos granular basados en roles.

● Configuración y creación de páginas simples, usando un sistema de clicks y arrastre de portlets.

● Capacidad de búsqueda y etiquetado de contenidos.

● Sistemas de CMS, WCM, colaborativos y de redes sociales integrados.

Gestor de contenidos (Journal)Como se ha comentado, un portal de Liferay lleva integrado un gestor de contenidos (CMS) y contenido web (WCM). Para hacer uso del mismo existen varios portlets o funcionalidades que facilitan el manejo de toda la información y contenidos relacionados con el mismo.

● Workflow de publicación.

● Fechas de publicación y expiración de artículos de forma automática.

● Control de versiones.

● Contenido estructurado y contenido XSL.

● Plantillas Velocity para el contenido.

● Editor WYSIWYG para la edición del contenido.

Portlets de gestión de contenidos:● Biblioteca de documentos y Galería de Imágenes: Carga de imágenes y otros documentos

a través de un único portlet, para poder ser recuperados en cualquier otro portlet del portal o en cualquier artículo de contenido.

● Publicador de contenidos: Publica (muestra) contenido de cualquier tipo existente en el portal, como si fuera un contenido web. El contenido publicado puede establecerse de forma manual o según una serie de normas, como por ejemplo, el más reciente que posea una determinada etiqueta.

● Contenido Web: Crea, edita o muestra un determinado contenido, que estará asociado al portlet. Se permiten añadir metadatos, etiquetas y el uso de plantillas.

● Lista de Contenidos Web: Muestra una lista de artículos asociados a una determinada comunidad.

● Búsqueda de Contenido Web: Autoexplicativo

● Portlets Anidados de Contenidos: Permite al usuario, crear una página con una

50

Page 22: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

determinada distribución al anidar portlets mediante el método arrastrándolos de contenidos dentro de otros.

Imagen 29: Editor de contenido de Liferay

Software colaborativo y socialEn el mundo actual, es muy importante que un portal ofrezca características de la Web 2.0, ya que aportan mucho valor añadido. Liferay se puede englobar en este tipo de portales, ya que dispone de software colaborativo y permite hacer uso de características típicas de redes sociales, a través de las siguientes funcionalidades.

● Blogs.

● Wikis.

● Mail.

● Calendarios, con posibilidad de integración con calendarios de terceros.

● Mensajería instantánea.

● RSS.

● Sistema de avisos y alertas. Ej. Aviso de respuesta a un mensaje en el foro.

● Mensajes a grupos de usuarios.

● Servicios de redes sociales.

● Encuestas.

51

Page 23: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Posibilidades que ofreceLiferay está basado en Java, J2EE y tecnologías de la Web 2.0. Ofrece un framework para ofrecer soluciones integradas para la gestión del contenido y contenido web, permitiendo agregar nuevos contenidos, eliminarlos, actualizarlos o sustituirlos con nuevo contenido.

Además gracias a la posibilidad de añadir múltiples comunidades y grupos de usuarios, podemos crear sitios web y portales colaborativos, como intranets, donde cada comunidad y/o grupo de usuarios puede tener su propio conjunto de foros, Wikis, blogs, bibliotecas de documentos, etc. totalmente independientes de los del resto.

Módulos incorporadosLiferay incorpora una gran cantidad de portlets de todo tipo, como son blogs, calendarios, biblioteca de documentos, galería de imágenes, correo, foros, encuestas, feeds de RSS, Wiki, contenido web y un largo etcétera. Liferay incorpora su propio sistema de gestión de contenidos (CMS) y un sistema gestión de contenido web (WCM).

Contribuciones de la comunidadExiste una gran cantidad de portlets se ofrecen por defecto en cualquiera de las distribuciones del portal, pero además existe una gran comunidad que está constantemente desarrollando portlets de todo tipo que están accesibles en cualquiera de los numerosos repositorios existentes.

Dicha comunidad también ofrece soporte gratuito no profesional constantemente a través del uso de los foros oficiales de la página de Liferay.

Desarrollo de portletsPara mejorar el portal y adaptarlo a unas necesidades específicas, Liferay provee de una serie de herramientas de desarrollo como PluginSDK y el desarrollo usando el llamado entorno de desarrollo extendido.

Con ambos es posible crear nuevos portlets, temas, plantillas, etc. a medida, o incluso modificar cualquiera incorporado en el núcleo para añadir/modificar cualquier funcionalidad que se requiera en el portal.

Estas herramientas son muy fáciles de usar y otorgan una flexibilidad considerable. Tanto la creación de nuevos módulos como su integración con el sistema son bastante sencillos, por lo que las posibilidades de expansión de las funcionalidades del portal son considerables.

Por otra parte, gracias al diseño del sistema, es posible usar el sistema de permisos en los portlet creados. Por ejemplo, usando APIs internas de Liferay, podemos crear nuevos portlets a los que solo puedan acceder los aprobadores de artículos para que hagan uso de una nueva funcionalidad.

Servidores de aplicaciones compatiblesLiferay es compatible con los servidores de aplicaciones más usados. Éste soporte para la mayoría de base de datos hacen que el uso de Liferay se haya extendido enormemente, lo que ayuda a incrementar el tamaño de la comunidad.

• Geronimo + Tomcat

• Glassfsh 3

52

Page 24: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

• Glassfsh 2 for AIX, Linux, OSX, Solaris, Solaris x86 y Windows

• JBoss + Tomcat 4.2 y 5.0

• Jetty

• JOnAS + Jetty/ Tomcat

• Resin

• Tomcat 5.5 y 6.0

• Borland ES 6.5

• JRun 4 Updater 3

• Oracle AS 10

• Orion 2.0

• Pramati 5.0

• RexIP 2.5

• SUN JSAS 9.1

• WebLogic 8.1 SP4, 9.2, 10

• WebSphere 5.1, 6.0, 6.1, 7.0

Base de datos soportadasLiferay está diseñado para soportar la mayoría de de las bases de datos disponibles.

• Apache Derby

• IBM DB2

• Firebird

• Hypersonic

• Informix

• InterBase

• JDataStore

• MySQL

• Oracle

• PostgreSQL

• SAP

• SQL Server

• Sybase

53

Page 25: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Sistemas Operativos compatiblesAl estar basado en Java, y ser este un lenguaje interpretado, no es necesaria una compilación previa, lo que hace la aplicación portable entre distintos sistemas operativos.

• LINUX (Debian, RedHat, SUSE, Ubuntu, etc.)

• UNIX (AIX, FreeBSD, HP-UX, OS X, Solaris, etc.)

• WINDOWS

• MAC OS X

Estado Actual del ProyectoActualmente está disponible la versión 5.2.3, la ultima estable de Liferay, que incorpora notables mejoras en cuanto al rendimiento. Existe una versión 6 que está actualmente en fase de prueba, por lo que no se ha considerado.

Por otro lado Liferay es un sistema maduro y estable. Posee una amplia comunidad que constantemente ofrece soporte en los foros oficiales y que está desarrollando nuevas funcionalidades para el portal.

Resumen de características:● Funciona en la mayoría de los servidores de aplicaciones y contenedores de servlets, base

de datos y sistemas operativos.● Compatible con JSR-268● Disponibilidad de más de 60 Portlets pre-construidos y una gran comunidad de respaldo.● Construido dentro del Sistema de gestión de contenido (CMS) y Suite Colaborativa.● Posibilidad de múltiples instancias de portales con una única instalación.● Posibilidad de múltiples comunidades gestionadas de forma independiente en cada portal.● Gran control sobre permisos basados en roles de usuarios, grupos de usuarios, compañías,

organizaciones, comunidades, e instancias de portales.● Páginas personalizadas para todos los usuarios.● Considerado como uno de los portales más seguros.

3.4 – Sistema de Base de Datos del portalEn un principio se podría suponer que es suficiente con disponer con los archivos de configuración del portal y sus módulos, pero visto que es necesario almacenar una gran cantidad de información tanto de configuración como de datos (configuraciones de módulos, información de usuarios, wiki, blogs, noticias, artículos...) y recuperar dicha información de manera rápida, fiable y eficiente, es requisito el uso de una base de datos.

Existe una gran cantidad de base de datos diferentes, cada una con una serie de características que la hacen óptima según los requisitos del sistema (integridad de datos, velocidad de acceso, seguridad, carga de transacciones, rendimiento, etc.)

A continuación se pasará a analizar las bases de datos más usadas en la actualidad.

54

Page 26: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

3.4.1 – PostgreSQLPostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo licencia BSD. Al igual que ocurre con otros proyectos de software de código abierto, no existe una empresa detrás del desarrollo de PostgreSQL, sino que una comunidad la que se encarga de dicha tarea. En este caso, la comunidad encargada de darle continuidad al proyecto es la PostgreSQL Global Development Group, o PGDG.

PGDG únicamente se encarga únicamente del desarrollo del motor de datos y un pequeño número de utilidades. Para solventar esta carencia, existe gran cantidad de software desarrollado por terceros que potencia la funcionalidad de PostgreSQL.

HerramientasHerramientas de administraciónPaquetes como PgAdmin3, PgAccess o Database Master, facilitan enormemente la administración, gestión y mantenimiento de las bases de datos PostgreSQL y proveen de un entorno visual de escritorio sin ningún coste.

Otra herramienta parecida a la anterior es PhpPgAdmin. En este caso lo que se provee es acceso desde un entono web, por lo que la administración de la base de datos no requiere ningún tipo de instalación en el cliente, tan solo de un navegador web.

Debido a que está desarrollado bajo licencia BSD, es posible la utilización del código para crear un producto propio y ser comercializado. Ejemplos de este tipo son la compañía Enterprise DB (PostgreSQL Plus), que incluye varios agregados y una interfaz de desarrollo basada en Java, CyberTech (Alemania), con su producto CyberCluster de características similares a la anterior.

55

Page 27: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Imagen 30: Herramienta Database Master para PostgreSQL

Otras herramientasGIS (Geographic Information System ): Esta extensión añade soporte de objetos geográficos a PostgreSQL. Permite realizar análisis mediante consultas SQL espaciales o mediante la conexión a aplicaciones de información geográfica.

Herramientas de replicación: Existen herramientas como PgCluster, Slony-I o PyReplica, que permiten la replicación maestros y/o esclavos, para mejorar el rendimiento del sistema ante altas cargas de transacciones.

Imagen 31: Herramienta GIS de PostgreSQL

56

Page 28: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Características de PostgreSQL:Algunas de sus principales características son, entre otras:

Alta concurrencia:Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés), PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de la tabla, antes de ejecutar el commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases de datos, eliminando la necesidad del uso de bloqueos explícitos.

Amplia variedad de tipos nativos:PostgreSQL provee nativamente soporte para:

● Números de precisión arbitraria.

● Texto de longitud ilimitada.

● Figuras geométricas, con una variedad de funciones asociadas.

● Direcciones Ipv4 e Ipv6.

● Direcciones MAC.

● Listas.

● Soporte para la creación de nuevos tipos de datos (posibilidad de ser indexables)

Otras características:● Claves ajenas, también denominadas Llaves ajenas o Claves Foráneas (foreign keys)

● Disparadores. Un disparador o trigger se define en una acción específica basada en algo ocurrente dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características:

● Nombre● El momento en que el disparador debe arrancar● El evento que lo activará● Frecuencia de la ejecución

● Función llamadaCombinando estas características, se obtiene una gran funcionalidad.

● Integridad transaccional

● Herencia de tablas

● Soporte para transacciones distribuidas

Funciones o procedimientosSon bloques de código que se ejecutan en el servidor que pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da. Pueden incluir desde operaciones básicas de programación, tales como bifurcaciones y bucles, hasta las complejidades de la programación orientada a objetos o la programación funcional.

57

Page 29: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Los disparadores son funciones enlazadas a operaciones sobre los datos.

Algunos de los lenguajes que se pueden usar son los siguientes:

● Un lenguaje propio llamado PL/PgSOL● C● C++● Java PL/Java web● PL/Perl● PL/PHP● PL/Python● PL/Ruby● PL/sh● PL/Tcl● PL/Scheme● PL/R (Lenguaje para aplicaciones estadísticas R).

3.4.2 – MySQL

MySQL es un sistema gestor de base de datos relacional (RDBMS) multiusuario que permite el acceso a un determinado número de bases de datos.

Se trata, a diferencia de Oracle, de un proyecto desarrollado bajo licencia GNU, por lo que podemos englobar dentro del grupo de software libre.

Administración e interfaz gráficaMySQL es una herramienta que por defecto no posee una interfaz gráfica. Los usuarios pueden usar las herramientas en línea de comandos o usar algún software que provea un sistema visual para la administración de la herramienta.

Con este objetivo han sido desarrollados bastantes paquetes de software que permiten de una manera sencilla la administración de base de datos MySQL, la creación y modificación de estructuras así como trabajar directamente con los datos almacenados.

Paquete OficialEl entorno de trabajo oficial es MySQL Workbench, una herramienta gratuita desarrollada por MySQL AB, que ofrece una interfaz gráfica para administrar bases de datos MySQL y diseña de forma visual la estructura de la misma de forma parecida a como lo hacían otros paquetes de software de pago.

Paquetes no oficialesComo se comentó, existen una gran cantidad de paquetes de software, tanto libre como privativo,

58

Page 30: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

que integran MySQL y permiten a los usuarios trabajar con la estructura de las bases de datos y los datos de forma visual. Algunos ejemplos de este software son:

● phpMyAdmin: Es una herramienta con interfaz web ampliamente utilizada en numerosos servidores web ya que está desarrollada en PHP y solo requiere la instalación del paquete que lo incorpora para funcionar.

● HeidiSQL: Esta herramienta funciona únicamente bajo el sistema operativo Windows, y se puede conectar a diversos servidores MySQL de forma remota para administrar y modificar prácticamente cualquier elemento de la base de datos; tablas, estructuras, datos, etc.

● Navicat: Es una suite propietaria de aplicaciones desarrolladas para Windows, Linux y Macintosh.

● Otros: Existen otras herramientas similares de carácter privativo que aunque su principal función no es manejar base de datos MySQL, proporciona una herramienta gráfica de gestión. Ejemplos de este tipo son; Adminer, Epictetus, Oracle SQL Developer, SQLPro y Toad, por citar algunos.

Imagen 32: Herramienta phpMyAdmin

Características de MySQL:● Soporta una amplia variedad de sentencias de las definidas en ANSI SQL 99 e incorpora

algunas adicionales.

● Independencia de la plataforma de acceso.

59

Page 31: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

● Procedimientos.

● Disparadores.

● Soporta cursores.

● Distintas vistas.

● Modo estricto.

● Soporte para X/Open XA DPT.

● Motores de almacenamiento independientes: MyISAM para lectura rápida e InnoDB para transacciones e integridad referencial.

● Soporte SSL.

● Caché de peticiones.

● Soporte para búsquedas anidadas.

● Indexación de texto y búsqueda usando el motor MyISAM.

● Librería de base de datos integrada.

● Soporte parcial de Unicode (UTF-8 y UCS-2).

● Backups en caliente.

Instalación:Las bases de datos MySQL se pueden instalar manualmente a partir de la compilación de código fuente. Esta opción suele ser bastante engorrosa, por lo que generalmente se opta por instalar algún paquete de software que incorpora MySQL así como una interfaz gráfica que facilite la administración de la aplicación. Cabe decir que una instalación de este tipo es muy simple pero no cubre configuraciones importantes, como la relativa a la seguridad del sistema, por lo que hay que hacerlo a posteriori.

Escalado:MySQL empezó siendo una alternativa de coste cero para los pequeños sistemas que no se podían permitir el pago de licencias propietarias. A pesar de estos inicios, las últimas versiones son capaces de trabajar a pleno rendimiento con elementos hardware avanzados como sistemas los multiprocesadores para aprovechar toda su capacidad.

No obstante, existen límites de rendimiento con un solo servidor. Si la carga de transacciones es lo suficientemente grande es posible una configuración multiservidor para la base de datos con el objetivo de mejorar el rendimiento y reducir el tiempo de respuesta en grandes sistemas.

Para ello es común usar una configuración maestro-esclavo. El maestro será el único encargado de las operaciones de escritura en la base de datos, mientras que los esclavos se encargarían de las operaciones de lectura. El maestro debe sincronizarse continuamente con los esclavos a fin de detectar un fallo en el sistema de servidores. De esta forma, si el maestro cae, un esclavo asumirá su rol, minimizando el tiempo de respuesta ante fallos.

60

Page 32: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

3.4.3 – Oracle

Oracle es un sistema de gestión de base de datos relacional (RDBMS) desarrollado por Oracle Corporation.

Como la gran mayoría de los productos de Oracle Corporation, este software es de carácter privativo, por lo que es necesario adquirir una licencia de uso antes de empezar a usarlo.

En el mundo de las bases de datos, podemos decir que Oracle uno de los sistemas más completos, aunque también uno de los más complejos de usar, debido a la gran variedad de software disponible y características avanzadas de las que se puede hacer uso.

Características:● Soporta las sentencias definidas en ANSI SQL 99 e incorpora algunas adicionales.

● Independencia de la plataforma de acceso.

● Procedimientos mediante lenguaje PL/SQL con funcionalidades avanzadas, como control condicional y bucles.

● Control y tratamiento de excepciones.

● Disparadores.

● Cursores.

● Mapeo de campos.

● Permite redireccionar búsquedas a otras bases de datos.

● Soporte SSL.

● Caché de peticiones.

● Soporte para búsquedas anidadas.

● Indexación de texto.

● Librería de base de datos integrada.

● Soporta multi-idioma.

● Backups avanzados de esquemas, datos, vistas, tablespaces, tablas, etc. en caliente.

● Incorpora opciones avanzadas para la mejora de la integridad de datos, seguridad, encriptación, y un largo etc.

● Gran cantidad de software adicional que permiten la incorporación de funcionalidades avanzadas de todo tipo.

61

Page 33: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Estructura lógica de Oracle.La estructura lógica de Oracle viene determinada por:

● Uno o más tablespaces (área lógica de almacenamiento).● Los objetos de los distintos esquemas (colecciones de objetos).

Las estructuras de almacenamiento lógico, definen la forma de utilización del espacio físico. Los objetos del esquema y las relaciones entre ellos forman el diseño relacional de la base de datos.

TablespacesUna base de datos se divide en unidades de almacenamiento lógico llamadas tablespaces. Un tablespace se usa para agrupar estructuras lógicas relacionadas.

Esquema 1: Estructura lógica de una base de datos Oracle

Esquemas y objetos del esquema

Un esquema es una colección de objetos de la base de datos. Los objetos del esquema son estructuras lógicas que hacen referencia directa a datos de la base de datos (tablas, vistas, secuencias, procedimientos, índices y enlaces con otras bases de datos).

Bloques de datos, extensiones y segmentosLos bloques de datos Oracle son las estructuras lógicas de más bajo nivel. Una base de datos se almacena en bloques de datos, que se corresponden con un número específico de bytes de espacio en disco. Una extensión es un número específico de bloques de datos contiguos, que se emplea para almacenar un tipo de información específico. Un segmento es un conjunto de extensiones reservadas para una determinada estructura lógica.

62

Page 34: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Estructura física de Oracle.La estructura física está formada por los ficheros del sistema operativo que constituyen la base de datos. Todas las base de datos Oracle constan de tres tipos de ficheros: uno o más ficheros de datos, uno o más ficheros de redo log y uno o más ficheros de control. Proveen el almacenamiento físico de la información de la base de datos.

Ficheros de datos: Los ficheros de datos contienen los datos de la base de datos. Tienen las siguientes características:

● Un fichero sólo puede estar asociado con una base de datos.

● Uno o más ficheros de datos forman una unidad lógica de almacenamiento llamada tablespace.

Ficheros de redo log: La función principal de Redo Log es guardar todos los cambios hechos a los datos. Son críticos en la protección de la base de datos ante fallos; se utilizan en caso de fallo para recuperar la base de datos.

Ficheros de control: Un fichero de control contiene entradas que especifican la estructura física de la base de datos. En particular contiene: el nombre y fecha de creación de la base de datos, los ficheros de datos y de redo logs, además de información de sincronización para el proceso de recuperación de la base de datos.

Seguridad en Oracle.El servidor Oracle provee de control de accesos discrecional, es decir, acceso restringido a la información basado en privilegios.

Oracle gestiona la seguridad de la base de datos usando:

● Usuarios y esquemas de la base de datos.● Privilegios.● Roles.● Ajustes de rendimiento y cuotas.● Límites sobre los recursos.● Auditoría.

Cada usuario tiene un dominio de seguridad, que determina cosas como:

● Acciones (privilegios y roles) disponibles para el usuario.● Cuotas sobre tablespaces.● Límites en los recursos del sistema.

Recuperación de fallos en Oracle.Oracle posee varias estructuras y mecanismos software para proveer operaciones de recuperación de información flexibles ante fallos o errores.

Las estructuras necesarias para proveer la recuperación completa de la instancia son; El Redo Log, los segmentos de rollback, un fichero de control y las copias necesarias de la base de datos.

63

Page 35: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

3.5 – Servidor de aplicaciones

Un servidor de aplicaciones es un software que se encarga de gestionar una serie de aplicaciones que están instaladas (o desplegadas) en un servidor. Generalmente se accede al mismo a través de Internet usando el protocolo HTTP y suele estar optimizado para ofrecer contenido web de forma dinámica.

En el sistema que vamos a desarrollar se necesitará un servidor de aplicaciones que se encargue de manejar las distintas peticiones que se hagan al portal web y a los distintos módulos, si los hubiera, incluidos en el sistema.

Por ello vamos a exponer brevemente las características de los principales servidores de aplicaciones disponibles en la actualidad.

3.5.1 – Apache Tomcat

Apache Tomcat, o simplemente Tomcat, es lo que se denomina un contenedor de servlets. Fue desarrollado bajo el proyecto Jakarta en la Apache Software Fundation. Tomcat implementa las especificaciones de los servlets y de Java Server Pages (JSP) de Sun Microsystems.

A pesar de englobarlo en la categoría de Servidor de Aplicaciones, no es tal. Tomcat es un servidor web con soporte de servlets y JSP

ComponentesDesde la versión 4, Tomcat lleva incorporado Jasper, Catalina, y Coyote.

Catalina: Es el contenedor de servlets de Tomcat, implementado por Sun Microsystems basado en las especificaciones de servlets y JSP.

Coyote: Es el componente conector de HTTP. Soporta el protocolo HTTP 1.1 para servidores web o contenedor de aplicaciones. Es el encargado de escuchar en un puerto TCP para el establecimiento de conexiones, reenviar al motor Tomcat la petición y devolver la respuesta al cliente.

Jasper: Es motor JSP de Tomcat. Desde la versión 5.x Tomcat usa Jasper 2, que implementa la especificación Java Server Pages 2.0. Jasper parsea los archivos JSP para compilar el código Java como servlets y puedan ser manejados por Catalina. Jasper es capaz de detectar cambios en los JSP y recompilarlos en tiempo de ejecución.

Versiones y características:La versión más avanzada de Tomcat es actualmente la 6. A pesar de ello, se sigue usando tanto la

64

Page 36: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

versión 5.5.x como la 6.x debido a que pueden existir problemas de migración entre ambas versiones y a que ciertas aplicaciones funcionan mejor en una versión anterior.

Tomcat 5.x● Implementado a partir de las especificaciones Servlet 2.4 y JSP 2.0.● Recolección de basura reducida.● Capa envolvente nativa para Windows y Unix para la integración de las plataformas.● Análisis rápido JSP.

Tomcat 6.x● Implementado de Servlet 2.5 y JSP 2.1.● Soporte para “Unified Expression Language 2.1”.● Diseñado para funcionar en Java SE 5.0 y posteriores.● Soporte para Comet a través de la interfaz CometProcessor.

Características generales:● Control de acceso mediante usuarios y roles asociados.● Gestor de seguridad para controla el comportamiento de las aplicaciones web.● JNDI● JDBC● Soporte JSP y Servlet.● SSL● SSI● CGI● Soporte para proxies.● Descriptor Mbean.● Clustering.● Balanceo de carga.● Gestión y monitoreo mediante soporte de JMX remoto.● Sistema avanzado de logs.● Hosting virtual.

3.5.2 – JBoss ASJBoss Application Server o JBoss AS es un servidor de aplicaciones libre de código abierto basado en Java EE. Al estar basado de en Java funciona a es capaz de funcionar bajo cualquier sistema operativo con una máquina virtual Java. JBoss AS fue desarrollado por JBoss, una división de Red Hat.

JBoss implementa todo el paquete de servicios de J2EE (EJB, JMS, JTS/JTA, Servlets/JSP, JNDI,

65

Page 37: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

etc.) y también ofrece características tales como los clustering, JMX, Web Services y la integración IIOP, y la principal característica que desde que JBoss está licenciado bajo la LGPL, por lo que puede usarse libremente sin coste alguno en cualquier aplicación comercial o ser redistribuirlo.

Versión:A día de hoy, la versión más actual de JBoss AS es la 6.0. Esta versión soporta tecnologías clave de la especificación Java EE 6, como Java Server Faces 2 y validación de Beans (JSR-303). Además incorpora mejoras en las API y en el balanceo de carga.

Características:● Cumple con una gran variedad de estándares.● Escalabilidad.● Modularidad.● Clustering.● Incrustable, orientado a arquitectura de servicios.● Flexibilidad consistente.● Servicios del middleware para cualquier objeto de Java.● Balanceo de carga.● Caché distribuida.● Despliegue distribuido.● API de despliegue.● API de gestión.● JSP/Servlet 2.1/2.5 (Tomcat).● Java Server Faces 2.● EJB 3 (Enterprise Java Beans).● JNDI (Java Naming and Directory Interface).● I ntegración con Hibernate.● JDBC (Java Data Base Controller).● JTA (Java Transaction API).● Soporte de web-services de Java EE como JAX-WS.● SAAJ.● Integración con JMS (Java Message Service).● JavaMail.● RMI-IIOP (JacORB, Java y CORBA).● JAAS (Java Authentication and Authorization Service).● Integración con JCA (Java Connector Architecture).● Integración con JACC (Java Authorization Contract for Containers).

Cabe destacar que una de las principales características de JBoss es que lleva una versión integrada de Tomcat, por lo que podemos considerar que JBoss es “más avanzado” que éste.

66

Page 38: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

3.5.3 – GlassFish

GlassFish es un servidor de aplicaciones desarrollado por Sun Microsystems que implementa la plataforma JavaEE5, por lo que soporta las últimas versiones de tecnologías como: JSP, JSF, Servlets, EJBs, Java API para Servicios Web (JAX-WS), Arquitectura Java para Enlaces XML (JAXB), Metadatos de Servicios Web para la Plataforma Java 1.0, y muchas otras tecnologías.

La versión comercial es denominada Sun GlassFish Enterprise Server. Es gratuito y de código libre, ya que se distribuye bajo licencia dual CDDL y GNU GPL

GlassFish tiene como base al servidor “Sun Java System Application Server”, un derivado de Apache Tomcat. Además usa un componente adicional llamado Grizzly que usa Java NIO para escalabilidad y velocidad.

Versión actual:La versión más actual de GlassFish es la v3, en la que se añaden nuevas características como la fácil migración de Tomcat a GlassFish. Las otras principales mejoras residen en modularidad, tiempo reducido de inicio, despliegues desde plugins en NetBeans y Eclipse, y preservación de sesiones a través de redespliegues.

Características:

• Código abierto.• Fácil instalación.• Soporte completo con Java EE 6.• Integración total con Netbeans.• EJB 3.1 Lite• JTS/JTA 1.1• Microkernel basado en OSGi.• Tecnologías Java Web (Servlet 3.0, JSP 2.2, JSF 2.0, JSTL 1.2, EL 2.2).• Grizzly/Comet• JPA 2.0, (EclipseLink)• JDBC• JDBC 4.0• JavaDB 10.5.3• Administración mediante consola y web.• Redespliegue rápido de aplicaciones.• OMG CORBA APIs 3.0• Soporte para depuración en otros idiomas.• Common Annotations for Java 1.1.• Dependency Injection for Java 1.0.• Managed Beans 1.0

67

Page 39: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

• Interceptors 1.1• Contexts and Dependency Injection for Java 1.0 (CDI, ex-Web Beans).• Bean Validation 1.0• JAX-RS 1.1• EJB 3.1 API (Soporte para contenedores remotos).• Java EE Connector Architecture 1.6• JAX-WS 2.2• JAXB 2.2• Java Web Services 1.3• Web Services Metadata for the Java Platform 2.1• JMS 1.1• JavaMail 1.4• JACC 1.4• Java Authentication Service Provider Interface for Containers 1.1• Java EE Application Deployment 1.2• J2EE Management 1.1• JAX-RPC 1.1• JAXR 1.0• CORBA 3.0.0• Metro

3.6 – Sistema de BD con características de móviles

En el mundo de los dispositivos móviles existe una gran variedad de terminales distintos, cada uno con una serie de características determinadas. Obviamente, las posibilidades en cuanto a la experiencia de navegación no serán las mismas en un terminal móvil básico de hace años que la obtenida en un terminal último modelo. Necesitamos distinguir los terminales mediante “algo” que permita un tratamiento diferenciado, para optimizar la experiencia de navegación.

Cuando un terminal móvil accede a un portal lo hace indicando su “agente usuario” o “user agent”, un identificador que está asociado al modelo del dispositivo y que será clave a la hora de determinar las características del terminal.

Diagrama 10: Obtención de las características del terminal

68

Page 40: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Debido a lo anteriormente expuesto, necesitamos un sistema que a partir del agente usuario de un dispositivo podamos conocer características del mismo, como pueden ser el tamaño pantalla o si soporta o no una determinada característica, grado de compatibilidad con estándares web, capacidades multimedia u otras capacidades que puedan influir en la navegación web, como la pantalla táctil o en la disponibilidad de un servicio como puede ser la descarga de archivos, tonos de llamada o aplicaciones Java.

Actualmente existen varias herramientas que permiten esto como WURFL o DeviceAtlas.

3.6.1 – WURFL

WURFL es el acrónimo de Wireless Universal Resource FiLe o Archivo Universal de Recursos Inalámbricos.

Se trata tan solo de un archivo XML de configuración que contiene información sobre las capacidades y características de una gran variedad de dispositivos móviles. Dicha información está proporcionada por una gran variedad de fuentes, desde cualquier usuario de la comunidad hasta los propios desarrolladores de los dispositivos.

WURFL no es un archivo estático, sino que se está constantemente actualizando con los modelos que van apareciendo en el mercado y corrigiendo los errores de las versiones anteriores.

CapacidadesContiene más de 500 capacidades y características diferentes para cada dispositivo, que están divididas en unos 30 grupos de capacidades de todo tipo. Existe una herramienta online llamada Tera-WURFL Explorer, En la que es posible ver las características de cualquier dispositivo incluido en WURFL.

ActualizacionesDetrás, existe toda una comunidad que da soporte, tanto para actualización como para el desarrollo de herramientas libres que hacen uso de WURFL.

Existen 2 tipos de actualizaciones. Aproximadamente cada mes, se actualiza el archivo wurfl.xml, el principal. Existe otra actualización, ésta de carácter semanal, en la que aparece una nueva versión de wurfl_patch.xml, que incorpora únicamente los cambios desde la última actualización mensual y/o cambios manuales que se requieran por alguna razón.

Librería WALLWALL (Wireless Abstraction Library by Luca Passani) es una librería de etiquetas JSP que

69

Page 41: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

permite la creación de páginas similares a HTML, compatible con los dispositivos móviles, ya que genera código WML, C-HTML y XHTML dependiendo del agente usuario que realice la petición. Las capacidades del dispositivo se van obteniendo dinámicamente a medida que se van necesitando usando una API. También existe una versión de WALL para PHP llamada WALL4PHP.

ImplementacionesSe puede acceder a las características de WURFL a través de diversas interfaces.

● Java, por medio de WALL.● PHP, por medio de la API WURFL PHP y WALL4PHP .● .NET● Perl● Ruby● Python● XSLT● C++● Apache Mobile Filter.

La API basada en Tera-WURFL, mediante PHP y MySQL, provee de un servicio web a través del cual se pueden hacer consultas a WURFL en cualquier lenguaje de programación que soporte servicios web, como por ejemplo:

● PHP● Perl● Python● JavaScript● ActionScript 3 (Flash / Flex / AIR / ECMAScript)

3.6.2 – DeviceAtlas

DeviceAtlas es una base de datos que contiene información sobre las características de dispositivos móviles de todo tipo, abarcando más de 5500 dispositivos distintos, desde terminales móviles conocidos como otros dispositivos tales como Nintendo DS Lite y Amazon Kindle.

El inconveniente es que se trata de una herramienta de pago, aunque existe una licencia especial gratuita sólo para los desarrolladores de servicios web.

Es la solución adoptada por compañías como MSN Mobile o Morodo.

70

Page 42: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Capacidades:La información sobre las capacidades y características de DeviceAtlas son obtenidas de una gran variedad de fuentes de información. Algunas de ellas son de dominio público, como por ejemplo el proyecto WURFL. Otras fuentes son los propios desarrolladores de dispositivos o los operadores de red.

El objetivo de tener tantas fuentes de información es ofrecer la mayor cantidad de información posible sobre cada uno de los dispositivos existentes, lo cual puede ser muy interesante para los proveedores de servicios a la hora de generar contenido móvil.

Por otro lado trabaja de cerca con el World Wide Web Consortium (W3C) y su descripción de las características que se pueden definir para un dispositivo móvil.

APIs:Para usar esta herramienta es necesario disponer por un lado, de algún tipo de licencia de uso, ya sea la oficial o la de evaluación para desarrolladores web. Por otro lado es necesario disponer de los datos de las características de los dispositivos, y finalmente de la interfaz de programación (API) para acceder a dicha información.

Según la tecnología del servidor web que se esté utilizando, se requerirá el uso de una u otra API. En todos los casos, las APIs son ligeras y fáciles de instalar, y usan caché en las búsquedas para mejorar el rendimiento de las mismas.

Existen APIs disponibles para los siguientes lenguajes:

● Java● PHP● .NET

Actualizaciones:Dependiendo del tipo de licencia adquirida, se ofrecen actualizaciones diarias, semanales o mensuales. Además es posible configurar el sistema para la descarga automática de las actualizaciones existentes.

3.7 – Sistemas de adaptación de imágenes

Como ya se comentó con anterioridad, existen diferentes mecanismos para realizar la adaptación de un portal web a móviles.

Para la adaptación de imágenes podemos almacenar un determinado número de versiones con unos tamaños definidos y servir una versión u otra según el tamaño de la pantalla del terminal.

Otra posibilidad mucho más acertada es hacer una adaptación en tiempo real de la imagen a ofrecer. De esta forma nos aseguramos de que el tamaño de la imagen servida es el óptimo para un determinado modelo de terminal. En este caso debemos disponer de un sistema o herramienta que se encargue de identificar el modelo de dispositivo móvil que realiza la petición, obtener sus

71

Page 43: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

características y posteriormente adaptar el contenido a las mismas.

A continuación se muestran varias herramientas que posibilitan la adaptación dinámica de contenido.

3.7.1 – Apache Mobile FilterApache Mobile Filter (AMF) es un proyecto de código abierto distribuido bajo licencia GNU General Public Licence.

Se trata de un conjunto de módulos de Apache que aporta nuevas funcionalidades relacionadas con el acceso mediante dispositivos móviles.

La principal característica de este módulo es que es capaz de detectar el agente usuario del dispositivo que realiza una petición al servidor donde esté instalado y realizar diversas acciones en función de éste, según la configuración de los módulos de Apache.

Un ejemplo claro de sus posibilidades consiste en discriminar en un acceso web si el dispositivo que intenta acceder es un terminal móvil o no. En caso afirmativo podemos redireccionar al dispositivo a una web específicamente adaptada al mismo.

Otra posibilidad que ofrece es la adaptación dinámica de las imágenes. Apache, cuando reciba una petición de una imagen con unos determinados parámetros, realizará el proceso necesario para adaptarla al dispositivo que realiza la petición.

A continuación se explican las principales características de los módulos que incorpora Apache Mobile Filter.

Descripción de los módulos:● AMFWURFLFilter: Se encarga de detectar las características y capacidades del

dispositivo que intenta acceder al servidor y pasarlas a otra aplicación web como variables de entorno. Para ello hace uso de WURFL.

72

Page 44: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Esquema 2: Funcionamiento de WURFLFilter

● AMFWURFLFilterMemcached: Sistema de caché en modo cluster.● AMFMobileCaching: Sistema de caché de dispositivos móviles.● AMFImageRendering: Redimensiona al vuelo las imágenes en función del tamaño de

pantalla del dispositivo que realiza la petición de la misma.Las dimensiones permitidas son:

● Ancho completo de la pantalla del terminal.

● Porcentaje del ancho de la pantalla

● Tamaño fijo (número de píxeles)

● AMFSwitcher: Redirecciona a otras URL en función del agente de usuario y/o capacidadades del dispositivo.

● AMFCarrierDetection: Módulo de detección de portadora. Detecta la compañía a la que pertenece el terminal móvil que accede al servidor (Vodafone, Orange, etc.).

● AMFTrace: Sistema de trazas para recopilar estadísticas de acceso y para la depuración de aplicaciones.

● AMFDeviceMonitor: Herramienta de administración.

Independencia del lenguaje de programaciónApache Mobile Filter está desarrollado en Perl, pero no es necesario disponer de conocimientos de este lenguaje para hacer uso de él. Al tratarse de un módulo integrado en Apache, no es necesario usar un lenguaje de programación específico, sino que nos sirve de interfaz transparente para acceder las características del dispositivo en cualquier lenguaje de programación (PHP, Java, Ruby, Perl, etc.). De esta forma, además, podemos hacer uso de WURFL usando lenguajes distintos a los soportados por su API.

73

Page 45: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

3.7.2 – GAIA Image Transcoder

GAIA Image Transcoder (GIT o GAIA) es una librería de código abierto, distribuida bajo licencia LGPL, que se encarga de la transcodificación de imágenes y está especialmente enfocada hacia aplicaciones móviles. A pesar de ello no existe ningún problema para ser usada en cualquier otra aplicación y aprovechar así su potencia como herramienta de transformación de imágenes.

Nótese que se ha usado el término transcodificación en lugar de simplemente adaptación. El término transcodificación es bastante más amplio, ya que es el proceso por el cual una representación de un objeto de datos es convertida a otra representación. El ejemplo típico es la conversión de formatos de una imagen, por ejemplo de .gif a .jpeg. El objeto (la imagen) se “ve” igual en ambos formatos aunque los datos físicos de almacenamiento de la misma sean distintos.

Componentes:GAIA está compuesto principalmente por 2 módulos:

● Una biblioteca de trasformaciones de imágenes que está optimizada para la adaptación de imágenes a dispositivos móviles mediante la información proporcionada por el archivo WURFL.

● Una biblioteca de etiquetas JSP muy simple, que permite su uso en entornos J2EE.

Funcionamiento:La librería de transcodificación trabaja como un proceso de transformaciones de forma lineal. Este proceso está basado en una sucesión de “filtros” que se aplican a la imagen según una serie de meta-datos que están asociados a la llamada a GIT y según las características soportadas obtenidas mediante WURFL.

Diagrama 11: Funcionamiento de GAIA

74

Page 46: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Filtros soportados:Entre los filtros soportados están los siguientes:

● Adaptación del tamaño: Redimensiona el alto/ancho de la imagen según las características del dispositivo.

● Cuantización del color: Optimiza la profundidad del color de la imagen, según las capacidades del dispositivo.

● Cambio del formato de archivo: Si el formato de la imagen no está soportado por el dispositivo que accede a la misma, se cambia el formato a uno que si esté soportado.

● Superposición de texto: Permite superponer texto a la imagen, como avisos de copyright.

Requisitos:GIT tiene las siguientes dependencias, que vienen ya integradas en la distribución actual:

● Archivo WURFL y librerías asociadas, que a su vez requieren XOM 1.0+● JAI 1.1.2+● 1JAI Image I/O 1.1+ (beta)● Apache commons-discovery 0.2+● Os cache 2.3+

3.7.3 – Alembik Media Transcoding Server

Alembik Media Transcoding Server, es una aplicación Java que provee servicios de transcodificación de medios de diferentes tipos, ya sean imágenes, audio o video.

Alembik está desarrollado como un proyecto de código abierto cuyo objetivo es proveer de un servidor de transcodificación basado en J2EE que cumpla con las especificaciones del OMA-STI (Open Mobile Alliance's Standard Transcoding Interface o Interfaz Estándar de transcodificación de la Open Mobile Alliance). En esta especificación se definen cómo deben ser las comunicaciones entre cliente y servidor durante este proceso.

Funcionamiento general:La mayor parte del tiempo el servidor está esperando peticiones que contengan una lista de trabajos de transcodificación. Para hacer una petición a Alembik solo se necesita pasarle al servidor la URL de la imagen o el archivo de medios y un conjunto de parámetros para llevar a cabo las tareas de transcodificación.

Los parámetros de transcodificación dependen del tipo de archivo de medios. Se pueden

75

Page 47: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

especificar, por ejemplo, tamaño de la imagen, duración del audio, formato del archivo de salida, etc.

Alembik ofrece 2 mecanismos de cara al envío de parámetros al servidor. La primera opción consiste en pasar el identificador de Agente Usuario, o User-Agent, del dispositivo que realiza la petición. Mediante el uso de WURFL, se obtendrá, un conjunto de parámetros optimizados para las capacidades del dispositivo. El otro mecanismo consiste en pasarle directamente los parámetros con los que queremos realizar la transformación.

Una vez que el servidor obtiene y valida una petición empieza el proceso de transcodificación. El resultado devuelto es siempre un objeto que contiene una lista con los resultados de todos los trabajos de transcodificación. Generalmente, cada resultado se corresponde con una URL que apunta a la ubicación donde se encuentra el archivo transcodificado o con un código de error que indica la razón del fallo durante el proceso.

Diagrama 12: Funcionamiento general de Alembik

76

Page 48: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Modos de trabajo:A la hora de mostrar los resultados tenemos 2 alternativas, dependiendo de si el servidor se ha configurado en modo síncrono o asíncrono. En el modo síncrono, el servidor debe esperar a la finalización de todos los procesos de transcodificación para poder enviar una respuesta. En el modo asíncrono el cliente puede preguntar al servidor por el estado de las peticiones y, en caso de que se hayan completado, obtener la salida del proceso.

Módulos incluidos:El servidor Alembik es una aplicación J2EE constituida por el siguiente conjunto de módulos.

● alembik-api: Es la interfaz Java del servidor. Consiste en una API de servicio, un framework localizador de servicios con una implementación basada en EJB y un conjunto de métodos de utilidades.

● alembik-core: Contiene la implementación del servicio de transcodificación, que incluye clases de procesamiento de los archivos de medios y utilidades de resolución de User-Agents y “mime-types”. Contiene, además, la interfaz de almacenamiento de los archivos y la implementación de la monitorización del servicio, la caché y el modulo de configuración.

● alembik-server: Servicios remotos basados en EJB3 para el procesamiento asíncrono, además del soporte de “clusters” (sólo con Jboss).

● alembik-soap: Implementaciones del servicio de SOAP y HTTP basado en JAXWS y consola de administración.

● alembik-wurfl: Extensión que hace uso de WURFL y se encarga de definir los valores de los conjuntos de capacidades para los códecs de audio y video.

● alembik-build: Scripts y archivos de configuración principales de Ant para la compilación y despliegue en el servidor.

● alembik-client: Cliente Java para el servidor Alembik que ofrece acceso remoto a la API de servicio a través de EJB y SOAP.

● alembik-taglib: Librería de etiquetas JSP con la funcionalidad de transcodificación.

● alembik-webapp: Web de ejemplo para mostrar el uso de la librería de etiquetas JSP.

Cada uno de los módulos incorpora su propio fichero “build” de Ant y los archivos de configuración para el entorno de desarrollo Eclipse.

Funcionamiento del núcleo:Una vez que Alembik recibe una petición tienen lugar una serie de procesos en el sistema. Las principales fases que tienen lugar en el núcleo de Alembik se muestran en el siguiente esquema.

En una primera fase, el servidor Alembik obtiene toda la información de medios del tipo que sean que vayan incluidos en la petición. Esta capa de almacenamiento se encargará, además, de guardar adecuadamente los resultados de todas las transformaciones y servirlas al cliente cuando sean requeridas.

77

Page 49: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Diagrama 13: Funcionamiento del núcleo de Alembik

A continuación se produce la resolución de perfiles o agentes de usuario.

En Alembik se pueden definir una serie de parámetros de transformación y asociarlas a un perfil, de modo que con solo pasarle el nombre del perfil, el sistema ya sabe todos los valores a aplicar en cada transformación.

La otra opción es indicar el agente agente de usuario o User-agent. Con este dato, Alembik es capaz de determinar todas las transformaciones y los parámetros de misma. Para obtener esta información hace uso del sistema WURFL.

Esquema 14: Elección del procesador de medios a utilizar

78

Page 50: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

La última fase importante es la del procesamiento de medios. Una vez que tenemos todos los parámetros de todas las transformaciones a realizar debemos seleccionar el tipo de procesador de medios que se va a ejecutar la petición.

Una vez elegido, se invoca la aplicación y se devuelven los resultados al terminal que realizó la petición. Tras cada petición, el sistema almacena una copia de los resultados, de modo que si se recibe en el futuro una petición con los mismos parámetros se devuelve la copia almacenada en vez de repetir todo el proceso de nuevo.

Esquema 2: Detalle de los procesadores de medios

Software de terceros usados:Dependiendo de la funcionalidad que se requiera en el servidor Alembik, es necesaria la instalación de software adicional. Solo se necesitan los archivos binarios y una correcta configuración para que Alembik use este software.

● Si se desea la transcodificación de imágenes tenemos varias opciones. Una de ellas el uso de GAIA. La otra opción y más recomendable es usar la aplicación ImageMagick.

● En caso de que se desee servir archivos de audio y video es necesaria la aplicación FFMpeg. Debido a que FFMpeg usa identificadores para los códecs que son dependientes de versión de la aplicación, es necesario saber de antemano la misma para una correcta configuración.

● En el caso en el que se requiera usar funciones como sobreimpresión de texto e/o imágenes en las transformaciones de video, es necesario instalar la librería “imlib2”, que será usada por FFMpeg.

● Para habilitar la funcionalidad de streaming de video, es necesario instalar la utilidad MP4Box e instalar el servidor de streaming Darwin.

79

Page 51: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Plataformas soportadas:En teoría, Alembik puede ser desplegado en cualquier servidor de aplicaciones web, pero únicamente se recomienda su uso en.

● Glassfish v2

● Jboss 4.2.x GA

● Apache-Tomcat 5.5.2x

APIs disponibles:Existen numerosas formas de acceder a los servicios que ofrece un servidor Alembik:

● API de transcodificación en Java.

● Servicio SOAP para todo tipo de clientes, a través de un servicio web.

● Librería de etiquetas JSP para el desarrollo basado en Java web.

● EJB Facade para clientes J2EE.

● HTTP: Orientado para ofrecer servicio a páginas web que pueden estar desarrolladas en cualquier entorno.

4 – Opción adoptada

Tras evaluar las distintas posibilidades mostradas se han tomado las siguientes decisiones que pasarán a explicarse en detalle.

4.1 – Método de adaptación: Adaptación dinámica del contenido

Como método de adaptación se ha optado por usar la adaptación dinámica del contenido. Se ha elegido este método porque es el que optimiza el tiempo de proceso y el espacio en disco de los contenidos, asegurando la optimización de los mismos al modelo concreto del dispositivo con el que se realice acceso.

Decimos que optimiza el tiempo de proceso porque solo se creará una copia del contenido adaptado por cada User-Agent distinto que acceda al portal.

80

Page 52: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Imagen 33: Adaptación dinámica de contenido

Supongamos que existen 500 modelos distintos de dispositivos móviles. Debido a las características del mercado, lo más probable es que se accedan con 15 o 20, que serán los que dominan el mercado. Según este método de adaptación, pasado un tiempo, habrá unas 15 o 20 copias del contenido, una por modelo de dispositivo distinto, ya que suponemos que el resultado de las distintas adaptaciones se guardan en caché y no se genera una copia por acceso. El tiempo de proceso y el espacio ocupado en el servidor es sensiblemente menor al que necesitaríamos si usáramos adaptaciones estáticas, ya que en ese caso tendríamos que adaptar previamente el contenido a los 500 dispositivos distintos.

Por otro lado descartamos la adaptación en el terminal por la dependencia absoluta del mismo en cuanto a comportamiento y capacidades.

La opción del portal exclusivo para móviles la descartamos porque supondría tener una versión del portal para dispositivos móviles y otra para PCs, con la duplicidad de contenidos y coste de mantenimiento. Además, aunque los contenidos estén adaptados a móviles, en general, esta adaptación será de forma genérica y no optimizada para cada uno de los modelos que accedan al portal.

4.2 – Esquema general

El esquema exacto de funcionamiento variará en cada uno de módulos que se van a realizar. No obstante, se hará uso de un sistema de adaptación independiente, con el objetivo de modularizar en la medida de lo posible el sistema que estamos diseñando.

81

Page 53: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

Diagrama 14: Esquema general de funcionamiento

4.3 – Gestor de portales

Como gestor de portales se ha elegido Liferay, por las siguientes razones:

● Usa tecnología Java.● Es de código abierto.● No añade ninguna restricción en cuanto

a servidor de aplicaciones, base de datos o sistema operativo, lo que hace que sea muy portable.

● Está basado en portlets, por lo que los módulos desarrollados pueden usarse en otros portales distintos a Liferay que soporten las especificaciones JSR-168/JSR-286.

● Existe un kit de desarrollo que facilita la creación de nuevos portlets.● Posee un buen gestor de contenido que, aunque en principio no se va a hacer uso de él,

abre la puerta a la creación de nuevos módulos de adaptación que interaccionen con él y a añadir nuevas funcionalidades al portal.

● Incorpora una gran cantidad de módulos por defecto (foros, wikis, etc.).● Administración online.● Facilidad de instalación, configuración y manejo.● Extensa documentación.● Existe una gran comunidad de usuarios que san soporte gratuito.

82

Page 54: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

4.4 – Sistema de Base de Datos del portal

De entre todas las bases de datos posibles se ha optado por MySQL por lo siguiente:

La base de datos de Oracle se ha descartado debido a que ésta posee código propietario y los costes de las licencias de uso son elevados. Además son bastante más complicadas de administrar, lo que también implica un mayor coste de mantenimiento.

Tanto MySQL como PostgreSQL son bases de datos válidas para el sistema que vamos a desarrollar. Finalmente se ha optado por MySQL debido a que posee mayor cantidad de documentación y es, por término medio, algo más eficiente que PostgreSQL consumiendo menos recursos.

Además, para desarrollo en Windows, existen paquetes de software como EasyPHP que en unos segundos instalan una base de datos MySQL con interfaz web muy intuitiva y sencilla de utilizar.

4.5 – Servidor de aplicaciones

Para este componente se ha optado por Apache-Tomcat 5.5.27. A pesar de no ser un servidor de aplicaciones propiamente dicho, es suficiente para el sistema que se pretende montar ya que no se necesitan instalar otras aplicaciones que requieran de un servidor de aplicaciones. Usar un servidor de aplicaciones más avanzado consumiría innecesariamente más recursos, lo que afectaría negativamente al rendimiento global del sistema.

Por otro lado, aunque Liferay puede funcionar prácticamente sobre cualquier servidor de aplicaciones, existe un “boundle” específico para Tomcat 5.5. Este “boundle” es una versión compilada y lista para usar que incorpora un servidor Tomcat integrado, por lo que se elimina la necesidad de realizar una primera configuración manual del mismo.

4.6 – Sistema de BD con características de móviles

Las imágenes se adaptarán de forma dinámica en tiempo de ejecución. Los parámetros necesarios para la adaptación de las misma se van a obtener haciendo uso de WURFL.

La razón de esta elección radica en que es el proyecto más avanzado basado en software libre que existe actualmente. Además, el archivo en el que se basa se actualiza constantemente con información no solo de la comunidad de usuarios, sino de los propios fabricantes. Cada pocas semanas aparece

83

Page 55: Capítulo II: Análisis 1 – Planteamiento del problemabibing.us.es/proyectos/abreproy/11911/descargar... · Capítulo II: Análisis Portal CMS, que servirá de base para los módulos

Capítulo II: Análisis

una nueva versión del archivo WURFL principal y cada pocos días aparecen “parches” con nuevos dispositivos y corrección de errores aparecidos en el principal.

Por otro lado la documentación es bastante completa y las APIs muy fáciles de usar. Debido a que tanto el portal como el sistema de adaptación de imágenes (ver apartado siguiente), están basados en Java. Se hará uso de la API de WURFL disponible para este lenguaje.

4.7 – Generación dinámica de contenido externo

Para la generación dinámica de contenidos externos vamos a hacer uso de la herramienta Dapper (Ver Capitulo I, sección 7.3), por su carácter novedoso y su potencial para obtener contenidos, sobre todo estructurados, de otras webs de forma transparente. Se crearán varios Dapps para mostrar la capacidad de esta herramienta y se integrará en un portlet, para poder hacer uso de la misma en el portal.

Si dentro del contenido extraído de forma dinámica se encuentra alguna imagen, a ésta se le aplicará un proceso de adaptación para optimizar su visualización en el dispositivo desde el que se esté accediendo al portal.

4.8 – Sistemas de adaptación de imágenes

Este es uno de los pilares básicos de la plataforma que se pretender crear, por lo que una acertada decisión en este punto es fundamental.

Apache Mobile Filter podría ser una solución válida, si únicamente estuviéramos interesados en la adaptación de imágenes entendida tan solo como un re-escalado de la misma.

En nuestro caso se pretende llegar un poco más lejos, permitiendo transcodificación de las imágenes, es decir, el cambio entre distintos formatos (por ej. de BMP a JPEG) según la imagen origen y el dispositivo que realice la petición.

Nos decantamos por Alembik ya que permite no solo la transcodificación de imágenes, sino también de audio y video.

En el sistema que estamos diseñando no se abarcará la adaptación de audio/video ni streaming, debido a que estas funcionalidades no están completamente desarrolladas en la versión actual de Alembik y en ocasiones ocurren errores en el transcurso de algunas adaptaciones de audio y video. No obstante, se ha elegido esta plataforma por su potencial, ya que es muy probable que estos problemas se resuelvan en próximas versiones.

84