MEMORIA DEL TRABAJO DE FIN DE GRADO

MEMORIA DEL TRABAJO DE FIN DE GRADO
MEMORIA DEL TRABAJO DE
FIN DE GRADO
Web orientada a dispositivos móviles que comunica con
otro sistema a través de web services.
Autor: Ismael García Martín
Tutor: Abraham Rodríguez Rodríguez
Departamento de Informática de Sistemas
Las Palmas de Gran Canaria, Noviembre 2013
1
ÍNDICE DE CONTENIDOS
1. Introducción. ………………………………………………………………………………… 5
1.1. Presentación y descripción general del trabajo. .….……………………………………………… 5
1.2. Objetivos principales. …………………………………………………………………………………………. 5
1.3. Planteamiento del problema. ……………………………………………………………………………… 6
1.4. Estructura del documento. ………………………………………………………………………………….. 6
2. Competencias. ………………………………………………………………………………. 8
3. Normativa y legislación. ……………………………………………………………… 10
3.1. Normativa y regulación de la informática en el ámbito internacional. ……………… 10
3.2. Normativa y regulación de la informática en el ámbito europeo. ……………………… 15
3.3. Normativa y regulación de la informática en el ámbito nacional. ……………………… 16
3.4. Normativa relacionada con este trabajo de fin de grado …………………………………… 19
4. Plan de trabajo …………………………………………………………………………….. 29
4.1. Tareas. ……………………………………………………………………………………………………………….. 29
4.2. Planificación temporal. ………………………………………………………………………………………. 30
5. Análisis. ……………………………………………………………………………………..… 31
5.1. Introducción. ………………………………………………………………………………………………….….. 31
5.2. Diagramas de casos de uso. ……………………………………………………………………………….. 31
5.2.1. Actores y privilegios. ……………………………………………………………………………….. 31
5.2.2. Casos de uso del usuario no identificado. ………………………………………………… 32
5.2.3. Casos de uso del usuario identificado. …………………………………………….……….. 33
2
5.2.4. Casos de uso del administrador. …………………………….………………………………… 34
5.3. Entidades. ……………………………………………………………………….…………………………………. 36
6. Diseño. …………………………………………………………………………………………. 37
6.1. Introducción. ……………………………………………………………………………………………………… 37
6.2. Capa de presentación. ……………………………………………………………………………………….. 37
6.3. Capa de negocio o lógica de la aplicación. ………………………………………………………… ..45
6.4. Capa de datos. ……………………………………………………………………………………………………. 46
7. Implementación. ………………………………………………………………………….. 47
7.1. Introducción. ……………………………………………………………………………………………………… 47
7.2. Sistema DRUPAL. ……………………………………………………………………………………………….. 47
7.2.1. ¿Qué es Drupal? ………………………………………………………………………………………. 47
7.2.2. Módulos utilizados. …………………………………………………………………………………. 48
7.2.3. Theme. ……………………………………………………………………………………………………. 50
7.2.4. Implementación del portal Drupal. ………………………………………………………….. 50
7.3. Web Services. …………………………………………………………………………………………………….. 51
7.3.1. ¿Qué son los web services? ……………………………………………………………………… 51
7.3.2. ¿SOAP o REST? …………………………………………………………………………………………. 52
7.3.3. REST en este trabajo. ……………………………………………………………………………….. 53
7.4. Portal móvil. ………………………………………………………………………………………………………. 55
7.4.1. Introducción. …………………………………………………………………………………………… 55
7.4.2. Acerca de jQuery Mobile. ………………………………………………………………………… 55
7.4.3. Ficheros de implementación. …………………………………………………………………… 55
7.4.4. Aspectos software más destacados. ………………………………………………………… 57
3
8. Pruebas. ……………………………………………………………………………………… 59
8.1. Validación de navegadores web. ……………………………………………………………………….. 59
8.2. Validación de la seguridad en el acceso a la zona de administración. …………………. 65
8.3. Validación de enlaces rotos. ………………………………………………………………………………. 66
9. Conclusión. …………………………………………………………………………………… 67
9.1. Conclusión del trabajo realizado. ……………………………………………………………………….. 67
9.2. Líneas futuras. ……………………………………………………………………………………………………. 67
10. Manual de usuario y software. …………………………………………………… 69
11. Referencias. ………………………………………………………………………………… 77
4
1. INTRODUCCIÓN
1.1 Presentación y descripción general del trabajo.
Este documento describe el trabajo realizado en el proyecto de fin de grado de
ingeniería informática en la mención de tecnologías de la información.
Con el auge de las aplicaciones para dispositivos móviles, que nos permiten acceder a
la información que deseamos en cualquier momento y desde cualquier sitio, aparecen dos
alternativas a la hora de llevar a cabo su desarrollo. La primera propone que el propio portal
tenga una versión móvil. Por otro lado, la segunda trata de que se desarrolle como una
aplicación independiente, lo cual facilita el consumo de la información del portal fuera de línea
(sin necesidad de una conexión permanente a internet).
En este contexto, el proyecto consiste en plantear la arquitectura del sistema para la
elaboración de una aplicación independiente y, así, diseñar e implementar un prototipo de
portal web orientado a dispositivos móviles que mediante el uso de servicios RESTful obtenga
y envíe los datos necesarios a un sistema nativo construido sobre el framework Drupal.
Este planteamiento facilitaría la posterior transformación del portal web en
aplicaciones nativas de plataformas móviles.
El dominio sobre el que se trabajará es el de un portal dedicado al cine de autor y a los
amantes de este género.
Para el desarrollo realicé diversas reuniones de kick off con el tutor cómo si fuera un
cliente. Estas reuniones me sirvieron para desarrollar primeramente la arquitectura y a
posteriori el diseño de la web móvil.
Una vez realizadas las reuniones y definida la situación, distribuí el trabajo en 4 partes:
análisis, diseño, implementación y pruebas.
1.2 Objetivos principales.
Conociendo nuestro objetivo de consumir información de un portal Drupal en
dispositivos móviles, modularemos nuestro trabajo en las siguientes subtareas:
1.
Diseñar la arquitectura del sistema que permita consumir, por parte del usuario, la
información contenida en la página.
2.
La implementación de un portal web funcional, sobre la temática anteriormente
descrita, que será desarrollado con la plataforma Drupal 7.
5
a. Las operaciones básicas que permitirá este portal incluyen la de crear
contenidos y usuarios, gestión de usuarios con privilegios, y algunas páginas de
ejemplo.
b. Esta parte incluye la instalación y configuración de los módulos necesarios
para su funcionamiento, incluyendo Views, Services, Service Views, Devel,
Entity Reference, Voting API, Libraries, Panels y CTools entre otros.
3.
Trabajar e implementar peticiones con un servicio web Restful sobre PHP que atrape y
devuelva los datos del sistema Drupal que queramos y los muestre en el dispositivo
móvil.
4.
Elaborar la arquitectura y el diseño del portal web orientado a móvil que será una
interfaz reducida de la nativa, incluyendo la implementación de algunas páginas
dinámicas. El prototipo también deberá incluir la validación de usuarios y el acceso a
información restringida.
5.
Comunicar ambos portales para que el usuario, gracias al servicio web REST pueda
navegar por el portal móvil, que obtiene y envía datos al sistema nativo, como si se
tratase de un sistema web independiente.
1.3 Planteamiento del problema.
El problema que se nos ha planteado es la construcción de un portal Drupal, un portal
móvil y un servicio web REST. La funcionalidad, a grandes rasgos, debería ser:
-
Mostrar un catálogo de películas con opciones de ordenación y de filtrado en Drupal
que se cargue dinámicamente en el sistema móvil.
-
Permitir a los usuarios registrarse (registro solo desde Drupal), identificarse y realizar
consultas sobre las películas ofertadas y los directores de las mismas.
-
Dar al usuario identificado privilegios sobre el usuario no identificado.
-
Permitir al administrador gestionar el contenido del portal (solo Drupal).
1.4 Estructura del documento.
6
Este documento se divide en nueve capítulos en los que se explica, detalladamente,
cómo se han desarrollado y qué recursos se han utilizado para la correcta realización de cada
una de las etapas de este trabajo de fin de grado.
Competencias: se presentan las competencias que se deben cumplir con la
elaboración de este trabajo y el modo en que han sido cubiertas.
Normativa y legislación: se detallan los aspectos legales que envuelven a este
proyecto y la normativa y regulación de la informática en el ámbito internacional, europeo y
nacional.
Plan de trabajo: presenta las tareas a desarrollar y el tiempo de realización empleado
sobre cada una de ellas.
Análisis: se realizó el modelado conceptual de la futura solución mediante el uso de
diagramas de casos de uso. En esta etapa se especifica qué debe hacer la aplicación pero no
cómo debe hacerlo.
Diseño: a través de los elementos y modelos obtenidos del análisis se detalla la
arquitectura del diseño, una arquitectura de tres capas donde se describe detalladamente la
función de cada una de estas y el modo en que interactúan entre ellas.
Tanto la etapa de análisis como la de diseño están desprovistas de código. Un buen
análisis y un buen diseño son la mejor forma de llegar a producir software de calidad.
Implementación: se utilizan los elementos obtenidos en el diseño para permitir la
elaboración del producto o prototipo funcional, puede ser puesto en marcha y sometido a
pruebas. Se consideran las diversas tecnologías que han intervenido en la elaboración de este
producto. Lo desarrollado en las etapas de análisis y diseño es traducido a código.
Pruebas: se especifican las pruebas realizadas para comprobar el correcto desarrollo
del proyecto y los cambios necesarios aplicados para garantizar el correcto funcionamiento del
mismo.
Conclusión: en este capítulo se analiza todo el proceso y el resultado del trabajo,
además se especifican algunas líneas de futuro.
Manual de usuario y software: demostración y recomendaciones en la instalación del
trabajo y utilización de los diferentes casos de uso.
Referencias: se citan las referencias bibliográficas que han hecho posible la realización
de este proyecto.
7
2. COMPETENCIAS
A continuación, se muestra en este capítulo una serie de competencias que se deben
cumplir en este trabajo.
-
CII01: capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y
sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a
principios éticos y a la legislación y normativa vigente.
El cumplimiento de esta competencia se ve reflejada en todo el trabajo, aunque
principalmente en los capítulos Análisis, Diseño, Implementación y Pruebas. En estos se
muestra como se ha desarrollado este proyecto con el fin de crear un producto que cumpla los
requisitos previamente definidos, asegurando, así, la fiabilidad, seguridad y calidad del mismo.
Además, queda demostrado el buen uso y la ampliación de los conocimientos adquiridos
durante la realización de los estudios, aplicándolos de forma adecuada para el buen desarrollo
de este proyecto.
-
CII02: capacidad para planificar, concebir, desplegar y dirigir trabajos, servicios y
sistemas informáticos en todos los ámbitos, liderando su puesta en marcha y su
mejora continua y valorando su impacto económico y social.
Esta competencia queda cubierta en los siguientes capítulos:

Plan de trabajo: En este queda definida la planificación general de desarrollo del
trabajo dividida en tareas. Cada una de estas tareas cuenta con una descripción de su
función y el tiempo que tardará en realizarse medido en horas.

En cuanto al impacto económico y social, el proyecto pretende llegar a todo el público,
especialmente a aquellos que aman los grandes clásicos de la industria
cinematográfica. Para fomentar el uso de la aplicación existe, para aquellos que se
hayan registrado previamente, un porcentaje de descuento en el precio aplicado a
cada película. Una vez esté correctamente validado ante el sistema aparecerá el
descuento.
-
CII04: capacidad para elaborar el pliego de condiciones técnicas de una instalación
informática que cumpla los estándares y normativas vigentes.
Para el desarrollo e instalación de este trabajo se han tenido en cuenta los requisitos
hardware y software fundamentales, estos se encuentran documentados en el capítulo
séptimo de la presente memoria (Implementación). En cuanto al hardware, tan solo es
necesario un ordenador (portátil o de sobremesa), también queda indicado en el capítulo diez
(Manual de usuario y software).
8
-
CII18: conocimiento de la normativa y la regulación de la informática en los ámbitos
nacional, europeo e internacional.
Esta competencia queda cubierta en el capítulo “Normativa y legislación”, detallando la
normativa y la regulación de la informática relacionada en los ámbitos nacional, europeo e
internacional y en el ámbito del propio trabajo de fin de grado.
-
TFG01: Ejercicio original a realizar individualmente y presentar y defender ante un
tribunal universitario, consistente en un proyecto en el ámbito de la Ingeniería
Informática de naturaleza profesional en el que sinteticen e integren las
competencias adquiridas en las enseñanzas.
Esta competencia será cubierta en el momento en que se haya realizado la presentación
de este TFG ante los miembros del tribunal asignados al mismo.
9
3. NORMATIVA Y LEGISLACIÓN.
3.1 Normativa y legislación de la informática en el ámbito internacional.
Este apartado y el siguiente, 3.2, se ha sido completando referenciando a la siguiente
página web http://www.segu-info.com.ar/delitos/delitos.htm
En el contexto internacional, son pocos los países que cuentan con una legislación
apropiada. Entre ellos destacan Estados Unidos, Alemania, Austria, Gran Bretaña, Holanda,
Francia, Argentina y Chile.
A continuación se mencionan algunos aspectos relacionados con la ley en diferentes
países, así como los delitos informáticos que persigue.
Estados Unidos
El primer abuso de un ordenador se registró en 1958 mientras que en 1966 se llevó
adelante el primer proceso por la alteración de datos de un banco de Mineapolis. En la primera
mitad de la década del 70, mientras los especialistas y criminólogos discutían si el delito
informático era el resultado de una nueva tecnología o un tema específico, los ataques
computacionales se hicieron más frecuentes. Para acelerar las comunicaciones, enlazar
compañías, centros de investigación y transferir datos, las redes debían (y deben) ser
accesibles, por eso el Pentágono, la OTAN, las universidades, la NASA, los laboratorios
industriales y militares se convirtieron en el blanco de los intrusos.
Pero en 1976 dos hechos marcaron un punto de inflexión en el tratamiento policial de
los casos: el FBI dictó un curso de entrenamiento para sus agentes acerca de delitos
informáticos y el Comité de Asuntos del Gobierno de la Cámara presentó dos informes que
dieron lugar a la Ley Federal de Protección de Sistemas de 1985.
Esta ley fue la base para que Florida, Michigan, Colorado, Rhode Island y Arizona se
constituyeran en los primeros estados con legislación específica, anticipándose un año al
dictado de la Computer Fraud y Abuse Act de 1986.
Este se refiere en su mayor parte a delitos de abuso o fraude contra casas financieras,
registros médicos, computadoras de instituciones financieras o involucradas en delitos
interestatales. También especifica penas para el tráfico de claves con intención de cometer
fraude y declara ilegal el uso de passwords ajenas o propias en forma inadecuada. Pero solo es
aplicable en casos en los que se verifiquen daños cuyo valor supere el mínimo de mil dólares.
En 1994 se adoptó el Acta Federal de Abuso Computacional (18 U.S.C. Sec 1030),
modificando el Acta de 1986. Aquí se contempla la regulación de los virus (computer
contaminant) conceptualizándolos aunque no los limita a los comúnmente llamados virus o
10
gusanos sino que contempla a otras instrucciones designadas a contaminar otros grupos de
programas o bases de datos.
Modificar, destruir, copiar, transmitir datos o alterar la operación normal de las computadoras,
los sistemas o las redes informáticas es considerado delito. Así, esta ley es un acercamiento
real al problema, alejado de argumentos técnicos para dar cabida a una nueva era de ataques
tecnológicos.
El aumento en la cantidad de casos de hacking y la sensación de inseguridad
permanente que generaron (fomentada por la difusión de los hechos en programas especiales
de televisión y artículos de revistas especializadas), cambiaron la percepción de las autoridades
con respecto a los hackers y sus ataques. Los casos que demostraron ese cambio fueron los del
"Cóndor" Kevin Mitnicky y los de "ShadowHawk" Herbert Zinn hijo.
El FCIC (Federal Computers Investigation Commitee), es la organización más
importante e influyente en lo referente a delitos computacionales: los investigadores estatales
y locales, los agentes federales, abogados, auditores financieros, programadores de seguridad
y policías de la calle trabajan allí comunitariamente. El FCIC es la entrenadora del resto de las
fuerzas policiales en cuanto a delitos informáticos, y el primer organismo establecido en el
nivel nacional.
Además existe la Asociación Internacional de Especialistas en Investigación
Computacional (IACIS), quien investiga nuevas técnicas para dividir un sistema en sus partes
sin destruir las evidencias. Sus integrantes son "forenses de las computadoras" y trabajan,
además de los Estados Unidos, en el Canadá, Taiwán e Irlanda.
Alemania.
En Alemania, para hacer frente a la delincuencia relacionada con la informática, el 15
de mayo de 1986 se adoptó la Segunda Ley contra la Criminalidad Económica.
Esta ley reforma el Código Penal (art. 148 del 22 de diciembre de 1987) para
contemplar los siguientes delitos:
-
-
Espionaje de datos (202a).
Estafa informática (263a).
Falsificación de datos probatorios (269) junto a modificaciones complementarias
del resto de falsedades documentales como el engaño en el tráfico jurídico
mediante la elaboración de datos, falsedad ideológica, uso de documentos falsos
(270, 271, 273).
Alteración de datos (303a) es ilícito cancelar, inutilizar o alterar datos e inclusive la
tentativa es punible.
Sabotaje informático (303b).
11
-
Destrucción de datos de especial significado por medio de deterioro, inutilización,
eliminación o alteración de un sistema de datos. También es punible la tentativa.
Utilización abusiva de cheques o tarjetas de crédito (266b).
Por lo que se refiere a la estafa informática, el perjuicio patrimonial que se comete
consiste en influir en el resultado de una elaboración de datos por medio de una
realización incorrecta del programa, a través de la utilización de datos incorrectos
o incompletos, mediante la utilización no autorizada de datos o a través de una
intervención ilícita. Esta solución fue también adoptada en los Países Escandinavos
y en Austria.
Austria.
Según la Ley de reforma del Código Penal del 22 de diciembre de 1987, se contemplan
los siguientes delitos:
-
Destrucción de datos (art. 126) no solo datos personales sino también los no
personales y los programas.
Estafa informática (art. 148) se sanciona a aquellos que con intención causen un
perjuicio patrimonial a un tercero influyendo en el resultado de una elaboración de
datos automática a través de la confección del programa, por la introducción,
cancelación o alteración de datos o por actuar sobre el procesamiento de datos.
Además contempla sanciones para quienes cometen este hecho utilizando su
profesión.
Gran Bretaña.
Tras varios casos de hacking surgieron nuevas leyes sobre delitos informáticos. En
agosto de 1990 comenzó a regir la Computer Misuse Act (Ley de Abusos Informáticos) por la
cual cualquier intento, exitoso o no de alterar datos informáticos con intención criminal se
castiga con hasta cinco años de cárcel o multas sin límite.
El acceso ilegal a un ordenador contempla hasta seis meses de prisión o multa de hasta
dos mil libras esterlinas.
El acta se puede considerar dividida en tres partes: hackear (ingresar sin permiso en un
ordenador), hacer algo con el ordenador hackeada y realizar alguna modificación no
autorizada.
El último apartado se refiere tanto al hacking (por ejemplo, la modificación de un
programa para instalar un backdoor), la infección con virus o, yendo al extremo, a la
destrucción de datos como la inhabilitación del funcionamiento del ordenador.
12
Bajo esta ley liberar un virus es delito y en enero de 1993 hubo un raid contra el grupo
de creadores de virus. Se produjeron varios arrestos en la que fue considerada la primera
prueba de la nueva ley en un entorno real.
Holanda.
Hasta el día 1 de marzo de 1993, día en que entró en vigencia la Ley de Delitos
Informáticos, Holanda era un paraíso para los hackers. Esta ley contempla con artículos
específicos sobre técnicas de Hacking y Phreacking.
El mero hecho de entrar en un ordenador en el cual no se tiene acceso legal ya es
delito y puede ser castigado hasta con seis meses de cárcel. Si se usó ese ordenador hackeado
para acceder a otro, la pena sube a cuatro años aunque el crimen, a simple vista, no parece ser
peor que el anterior. Copiar archivos de la máquina hackeada o procesar datos en ella también
conlleva un castigo de cuatro años en la cárcel. Publicar la información obtenida es ilegal si son
datos que debían permanecer en secreto, pero si son de interés público es legal.
El daño a la información o a un sistema de comunicaciones puede ser castigado con
cárcel de seis meses a quince años, aunque el máximo está reservado para quienes causaron la
muerte de alguien con su accionar. Cambiar, agregar o borrar datos puede ser penalizado
hasta con dos años de prisión pero, si se hizo vía remota aumenta a cuatro.
Los virus están considerados de manera especial en la ley. Si se distribuyen con la
intención de causar problemas, el castigo puede llegar hasta los cuatro años de cárcel; si
simplemente se "escapó", la pena no superará el mes.
El usar el servicio telefónico mediante un truco técnico (Phreacking) o pasando señales
falsas con el objetivo de no pagarlo puede recibir hasta tres años de prisión. La venta de
elementos que permitan el Phreaking se castiga con un año de prisión como tope y si ese
comercio es el modo de ganarse la vida del infractor, el máximo aumenta a tres. La ingeniería
social también es castigada con hasta tres años de cárcel.
Recibir datos del aire es legal (transmisiones satelitales), siempre y cuando no haga
falta un esfuerzo especial para conseguirlos; la declaración protege datos encriptados, como
los de ciertos canales de televisión vía satélite. Falsificar tarjetas de crédito de banca
electrónica y usarlas para obtener beneficios o como si fueran las originales está penado con
hasta seis años. Aunque hacerlas y no usarlas parece ser legal.
Francia.
Aquí, la Ley 88/19 del 5 de enero de 1988 sobre el fraude informático contempla:
-
Acceso fraudulento a un sistema de elaboración de datos. Se sanciona tanto el
acceso al sistema como al que se mantenga en él y aumenta la sanción si de ese
13
-
-
acceso resulta la supresión o modificación de los datos contenidos en el sistema o
resulta la alteración del funcionamiento del sistema.
Sabotaje Informático. Falsear el funcionamiento de un sistema de tratamiento
automático de datos.
Destrucción de datos. Se sanciona a quien intencionalmente y con menosprecio de
los derechos de los demás introduzca datos en un sistema de tratamiento
automático de datos, suprima o modifique los datos que este contiene o los modos
de tratamiento o de transmisión.
Falsificación de documentos informatizados. Se sanciona a quien de cualquier
modo falsifique documentos informatizados con intención de causar un perjuicio a
otro.
Chile.
Chile fue el primer país latinoamericano en sancionar una Ley contra Delitos
Informáticos. La ley 19223 publicada en el Diario Oficial (equivalente del Boletín Oficial
argentino) el 7 de junio de 1993 señala que la destrucción o inutilización de un sistema de
tratamiento de información puede ser castigado con prisión de un año y medio a cinco.
Como no se estipula la condición de acceder a ese sistema, puede encuadrarse a los
autores de virus. Si esa acción afectara los datos contenidos en el sistema, la prisión se
establecería entre los tres y los cinco años.
El hacking, definido como el ingreso en un sistema o su interferencia con el ánimo de
apoderarse, usar o conocer de manera indebida la información contenida en este, también es
pasible de condenas de hasta cinco años de cárcel; pero ingresar en ese mismo sistema sin
permiso y sin intenciones de ver su contenido no constituye delito.
Dar a conocer la información almacenada en un sistema puede ser castigado con
prisión de hasta tres años, pero si el que lo hace es el responsable de dicho sistema puede
aumentar a cinco años. Esta ley es muy similar a la inglesa aunque agrega la protección a la
información privada.
China.
El Tribunal Supremo Chino castigará con la pena de muerte el espionaje desde
Internet, según se anunció el 23 de enero de 2001.
Todas las personas "implicadas en actividades de espionaje", es decir que "roben,
descubran, compren o divulguen secretos de Estado" desde la red podrán ser condenadas con
penas que van de diez años de prisión hasta la muerte. ¿Castigo ejemplar?
14
La corte determina que hay tres tipos de actividades donde la vigilancia será extrema:
secretos de alta seguridad, los secretos estatales y aquella información que dañe seriamente la
seguridad estatal y sus intereses. Se consideran actividades ilegales la infiltración de
documentos relacionados con el Estado, la defensa, las tecnologías de punta, o la difusión de
virus informático.
El Tribunal ha hecho especial énfasis al apartado del espionaje desde la red. A los
llamados "criminales", además de tener asegurada una severa condena (la muerte), también
se les puede confiscar los bienes.
3.2 Normativa y legislación de la informática en el ámbito europeo.
Hasta ahora, el principal esfuerzo europeo por regular el tema de los delitos
informáticos dio como resultado el “Convenio sobre la Ciberdelincuencia”, del 21 de
noviembre de 2011. Este documento fue firmado por los representantes de cada país miembro
del Consejo de Europa, aunque su eficacia depende de su posterior refrendo por los órganos
nacionales de cada país firmante.
El “Convenio de Ciberdelincuencia” permitió la definición de los delitos informáticos y
algunos elementos relacionados con estos, tales como “sistemas informáticos”, “datos
informáticos”, o “proveedor de servicios”. Estos delitos informáticos fueron clasificados en
cuatro grupos:
a. Delitos contra la confidencialidad, la integridad y la disponibilidad de los datos y
sistemas informáticos.
-
Acceso ilícito a sistemas informáticos.
Interceptación ilícita de datos informáticos.
Interferencia en el sistema mediante la introducción, transmisión, provocación de
daños, borrado, alteración o supresión de estos.
Abuso de dispositivos que faciliten la comisión con delitos.
b. Delitos informáticos.
-
Falsificación informática que produzca alteración, borrado o supresión de datos
informáticos que ocasionen datos no auténticos.
Fraudes informáticos.
c. Delitos relacionados con el contenido.
-
Delitos relacionados con la pornografía infantil.
15
d. Delitos relacionados con infracciones de la propiedad intelectual y derechos afines.
Conviene destacar que en el “Convenio sobre la Ciberdelincuencia” se encomienda a
cada parte que tome las medidas necesarias para tipificar como delito en su derecho
interno de cada uno de los apartados descritos en cada categoría.
En la Disposición 1441 del BOE núm. 226 de 2010, encontramos el Instrumento de
Ratificación del “Convenio sobre la Ciberdelincuencia”, hecho en Budapest el 23 de
Noviembre de 2001.
3.3 Normativa y legislación de la informática en el ámbito nacional.
Ley Orgánica de Protección de datos de carácter personal: régimen sancionador
aplicable (BOE nº 298 de 14/XII/99 que publicó la Ley Org. 15/1999 de Dic).
Objeto: proteger y garantizar las libertades públicas y derechos fundamentales de las
personas, especialmente su HONOR e INTIMIDAD personal y familiar.
Aspectos de interés: serán responsables “los responsables de los ficheros o de los
tratamientos” y “los encargados de los tratamientos”.
Tipo de infracciones:
-
-
Leves (art. 44.2): multas de 100.000 a 10 millones de las antiguas pesetas. Ej:
rectificar datos o no comunicarlos a la Agencia de Protección de Datos.
Graves (art. 43): multas de 10 a 50 millones de las antiguas pesetas. Ej: no
mantener sistemas de seguridad, obstrucción a inspección, uso en provecho
propio.
Muy graves (art. 45): multas de 50 a 100 millones de las antiguas pesetas
(“Conductas reprochables”). Ej: vulnerar a propósito el secretismo, etc.
Ley 7/1998 de 13 de abril que regula las condiciones generales de contratación.
R. D. 1906/1999 de 17/XII que regula la contratación telefónica.
R.D. Ley 14/1999 de 17/XII sobre Firma Electrónica (BOE Nº 224 de 18/XII).
Firma electrónica: dispositivo electrónico que permite la identificación del signatario
de las operaciones realizadas por internet.
Identifica: el firmante (autentificación) y evita el retracto (no repudio).
Código Penal
16
Ley Orgánica 10/1995 de 23/XI: Tipifica delitos y faltas por el uso de la
informática, concretamente contra la Intimidad, Patrimonio, Socioeconómicos y
Propiedad Intelectual.
Título X: “Delitos contra la intimidad, derecho a la propia imagen y la
inviolabilidad del domicilio”.
-
Apoderarse de papeles, e-mails, mensajes, otros.
Cracks: delitos.
Obtener datos de terceros.
Recomendaciones de la APD
a. Información de la recogida de datos
-
-
Cuando suministre datos personales a cualquier organización (proveedores de
acceso, proveedores de contenido, vendedores a través de comercio electrónico,
etc.) sea consciente de a quién se los facilita y con qué finalidad.
Procure averiguar la política de sus proveedores y administradores de listas y
directorios en los que se refiere a venta, intercambio o alquiler de los datos que les
suministra. Solicite que sus datos personales no vayan unidos a su identificación de
acceso a internet.
b. Finalidad para la que se recogen los datos
-
-
Desconfíe si los datos que le solicitan son excesivos para la finalidad con la que se
recogen o innecesarios para el servicio que se le presta.
Tenga en cuenta que cuando introduce su dirección de correo electrónico en un
directorio, lista de distribución o grupo de noticias, dicha dirección puede ser
recogida por terceros para ser utilizada con una finalidad diferente, como por
ejemplo remitirle publicidad no deseada.
Cuando navegue por internet, sea consciente de que los servidores web que visita
pueden registrar tanto las páginas a las que accede como la frecuencia y los temas
o materias por las que busca, aunque no le informen de ellos. Asimismo, su
pertenencia a determinados grupos de noticias y listas de distribución puede
contribuir a la elaboración de perfiles más o menos detallados sobre su persona.
c. Seguridad en el intercambio de los datos
-
Utilice, siempre que sea posible, las últimas versiones de los programas
navegadores, ya que cada vez suelen incorporar mejores medidas de seguridad.
17
-
-
-
-
-
Considere la posibilidad de activar en dichos programas las opciones que alerten
sobre los intercambios de datos no deseados y no rellene aquellos datos que no
desee hacer públicos (por ejemplo, dirección de correo electrónico, nombre,
apellidos, etc.).
No realice transacciones comerciales electrónicas a través de proveedores con
sistemas inseguros o no fiables. Consulte el manual de su navegador para
averiguar cómo informa de que se ha establecido una conexión con un servidor
seguro.
Recuerde que existen sistemas de dinero electrónico que preservan el anonimato
de sus compras en internet.
Utilice los mecanismos de seguridad que tenga a su alcance para proteger sus
datos de accesos no deseados. El medio más fiable para conseguirlo es el cifrado
de los mismos.
Salvo que se utilicen mecanismos de integridad, autenticación y certificación (firma
digital, notarios electrónicos, etc.) no confíe ciegamente en que la persona u
organización que le remite un mensaje es quien dice ser y en que el contenido del
mismo no se ha modificado, aunque esto sea así en la inmensa mayoría de las
ocasiones.
Siempre que se le soliciten datos personales que no está obligado legalmente a
suministrar, sopese los beneficios que va a recibir de la organización que los
recoge frente a los posibles riesgos de utilización irregular de los mismos.
Ante cualquier duda sobre la legalidad de la utilización de sus datos de carácter
personal, póngase en contacto con la Agencia de Protección de Datos.
La protección jurídica de programas de ordenador. Piratería informática
-
-
El Real Decreto Legislativo 1/1996, por el que se aprueba el Texto Refundido sobre
Propiedad Intelectual, la protección jurídica de los programas, antes regulada por
la Ley de Protección Jurídica de Programas de Ordenador y por la Ley de Propiedad
Intelectual, crea un marco jurídico en contra de la piratería informática.
El Texto Refundido desarrolla una serie de medidas para combatir la piratería
informática, como la posibilidad de que los fabricantes de programas de ordenador
soliciten a la justicia española la realización de un registro sorpresa en empresas en
la que existen sospechas fundadas o evidencias de delito. España es uno de los
países en los que se puede acudir a esta medida cautelar. De esta manera se
erradica la posibilidad de que los presuntos infractores puedan destruir las
pruebas existentes, lo cual, indudablemente ocurrirá si se les notifica por
adelantado la realización de un registro.
¿En qué casos se infringe la Ley?
18
-
-
-
-
-
Al copiar o distribuir un programa de ordenador o la documentación que se le
acompaña, incluidas aplicaciones, datos, códigos y manuales, sin permiso expreso
o licencia del propietario o licencia del propietario de los derechos de explotación.
Al utilizar un programa sin la correspondiente licencia o autorización del
fabricante, con independencia de que se utilice en un solo ordenador o en varios
de forma simultánea.
Al utilizar programas de ordenador en un número de copias superior al autorizado
por el fabricante en sus contactos o licencias de uso.
En empresas y demás organizaciones, al fomentar, consciente o
inconscientemente, permitir, obligar o presionar a los empleados a realizar o
distribuir copias no autorizadas del programa.
Al efectuar copias no autorizadas porque alguien lo requiere u obliga a ello. Al
ceder o prestar el programa de forma que pueda ser copiado o copiarlo mientras
está en su posesión en calidad de cedido o prestado.
Al crear, importar, poseer o negociar con artículos destinados a burlar o neutralizar
cualquier medio técnico aplicado para proteger el programa de ordenador.
Medidas judiciales
Si finalmente existe evidencia de delito, las medidas judiciales que pueden adoptarse
son:
-
Solicitar al juez un registro sorpresa de las instalaciones del presunto infractor,
tanto por la vía civil como por la penal.
Solicitar al juez la adopción urgente de medidas cautelares de protección.
Exigir indemnizaciones acordes con los daños materiales y morales causados.
El cierre dentro de la actividad del infractor.
El secuestro de todos aquellos medios destinados a suprimir los dispositivos
técnicos que protegen un programa desarrollado y comercializado por un
fabricante de programas.
3.4 Normativa y legislación de la informática en el ámbito nacional.
Ley Orgánica de Protección de Datos.
Este proyecto está amparado por la Ley Orgánica 15/1999 del 13 de diciembre de
Protección de Datos (LOPD) citada y descrita en el apartado 3.3 de este capítulo.
Ley de Propiedad Intelectual.
El TFG, también está protegido por la Ley de Propiedad Intelectual (LPI). La propiedad
intelectual está integrada por una serie de derechos de carácter personal y/o patrimonial que
atribuyen al autor y a otros titulares la disposición y explotación de sus obras y prestaciones.
19
La ley que regula la propiedad intelectual es el texto Refundido de la Ley de Propiedad
Intelectual, aprobado por Real Decreto Legislativo 1/1996, de 12 de abril.
La propiedad intelectual protege las creaciones originales literarias, artísticas o
científicas expresadas en cualquier medio, tales como libros, escritos, composiciones
musicales, obras dramáticas, coreografías, obras audiovisuales, esculturas, obras pictóricas,
planos, maquetas, mapas, fotografías, programas de ordenador y bases de datos. También
protege las interpretaciones artísticas, los fonogramas, las grabaciones audiovisuales y las
emisiones de radiodifusión.
De esta, quedan excluidas las ideas, los procedimientos, métodos de operación o
conceptos matemáticos en sí, aunque no la expresión de los mismos. También se excluyen las
disposiciones legales o reglamentarias, sus correspondientes proyectos, las resoluciones de los
órganos jurisdiccionales y los actos de los organismos públicos, así como las traducciones de
dichos textos.
Los derechos de propiedad intelectual otorgan además del reconocimiento a los
creadores, la retribución económica que les corresponde por la realización de sus obras y
prestaciones. Es también un incentivo a la creación y a la inversión en obras y prestaciones de
la que se beneficia la sociedad en su conjunto.
Las obras o prestaciones se protegen desde el momento de su creación, recibiendo los
titulares la plena protección de la ley desde ese momento y sin que se exija el cumplimiento de
ningún requisito formal.
Las medidas tecnológicas de protección se pueden definir como los instrumentos que
están destinados a impedir o restringir al usuario de obras o prestaciones protegidas que no
cuente con la pertinente autorización, la reproducción, comunicación pública, etc. de ellas. Lo
que no pueden impedir las medidas tecnológicas a los usuarios de los derechos de explotación
es disfrutar de algunos de los límites impuestos a los derechos de explotación. Estos límites
impuestos por razones de tipo social, cultural, de seguridad nacional, etc. permiten a los
usuarios-beneficiarios que puedan utilizar en determinados casos los derechos de reproducir,
comunicar, distribuir, etc. sin requerir la pertinente autorización a sus respectivos titulares.
Toda vez que la aplicación de las medidas tecnológicas puede en la práctica desvirtuar alguno
de los límites impuestos a los derechos de explotación de los titulares de derechos de
propiedad intelectual, ha sido necesario establecer que estos últimos faciliten los medios para
que los beneficiarios de esos límites disfruten de los mismos. Cuando los titulares no faciliten
estos medios voluntariamente, los beneficiarios de esos límites podrán acudir a órganos
jurisdiccionales a los fines de hacer efectivos el cumplimiento de dicha obligación.
Ley de Cookies.
20
Por último hablaremos de una ley que también envuelve este trabajo, la ley de
cookies.
Las cookies están reguladas en la Directiva Europea 2009/136/CE del Parlamento
Europeo y del Consejo de 25 de noviembre del 2009 llamada “Directiva de las Cookies” y
el Reglamento (CE) nº 2006/2004. En España la transposición de la Directiva fue realizada el 30
de marzo de 2012 a través del Real Decreto-ley 13/2012, este modifica el artículo 22 de la ley
34/2002 de 11 de julio de servicios de la sociedad de la información y de comercio electrónico,
en adelante LSSICE.
La Agencia de Protección de datos realizó una muy buena guía sobre Ley de Cookies,
aunque matizó lo siguiente:
“Dadas las múltiples complejidades que plantea el uso de las cookies, las orientaciones
recogidas en el documento conjunto no pretenden ofrecer una solución general y uniforme
para el cumplimiento de la Ley sino servir de guía para que las entidades afectadas reflexionen
y adopten decisiones sobre la solución más adecuada a sus intereses y modelo de negocio. La
AEPD recomienda a las entidades implicadas en la utilización de cookies llevar a cabo una
revisión de las que se utilizan, bien internamente, bien con el asesoramiento de asociaciones o
entidades especializadas. Las entidades podrán conocer así qué cookies se utilizan y para qué
finalidad, descartando así las innecesarias.”
Alcance de la norma.
De obligatorio cumplimiento desde el 1 de abril de 2012, la ley de Cookies
determina su ámbito de aplicación por el capítulo II -artículos 2, 3, 4 y 5 de la LSICE – y donde
obligan a todos los “prestadores de servicios de la sociedad de la información”. Es
decir persona física o jurídica, que realiza actividades económicas por Internet u otros medios
telemáticos siempre que la dirección y gestión de su negocio esté centralizada en España o
posea una sucursal, oficina o cualquier otro tipo de establecimiento permanente situado en
España. Una plataforma ejerce actividades económicas si genera de forma directa o indirecta
algún beneficio económico para el titular, concretando un poco más, si se encuentra en alguna
de las siguientes situaciones:
1. Web corporativa de una empresa.
2. Tienda ecommerce.
3. Autónomo con una web corporativa independientemente de si es usada como página
informativa sobre sus negocios o como tienda online.
4. Blog particular si incluye publicidad.
El apartado 22 de la LSSI establece:
21
“Los prestadores de servicios podrán utilizar dispositivos de almacenamiento y
recuperación de datos en equipos terminales de los destinatarios, a condición de que los
mismos hayan dado su consentimiento después de que se les haya facilitados información clara
y completa sobre su utilización, en particular, sobre los fines de tratamiento de los datos, con
arreglo a lo dispuesto en la Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos
de Carácter Personal”.
Por si acaso procediera la aclaración, se entiende por equipo terminal: teléfono móvil,
tablet, ordenador personal… Nos referimos a la instalación de cookies o tecnologías similares
utilizadas, tales como shared objetcs o flash cookies, quedando únicamente excluidas del
cumplimiento:
1. La comunicación entre el equipo del usuario y la red.
2. Estrictamente prestar un servicio expresamente solicitado por el usuario en la que
sea necesario el uso de dichos dispositivos de almacenamiento.
Estas dos excepciones hacen referencia a las siguientes cookies:
1.
2.
3.
4.
5.
6.
7.
Cookies de «entrada del usuario».
Cookies de autenticación o identificación de usuario (únicamente de sesión).
Cookies de seguridad del usuario.
Cookies de sesión de reproductor multimedia.
Cookies de sesión para equilibrar la carga.
Cookies de personalización de la interfaz de usuario.
Cookies de complemento (plug-in) para intercambiar contenidos sociales.
Por último hay que indicar que una mismo cookie puede tener más de una finalidad,
por lo que puede que en parte quede exceptuada del ámbito de aplicación, pero para otras
finalidades no, quedando sujeto por tanto a dicho precepto.
Qué es una Cookie.
El término cookies es utilizado como nombre genérico para describir cualquier tipo de
archivo o dispositivo que se descarga en el equipo terminal de un usuario con la finalidad de
almacenar datos que podrán ser actualizados por la entidad responsable de su
instalación. Con otras palabras una cookie es una pequeña pieza de información -texto- que
envía un servidor web para que sea almacenada por el programa de navegación utilizado en la
memoria del ordenador, de tal manera que pueda ser leída a posteriori por ese servidor, de
forma que le sea útil para recordar cualquier información específica. Gracias a las cookies
existe el marketing online.
Según quien sea la entidad que gestiona el equipo y trate los datos podemos distinguir
los siguientes tipos de Cookies:
22
1. Cookies propias: Son aquellas que se envían al equipo terminal del usuario desde
un equipo o dominio gestionado por el propio editor y desde el que se presta
el servicio solicitado por el usuario.
2. Cookies de tercero: Son aquellas que se envían al equipo terminal del
usuario desde un equipo o dominio que no es gestionado por el editor, sino por
otra entidad que trata los datos obtenidos través de las cookies.
Según el plazo de tiempo que permanecen activas:
1. Cookies de sesión: Son un tipo de cookies diseñadas para recabar y almacenar
datos mientras el usuario accede a una página web.
2. Cookies persistentes: Son un tipo de cookies en el que los datos
siguen almacenados en el terminal y pueden ser accedidos y tratados durante un
periodo definido por el responsable de la cookie, y que puede ir de unos minutos
a varios años.
Según su finalidad:
1. Cookies técnicas: Permiten al usuario la navegación a través de una página o
plataforma web y la utilización de las diferentes opciones o servicios que en ella
existen como por ejemplo, identificar la sesión o acceder a partes de acceso
restringido de datos.
2. Cookies de personalización: Aquellas que permiten al usuario acceder al servicio
con algunas características en función de una serie de criterios, como puede ser el
idioma predefinido en función del origen de la visita.
3. Cookies de análisis: Permiten al responsable de la misma, el seguimiento y análisis
del comportamiento de los usuarios de los sitios web. Este tipo de cookies aunque
no están exentas del deber de obtener un consentimiento informado para su uso,
es poco probable que representen un riesgo para la privacidad de los usuarios,
siempre que los datos sean usados con una finalizada estrictamente estadística.
4. Cookies publicitarias: Aquellas que permiten una gestión de los espacios
publicitarios.
5. Cookies de publicidad comportamental: Permiten la gestión de los espacios s
publicitarios que, en su caso, el editor haya incluido en una página web, aplicación
o plataforma desde la que presta el servicio solicitado. Estas cookies almacenan
información del comportamiento de los usuarios obtenida a través de la
observación continuada de sus hábitos de navegación, lo que permite desarrollar
un perfil específico para mostrar publicidad en función del mismo.
Partes intervinientes
Usuarios
23
Destinatario, persona física, que accede al servicio prestado por un editor pudiendo
diferenciarse entre usuario registrado y no registrado.
Editor
Entidad prestadora de servicios de la sociedad de la información titular de una página
web a los que pueda acceder un usuario y para cuya prestación se utilizan cookies.
Anunciante
Es la entidad cuyos productos, servicios o imagen se publicitan a través de los espacios
publicitarios de los que disponen, en su caso, los editores en sus páginas. Frecuentemente, el
editor también suele actuar como anunciante.
Agencias de publicidad y agencias de medios
Entidades que se encargan del diseño y ejecución de publicidad, así como de la
creación, preparación o programación de las campañas publicitarias de los anunciantes,
actuando en nombre y por cuenta de estos.
Redes publicitarias
Conjunto de entidades que, actuando en nombre y representación directa o
indirectamente de uno o varios editores, ofrecen, también directamente a los anunciantes o,
indirectamente a través de otros demandantes, como las Agencias de publicidad, la posibilidad
de obtener espacios publicitarios o algún tipo de resultado concreto como clics, ventas o
registros, a través de la gestión y tratamiento de los datos obtenidos de la utilización de las
cookies descargadas o almacenadas en los equipos terminales de los usuarios, cuando estos
acceden a los servicios prestados por el editor.
Empresas de análisis y medición
Son entidades que miden y/o analizan el comportamiento de la navegación de los
usuarios en la página web de un editor, actuando en su nombre y representación, a través del
análisis de los datos obtenidos con la utilización de las cookies con la finalidad de mejorar el
servicio que presta el editor.
Obligaciones de las partes
En primer lugar debemos analizar las cookies que se estamos utilizando en nuestro
portal para identificar sus características y si están dentro del ámbito de aplicación del artículo
22 de la LSSI. En este sentido podría valorarse si es necesaria la instalación de cookies
persistentes puesto que los riesgos para la privacidad podrían reducirse mediante la utilización
24
de cookies de sesión, en cualquier caso deberá reducirse al mínimo necesario su duración
temporal atendiendo a la finalidad de uso.
Las obligaciones impuestas por la normativa son dos:
1. Deber de información.
Que información debe facilitarse.
Información clara y completa sobre la utilización de los dispositivos
de almacenamiento y recuperación de datos y, en particular, sobre los fines del tratamiento
de los datos, con arreglo a lo dispuesto en la Ley Orgánica 15/1999, de 13 de diciembre, de
protección de datos de carácter personal. Esta información debe estar accesible de forma
permanente a través de la página web. El usuario debe prestar su consentimiento y deberá ser
informado claramente de:
1.
2.
3.
4.
Su finalidad.
Cómo revocar el consentimiento.
Forma de eliminar las cookies.
Cómo debe mostrarse esa información.
Hay que tener en cuenta:
1. Tipo de usuario medio al que se dirige esa página web y adecuar el lenguaje y el
contenido de los mensajes a su nivel técnico.
2. Diseño y mecánica de la página web. Facilitar la accesibilidad, ya sea a través del
formato o del posicionamiento del enlace, y en la medida de lo posible a los
usuarios toda la información sobre las cookies.
Explicado esto se recomienda suministrar la información entre alguno de los siguientes
sistemas:
1. Barra de encabezamiento o en el pie de página.
2. Junto con la política de privacidad, o en los términos y condiciones de uso del
servicio al solicitar el alta en un servicio o realizar una descarga, pero siempre esta
deberá ser destacada y separada del resto de la información sobre términos y
condiciones de uso o política de privacidad.
3. Información por capas. Este sistema recomendado por la AEPD consiste en mostrar
la información esencial en una primera capa, cuando se accede a la página en la
que se ofrezca información adicional sobre las cookies.
1. En la primera capa se muestra la siguiente información: advertencia del
uso de cookies no exceptuadas que se instalan al navegar por dicha página,
25
la finalidad de las mismas y un enlace a una segunda capa informativa en la
que se incluya una información más detallada.
2. En la segunda capa se mostraría la siguiente información: definición y
función de las cookies, información a través de un cuadro o listado sobre el
tipo de cookies que utiliza la página web y su finalidad. Información sobre
como desactivar o eliminar las cookies.
2. Obtención del consentimiento.
El consentimiento como base para el cumplimiento de la normativa.
La instalación y utilización de las cookies será necesario en todo caso obtener el
consentimiento del usuario. Éste podrá obtenerse mediante fórmulas expresas, como
haciendo clic en un apartado que indique “consiento”, “acepto” u otros términos similares.
Pero siempre requerirá de alguna acción consciente y positiva por parte del usuario. Debemos
tener en cuenta que el usuario debe tener potestad para negarse a aceptar las cookies, incluso
aunque con ello se vea mermado la funcionalidad de la web.
Quién debe prestar el consentimiento.
Debe ser prestado por los destinatarios, con ello debe entenderse “la persona física o
jurídica que utiliza, sea o no por motivos profesionales, un servicio de la sociedad de la
información”
Modalidades de obtención del consentimiento.
La determinación de qué método será apropiado para obtener el consentimiento para
usar cookies dependerá del tipo de cookies que se van a instalar, de su finalidad, y de si son
propias o de terceros. En este sentido, debe indicarse si el consentimiento se presta solo para
la página web en la que se está solicitando o si se facilita también para otras páginas web del
mismo editor o incluso para terceros asociados al editor. Caben entre otros los siguientes
mecanismos:
1. A través de la aceptación de los “Términos y condiciones de uso de la página web”
o de su “Política de privacidad” al solicitar el alta en un servicio.
2. Durante el proceso de configuración del funcionamiento de la página web o
aplicación (Settings-led consent).
3. En el momento en que se solicite una nueva función ofrecida en la página web o
aplicación. (Feature-led consent).
4. Antes del momento en que se vaya a descargar un servicio o aplicación ofrecido en
la página web.
5. A través del formato de información por capas.
26
6. A través de la configuración del navegador. Tanto la Directiva sobre privacidad
como la LSSI sugieren que la configuración del navegador podría ser una de las
formas de obtener el consentimiento si se utiliza de forma que permita que los
usuarios manifiesten su conformidad con la instalación de las cookies según lo
dispuesto en la normativa vigente
Cuándo pueden instalarse las cookies.
De acuerdo al citado artículo 22, la instalación de la cookie podrá tener lugar cuando el
usuario disponga de la información preceptiva sobre las cookies y la forma de obtención del
consentimiento y el mismo se preste de acuerdo con los procedimientos indicados.
Cambios en el uso de las cookies.
Si las características o los fines cambian después de haber obtenido el consentimiento,
será necesario informar de nuevo a los usuarios de dichos cambios.
Retirada del consentimiento para el uso de cookies.
Los usuarios deberán poder retirar el consentimiento previamente otorgado en
cualquier momento. En todo caso, podrá informarse al usuario sobre las consecuencias
derivadas de la retirada de dicho consentimiento, como por ejemplo, del impacto que puede
tener en las funcionalidades de la página web.
Posibilidad de denegación de acceso al servicio en caso de rechazo a las cookies.
Se puede dar el caso de que la no aceptación de las cookies impida usar los servicios
total o parcialmente en la plataforma web. No obstante no podrá denegarse a este servicio en
el caso de que el servicio sea un derecho legalmente reconocido al usuario como puede ser el
acceso a un servicio de telefónico.
Responsabilidad de las partes en la utilización de las cookies
La LSSI no define quién es el responsable de cumplir con la obligación de facilitar
información sobre las cookies y obtener el consentimiento para su uso. En la gestión de las
cookies pueden darse dos situaciones:
1. El editor o los terceros utilizan las cookies para finalidades exceptuadas de las
obligaciones de informar y de obtener el consentimiento.
2. El editor o los terceros utilizan las cookies para finalidades no exceptuadas de las
obligaciones de informar y obtener el consentimiento. En este supuesto se pueden
diferenciar si usan cookies de primera o tercera parte.
27
1. En caso de usar cookies propias será necesario que informe sobre las
finalidades para las que se tratarán los datos y obtenga el consentimiento
del usuario.
2. Cuando se empleen cookies de terceros tanto el editor como las otras
entidades intervinientes en la gestión de las cookies tendrán la
responsabilidad, esta práctica se convierte en más difícil ya que el usuario
no tiene relación directa con los terceros.
Sanciones en caso de incumplimiento
El incumplimiento de estas disposiciones se regula en el Título VII de la LSSI, en el que
se detallan las infracciones y sanciones y, en concreto, a los artículos 38.3.i y 38.4.g, que
tipifican con infracción grave y leve, respectivamente, el incumplimiento:
“(…) de las obligaciones de información o de establecimiento de un procedimiento de
rechazo del tratamiento de datos, establecidas en el apartado 2 del artículo 22”.
Así, las sanciones en caso de incumplimiento serán las previstas en el artículo 39, y
pueden suponer multas de hasta 150.000 Euros en el caso de ser consideradas como graves.
28
4. PLAN DE TRABAJO.
A continuación, se muestra un listado ordenado sobre las tareas realizadas y el tiempo,
estimado en horas, invertido en cada una de ellas.
4.1 TAREAS
Tarea 1. Formación.
-
Adquisición de conocimientos técnicos para el buen desarrollo del proyecto.
Tarea 2. Análisis.
-
Descripción del proyecto.
Elaboración de diagramas de la arquitectura.
Tarea 3. Diseño.
-
Diseño de la arquitectura.
Diseño de las distintas pantallas del portal desarrollado con la plataforma Drupal.
Diseño de las distintas pantallas del portal dirigido a dispositivos móviles.
Tarea 4. Implementación.
-
Instalación y configuración del servidor local Xampp.
Instalación de Drupal 7.
Crear contenidos, crear usuarios y configurar sus privilegios y crear algunas páginas.
Instalación y configuración de los módulos necesarios en Drupal.
Desarrollo de un servicio web RESTful sobre PHP.
Desarrollo del portal web dirigido a móvil.
Establecimiento de comunicación entre ambos sistemas.
Tarea 5. Pruebas.
-
Comprobación de que las conexiones y los posibles casos de uso funcionan
correctamente.
Arreglar y modificar el código hasta que se cumpla el paso mencionado arriba.
Tarea 6. Documentación.
-
Recopilación y análisis de información.
29
-
Extracción de conclusiones sobre la información recopilada.
Elaboración de la memoria del proyecto.
4.2 PLANIFICACIÓN TEMPORAL
TAREAS
Tarea 1
Tarea 2
Tarea 3
Tarea 4
Tarea 5
Tarea 6
DURACIÓN (HORAS)
10 horas
30 horas
55 horas
145 horas
30 horas
30 horas
Tabla 1 – Planificación temporal del proyecto
30
5. ANÁLISIS
5.1 Introducción
En este capítulo trataremos el análisis del proyecto y veremos que tanto los casos de
uso como los privilegios entre los actores no son los mismos para ambos portales web.
5.2 Diagramas de casos de uso
Los diagramas de casos de uso nos permiten diferenciar los actores que interactúan
con nuestro sistema, las relaciones entre ellos y las acciones que puede realizar cada uno
dentro del dicho sistema. Este tipo de diagramas es fácilmente comprensible tanto por clientes
como por usuarios, representan los requisitos funcionales del sistema y se utilizan como base
para un desarrollo iterativo e incremental. Los diagramas de casos de uso tienen tres
elementos:
-
Actores: son los usuarios del sistema. Un actor puede ser una persona, un conjunto de
personas, un sistema hardware o un sistema software. Los actores representan un rol,
que puede desempeñar alguien que necesita intercambiar información con el sistema.
-
Casos de uso: un caso de uso describe una forma concreta de utilizar parte de la
funcionalidad de un sistema. La colección de todos los casos de uso describe toda la
funcionalidad del sistema.
-
Comunicación entre actores y casos de uso: Cada actor ejecuta un número de casos
de uso en el sistema.
5.2.1 Actores y privilegios
Los usuarios no identificados representan a todas aquellas personas que acceden a la
aplicación sin necesidad de autentificarse. Los usuarios identificados son aquellos que
31
previamente se han registrado y han iniciado su sesión. Los administradores son usuarios
identificados con una serie de privilegios definidos ante el sistema.
Privilegios.
En el portal Drupal todos los actores pueden acceder a ver el contenido del portal,
salvo los comentarios (estos serán invisibles para los usuarios no identificados). Los usuarios
no identificados tampoco podrán realizar votaciones sobre las películas. Los usuarios
identificados (incluyendo a los administradores) podrán editar sus datos personales, realizar
votaciones e interactuar con otros usuarios identificados a través del sistema de comentarios.
El administrador, además, podrá gestionar tanto el contenido del portal como el de los demás
usuarios.
Por otro lado, esto funcionará del siguiente modo en el portal móvil. Los usuarios no
identificados podrán acceder a todo el contenido. Los usuarios identificados por su parte verán
reducido el precio de las películas ya que obtendrán un descuento por el mero hecho de estar
registrados y correctamente autentificados.
El motivo por el cual no se tienen los mismos privilegios y casos de uso en ambos
portales es el grado de dificultad a la hora de implementar elementos elaborados (como el
sistema de votación y comentarios). Mientras que en Drupal lo implementamos de un modo
muy sencillo a través de módulos, en el portal móvil se convierte en una tarea mucho más
laboriosa en comparación con el anterior. Esto es algo simbólico, no nos importa, ya que lo que
se pretende conseguir es demostrar el empleo de conocimientos a la hora de establecer
privilegios entre los distintos actores y personalizar su experiencia al navegar por un portal
web.
5.2.2 Casos de uso del usuario no identificado
En el portal móvil.
32
En el sistema Drupal.
5.2.3 Casos de uso del usuario identificado
En el portal móvil.
33
En el sistema Drupal.
El caso de uso ‘Cambiar datos personales’ incluye cancelar la cuenta de usuario.
5.2.4 Casos de uso del administrador
En el portal móvil.
34
En el sistema Drupal.
35
5.3 Entidades
Catálogo
El catálogo es un contenedor de películas y está representado como una lista de
elementos del tipo Catalog_Element. De este tipo de contenido solo se muestran los campos
carátula, título y precio.
Película
Una película es un contenedor de los siguientes campos: carátula, título, año de
estreno, país, duración, género, precio, votación, reparto, argumento, comentarios y director.
Forma parte del catálogo y señala a un nodo que aloja datos del tipo Ficha_Director, diferentes
películas pueden señalar al mismo director pero nunca una película puede señalar a más de un
director.
Director
Un director es un contenedor que almacena información en los siguientes campos:
foto del director, nombre, año de nacimiento, país de nacimiento, sobre él/ella y filmografía.
Un director puede ser referenciado por varias películas.
36
6. DISEÑO
6.1 Introducción
Para el diseño se ha elegido una arquitectura de tres capas, se trata de un estilo de
programación cuyo objetivo primordial es la separación de la capa de presentación, la capa de
negocio o lógica de aplicación y la capa de datos. La siguiente imagen ha sido modificada a
partir de la fuente: http://arquitecturaencapas.blogspot.com.es/2011/08/arquitectura-3capas-programacion-por.html
6.2 Capa de presentación
Se trata del conjunto de componentes software que implementan la interacción con
los usuarios a través de una representación visual de la aplicación, proporcionando a los
usuarios una forma de acceder y controlar los datos y los servicios de los objetos. A partir de la
interfaz gráfica el usuario navegará por las distintas páginas del portal obteniendo la
información que desee, o por el contrario aportando dicha información al sistema.
A continuación se muestran los mockups más representativos del diseño de la interfaz
gráfica:
Portal orientado a dispositivos móviles:
Página de inicio:
37
Menú:
Cómo funciona:
38
Login:
Catálogo, Ordenación, Filtro por género:
39
Ficha de película:
Ficha de director:
40
Portal construido sobre Drupal 7:
Página de inicio:
Regístrate:
41
Cómo funciona:
42
Catálogo:
43
Ficha de película:
44
Ficha del director:
6.3 Capa de negocio o lógica de la aplicación
La capa de negocio es el conjunto de componentes software que implementan
completamente el comportamiento de las clases del dominio, especificadas en la fase de
modelado conceptual. Es en este nivel, por tanto, donde se implementa la funcionalidad de la
aplicación web.
Esta capa sirve de intermediaria entre la interfaz y la base de datos, la capa de
presentación se comunica con la capa de negocio para demandarle el servicio deseado y es
esta la que se comunica con la capa de datos para recuperar los datos necesarios.
En esta capa, además, se produce la comunicación entre nuestros dos sistemas, Drupal
y el portal orientado a dispositivos móviles, a través de web services Restful.
En nuestro trabajo, esta capa interactúa con los otros dos niveles de la siguiente
forma:
45
6.4 Capa de datos
Se trata del conjunto de componentes software que proporcionan una serie de
servicios que permiten a los objetos del dominio interactuar con su repositorio permanente
asociado.
En este trabajo de fin de grado, la capa de datos corresponde a la base de datos del
sistema Drupal y las tablas que la conforman.
46
7. IMPLEMENTACIÓN
7.1 Introducción
En este capítulo veremos con más profundidad qué herramientas se han utilizado y
porqué han sido elegidas para el desarrollo de este trabajo, profundizando en las más
relevantes como son el CMT Drupal, los servicios web REST y el framework jQuery Mobile.
También veremos el papel que ha desarrollado cada una de estas para la correcta
implementación del proyecto.
Para desarrollar esta parte se ha instalado el servidor local XAMPP en un ordenador, ya
que se necesita hacer uso de Apache y MySQL. Sobre este se ha instalado Drupal y se han
alojado los archivos en los que se recoge todo el código que genera el portal y toda su
funcionalidad, siguiendo estos sencillos pasos se obtiene toda la funcionalidad y operabilidad
sobre este prototipo.
Apache: es un servidor web de distribución libre y de código abierto, siendo el más
popular del mundo desde abril de 1996, con una penetración actual del 50% del total
de servidores web del mundo (agosto de 2007). La aplicación permite ejecutarse en múltiples
sistemas operativos como Windows, Novell NetWare, Mac OS X y los sistemas basados
en Unix.
MySQL: es un sistema de administración de bases de datos (Database Management
System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una aplicación que
permite gestionar archivos llamados de bases de datos.
7.2 Portal DRUPAL
7.2.1 ¿Qué es 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 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.
47
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.
7.2.2 Módulos utilizados.
A continuación voy a presentar los módulos que he utilizado en el desarrollo del portal
y a explicar su uso común y su uso en este contexto.
Admin Menu: nos muestra una barra horizontal en la parte superior de la página que
nos permite realizar las mismas tareas de administración y mantenimiento que el menú por
defecto, pero de una forma más accesible y rápida.
Backup & Migrate: nos permite, de una manera muy fácil, respaldar y descargar
nuestra base de datos de un sitio creado con Drupal. Y por si fuera poco, también nos permite
volver a restaurar nuestra copia de seguridad. Permite programar los respaldos, comprimir las
copias, etc. Los archivos creados por este módulo, pueden ser importados tanto en el mismo
sitio, como en cualquier otro sitio creado con Drupal, utilizando el mismo módulo y/o también
por medio de phpmyadmin.
He utilizado periódicamente este módulo con el fin de mantener a salvo mi sistema
mediante el uso de copias de seguridad las cuales he ido almacenando en diversos sistemas de
almacenamiento portátil.
Chaos Tool Suite (CTools): se trata de un conjunto de herramientas y APIs destinadas a
mejorar la experiencia del desarrollador.
Es necesario para la instalación y uso de otros módulos utilizados en este proyecto,
como por ejemplo el módulo Panels que veremos posteriormente.
Devel: este módulo proporciona un amplio abanico de herramientas que facilitan la
labor de programación y también utilidades de administración, como generar contenido
aleatorio o reinstalar módulos.
Solo he utilizado la herramienta Devel Generate, para la rápida creación de contenido,
en este caso de películas (tipo de contenido Catalogo_Element) cuyos campos fueron, al
crearse, rellenados con datos aleatorios. Los campos de texto se generan con el popular texto
simulado “Lorem Ipsum dolor sit amet”.
Con este módulo se creó primeramente el contenido. Después se editó para que los
datos fuesen los deseados, es por ello que aparecen como creadores de contenido los demás
actores además del administrador, pero realmente estos no pueden realizar los casos de uso
propios de un administrador.
48
Entity Reference: necesita del módulo Entity para su instalación. Proporciona un tipo
de campo que puede referenciar a entidades arbitrarias.
Lo he utilizado para poder referenciar a un director en una ficha de película, de este
modo veremos a través del campo ‘Director’ mostrado en la ficha de la película un enlace
directo a la ficha del propio director.
Fivestar: necesita del módulo Voting API para su instalación. Establece un sistema de
votaciones con el clásico formato de 5 estrellas.
Se muestra en la ficha de cada película donde el usuario identificado puede, gracias a
la correcta configuración del módulo, hacer una única votación sobre cada película del
catálogo. También está configurado para que los usuarios no identificados no puedan votar.
Localization Update: descarga y actualiza las traducciones automáticamente.
Mail System: proporciona una interfaz de usuario Administrativo y una API de
Desarrolladores para actualizar de forma segura la variable de configuración mail_system.
Gracias a este podemos efectuar de forma satisfactoria el caso de uso que permite a un
usuario no identificado registrarse.
Panels: es un "Contributed Module" que depende de otro "Contributed Module"
denominado "CTools". La principal funcionalidad de Panels es permitir modificar la estructura
u organización con que Drupal muestra los contenidos, e implementar otras disposiciones que
se adapten mejor a los requerimientos de diseño de nuestro sitio web.
El módulo nos ofrece varias plantillas básicas predefinidas, las cuales podremos editar,
y configurar, indicando qué contenido queremos insertar en cada sección. También podemos
diseñar nuestras propias plantillas.
A través de este módulo he creado dos diseños personalizados, ‘Ficha Película’ y
‘Fichas Directores’, con la finalidad de crear dos plantillas que me permitan mostrar los
contenidos de ‘Catalogo_Element’ y ‘Directores’ de una forma atractiva y personalizada.
Services: es una solución estandarizada para la integración de aplicaciones externas
con Drupal. Los servicios de devolución de llamada pueden ser utilizados por múltiples
interfaces como REST, XMLRPC, JSON, JSON-RPC, de SOAP, AMF, etc. Por tanto, permite a
Drupal proporcionar servicios web a través de múltiples interfaces usando el mismo código de
retrollamada.
A través de mi aplicación móvil externa hago uso de un servicio web RESTful para
obtener datos de nodos, usuarios y vistas alojados en el sistema Drupal.
Services Views: permite manejar vistas a través de servicios web.
49
Necesario para obtener el catálogo por el que navegarán los usuarios.
Views: es el query builder de Drupal, es decir un constructor de consultas que permite
mostrar vistas de datos previamente informados en la aplicación Drupal. A través de la interfaz
de usuario de Views podemos seleccionar el origen de los datos, los campos a mostrar, las
condiciones por las que filtrar, ordenación, paginación, encabezado, pie de página y algunas
opciones avanzadas. En resumen, es la alternativa a escribir consultas manualmente en SQL e
incluirlas en código PHP.
A través de este configuramos y mostramos a los usuarios el catálogo de películas de
nuestro portal mostrando tan solo los campos de la carátula, título de la película y precio de la
misma. Este catálogo está páginado cada 10 elementos, con posibilidad de filtrar por género y
de ordenar alfabéticamente, por popularidad o por fecha de creación del contenido.
Voting API: como hemos dicho antes, este módulo es necesario para la instalación y
configuración del módulo Fivestar.
7.2.3 Theme
Drupal trae por defecto instalado y activado el tema Bartik, este lo he desactivado
debido a que no cumplía con los requisitos de diseño de este portal y en su lugar he instalado y
activado el tema Marinelli.
El tema ha sido configurado para que en el banner no aparezcan las imágenes que trae
por defecto sino otras imágenes más acordes con el proyecto, también he omitido la aparición
del logo de Drupal.
Predominan los colores azul y blanco. Por un lado, el color azul transmite confianza y
profesionalidad. El blanco transmite al usuario perfección, simplicidad y buenas intenciones.
7.2.4 Implementación del portal Drupal
Una vez creada la base de datos e instalado este gestor de contenido, se ha procedido
a la instalación de los módulos necesarios para el desarrollo. Con todas las herramientas
instaladas y bien configuradas llega el momento de crear los tipos de contenido. En este
proyecto destacan dos:
Catalogo_Element: este representa a cada una de las películas del sistema. Está
compuesto por los campos: “Carátula”, “Nombre Película”, “Precio”, “Género”, “País”,
“Votación”, “Duración”, “Reparto”, “Argumento”, “Director” y “Año de estreno”.
Cabe destacar que el campo “Votación” es del tipo Fivestar Rating, y ha sido
configurado para una concreta utilización por parte de los usuarios a la hora de calificar el film.
El campo “Género”, por otra parte, apunta a una taxonomía creada previamente, hablaremos
50
de ellas más adelante. Por último, el campo “Director” es de tipo Entity Reference, está
configurado para que el nombre del director que nos muestra sea un enlace a contenido del
tipo Ficha_Director que veremos a continuación.
También lo utilizaremos para crear la vista “Catálogo”, el elemento más importante en
lo referente a esta parte del proyecto de cara al usuario. Lo veremos más adelante.
Ficha_Director: a través de este tipo de contenido podremos crear la ficha personal de
cada uno de los directores registrados en el portal web. Está compuesto por los siguientes
campos: “Ficha Director”, “Foto”, “País de nacimiento”, “Año de nacimiento”, “Sobre él/ella” y
“Filmografía”.
Los usuarios, no administradores, solo podrán acceder al contenido creado sobre este
tipo a través de la ficha de alguna de las películas registradas asociadas a dicho director.
Además, con el módulo Panels se han elaborado dos diseños personalizados, Ficha
Película asociado al tipo de contenido Catalogo_Element y Fichas Directores asociado a
Ficha_Director, con el objetivo de mejorar el estilo de la interfaz de cara a los actores y facilitar
la labor del administrador a la hora de gestionar el contenido del portal. Se trata de plantillas
personalizadas y de fácil manejo para la disposición de los campos de un tipo de contenido.
La taxonomía se utiliza para la clasificación del contenido ingresado en el sistema, se
ha creado un vocabulario llamado “género” para clasificar el contenido de tipo
Catalogo_Element, es decir clasificar las películas según su género.
A través del módulo Views se ha creado una vista llamada “Catálogo”. Una vista
permite elegir el tipo de datos que queremos mostrar, los campos, filtros, orden, paginación,
etc. y mostrarlos como páginas o como módulos. En esta vista se muestra un listado con el
nombre de todas las películas registradas en el sistema, acompañadas por la imagen de su
carátula y su precio. Se han establecido criterios de ordenación por creación de contenido,
título del film y puntuación; filtros por género y paginación cada 10 elementos.
7.3 WEB SERVICES
7.3.1 ¿Qué son los web services?
Uno de los puntos más fuertes de este trabajo son los servicios web. Cuando hablamos
de estos nos referimos a una tecnología que hace uso de diversos protocolos y estándares que
sirven para intercambiar datos entre aplicaciones, en este proyecto servirá para comunicar el
portal construido en Drupal con su versión orientada a dispositivos móviles. Distintas
aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas
sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes
de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de
51
estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la
arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre
distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de
desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares. Es una
máquina que atiende las peticiones de los clientes web y les envía los recursos solicitados.
Veamos ahora algunas de las ventajas que obtenemos al trabajar con esta tecnología:
-
Aportan interoperabilidad entre aplicaciones de software independientemente de sus
propiedades o de las plataformas sobre las que se instalen.
Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen
más fácil acceder a su contenido y entender su funcionamiento.
Permiten que servicios y software de diferentes compañías ubicadas en diferentes
lugares geográficos puedan ser combinados fácilmente para proveer servicios
integrados.
Por otro lado, entre sus inconvenientes podemos encontrar los siguientes:
-
Para realizar transacciones no pueden compararse en su grado de desarrollo con los
estándares abiertos de computación distribuida como CORBA (Common Object
Request Broker Architecture).
-
Su rendimiento es bajo si se compara con otros modelos de computación distribuida,
tales como RMI (Remote Method Invocation), CORBA o DCOM (Distributed
Component Object Model). Es uno de los inconvenientes derivados de adoptar un
formato basado en texto. Y es que entre los objetivos de XML no se encuentra la
concisión ni la eficacia de procesamiento.
Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas
reglas tratan de bloquear o auditar la comunicación entre programas a ambos lados de
la barrera.
-
7.3.2 ¿SOAP o REST?
En el momento de comenzar a desarrollar la comunicación surgió un conflicto sobre
cuál sería la arquitectura más apropiada para trabajar sobre este sistema y que uso se le quería
dar. Había llegado la hora de valorar cuál de ellas se adaptaría mejor al entorno de nuestra
aplicación: SOAP o REST.
SOAP (Simple Object Access Protocol) es un protocolo estándar que define cómo dos
objetos en diferentes procesos pueden comunicarse por medio de intercambios de datos XML,
el punto identificativo de SOAP es que las operaciones son definidas como puertos WSDL (Web
Services Description Language). Es por esto que será aconsejable utilizar este protocolo en
52
entornos donde se establecerá un contrato formal y donde se describirán todas las funciones
de la interfaz así como el tipo de datos utilizados tanto de entrada como de salida. El lenguaje
WSDL nos permitirá definir claramente cualquier detalle de las funciones de nuestro WS.
REST (Representational State Transfer) es un estilo de arquitectura de software para
sistemas distribuidos tales como la web, a diferencia de SOAP, se centra en el uso de los
estándares HTTP y XML para la transmisión de datos sin la necesidad de contar con una capa
adicional. Las operaciones (o funciones) se solicitarán mediante GET, POST, PUT y DELETE, por
lo que no requiere de implementaciones especiales para consumir estos servicios. Además se
podrá utilizar JSON en vez de XML como contenedor de la información, por lo que será
aconsejable utilizar este protocolo cuando busquemos mejorar el rendimiento, o cuando
disponemos de escasos recursos, como sería el caso de los dispositivos móviles.
En pocas palabras, cuando se quiere implementar una interfaz de programación de
aplicaciones (API) compleja suele ser mucho más útil hacer uso de los servicios SOAP. Pero
cuando se trata de algo con una menor curva de aprendizaje, del que rápidamente se obtienen
resultados ligeros y transacciones sencillas (mediante operaciones CRUD), tal y como ocurre en
este caso, es preferible utilizar servicios REST.
7.3.3 REST en este trabajo
Mediante el uso de web services RESTful se establecerá la comunicación entre el portal
Drupal y el portal orientado a dispositivos móviles, en este trabajo solo hemos precisado de
peticiones GET y POST. Estas solicitudes las realizamos haciendo uso de cURL, se trata de una
herramienta software para usar en un intérprete de comandos para transferir archivos con
sintaxis URL
Peticiones GET: las peticiones GET se utilizan para la lectura de registros. A través de
ellas obtendremos la vista Catálogo de Drupal y la mostramos en el portal móvil. A través de
solicitudes GET también ordenamos y filtramos dicha vista. También obtenemos los nodos que
contienen las fichas de las películas y las fichas de directores. Configurando el módulo Services
y la petición se reciben los datos en formato JSON, entonces se analizan y obtienen los campos
requeridos para así poder reconstruir cada página.
La estructura de las peticiones GET la vemos mediante el siguiente ejemplo:
$url = 'http://localhost/drupal/rest/views/catalogo?genero=All&' . $ordenacion_valor;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$json = curl_exec($ch);
curl_close($ch);
$resultado=json_decode($json,true);
53
Peticiones POST: las peticiones POST se utilizan para la creación de recursos. Mediante
estas tratamos los datos enviados desde el formulario de autenticación de usuarios del portal
orientado a dispositivos móviles para poder realizar el login.
La estructura de las peticiones POST la vemos mediante el siguiente ejemplo:
$service_url = 'http://localhost/drupal/rest/user/login';
$post_data = array(
'username' => $_POST['username'],
'password' => $_POST['password']
);
$post_data = http_build_query($post_data, '', '&');
// configuramos la solicitud
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
// hace la solicitud
curl_setopt($curl, CURLOPT_VERBOSE, true);
$response = curl_exec($curl);
curl_close($curl);
JSON: JSON es un formato de intercambio de datos que puede ser leído por cualquier
lenguaje de programación. Las respuestas que obtenemos al realizar peticiones a Drupal las
hemos configurado para que tengan este formato, la respuesta la convertimos en un array y de
este modo trabajamos con los datos recuperados. Utilizando var_dump mostramos el
resultado, con json_decode lo convertimos a json y con el atributo true a array asociativo:
var_dump(json_decode($json,true));
54
A continuación, se muestra la respuesta obtenida al realizar una petición GET para
obtener los datos del catálogo:
7.4 PORTAL MÓVIL
7.4.1 Introducción
En esta parte del capítulo se hará referencia a las tecnologías web utilizadas para el
desarrollo del portal orientado a dispositivos móviles y se resaltarán los aspectos más
interesantes de la implementación.
Antes de continuar, quiero nombrar las tecnologías web que, junto al framework
jQuery Mobile, se han utilizado para poder implementar esta parte de un modo eficiente, son
las siguientes: HTML5, CSS3, PHP, JavaScript, jQuery y AJAX.
7.4.2 Acerca de jQuery Mobile
jQuery Mobile es un framework desarrollado por jQuery que combina HTML5 y jQuery
para la creación de portales web móviles. Nos permite generar aplicaciones cuya apariencia
será siempre la misma, independientemente del dispositivo desde el que acceda un usuario
siempre que este usuario acceda desde un dispositivo que acepte HTML5.
Este framework nos provee de ciertas herramientas que nos hacen la tarea de crear
una página mucho más sencilla. Con unas pocas asignaciones de atributos HTML es posible
generar atractivas interfaces de fácil uso y acceso.
7.4.3 Ficheros de implementación.
55
index.php: es el primer archivo, nos muestra la primera interfaz que permitirá al
usuario una cómoda navegación por el portal web.
home.php: archivo al que se redirigirá al usuario cuando quiera situarse en el inicio, es
de fácil acceso a través de la barra de navegación superior, para que el usuario no se sienta
perdido ni desorientado.
catalogo.php: seguramente el archivo más interesante del portal de cara al usuario. A
través de una petición GET muestra al usuario una vista que contiene la lista de las películas
disponibles en nuestro sistema y el precio correspondiente a cada una de ellas.
catalogo_id.php: cumple la misma función que el fichero anterior, la diferencia está en
que este se muestra a los usuarios identificados mostrando un descuento del 25% en el precio
de cada película.
como_funciona.php: muestra una sencilla lista con los cuatro pasos básicos que
permitirán al usuario conocer fácilmente como navegar y utilizar el portal móvil.
login_movil.php: desde este área el usuario rellena un sencillo formulario para
autentificarse (nombre de usuario y contraseña). Este formulario se envía al fichero login.php.
login.php: se recogen los datos del formulario alojado en login_movil.php y se hace
una petición POST a Drupal, con lo obtenido de esta se crea una cookie de sesión.
authenticated_request.php: a través de la url y la cookie de sesión hace una petición
para mantener la sesión sin tener que volver a hacer el login. No ha sido finalmente utilizado
en este prototipo funcional, pues manejamos la demostración de log in y la diferente
experiencia de navegación de los usuarios por el portal de diferente manera, se dejará para ser
utilizado en líneas futuras de este trabajo.
logout.php: realiza una petición POST a través del servicio web para cerrar la sesión
del usuario identificado.
recibe-pelicula.php, recibe-directores.php, recibe-parametros.php: son archivos con
sentencias condicionales para identificar y mostrar el contenido deseado, la función que
desempeñan es la de no ensuciar los ficheros en los que están incluidos, los cuáles serán
llamados por funciones que hacen uso de jQuery y AJAX.
menu_desplegable.php: en este se encuentra implementado el menú desplegable,
accesible desde cualquier pantalla del portal móvil a través del botón izquierdo del
encabezamiento.
menu_desplegable_id.php: cumple la misma función que el anterior, la diferencia es
que esté aparece cuando el usuario se ha identificado y se mantiene hasta que cierra su
56
sesión. En vez de aparecer en la zona de acceso del menú desplegable el enlace Iniciar sesión
aparecerá Cerrar_sesión.
ordenación.php: una vez obtenido del menú el tipo de ordenación del catálogo
deseado, hace una petición GET para obtener la vista adecuada.
genero.php: una vez obtenido del menú el filtro por género deseado, hace una
petición GET para obtener la vista deseada.
ficha_pelicula.php: elegida una película del catálogo, a través de una petición GET
obtiene la ficha de la película indicada.
ficha_director.php: al acceder a una ficha de película, el campo director contiene un
enlace que al clicar en él ejecutará este archivo realizando una petición GET y obteniendo la
información sobre el director de cine de la misma.
7.4.4 Aspectos software destacados.
La barra de navegación inferior que se mantiene en todas las pantallas de este portal,
compuesto por tres botones (Home, Catálogo, Cómo funciona) que dan acceso rápido a los
usuarios a las áreas más destacadas del mismo. El atributo <div data-role=”navbar”> de jQuery
Mobile nos permite implementar esta atractiva barra de navegación de forma sencilla, igual
que si implementásemos una lista.
Un encabezado, también constante en las diferentes pantallas del portal, con el
nombre de la página y dos botones (Menú y Buscar). De estos botones solo se ha
implementado para este trabajo el correspondiente al menú desplegable, de este hablaremos
a continuación. El atributo <div data-role=”header”> de jQuery Mobile nos proporciona este
atractivo recurso software.
El menú desplegable, tercer y último elemento que permanece en cada una de las
pantallas de esta parte, se despliega cuando se pulsa sobre el botón situado a la izquierda del
encabezado. Mediante este, los usuarios pueden autentificarse, ordenar, obteniendo un
listado ordenado del catálogo en tres formas: alfabética, más populares, más recientes.
También permite realizar acciones de filtrado a través del género.
57
Haciendo uso de jQuery y AJAX creamos las funciones que nos permitirán obtener
dinámicamente las listas de películas ordenadas y filtradas, las fichas de películas y de
directores, y cargarlas dinámicamente desde la página en la que nos encontremos sin
necesidad de recargar la página completa. Para ello utilizamos el método post() de jQuery, el
cual obtiene los datos de un fichero y llama a una función para trabajar sobre estos y mostrar
los resultados deseados. Para el catálogo, además, usamos la técnica del scroll infinito, se
cargan primeramente diez películas al llegar al final de esta a través del scroll se lanza un
evento que a través de la llamada a una función cargará el siguiente bloque de diez elementos,
esto se repetirá hasta haberlos mostrado todos.
58
8. PRUEBAS.
8.1 Validación de navegadores web.
Es importante, de cara al usuario, que la aplicación se visualice bien en todos los
navegadores web, o al menos, en los más populares. La aplicación ha sido implementada y
probada con éxito en Microsoft Internet Explorer (22.54% de cuota de mercado), Mozilla
Firefox (19.26%), Google Chrome (29.03%), Opera (4.53%), Android (4.59%), otros (4.46%).
Para ello he hecho uso de la herramienta online spoon, que permite virtualizar navegadores
web de forma que podemos visualizar la página web sobre cualquier navegador sin necesidad
de instalarlo.
Microsoft Internet Explorer
Google Chrome
59
Mozilla Firefox
60
Firefox Mobile
61
Safari
62
Opera
63
Opera Mobile
64
8.2 Validación de la seguridad en el acceso a la zona de administración
Para acceder a la zona de administración de la aplicación web el usuario deberá
identificarse como tal, veremos el caso de ambos portales:
Drupal: el usuario deberá identificarse rellenando el formulario de autenticación
situado en un bloque al lado derecho del portal. Entonces accederá al portal con todos los
permisos asignados a este rol privilegiado. Para cerrar la sesión tan solo deberá acceder al
enlace Log out.
Móvil: el usuario, desde cualquier parte del portal, deberá abrir el menú desplegable,
situado en la esquina superior izquierda de la página, y dirigirse al área de acceso Iniciar sesión.
Aquí deberá rellenar los campos de un sencillo formulario, si son correctos tendrá acceso
privilegiado al portal (siendo estos privilegios para este caso los mismos que los de cualquier
otro usuario identificado). Los datos son enviados y tratados en el archivo login.php, siempre
que sean correctos redireccionará al usuario a la página home.php (en caso contrario saldrá un
aviso de error en alguno de los campos). Para cerrar la sesión deberá desplegar nuevamente el
menú, entonces verá que en vez de Iniciar sesión pone Cerrar sesión, al acceder a este el
usuario volverá a adoptar una experiencia de usuario no identificado, en lo que a la navegación
del sitio web se refiere.
65
8.3 Validación de enlaces rotos.
Por suerte no son muchos los ficheros que están interrelacionados en este proyecto, es
por ello que ha sido fácil comprobar manualmente que no existen enlaces rotos en este TFG.
Esto se ha realizado limpiando el código y accediendo desde cada uno de los ficheros a todos
sus posibles enlaces y comprobando el correcto acceso a cada uno de ellos. Ha hecho falta
utilizar la propiedad de jQuery Mobile data-ajax=false en los enlaces para poder realizar de
forma adecuada transiciones entre las páginas. También anular a través de javascript algunos
enlaces para que, sin perder el estilo, al clicar sobre ellos no ejecutarán ese enlace y si la
función jQuery – AJAX asociada a una de sus clases.
66
9. CONCLUSIÓN
9.1 Conclusión del trabajo realizado.
La realización de este trabajo de fin de grado me ha permitido comprobar la gran
utilidad que suponen los conocimientos adquiridos durante la carrera en asignaturas como
Multimedia, Diseño de Interfaces Humanas, Diseño de Aplicaciones Web I y Diseño de
Aplicaciones Web 2.
Este trabajo me ha hecho aprender y mejorar en la utilización de tecnologías y del
entorno web. Además, considero haber adquirido una visión profesional del programador
web, en un principio he tenido que interactuar con el cliente que sugirió desarrollar el
producto y he trabajado bajo presión para poder cumplir ciertos plazos de entrega.
En el siguiente punto de este capítulo trataré algunas líneas de desarrollo futuro sobre
la aplicación. Al tratarse de un prototipo, la funcionalidad de la aplicación no es del todo
completa, se ha desarrollado en función de las exigencias que se deben cumplir en un trabajo
de fin de grado. El trabajo se ha realizado satisfactoriamente bajo mi punto de vista ya que las
funciones descritas en la especificación de requisitos han sido implementadas.
9.2 Líneas futuras.
Este trabajo desarrolla un prototipo funcional centrándonos en cumplir y aplicar
satisfactoriamente una serie de condiciones y conocimientos. Pero la cosa no acaba aquí, se
seguirá trabajando para hacer de él un producto completo, ágil y ligero. Algunas de las ideas a
desarrollar próximamente son las siguientes:
-
-
-
Se implementará el conocido como scroll-infinito, como paginación para cargar
dinámicamente a través de AJAX contenido en el portal sin tener que cargar otra
página. El usuario navegará por el catálogo y al llegar al final de este se recogerá el
evento que estará asociado a una función que se encargará de traer el siguiente
paquete de datos y concatenarlo al final de la lista. Esto se repetirá hasta acabar de
traer datos o se reiniciará al cambiar de página.
Se mejorará el estilo del portal móvil.
Se unificarán los privilegios de los actores en ambos portales.
El usuario registrado podrá comprar las películas a través de cuenta bancaria o Paypal
pudiendo reproducir las mismas en dispositivos móviles via streaming, previa
contratación de este servicio.
Se implementará un sistema monedero para que el usuario, si lo desease, pudiese
tener un saldo en el sistema sin tener que estar utilizando sus datos bancarios en la
compra de cada película.
67
-
Implementación del botón de búsqueda situado a la derecha de la barra de navegación
superior para así poder buscar películas por palabras clave.
68
10. MANUAL DE USUARIO Y SOFTWARE.
A continuación, se mostrará un sencillo manual que a través de capturas de pantalla irá
mostrando al usuario la funcionalidad de ambos sistemas y la comunicación a través del web
service.
10.1 INSTALACIÓN Y CONFIGURACIÓN
Para aprovechar toda la funcionalidad que proporciona este trabajo debemos
configurar correctamente los elementos software sobre el único hardware realmente
necesario para el desarrollo de este prototipo, un ordenador portátil (pudiendo servirse el
usuario del mismo modo de un PC de escritorio).
XAMPP: lo primero que debemos hacer es instalar el servidor local XAMPP, para ello se
debe acceder a la web ‘http://www.apachefriends.org/es/xampp.html’ y descargar el archivo
compatible con nuestro sistema operativo que lo contenga. Una vez descargado, se debe
ejecutar el instalador y seguir las instrucciones de instalación, de este modo tendremos
XAMPP listo para usar.
Una vez instalado XAMPP, debemos abrir el panel de control de dicho software y
activar los dos únicos servicios que necesitaremos utilizar en este proyecto, Apache y MySQL.
Para ello debemos hacer click sobre el botón ‘Start’ de la columna ‘Actions’ en la fila
correspondiente a ambos servicios. Si se han iniciado correctamente aparecerá el nombre de
estos sobre un fondo verde y los puertos, e identificadores de los mismos, en los que se
ejecutan. En la siguiente imagen veremos cómo queda el panel de control.
69
Tras ejecutar estos pasos, colocaremos el director ‘proyecto’, el cual contiene todos los
ficheros de implementación del portal móvil, en el directorio ‘htdocs’ de la carpeta xampp,
este es el directorio donde se deben alojar las diferentes aplicaciones webs.
En este punto ya tenemos instalado XAMPP y el portal móvil listo para utilizar. Las
pautas de uso de este portal las veremos más adelantes tras instalar Drupal 7 en nuestro PC.
DRUPAL 7
Primera parte – Importar la base de datos (archivo .sql)
Para que el usuario pueda instalar el portal Drupal que hemos diseñado e
implementado en su portal, debe importar el archivo .sql que contendrá la base de datos con
todas las tablas del mismo. Para realizar este paso correctamente deberá acceder a la
herramienta phpmyadmin, esto se puede hacer escribiendo en la barra de direcciones del
navegador localhost/phpmyamdin, una vez dentro darle a importar y seleccionar dicho
archivo. Por defecto, phpmyadmin, admite realizar importaciones de archivos ligeros, que
pesen muy poco. Por ello, es probable que el usuario deba acceder al archivo php.ini situado
en xampp/php y editar los siguientes parámetros dándoles una mayor capacidad:
upload_max_filesize (por defecto soporta solo 2M), memory_limit (por defecto soporta 16M) y
post_max_size (por defecto soporta 8M).
70
Segunda parte – Carpeta contenedora de todos los archivos de implementación del
portal Drupal.
La carpeta contenedora de todos estos archivos debe ser también alojada en el
directorio dedicado htdocs del servidor XAMPP. Una vez importada la base de datos y bien
situada la carpeta de drupal el usuario puede acceder y navegar por el portal.
Sin necesidad de identificarse, el usuario puede navegar por el portal pero no podrá
votar y contribuir al sistema de puntuación de cada película, ni tendrá permisos de escritura o
respuesta de comentarios. Veremos una imagen de una ficha de película desde la visión que el
portal ofrece a cada uno de los actores para hacernos una idea de las diferencias, en el caso
del usuario no identificado:
71
El usuario que se identifica y accede al portal, sin ser administrador, navega del mismo
modo que el usuario no identificado. La diferencia es que este puede cerrar su sesión, cambiar
sus datos personales, votar e interactuar con otros usuarios a través de comentarios en las
fichas de las películas. Para que el usuario pueda experimentarlo a través de este proyecto se
podrá identificar del siguiente modo: nombre de usuario: user1 o user2 y clave de acceso:
user1 o user2. A continuación, vemos la imagen correspondiente al usuario identificado, en
ella se ve que user1 ha comentado y respondido a un comentario del administrador:
72
En caso de querer navegar como usuario administrador deberá autentificarse con
nombre de usuario: admin y clave de acceso: admin. De esta manera podrá, además de
navegar del mismo modo que un usuario identificado, gestionar a los usuarios y el contenido
del portal a través de un menú inexistente para el resto de roles en este proyecto. Lo vemos en
la siguiente imagen:
73
Llegado a este punto ya podemos navegar por el portal Drupal como cualquiera de los
actores manejados en este proyecto.
PORTAL MÓVIL
La navegación a través del portal móvil es bastante intuitiva, pero cabe comentar que
el usuario no se encontrará la misma diferencia en cuanto a casos de uso que en el portal
Drupal por suponer una complejidad en la implementación que implicaría superar las 300
horas de desarrollo del TFG.
Por lo demás, el portal móvil es una interfaz simplificada del otro. En este el usuario
puede identificarse pero no registrarse, esto solo se puede realizar desde Drupal. Este portal
hará uso de PHP, servicios web, jQuery y AJAX para conseguir el dinamismo y dar apariencia de
ser un sistema independiente cuando realmente está constantemente abasteciendose de la
base de datos de Drupal.
El usuario deberá alojar la carpeta portal_movil en el directorio especial de xampp y
acceder via localhost al archivo index.php para comenzar la navegación.
74
Desde cualquier parte del portal podrá acceder a las principales zonas gracias a la
barra de navegación inferior y al menú desplegable situado a la izquierda de la barra de
navegación superior.
Cuando el usuario acceda a Iniciar sesión y se identifique observará los siguientes
cambios al navegar por el portal:
-
En el menú desplegable, en el área Acceso, pondrá Cerrar sesión en lugar de Iniciar
sesión.
Las películas en la pantalla del catálogo aparecerán con un descuento del 25%.
75
Esto volverá a la normalidad en el momento en que el usuario identificado cierre su
sesión.
Cada vez que el usuario solicita ver el catálogo, ordenarlo, hacer una búsqueda
filtrando o identificarse, estará mandando solicitudes a través de servicios web para
establecer comunicación con el sistema Drupal e iniciar el intercambio de datos.
76
11. REFERENCIAS.
En este capítulo veremos algunas referencias gracias a las cuales ha sido posible
realizar este TFG.
Libros utilizados:
Lorna Jane Mitchell - PHP Web Services - O’REILLY.
Lyza Danger Gardner & Jason Grisby - Head First Mobile Web - O’REILLY.
Páginas web:
-
-
-
-
-
-
Web services:
 http://obrea.blogspot.com/2009/09/webservices-con-nusoap-en-phpejemplo-1.html
 http://ingsistele.wordpress.com/2013/02/06/crear-webservice-en-php-2/
 http://www.youtube.com/watch?v=4n0TmkDGRQo
Sobreescritura del CSS por jQuery Mobile:
 http://stackoverflow.com/questions/10511080/html5-css-styles-areoverriden-by-jquery-mobile-style
RESTful:
 http://donnierock.wordpress.com/2013/01/18/crear-un-web-servicerestful-con-php/
 http://www.imaginanet.com/blog/servidor-rest-con-php-y-peticionesmediante-jquery-y-ajax.html
Obtener datos de JSON:
 http://www.cristalab.com/tutoriales/leer-json-con-javascript-y-phpc104372l/
Módulo Panels sobre Views en Drupal:
 http://francisconi.org/drupal/panels/pagina-inicio-panels
Login a través de REST:
 https://drupal.org/node/910598
Webs de consulta general:
 http://w3schools.com
 http://www.stackoverflow.com
 http://php.net
 http://drupal.org
 http://jquerymobile.com
Menú Dropdown con jQuery Mobile:
 https://github.com/tegansnyder/JQuery-Mobile-Slide-Menu
77
-
-
-
-
-
-
 http://www.tegdesign.com/tegansnyder-JQuery-Mobile-Slide-Menu/
Implementar sistema de login y registro de usuario:
 http://www.forosdelweb.com/f18/como-implementar-mi-sistema-loginregistro-mi-web-1018699/
Obtener datos del menú con jQuey y AJAX:
 http://www.desarrolloweb.com/articulos/funcion-get-jquery-ajax.html
Scroll infinito con AJAX:
 http://lineadecodigo.com/jquery/cargar-contenido-con-el-scroll-usandojquery/
Login:
 http://www.tufuncion.com/login_autentificacion_php
 http://drupal.stackexchange.com/questions/4718/how-to-create-testendpoint
 http://stackoverflow.com/questions/15575773/log-user-in-to-drupalremotely-with-service
 https://drupal.org/node/910598
Apache:
 http://www.alegsa.com.ar/Dic/apache.php
MySQL:
 http://www.esepestudio.com/noticias/que-es-mysql
Ley de Cookies:
 http://cuestionesderecho.es/un-resumen-sobre-la-ley-de-cookies/
 http://www.adigital.org/servicios/como-cumplir-con-al-ley-de-cookies-en5-pasos
 http://www.infoautonomos.com/blog/como-adaptar-tu-web-la-nueva-leyde-cookies/
Ley de Propiedad Intelectual:
 http://www.mcu.es/propiedadInt/CE/PropiedadIntelectual/PreguntasFrec
uentes/PropiedadIntelectual.html
Normativa informática en el ámbito internacional:
 http://www.segu-info.com.ar/delitos/delitos.htm
Cuota de mercado de los navegadores:
 http://es.wikipedia.org/wiki/Guerra_de_navegadores
Validación de navegadores:
 https://spoon.net/browsers/
Información para el contenido de películas y directores:
 https://filmaffinity/
 https://imdb.com/
 https://wikipedia.com/
78
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising