Estudio de plataformas t Estudio de plataformas

Anuncio
Estudio de plataformas tecnológicas
tecnológicas
datos.gob.es
En colaboración con
Las opiniones recogidas en este documento no se
corresponden, necesariamente, con las de ninguno
de los organismos públicos participantes en esta
iniciativa.
Contenidos
I. Propuesta de trabajo. ...................................................................................................... 2
1
Objetivo. ........................................................................................................................ 2
2
Estudio de CMS............................................................................................................. 3
2.1 Aspectos valorados de los CMS ................................................................................. 4
2.1.1 Facilidad de instalación / administración ............................................................... 4
2.1.2 Facilidad de uso ................................................................................................... 4
2.1.3 Potencia gráfica y estructural ............................................................................... 4
2.1.4 Gestión de usuarios y workflows .......................................................................... 5
2.1.5 Funcionalidades Web 2.0 ..................................................................................... 5
2.1.6 Posibilidades de extensión e integración .............................................................. 5
2.1.7 Seguridad ............................................................................................................. 5
2.1.8 Soporte, tamaño de la comunidad ........................................................................ 6
2.1.9 Soporte nativo semántico (RDF, RDFa, …) .......................................................... 6
2.1.10 Plataforma .......................................................................................................... 6
2.2 Valoraciones de los CMS ........................................................................................... 7
2.2.1 Liferay .................................................................................................................. 7
2.2.2 Drupal ................................................................................................................... 8
2.2.3 Wordpress ............................................................................................................ 8
2.2.4 Joomla .................................................................................................................. 9
2.2.5 Plone .................................................................................................................... 9
2.3 Tabla comparativa de valoraciones .......................................................................... 10
2.4 CKAN ....................................................................................................................... 11
2.5 Conclusiones finales ................................................................................................ 12
3 Estudio de plataformas semánticas .......................................................................... 14
3.1 Necesidades funcionales semánticas del Portal OpenData Estatal .......................... 14
3.2 Comparación de servidores semánticos ................................................................... 15
3.2.1 Servidores semánticos nativos - Berlin SPARQL Benchmark (BSBM) ................ 15
3.2.1.1
Máquina utilizada para la realización de las pruebas ................................. 15
3.2.1.2
Descripción de las pruebas........................................................................ 16
3.2.1.3
4store ........................................................................................................ 16
3.2.1.4
BigData...................................................................................................... 16
3.2.1.5
BigOwlin .................................................................................................... 17
3.2.1.6
Virtuoso ..................................................................................................... 17
3.2.1.7
Gráfica resumen. ....................................................................................... 18
3.2.2 Aplicación propia desarrollada en Java .............................................................. 18
3.2.2.1
Máquina utilizada para la realización de las pruebas ................................. 18
3.2.2.2
Descripción de las pruebas........................................................................ 19
3.2.2.3
Java + Jena + Oracle Semantics ............................................................... 19
3.2.2.4
Java + Jena SDB + MySQL ....................................................................... 19
3.3 Conclusiones finales ................................................................................................ 19
4 Arquitectura propuesta............................................................................................... 20
1
I. Propuesta de trabajo.
1 Objetivo.
El objetivo de este documento es presentar un análisis comparativo de las diferentes tecnologías
disponibles como plataformas para el desarrollo del portal OpenData Estatal.
La plataforma a desarrollar tendrá dos partes bien definidas. Primeramente constará de un
sistema de gestión de contenidos web (CMS) que soportará la creación y gestión de las
páginas web del portal por un lado, y también el mantenimiento del propio catálogo, formado por
los conjuntos de datos publicados por el Portal OpenData Estatal. La primera parte del informe
valorará los mejores CMS disponibles actualmente y propondrá la selección de uno de ellos para
este proyecto.
Además, la plataforma implementada deberá contar con tecnología semántica que permita la
publicación de los metadatos del Catálogo en RDF1, así como la publicación de datos en RDF de
aquellos conjuntos de naturaleza semántica. Esta plataforma semántica deberá exponer los datos
siguiendo los principios de Linked Data2 y deberá implementar un punto SPARQL3. La segunda
parte del informe analiza las opciones tecnológicas disponibles que mejor se adecuan a las
necesidades del nuevo portal.
1
Resource Description Framework (RDF): http://www.w3.org/RDF/
2
Linked Data - Connect Distributed Data across the Web: http://linkeddata.org
3
SPARQL Query Language for RDF: http://www.w3.org/TR/rdf-sparql-query
2
2 Estudio de CMS
Existe una enorme variedad de gestores de contenidos web (CMS – Content Management
System) en el mercado. Para el objeto de este estudio se ha realizado un filtro previo y sólo se
han comparado los mejores gestores de contenido web a fecha de la realización del análisis.
De forma genérica, para la selección inicial de los candidatos se han tenido en cuenta dos
grandes criterios de selección:
•
OpenSource. El software libre no impone un coste de licencia, y cuenta con las grandes
ventajas del código abierto: flexibilidad, seguridad y rapidez en las tareas de desarrollo y
actualización.
•
Cuota de uso y relevancia. El uso de tecnologías con la mayor comunidad de usuarios
posible ofrece importantes ventajas: mayor soporte disponible, mayor número de módulos
de terceros desarrollados y probados por la comunidad, garantía de evolución de la
plataforma.
Atendiendo a los criterios generales mencionados se han seleccionado un grupo de cinco CMS
candidatos:
•
Liferay4
•
Drupal
•
Wordpress6
•
Joomla7
•
Plone8
5
En el resto del informe se describen las funcionalidades y características que se han comparado
atendiendo a las necesidades del nuevo portal. También se presenta un resumen de las virtudes y
las desventajas de cada uno de los CMS y una puntuación final en forma de tabla.
4
Liferay: http://www.liferay.com
5
Drupal: http://drupal.org
6
WordPress: http://wordpress.org
7
Joomla Spanish: http://www.joomlaspanish.org
8
Plone CMS: http://plone.org
3
2.1 Aspectos valorados de los CMS
Para la comparación de los diferentes gestores de contenido se han agrupado en una serie de
aspectos diferenciados el conjunto de las funcionalidades y características que tienen este tipo
de sistemas. A continuación se describen cada uno de estos aspectos y los puntos más
significativos que se han comparado.
2.1.1 Facilidad de instalación / administración
•
Facilidad con que se pueden encontrar un proveedor de servicios con soporte en sus
servidores para la plataforma tecnológica seleccionada. Costes de hosting.
•
Facilidad para la instalación y despliegue de un portal básico vacío.
•
Usabilidad de las vistas de administración.
•
Cantidad y calidad de la documentación de administración disponible.
•
Soporte visual para la gestión de módulos de terceros incluidos.
•
Soporte visual para la gestión de temas y estilos gráficos soportados.
•
Soporte para la actualización de la plataforma a una nueva versión.
2.1.2 Facilidad de uso
•
Inclusión de editores de texto enriquecido.
•
Facilidad de inclusión de imágenes y elementos multimedia embebidos en las
páginas.
•
Control de versiones sobre los contenidos creados.
•
Facilidad en la gestión de barras de menú, cabeceras y pies.
•
Soporte para la gestión de imágenes y documentos subidos al portal. Herramienta
para buscar y eliminar recursos que han sido subidos pero ya no son utilizados.
•
Usabilidad general de los controles y vistas.
2.1.3 Potencia gráfica y estructural
•
Inclusión de un sistema de gestión de temas gráficos. Facilidad en la administración
de los temas gráficos soportados.
•
Disponibilidad de repositorios externos con temas gráficos libres. Cantidad y calidad
de temas gráficos disponibles.
•
Flexibilidad para la creación de nuevos temas gráficos o para la modificación de los
existentes.
4
•
Posibilidad de incluir el máximo de características HTML y CSS disponibles en la
creación de un tema gráfico.
•
Facilidad y flexibilidad en la creación de estructuras jerárquicas complejas para los
contenidos de un portal.
•
Creación de nuevos tipos de contenido.
•
Disponibilidad de funcionalidades típicas ya implementadas: buscador de contenidos,
tipos de contenido más utilizados (noticias, eventos, etc.)
2.1.4 Gestión de usuarios y workflows
•
Gestión de usuarios, roles y permisos sobre tipos de contenido y secciones del portal.
•
Posibilidad de dividir las tareas de creación, modificación, revisión y publicación de
los contenidos.
•
Posibilidad y facilidad de creación de workflows entre diferentes roles con las fases de
publicación de contenidos.
2.1.5 Funcionalidades Web 2.0
•
Soporte para comentarios sobre los contenidos del portal. Posibilidad de configuración
para diferentes niveles de autenticación, permisos y moderación.
•
Soporte para la votación de contenidos del portal. Posibilidad de configuración para
diferentes niveles de autenticación y permisos.
•
Funcionalidad para la configuración y publicación de feeds de los contenidos del portal.
•
Soporte integrado para la creación de blogs.
2.1.6 Posibilidades de extensión e integración
•
Sistema par la creación de módulos que extiendan la funcionalidad básica del CMS.
•
Disponibilidad de herramientas de desarrollo específicas del CMS que facilitan la
creación de nuevos módulos y la extensión de las funcionalidades.
•
Facilidad de integración con otros sistemas: posibilidad de uso de diferentes sistemas
de persistencia; cohesión con diferentes sistemas de autenticación y autorización;
existencia de APIs para la conexión con otros sistemas mediante servicios web.
2.1.7
•
Seguridad
Volumen de problemas de seguridad y vulnerabilidades encontrados para el CMS y
registrados por entidades independientes.
5
•
La comunidad del CMS dispone de una metodología y plan precisos para el
descubrimiento y reparación de vulnerabilidades y problemas de seguridad.
2.1.8 Soporte, tamaño de la comunidad
•
Los fuentes del CMS han sido soportados por la comunidad como un paquete
opensource por un periodo de tiempo largo.
•
Cantidad de entidades y consultorías que dan soporte o basan sus servicios y
productos en el CMS.
•
Existencia de libros publicados de calidad sobre el uso del CMS.
•
La comunidad del CMS cuenta con foros dedicados para la resolución de problemas
específicos de los usuarios.
2.1.9 Soporte nativo semántico (RDF, RDFa, …)
•
Existencia de soporte nativo para la gestión de vocabularios y ontologías RDF.
Calidad del backoffice para realizar dicha gestión de vocabularios.
•
Existencia de funcionalidades nativas en el CMS para la asociación entre los contenidos
estructurados del portal y los vocabularios RDF gestionados. Posibilidad de asociar
cada tipo estructurado a una o varias clases RDF y mapear parte de los campos del tipo
estructurado a propiedades RDF.
•
Posibilidad de publicar las asociaciones RDF creadas en formatos semánticos:
•
Enriquecimiento de las páginas HTML de las instancias de contenidos
estructurados con RDFa9.
•
Posibilidad de publicación de la información semántica de los contenidos creados
mediante formatos específicos RDF: RDF/XML10, Turtle11, N312.
2.1.10
•
Plataforma
A priori el entorno de ejecución o lenguaje de programación de cada CMS no supone
una ventaja decisiva para ninguno de ellos. Sin embargo sí que se debe tener en cuenta
la orientación general que tienen cada una de las plataformas:
•
Java/JEE. Orientado a entornos “enterprise”. Java sobresale en utilidades y
librerías de soporte para funciones de interoperabilidad. Es un lenguaje
semicompilado lo que lo hace más rápido que lenguajes de script interpretados.
9
RDFa Primer - Bridging the Human and Data Webs: http://www.w3.org/TR/xhtml-rdfa-primer
10
RDF/XML Syntax Specification: http://www.w3.org/TR/rdf-syntax-grammar
11
Turtle - Terse RDF Triple Language: http://www.w3.org/TeamSubmission/turtle
12
Notation 3: http://www.w3.org/DesignIssues/Notation3.html
6
•
PHP. Muy orientado al desarrollo web. Tiene una cuerva de aprendizaje muy baja y
se alcanza una gran productividad con poco esfuerzo. Es un lenguaje de script
interpretado lo que lo hace algo más lento en ejecución que java.
•
Python. Orientado al desarrollo web. Es un lenguaje más moderno y mejor
diseñado que PHP, pero algo más complejo y difícil. Es un lenguaje de script
interpretado lo que lo hace algo más lento en ejecución que java.
2.2 Valoraciones de los CMS
A continuación se presenta una valoración resumida de las ventajas y desventajas de cada uno
de los CMS.
Hay que reseñar que dentro del amplio espectro existente de gestores de contenidos web, los
cinco preseleccionados forman parte del reducido grupo de los mejores CMS opensource
disponibles actualmente. Por tanto los gestores analizados tienen una valoración general
buena con respecto a las características de estudio. No hay ninguno que presente deficiencias
significativas en algún campo.
De hecho, hay ciertas características en las que es difícil hacer una mínima diferenciación de
calidad entre los contendientes. Por ejemplo, se esperaría que el CMS elegido tuviese unas
posibilidades de extensión e integración adecuadas, pero todos los gestores analizados tienen
funcionalidades sobresalientes en este aspecto.
Lo que se presenta en las siguientes secciones para cada una de las plataformas es una
reseña de aquello que lo particulariza sobre los demás. Se han intentando expresar las
diferencias existentes entre cada uno para hacerlos encajar en un determinado tipo de portal
objetivo.
Las valoraciones efectuadas se basan en buena parte en la experiencia de CTIC-CT en el
desarrollo de proyectos que han utilizados estos CMS; en algunos casos es una experiencia
mayor (Liferay, Drupal) y en el resto de los casos es más somera.
También se han tenido en cuenta experiencia y comparaciones elaboradas por entidades
independientes como CMS Report13, Idealware14 o Water&Stone15.
2.2.1 Liferay
Liferay es con diferencia el CMS más utilizado en el mundo Java. No solamente es un
gestor de contenidos web, sino que además cumple la especificación JSR-16816 de Java,
lo que lo convierte en un contenedor de portlets. En general Liferay es un CMS muy
completo y robusto en la mayoría de factores analizados. Muchas funcionalidades son
añadidas a través de portlets contribuidos.
13
CMS Report: http://cmsreport.com
14
Idealwear: http://www.idealware.org/reports/2010-os-cms
15
2010 Open Source CMS Report: http://www.waterandstone.com/book/2010-open-source-cms-market-share-report
16
JSR 168: Portlet Specification: http://www.jcp.org/en/jsr/detail?id=168
7
Las grandes ventajas de Liferay con respecto a las otras plataformas no Java son las que
en general tiene el propio lenguaje frente a otros lenguajes de script como PHP. Java
sobresale en tareas de integración entre aplicaciones, contando con una gran cantidad
de librerías profesionales, frameworks y especificaciones de gran madurez.
Además Liferay cuenta con una característica muy importante para algunos escenarios,
como es un soporte muy avanzado para gestionar varios portales en una misma instalación
o servidor (Multi Tenancy).
La desventaja de Liferay es que su potencia tiene un coste claro en la complejidad de
configuraciones y desarrollos llevados a cabo; en general los portlets de Java son más
complejos de implementar que los módulos de otros CMS.
También, se puede decir que el soporte de comunidad es inferior para este CMS que
para otros como puede ser Drupal; los foros no suelen ser de una especial ayuda y la
documentación disponible es francamente mejorable. La curva de aprendizaje inicial de
Liferay es sensiblemente más elevada.
2.2.2 Drupal
Drupal es el CMS que mejor relación presenta entre la facilidad y usabilidad de las tareas
más típicas de un portal web y la potencia y flexibilidad para construir sitios complejos.
Drupal es muy completo en lo que ser refiere a la construcción de estructuras complejas
para organizar la información; se pueden definir reglas detalladas para definir exactamente
qué contenido aparece en las diferentes secciones. También tiene un soporte muy
avanzado para definir nuevos tipos de contenido.
Además, Drupal es el CMS más avanzado en cuanto a funcionalidades de comunidad y web
2.0. Y más importante aún, Drupal es el único CMS que tiene un soporte nativo básico
para la publicación de información semántica en RDF.
Entre las desventajas que tiene Drupal está que su gran flexibilidad hace de él un CMS que
no es tan fácil de entender y configurar como pueden serlo Wordpress o Joomla.
Drupal tampoco dispone de las opciones avanzadas de workflow y gestión de usuarios que
sí tiene Plone.
2.2.3 Wordpress
Worpress es posiblemente el CMS más adecuado para webs de tamaño pequeño. Está
basado en la idea de blog, y todas sus funcionalidades giran alrededor de este tipo de webs,
pequeñas y de carácter personal.
Es la plataforma más fácil de instalar y utilizar, incluso por personas que no tienen un
perfil técnico. Dispone de muchos módulos adicionales contribuidos por la comunidad.
Otra de las ventajas de Wordpress es que es uno de los CMS que tiene una mayor
variedad de temas gráficos disponibles. Son muy fáciles de instalar y se pueden modificar
para adaptarlos a las necesidades específicas de un portal nuevo.
8
Pero toda esta facilidad de uso tiene una serie de desventajas. Wordpress, al contrario que
Drupal, está más orientado a un perfil de administrador gráfico, antes que a un perfil de
técnico programador. Por eso se hace más difícil la gestión de arquitecturas de la
información complejas, vistas elaboradas y nuevos tipos de contenidos.
Wordpress es además el CMS más débil en cuanto al soporte de roles y workflow de
publicación de contenidos.
2.2.4 Joomla
Joomla es el CMS que de alguna manera se sitúa por sus características entre Drupal y
Wordpress.
Es relativamente fácil su instalación y la preparación inicial de un portal, aunque no es tan
sencillo como Wordpress. Requiere cierto esfuerzo inicial para familiarizarse con las
estructuras de los sitios, los menús y la creación de contenidos.
Otra de las ventajas de Joomla es que una amplia variedad de funcionalidades está
disponible a través de módulos de terceros, como por ejemplo carros de compra o
funciones de comunidad.
Sin embargo Joomla no alcanza la potencia que tienen Drupal y Plone en funcionalidades
para la creación de estructuras de portal complejas. Por ejemplo es relativamente
complicada la generación de nuevos tipos de contenido y su visualización en varias
páginas diferenciadas del portal.
Tampoco cuenta con ningún tipo de soporte nativo para RDF.
2.2.5 Plone
Plone es, junto con Liferay, el más potente de los CMS estudiados. Ofrece un alto grado de
control para soportar estructuras y flujos de trabajo complejos. Y junto con esto, tiene un
conjunto de herramientas de administración y edición de gran usabilidad que facilitan el
control de los contenidos.
En general, Plone tiene el conjunto de funcionalidades más completo y maduro de los
CMS no Java. Sólo Drupal le aventaja en características de web 2.0.
En el lado negativo Plone cuenta con dos desventajas importantes. Primero que su
potencia tiene un coste claro en la complejidad; con una curva de aprendizaje elevada
para tareas como crear una estructura de sitio sofisticada o el manejo y creación de
módulos.
Además necesita de un entorno de instalación menos común que el de los CMS basados
en plataformas PHP/Apache o Java. Y al estar escrito en Python, un lenguaje menos común
que Java o PHP, es más difícil y cara la extensión de nuevas funcionalidades de portal.
9
2.3 Tabla comparativa de valoraciones
El cuadro de valoraciones calculado es el siguiente:
ASPECTO DEL CMS
PESO
Liferay 6
Drupal 7
Wordpress 3
Joomla 1.5
Plone 3.1
Facilidad de Instalación / Administración
*
Bien
Excelente
Excelente
Bien
Regular
Facilidad de uso
*
Bien
Bien
Excelente
Bien
Bien
Potencia gráfica y estructural
***
Excelente
Excelente
Excelente
Excelente
Excelente
Gestión de usuarios y workflow
***
Bien
Bien
Regular
Excelente
Excelente
Funcionalidad Web 2.0
**
Excelente
Excelente
Excelente
Bien
Bien
Posibilidades de extensión e integración
**
Excelente
Excelente
Excelente
Excelente
Excelente
Seguridad
**
Bien
Bien
Regular
Bien
Excelente
*
Bien
Excelente
Excelente
Excelente
Excelente
Regular
Bien
Regular
Regular
Regular
Java
PHP
PHP
PHP
Python
Soporte, tamaño de la comunidad
Soporte nativo semántico (RDF, RDFa, ...)
Plataforma
****
**
•
La columna peso refleja la importancia del aspecto estudiado dentro de los requisitos funcionales del portal a desarrollar.
•
Las valoraciones se dividen en tres niveles: Regular: el CMS ofrece un soporte correcto pero estrictamente básico para el aspecto analizado; Bien: el
CMS cuenta con funcionalidades para un aspecto estudiado que mejoran sensiblemente las ofrecidas por el resto de sistemas gestores; Excelente: el
CMS dispone, ya sea en la instalación básica o en módulos que estén disponibles, de las mejores características o funcionalidades posibles para un
aspecto concreto.
2.4 CKAN
17
CKAN (Comprehensive Knowledge Archive Network) es una plataforma web que facilita la
gestión de un registro de conjuntos de datos, su categorización y descubrimiento. CKAN
cuenta con un registro general en http://ckan.net que permite la inscripción de paquetes de
datos abiertos.
Pero CKAN además pone el software de su servidor a disposición pública como open source18.
Una entidad puede utilizar este software para montar su propio catálogo de datos. Existen a
día de hoy una serie de administraciones que han desarrollado sus registros utilizando una
instancia de CKAN propia.
Se presenta por tanto la posibilidad de desplegar y utilizar para el Catálogo Nacional un
servidor CKAN propio que realice toda la gestión del backoffice de los conjuntos de datos,
mientras que la parte pública del portal sea implementada por el CMS seleccionado. Esta
estrategia cuenta con ciertas ventajas, pero también con desventajas notables.
Ventajas:
•
CKAN cuenta con un modelo de datos ya establecido para la representación de
conjuntos de datos. Es un modelo maduro y completo desarrollado a partir de la
experiencia obtenida a lo largo de la vida de su registro de datos propio.
•
CKAN dispone de funcionalidades ya implementadas alrededor del registro y su
modelo de datos: etiquetado mediante tags, agrupaciones de conjuntos de datos
relacionados entre sí, una api rest para el uso del registro y la consulta de sus datos.
Desventajas:
•
Es tecnología Python. La instalación de un servidor CKAN obligaría al mantenimiento
de una plataforma de tecnología diferente a la del CMS elegido, si éste finalmente se
instala sobre PHP o Java.
•
Uno de lo aspectos valorados de los CMS es su soporte nativo de RDF. CKAN no
cuenta con este tipo de soporte nativo para el enriquecimiento semántico de los
conjuntos de datos publicados. Por ejemplo, el soporte nativo RDFa que Drupal tiene
en su versión 7 para asociar RDF a datos estructurados no sería aprovechado.
•
El uso de un servidor CKAN supondría el despliegue de una aplicación web diferente
al portal CMS. Esto obligaría a una configuración más complicada del espacio de URIs
y a un trabajo doble para integrar el look&feel (CSS, javascript, ...) en las dos
aplicaciones. Drupal cuenta con un módulo para integrar CKAN y su modelo de datos
con el portal, pero sólo está disponible para la versión 6.
17
CKAN – The Data Hub: http://ckan.net
18
CKAN – The Data Hub Software: http://ckan.org
11
En general puede decirse que el uso de un servidor CKAN dentro del Catálogo Nacional
tendría un coste para el desarrollo y mantenimiento del portal superior al peso de las
ventajas que aporta esta tecnología.
La mayor parte de las características con que cuenta CKAN, su modelo y las funcionalidades
como su API REST, son relativamente fáciles de implementar en los CMS comparados. Sin
embargo el desarrollo del portal en dos servidores, posiblemente de tecnologías diferentes,
supone un esfuerzo adicional considerable, tanto en la fase de construcción como en el
posterior mantenimiento y evolución.
Por tanto, es recomendable que la gestión del catálogo de conjuntos de datos se realice a
través de la gestión de contenidos disponible en el propio CMS del portal.
Una solución intermedia relacionada con el uso de CKAN sería la de publicar los conjuntos de
datos del Catálogo Nacional en el registro general de CKAN (en http://ckan.net/). Se podría
implementar un módulo en el CMS seleccionado que subiera (publicara) con una frecuencia
establecida los conjuntos de datos del catálogo al servidor CKAN.
2.5 Conclusiones finales
A partir de las valoraciones aproximadas resumidas en la tabla de la sección 2.3, se ha
realizado una ponderación numérica de cada uno de los factores analizados. Se ha relacionado
cada una de las escalas de valoración (regular, bueno, excelente) con una nota (1,2 y 3
respectivamente), y se ha multiplicado la nota por el factor peso (que numéricamente oscila
entre 1 y 4).
El resultado final obtenido para cada CMS se muestra en la siguiente tabla:
CMS
Valoración final
Drupal 7
47
Plone 3.1
44
Liferay 6
43
Joomla 1.5
42
Wordpress 3
39
Se propone por tanto Drupal 7 como el gestor de contenidos web para la construcción
del Portal OpenData Estatal.
PHP, el lenguaje de Drupal, es una plataforma de desarrollo perfectamente adecuada para el
tipo de proyecto que se quiere acometer; PHP se ha convertido en una lengua franca en el
12
mundo web, es muy productivo y utilizado en una gran cantidad de grandes proyectos open
source.
Sin embargo, al mismo tiempo Drupal es suficientemente flexible y potente para acometer el
desarrollo de módulos ad-hoc que permitan cumplir con las funcionalidades requeridas. Y su
amplia capacidad de extensión no compromete los posibles desarrollos que en el futuro tengan
que realizarse para la evolución del portal.
Por otro lado, Drupal es el CMS que cuenta con el soporte más avanzado relacionado con
características semánticas y RDF. Su versión 7 permite la asociación de campos de datos
estructurados a vocabularios RDF, y la inclusión de RDFa en las páginas web para describir
cada uno de los datos creados. Además cuenta con módulos adicionales, actualmente en
desarrollo, que permitirán la gestión visual por consola web del conjunto de vocabularios RDF
incluidos en el portal, su relación con los tipos de datos creados, y su renderización en
diferentes representaciones RDF: RDF/XML, Turtle o N3. Es, con mucha diferencia, el gestor
más avanzado en este aspecto.
13
3 Estudio de plataformas semánticas
Existen variedad de plataformas que permiten el almacenamiento y publicación de datos mediante
el uso de tecnologías semánticas (RDF, SPARQL...). En este apartado se van a comparar las
principales que se encuentran en el mercado junto con la opción de hacer un desarrollo propio,
utilizando una base de datos referencial para el almacenaje de los datos.
De entre las plataformas disponibles se han seleccionado las de más renombre en el mercado. El
estudio se basa en la experiencia obtenida por CTIC-CT a lo largo del desarrollo de proyectos
linked data y en el informe de resultados del Berlin SPARQL Benchmark de Febrero de 201119
Las plataformas analizadas son las siguientes:
•
4store
•
BigData21
•
BigOwlim22
•
Virtuoso23
•
Desarrollo Java: Desarrollo de aplicación Java basada en Jena que almacena los datos
en una base de datos relacional (MySQL, Oracle...)
20
Para realizar las pruebas se ha seleccionado la versión gratuita de cada una de las plataformas,
por lo que en caso de requerir un rendimiento mayor queda abierta la opción de utilizar las
versiones de pago, que suponen una clara mejora en el rendimiento al ofrecer la posibilidad de
realizar instalaciones clusterizadas y aumentar el número de peticiones que son capaces de
atender concurrentemente.
3.1 Necesidades funcionales semánticas del Portal OpenData Estatal
Desde el portal de datos del Portal OpenData Estatal será posible acceder a un conjunto de datos
en formatos semánticos. Este conjunto de datos comenzará siendo reducido, pero se prevé un
aumento de los mismos a medida que pase el tiempo, con el objetivo de transformar la estrategia
de apertura de datos en una estrategia linked data.
19
Berlin SPARQL Benchmark: http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/results/V6/index.html
20
4store: http://4store.org/
21
Bigdata: http://www.systap.com/bigdata.htm
22
BigOWLIM: http://www.ontotext.com/owlim/big/
23
Virtuoso: http://www.virtuoso.com/
14
Por otra parte, también estará disponible en formato semántico la metainformación referente al
catálogo de datos publicados, de forma que se pueda automatizar el proceso de búsqueda de en
los conjuntos de datos y el acceso a los propios datos. Para almacenar esta información se
utilizará el vocabulario DCAT24.
El volumen de información semántica será, en un principio, bastante bajo, puesto que el número
de tripletas RDF necesario para definir el catálogo de datos es pequeño y, en una primera fase,
serán pocos los conjuntos de datos que se exporten directamente en formato semántico. No
obstante, se deberá tener en cuenta a la hora de escoger la plataforma semántica a implantar,
que debe ser capaz de soportar una carga de datos elevada para poder garantizar su continuidad
en el tiempo.
La plataforma semántica seleccionada tiene que ser capaz de soportar tanto operaciones de
escritura (por ejemplo cada vez que se cree un conjunto de datos nuevo o que se añada un nuevo
conjunto exportado en formato semántico) y de lectura (por ejemplo cada vez que un usuario o
una aplicación quiera consultar los datos disponibles). Se debe tener en cuenta que, mientras
que las operaciones de escritura se realizarán de forma puntual, las de lectura se realizarán
de manera continuada, y será por tanto la respuesta a estas últimas la que más se valorará a la
hora de seleccionar la plataforma. Así pues, durante la fase de evaluación de resultados del
benchmarking realizado, tendremos en cuenta solamente la respuesta a las consultas
realizadas y no el tiempo empleado durante el proceso de carga.
3.2 Comparación de servidores semánticos
Dado que no ha sido posible lanzar el mismo conjunto de pruebas sobre los servidores
semánticos nativos que sobre la aplicación Java de desarrollo propio, se separarán los resultados
en apartados diferentes y se analizarán los resultados en conjunto en el apartado de
conclusiones.
3.2.1 Servidores semánticos nativos - Berlin SPARQL Benchmark (BSBM)
3.2.1.1 Máquina utilizada para la realización de las pruebas
•
•
Hardware:
◦
Procesador: Intel i7 950, 3.07GHz (4 cores)
◦
RAM: 24GB
◦
Discos duros: 2 x 1.8TB (7,200 rpm) SATA2.
Software:
◦
Sistema Operativo: Ubuntu 10.04 64-bit, Kernel 2.6.32-24-generic
▪
24
Sistema de ficheros: ext4
dcat Vocabulary resources & examples: http://vocab.deri.ie/dcat-overview
15
▪
◦
Particiones separadas para la aplicación y los datos
JVM: Version 1.6.0_20, OpenJDK 64-Bit Server VM (build 19.0-b09).
3.2.1.2 Descripción de las pruebas
Para cada uno de las plataformas semánticas se realizarán las pruebas con dos cargas de datos
diferentes, primero con 100 millones de tripletas y, a continuación, con 200 millones.
En cada caso se medirá:
•
Tiempo de carga de los datos. Como se comentaba anteriormente, para el caso de
uso del Portal OpenData Estatal este es un valor de poco peso, puesto que las cargas
de datos se realizarán de forma puntual y controlada.
•
Consultas procesadas: Análisis de los tiempos de respuesta de cada una de las
plataformas tras la ejecución de un amplio conjunto de consultas que incluye consultas
básicas y consultas complejas. Este dato es el que se priorizará a la hora de realizar la
selección, puesto que a medida que vayan apareciendo aplicaciones que consuman los
datos publicados, el número de consultas realizadas irá aumentando. El resultado se
dará en “Query Mixes per Hour (QmpH)”, siendo una “Query Mix” el conjunto de 12
consultas.
3.2.1.3 4store
Tiempos de carga:
100M tripletas
26min 42s
200M tripletas
1h 12min 04s
Consultas procesadas:
Número tripletas
QMpH
100M tripletas
5589
200M tripletas
4593
3.2.1.4 BigData
Tiempos de carga:
100M tripletas
200M tripletas
16
1h 3min 47s
3h 24min 25s
Consultas procesadas:
Número tripletas
QMpH
100M tripletas
2428
200M tripletas
1795
3.2.1.5 BigOwlin
Tiempos de carga:
100M tripletas
17min 22s
200M tripletas
38min 36s
Consultas procesadas:
Número tripletas
QMpH
100M tripletas
3534
200M tripletas
1795
3.2.1.6 Virtuoso
Tiempos de carga:
100M tripletas
1h 49min 26s
200M tripletas
3h 59min 38s
Consultas procesadas:
Número tripletas
QMpH
17
100M tripletas
7352
200M tripletas
4669
3.2.1.7 Gráfica resumen.
En la siguiente gráfica se muestra la comparativa de las plataformas atendiendo al número de
peticiones atendidas por unidad de tiempo:
8000
7000
6000
QMpH
5000
4store
BigData
BigOw lin
Virtuoso
4000
3000
2000
1000
0
100M
200M
Número de tripletas
3.2.2 Aplicación propia desarrollada en Java
3.2.2.1 Máquina utilizada para la realización de las pruebas
•
•
Hardware:
◦
Procesador: Intel(R) Core(TM)2 Quad CPU Q8300 @ 2.50GHz
◦
RAM: 8GB
◦
Disco duro: 1 x 350GB (7,200 rpm) SATA2.
Software:
◦
Sistema Operativo: Centos 5.5 64-bit, Kernel 2.6.18-194.32.1.el5
▪
◦
Sistema de ficheros: ext4
JVM: Version 1.6.0_20, OpenJDK 64-Bit Server VM (build 19.0-b09).
18
◦
Oracle: Oracle 11g + Módulo semántico
◦
MySQL: MySQL 5.0.77
◦
Apache Tomcat 6.0.32
3.2.2.2 Descripción de las pruebas
La aplicación Java desarrollada es capaz de funcionar con dos arquitecturas diferentes en función
de la tecnología utilizada para almacenar los datos. Una de ellas utiliza una base de datos Oracle
con un módulo específico que habilita las capacidades semánticas (Oracle Semantics) y la otra
utiliza una base de datos referencial estándar.
En ambos casos, se han almacenado 2 millones de tripletas del mismo tipo que las utilizadas en
el test “Berlin SPARQL Benchmark” descrito en el apartado anterior, y se han ejecutado las
mismas consultas que en dicho test para medir los tiempos de respuesta.
3.2.2.3 Java + Jena + Oracle Semantics
Consultas procesadas:
Número tripletas
2M tripletas
QMpH
20
3.2.2.4 Java + Jena SDB + MySQL
Consultas procesadas:
Número tripletas
2M tripletas
QMpH
160
3.3 Conclusiones finales
Como cabía esperar, puede observarse claramente que, pese a la diferencia del hardware, los
resultados obtenidos por los servidores nativos semánticos son sustancialmente
superiores a los obtenidos por las aplicaciones Java de desarrollo propio.
Para consolidar esta conclusión, se realizó una instalación básica de uno de los servidores
semánticos nativos, Virtuoso, en la misma máquina utilizada para llevar a cabo las pruebas con
las aplicaciones Java. La mejora encontrada en el rendimiento fue de órdenes de magnitud. Se
19
alcanzaron, para un volumen aproximado de 2 millones de tripletas, medias de hasta 2500
QmpH. Esta diferencia debería acentuarse a medida que creciera el número de datos
almacenados.
En el caso de decidirse por la implantación de una aplicación de desarrollo propio, se
simplificarían las tareas de instalación, mantenimiento y los conocimientos técnicos
requeridos a las personas asignadas, puesto que las tecnologías utilizadas son de uso común.
La instalación de una de estas aplicaciones tendrá sentido en aquellos casos en que se prevea
que el volumen de datos almacenados no va a ser muy elevado.
En el caso del Portal OpenData Estatal, es previsible que, con el paso del tiempo, el volumen de
información semántica almacenada sea elevado, por lo que se recomienda la instalación de
alguno de los servidores semánticos nativos. Observando la gráfica resumen puede verse que
dos de ellos destacan especialmente sobre los demás: 4store y virtuoso. Si se tiene en cuenta el
volumen de datos estimados para el Portal OpenData Estatal durante los primeros años de vida,
los resultados obtenidos por virtuoso son superiores a los mostrados por 4store.
Teniendo en cuenta los comentarios anteriores, se propone utilizar virtuoso como servidor
semántico. Es importante señalar que, aunque la versión Open Source gratuita de virtuoso
cumple más que sobradamente con los requerimientos del Portal OpenData Estatal, existe
también una versión de código cerrado con diferentes licencias que aumentan sustancialmente su
rendimiento (más información en: http://virtuoso.openlinksw.com/pricing/).
20
4 Arquitectura propuesta
Se muestra a continuación el gráfico resumen que representa la arquitectura propuesta para el portal OpenData Estatal en vista a los resultados del
estudio: Drupal como gestor de contenidos web y Virtuoso como servidor nativo de tecnología semántica.
Descargar