carcontrol(softtauja.ujaen.es/bitstream/10953.1/4225/1/tfg_moya_reyes, raúl.pdf ·...
TRANSCRIPT
! ! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
! !
Escuela!Politécnica!Superior!de!Jaén! UNIVERSIDAD DE JAÉN
Trabajo!Fin!de!Grado!
!
CARCONTROL(SOFT+PROTOTIPO+PARA+PROPORCIONAR+A+EMPRESAS+UN+SERVICIO+PARA+EL+CONTROL+DE+SU+FLOTA+DE+
VEHÍCULOS+
ALUMNO:+RAÚL+MOYA+REYES+
Tutor:! José!Ramón!Balsas!Almagro!
Dpto:! Departamento!de!Informática!
!
!
!
!
Junio,+2015++
! ! !
!
! !
! ! !
!
!
Tabla+de+contenidos+
1.# Introducción#........................................................................................................................#1#
1.1.# Propósito#...................................................................................................................#1#
1.2.# Objetivos#...................................................................................................................#2#
1.3.# Metodología#..............................................................................................................#2#
1.4.# Estructura#del#documento#........................................................................................#3#
2.# Análisis#.................................................................................................................................#4#
2.1.# Análisis#preliminar#.....................................................................................................#4#
2.2.# Propuesta#de#solución.#..............................................................................................#6#
2.3.# Requisitos#del#sistema.#..............................................................................................#8#
2.4.# Planifcación#de#tareas#...............................................................................................#9#
2.5.# Estudio#de#viabilidad#...............................................................................................#12#
2.6.# Modelo#del#dominio#................................................................................................#16#
2.7.# Casos#de#uso#...........................................................................................................#17#
2.8.# Analisis#de#la#interfaz#..............................................................................................#21#
3.# Diseño#................................................................................................................................#23#
3.1.# Diagrama#de#clases#.................................................................................................#23#
3.2.# Diagramas#EntidadNRelación#...................................................................................#26#
3.3.# Diagrama#de#secuencia#...........................................................................................#28#
3.4.# Diseño#de#la#interfaz#...............................................................................................#30#
4.# Implementación#................................................................................................................#33#
4.1.# Arquitectura#............................................................................................................#33#
4.2.# Detalles#sobre#implementación#..............................................................................#35#
5.# Conclusión#.........................................................................................................................#37#
5.1.# Retrospectiva#..........................................................................................................#37#
5.2.# Mejoras#y#trabajos#futuros#......................................................................................#38#
6.# Bibliografía#........................................................................................................................#39#
Apéndice#I.#Manual#de#instalación#del#sistema.#.......................................................................#41#
Apéndice#II.#Descripción#de#contenidos#suministrados.#...........................................................#49#
Apéndice#III.#Acceso#a#instalación#de#pruebas.#.........................................................................#51#
Apéndice#IV.#Manual#de#usuario.#..............................................................................................#54#
! ! !
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 1!
1.+ INTRODUCCIÓN+
CarControlHSoft!es!un!sistema!para!la!gestión!y!control!de!flotas!de!vehículos.!
Se! va! a! realizar! una! breve! descripción! general! del! proyecto,! la! metodología! de!
desarrollo!y!una!explicación!del!contenido!de!este!documento.!
1.1.+ Propósito+
Obtener! información! en! tiempo! real! sobre! nuestras! flotas! de! vehículos! nos!
ayuda!a!ser!más!eficientes!y!a!reducir!costes,!por!lo!que!un!sistema!que!nos!ayude!a!
gestionarlas!se!vuelve!esencial.!
En! este! momento,! la! mayoría! de! los! sistemas! existentes! para! la! gestión! y!
control! de! vehículos! se! caracterizan! por! tener! dos! problemas! generales,! son!muy!
rudimentarios!utilizando!tecnologías!totalmente!desfasadas!y!no!son!alcanzables!por!
pequeñas!y!medianas!empresas,!por!los!sobrecostes!que!les!supone!un!sistema!de!
estas!características.!Además,!la!integración!con!software!interno!de!las!empresas!es!
casi!impensable.!El!nicho!de!mercado!es!bastante!amplio,!ya!que!se!puede!controlar!
todo! tipo! de! vehículos,! por! ejemplo,! ambulancias,! vehículos! alquilados! (coches,!
motos,!camiones,!etc.),!taxis!o!cualquier!flota!de!vehículos!propios.!
CarControl! va! a! desarrollar! un! sistema! para! proporcionar! a! empresas! o!
instituciones! un! software! como! servicio! (SaS[3])! para! la! gestión! y! control! de! sus!
vehículos,!además!de!una!API!(REST)!para!conseguir!mayor!integración.!
Se!instalará!un!hardware!en!los!vehículos,!obteniendo!acceso!para!su!gestión!
y!control,!además!de!añadir!funcionalidades!al!vehículo!para!interactuar!con!él.!Todo!
gestionado! desde! un! panel! web! propio! de! CarControl,! dando! la! posibilidad! de!
conexión!a!nuestra!API.!
Este! sistema! nos! podría! dar! el! control! completo! del! vehículo! como! recibir!
información!de!avería!o!accidente,!conocer!su!ubicación!o!interactuar!con!él,!incluso!
pudiendo!inmovilizarlo!en!cualquier!momento,!todo!ello!en!tiempo!real.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 2!
1.2.+ Objetivos+
Los! objetivos! que! se! quieren! cumplir! para! lanzar! un! prototipo! del! sistema!
anteriormente!descrito!son:!
H! Realizar! un! estudio! sobre! tecnologías! para! geolocalización,! sistemas!
eléctricos,! servicios! web,! servidores! y! hardware! libre! para! ver! las!
posibilidades!que!existen!para!el!desarrollo!de! los!distintos!componentes!
(sistema,!software!y!hardware!del!vehículo,!etc.).!
H! Analizar!los!requisitos!para!el!desarrollo!de!un!sistema!SaaS!basado!en!la!
web!que!permita!su!explotación!por!varias!empresas!y!les!permita!gestionar!
de!forma!independiente!sus!flotas!de!vehículos.!
H! Desarrollar!un!prototipo!de!sistema!combinando!hardware!y!software,!para!
su!montaje!en!vehículos.!
H! Diseñar!e! implementar!un!prototipo!del!sistema!utilizando! las! tecnologías!
necesarias! para! programación! orientada! a! servicios,! aplicaciones!
empresariales!y!sistemas!en!tiempo!real.!
Una!vez!alcanzados!estos!objetivos,!el!proyecto!se!dará!por!finalizado.!
1.3.+ Metodología+
Debido! a! la! naturaleza! del! proyecto,! se! realizarán! cambios! durante! todo! el!
desarrollo.! Esto! se! debe! a! que! es! un! sistema! nuevo! del! que! no! tienen! claros! los!
requisitos!ni! los!posibles! conflictos!entre! las!distintas! tecnologías!empleadas.!Está!
presente!la!necesidad!de!adaptarse!a!las!situaciones!imprevistas!por!lo!que!se!utilizará!
una!metodología!de!desarrollo!ágil.!Además,!se!necesitará! tiempo!para! formación,!
búsqueda!de!información!y!análisis!de!herramientas!y/o!tecnologías.!
Por!tanto,!se!seguirán!las!fases!descritas!en!la!metodología!de!desarrollo!ágil!
SCRUM!realizando!sprint!de!2!semanas!de!duración!combinados!con!técnicas!de!XP!
como!pair!programing!o!code!refactoring.!Se!utilizarán!los!primeros!sprint!para!realizar!
análisis,!formación,!etc.,!es!decir,!un!estudio!preliminar!del!sistema.!Seguidamente!se!
realizara!el!diseño!proporcionando!un!diagrama!UML!utilizando!patrones!de!diseño.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 3!
1.4.+ Estructura+del+documento+
El!presente!documento!se!ha!organizado!de!la!siguiente!manera:!
!
H! Introducción:!Básicamente!una!descripción!general!del!proyecto!y!la!
metodología!a!seguir.!
!
H! Análisis:!Incluye!la!descripción!del!contexto!del!que!se!parte!y!para!el!que!
se!realizará!el!desarrollo,!los!requisitos!del!sistema,!una!propuesta!de!
solución,!la!planificación!de!tareas,!un!estudio!de!viabilidad,!casos!de!uso!
y!diagrama!entidad!relación.!
!
H! Diseño:!Algunos!diagramas!principales!de!clases!y!de!secuencia!forman!
parte!de!este!apartado,!además!del!diseño!de!la!interfaz.!
!
H! Implementación:!Se!puede!encontrar!un!esquema!de!arquitectura,!detalles!
generales!sobre!la!implementación!y!las!pruebas!realizadas.!
!
H! Conclusión:!Descripción!sobre!aspectos!generales!del!proyecto,!
explicando!que!se!puede!mejorar!y!por!qué,!y!algunas!guías!sobre!el!
futuro!de!la!aplicación.!
!
H! Apéndices:!Son!un!conjunto!de!documentos!anexos!que!ayudarán!a!
completar!la!documentación.!Entre!ellos!están:!manual!de!instalación,!
manual!de!usuario,!descripción!de!los!contenidos!suministrados!y!acceso!
a!una!instalación!de!pruebas.!
!
! +
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 4!
2.+ ANÁLISIS+
Se! va! a! realizar! un! refinamiento! en! detalle! del! sistema! para! aclarar,! en! la!
medida!de! lo!posible,! los!requisitos.!Además,!buscar!una!solución!que!cumpla!con!
estos!requisitos!y!realizar!un!estudio!de!viabilidad,!añadirá!un!plus!de!información!que!
nos!ayudará!a!encaminar!mejor!el!proyecto.!!!
!
2.1.+ Análisis+preliminar+
El! internet! de! las! cosas[6]! está!produciendo!un!boom! tecnológico!a!nuestro!
alrededor.! Todo! está! interconectado.! Se! puede! saber! en! todo!momento! una! gran!
cantidad!de!información,!como!dónde!estamos,!lugares!de!interés!cercanos,!si!hemos!
apagado!la!luz!de!casa!o!comprobar!si!tenemos!comida!en!la!nevera.!
Pero,!¿qué!está!pasando!con!los!vehículos?!En!realidad,!este!tema!está!mucho!
más!avanzado!de!lo!que!se!piensa.!Las!grandes!compañías!de!las!tecnologías!de!la!
información,! como! Google! o! Apple,! y! otras! empresas! no! tan! conocidas,! están!
orientando!gran!parte!de!sus!esfuerzos!a!los!vehículos.!Coches!eléctricos,!autónomos,!
seguros!y,!por!supuesto,! interconectados,!aparecen!en! las!noticias!a!menudo.!Aún!
así,!tienen!un!largo!camino!por!recorrer.!!
En! estos! momentos! se! necesita! algo! viable! y! funcional! que! nos! cubra! la!
carencia!de!información!que!se!necesita!acerca!de!vehículos.!Las!empresas!necesitan!
algún! método! para! gestionar! y! controlar! sus! vehículos.! De! ahí! nace! la! idea! de!
CarControlHSoft.!
En!EEUU! las!empresas!aseguradoras!y! las!entidades!bancarias,!añaden!un!
dispositivo!a! los!vehículos!que!aseguran!o! financian,!pudiendo! inmovilizarlos!si! se!
detectan!infracciones!o!irregularidades!en!los!pagos[7].!En!España,!esta!práctica!no!
está!extendida,!aunque!grandes!empresas!automovilísticas,!disponen!de!un!sistema!
de!seguimiento,!bastante!rudimentario,!para!identificar!los!vehículos.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 5!
Existen! dos! aplicaciones! que! pueden! ser! competencia! directa! con! este!
proyecto:!
H!SatData:!Consiste!en!un!hardware!conectado!al!vehículo!y!un!software!privado!
instalado!en!la!empresa.!No!utiliza!cuotas!mensuales.!!
H!Link200:!Es!un!proyecto!de!TomTom.!Consiste!en!un!hardware!conectado!al!
OBDII!del!vehículo.!Hay!que!pagar!una!suscripción!mensual!al!servicio!y!una!cuota!
mensual!por!vehículo.!
Nuestro!sistema!es!accesible!desde!cualquier!sistema!operativo,!sin!tener!que!
instalar!nada!y!sin!miedo!a!perder!los!datos.!Con!estas!características!mejoramos!el!
servicio! que! ofrece! SatData,! que! bajo! nuestra! opinión! es! un! producto! totalmente!
desfasado.! Link200! quizá! sea! una! competencia!mucho!mayor.! Ofrece! un! servicio!
dispone!de!ningún!método!de!comunicación!con!el!vehículo,!se!limita!a!una!conexión!
a!la!centralita!de!un!coche.!Nuestro!proyecto!dispondrá!de!una!pantalla!y!un!chat!en!
tiempo!real.!Además,!no!existe!limite!de!modelo!ni!tipo!de!vehículo,!mejorando!así!el!
sistema!Link200.!
Podemos!definir!algunas!características!interesantes!que!un!sistema!como!éste!
podría!incluir:!
H! Inmovilizado!del!vehículo.!Por!ejemplo,!si!el!vehículo!es!robado,!podríamos!
detenerlo!al!instante.!
H! Restringir!áreas.!Por!ejemplo,!sería!útil!que!según!el!uso!que!le!vayamos!a!
dar!a!un!vehículo!alquilado!nos!ajustasen!el!precio.!El!servicio!que!te!deben!
prestar!si!alquilas!un!vehículo!y!sales!del!país!con!él,!no!es!el!mismo!y!su!
precio! tampoco! debería! serlo.! Si! pudieramos! restringir! áreas,! podríamos!
ajustar!mejor!el!precio!del!alquiler.!
H! Localización!GPS.!Por!ejemplo,!obtener!la!posición!exacta!de!un!vehículo,!
nos!facilitaría!enormemente!la!asistencia!en!carretera,!pudiendo!avisar!a!la!
grúa!más!cercana!o!el!camino!más!corto!hasta!el!vehículo.! Imagina!una!
autopista,! hay! que! elegir! el! acceso! más! cercano! guiandose! por! las!
indicaciones!del!usuario.!Con!la!información!GPS!no!habría!error.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 6!
H! Velocidad.!Por!ejemplo,!muchas!empresas!se!hacen!cargo!de!las!multas!de!
tráfico!de!sus!trabajadores.!Penalizar!a!estos!por!una!conducción!peligrosa!
es! interesante.! Obteniendo! la! velocidad,! tenemos! información! relevante!
para!este!uso.!
H! Identificación! del! conductor.! Por! ejemplo,! saber! que! persona! conduce!
cualquiera!de! los!vehículos!de!nuestra!empresa!nos!ayuda!a!gestionar!a!
nuestros!trabajadores!de!forma!más!eficiente.!
H! Distintos! sensores.! Por! ejemplo,! el! nivel! de! combustible,! temperatura,!
presión!de!los!neumáticos.!etc.!
H! Distintos!actuadores!para!controlar!el!vehículo.!Por!ejemplo,!encender!las!
luces,!la!alarma,!subir!las!ventanillas,!etc.!
H! Método!de!contacto!con!la!empresa!para!solicitar!información.!Por!ejemplo,!
un!chat!para!tener!comunicación!directa!con!la!empresa!a!la!que!le!hemos!
alquilado!el!vehículo!por!si!necesitamos!cualquier!tipo!de!información.!
H! Envío!de!una!alerta!SOS!a! la!empresa.!Por!ejemplo,! si! el! conductor!del!
vehículo!sufre!un!accidente!podría!avisar!a!la!empresa!rapidamente.!
!
Las! posibilidades! son! infinitas! aunque! habría! que! analizar! las! tecnologías!
necesarias!para!poder!implementar!de!forma!eficiente!estas!características.!
!
2.2.+ Propuesta+de+solución.+
Dada! la! envergadura! de! proyecto,! es! necesario! comenzar! realizando! un!
producto!mínimo!viable!(MVP)!definiendo!las!características!imprescindibles.!Esto!nos!
ayudará!en!el!desarrollo!futuro!de!un!sistema!que!cubra!todas!las!características!que!
demande!el!mercado.!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 7!
Bajo!nuestro!punto!de!vista,!las!características!necesarias!a!desarrollar!en!este!
MVP!serán:!
H! Inmovilizado!del!vehículo.!
H! Localización!GPS.!
H! Velocidad.!
H! Identificación!del!conductor.!
H! Estado!del!vehículo!(parado!o!en!funcionamiento).!
H! Chat!(con!operador!de!su!empresa).!!
H! Envío!de!una!alerta!SOS!a!la!empresa.!
Se!desarrollará!un! sistema!que!proporcione!una!API!Rest! para! la! lógica!de!
negocio,!dando!la!posibilidad!de!conectar!cualquier!tipo!de!cliente.!Conectada!a!esta,!
una!aplicación!web!donde!una!empresa!pueda!gestionar!sus!conductores!y!vehículos,!
viendo!la!posición,!velocidad,!etc.!Además,!cada!vehículo!incluirá!una!Raspberry!Pi!
Model!B!para!realizar!el!control!del!mismo!y!una!pantalla!!que!incluirá!una!aplicación!
para!facilitar!la!comunicación!entre!empresa!y!vehículo.!
Siendo!un!sistema!SaaS,! las!tecnologías!webs!estarán!muy!presentes.!Para!
alcanzar!el!objetivo,!se!necesitará!la!unión!de!las!siguientes!tecnologías:!
H! Java[4]:! Lenguaje!de!programación!multiplataforma!propiedad!de!Oracle.!
Se!usará!con!un!framework!web.!
H! REST:! La! Transferencia! de! Estado! Representacional! (Representational!
State!Transfer)!es!un!estilo!de!arquitectura!software!para!sistemas!basados!
en!web.!Se!usará!para!generar!una!API!de!conexión.!
H! MVC[5]:!Modelo!vista!controlador,!es!un!patrón!de!arquitectura!de!software!
que!separa!los!datos!y!la!lógica!de!negocio!de!una!aplicación!de!la!interfaz!
de! usuario! y! el! módulo! encargado! de! gestionar! los! eventos! y! las!
comunicaciones.!
H! Hardware!abierto!de!bajo!coste:!se!utilizará!un!ordenador!de!placa!reducida!
(SBC)!de!bajo!coste!desarrollado!en!Reino!Unido!llamado!Raspberry!Pi[9].!
Con!este,!podremos!interactuar!con!el!vehículo.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 8!
Además,! otras! tecnologías! comúnmente! usadas! en! aplicaciones! web! como!
Javascript,!HTML5,!CSS3,!etc!serán!parte!del!sistema.!
2.3.+ Requisitos+del+sistema.+
Como!hemos!comentado!anteriormente,!debido!a! la!naturaleza!del!proyecto,!
los! requisitos! del! sistema[1]! no! están! cerrados.! Esto,! por! una! parte,! enriquece! el!
proyecto! desarrollando! funcionalidades! que! en! principio! no! se! pensaron.! Por! otra!
parte,! es! un! problema,! ya! que! podría! hacer! que! el! proyecto! se! alargue! de! forma!
indefinida.! En! cualquier! caso,! vamos! a! definir! unos! requisitos! que! nos! ayuden! a!
encaminar!el!proyecto.!
H! Requisitos!funcionales!
o! La!empresa!podrá!añadir,!eliminar,!modificar!y!ver!sus!vehículos.!
o! La!empresa!podrá!añadir,!eliminar,!modificar!y!ver!sus!conductores.!
o! La!empresa!dispondrá!de!un!chat!para!comunicarse!con!el!vehículo.!
o! La!empresa!podrá!inmovilizar!un!vehículo!en!tiempo!real.!
o! La!empresa!podrá!consultar!la!información!de!cada!vehículo!en!tiempo!
real.!
o! La!empresa!recibirá!notificaciones!en!tiempo!real.!
o! El!vehículo!podrá!enviar!una!alerta!de!sos!a!la!empresa.!
o! El!vehículo!dispondrá!de!un!chat!para!comunicarse!con!su!empresa.!
o! El!vehículo!recibirá!alertas!y!notificaciones!en!tiempo!real.!
o! El!vehículo!enviará!información!de!los!sensores!disponibles.!
!
H! Requisitos!no!funcionales!
o! La!empresa!podrá!conectar!cualquier!tipo!de!cliente.!
o! El!vehículo!dispondrá!de!una!pantalla.!
o! El!vehículo!dispondrá!de!tarifa!de!datos.!
o! El!vehículo!podrá!seguir!en!funcionamiento!si!el!sistema!falla.!
Con!este!listado,!tenemos!una!base!suficiente!para!encaminar!el!proyecto!hacia!
el!punto!que!queremos.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 9!
2.4.+ Planifcación+de+tareas+
En! la! filosofía! ágil,! la! planificación!de! las! tareas! se! realiza! a! corto! plazo,! la!
tendencia! actual! es! utilizar! todas! las! características! que! nos! sean! útiles! de! cada!
metodología.!Planificar!todas!las!tareas!nos!proporcionará!una!visión!general!(aunque!
no!tiene!que!cumplirse!exactamente)!sobre!cómo!evolucionará!el!desarrollo.!!
Definamos! cada! una! de! las! tareas! y! sus! subtareas! indicando! un! perfil! del!
equipo!que!será!el!encargado!de!realizarlas:!
1.! Análisis.!
a.! Estudio!de!tecnologías.!Analista.!
b.! Análisis!de!requisitos.!Analista.!
c.! Recopilación!de!bibliografía.!Analista.!
2.! Diseño.!
a.! Diseño!preliminar.!Analista.!
b.! Diseño!detallado.!Analista.!
3.! Análisis!de!la!interfaz.!
a.! Boceto!wireframe.!Diseñador!UI/UX.!
b.! Diseño!de!prototipo.!Diseñador!UI/UX.!
4.! Maquetación!HTML.!
a.! Interfaz!HTML!de!AdminClient.!Programador.!
b.! Interfaz!HTML!de!CarClient.!Programador.!
5.! Implementar!lógica!de!negocio!y!conexión!DB.!
a.! Configuración!de!Spring!con!los!distintos!módulos.!Programador.!
b.! Desarrollo!de!los!modelos,!beans!y!otros!patrones.!Programador.!
c.! Integración!de!Hibernate.!Programador.!
6.! Implementar!servicios!web!como!recursos.!
a.! Integrar!Jersey!para!implementar!API!REST.!Programador.!
b.! Implementar!URLs!para!obtener!los!recursos.!Programador.!
7.! Implementar!AdminClient!utilizando!MVC.!
a.! Implementar!modelos!y!controladores.!Programador.!
b.! Integrar!HTML!generando!vistas.!Programador.!
8.! Conexión!de!AdminClient!con!CoreService.!Programador.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 10!
9.! Implementar!CoreRealTime.!
a.! Instalación! de! Node.js! y! todos! los! paquetes! necesarios.!
Programador.!
b.! Implementación! de! servidor! web! con! Express! y! web! socket.!
Programador.!
c.! Implementación!de!simulador.!Programador.!
10.!!!Conexión!de!AdminClient!con!CoreRealTime.!Programador.!
11.!!!Conexión!de!CarClient!con!CoreRealTime.!
a.! Integración!de!HTML!con!MV*!utilizando!Backbone.!Programador.!
b.! Integración!de!socket.!Programador.!
12.!!!Implementar!circuito!de!relés!para!el!control!del!vehículo.!Programador.!
13.!!!Implementar!CarControl.!
a.! Implementar!GPIO.!Programador.!
b.! Implementar!GPS.!Programador.!
14.!!!Conexión!de!CarControl!con!CoreRealTime.!Programador.!
15.!!!Instalar!Raspbian!con!los!drivers!de!Piscreen.!Programador.!
16.!!!Configurar!Raspbian!y!realizar!backup.!Programador.!
17.!!!Deployment!en!servidor.!
a.! Instalación!del!sistema,!servidores!y!paquetes.!Programador.!
b.! Deploy!de!todas!las!aplicaciones.!Programador.!
18.!!!Configurar!dominio!Senior!Developers.!Programador.!
19.!!!Refactoring!&!Testing.!Tester.!!
!
!
!
!
!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 11!
Veamos!estas!tareas!en!un!diagrama!jerárquico!de!tareas.!
Diagrama'2.4.1!
La! fecha! límite! de! entrega! es! 02/03/2015.! Planificaremos! sprints! de! dos!
semanas! (5! días! hábiles! a! jornada! completa)! por! lo! que! debemos! desarrollar! el!
proyecto!en!10!sprint!(inicio!del!desarrollo!20/10/2015).!
Diagrama'2.4.2'
'
'
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 12!
2.5.+ Estudio+de+viabilidad+
Para!corroborar!que!nuestro!proyecto!es!viable!y!puede!tener!continuidad!en!el!
tiempo,!necesitamos!analizar!el!dinero!necesario!para!poder!desarrollarlo.!Además,!
tenemos!que!calcular!los!gastos!mensuales!fijos!posteriores!al!desarrollo!y!de!cada!
producto!vendido.!
Gastos!en!material!
Concepto! Cantidad! Precio! Total!
Mac!Mini! 7! 515!€! 3605!€!
Pantalla!Dell!24”! 7! 229!€! 1603!€!
Raspberry!Pi!Model!B! 1! 41,95!€! 41,95!€!
Kit!relé!20A! 1! 7,60!€! 7,60!€!
Kit!fuente!de!alimentación!USB! 1! 8,91!€! 8,91!€!
Pantalla!TFT!Raspberry!2,8”! 1! 29,90!€! 29,90!€!
Kit!leds,!resistencias!y!cables! 1! 6!€! 6!€!
! ! TOTAL! 5302,36!€!
Tabla'2.5.1'
La!vida!útil!de!este!material!es!aproximadamente!de!3!años.!Si!dividimos! la!
cantidad!total!entre!este!periodo,!obtenemos!127,49!€!al!mes.!A!esta!cantidad,!hay!
que!sumarle!5!€!al!mes!del!servidor!para!realizar!test!y!55,40!€!al!mes!de!la!conexión!
a!internet.!
Esto!genera!un!total!en!material!de!187,89!€!/!mes.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 13!
Gastos!en!personal[10]!
Concepto! Cantidad! Precio! Total!
Analista! 1! 2917!€! 2917!€!
Programador! 3! 2334!€! 7002!€!
Diseñador! 1! 1667!€! 1667!€!
Tester! 1! 1500!€! 1500!€!
! ! TOTAL! 13086!€!
Tabla'2.5.2'
El!personal! trabajará!5!días!a! la!semana!a! jornada!completa! lo!que!supone!
13086!€!al!mes.!!
Gastos!de!explotación!
Concepto! Cantidad! Precio! Total!
Raspberry!Pi!Model!B! 1! 41,95!€! 41,95!€!
Kit!relé!20A! 1! 7,60!€! 7,60!€!
Kit!fuente!de!alimentación!USB! 1! 8,91!€! 8,91!€!
Pantalla!TFT!Raspberry!2,8”! 1! 29,90!€! 29,!90!€!
Kit!leds,!resistencias!y!cables! 1! 6!€! 6!€!
! ! TOTAL! 94,36!€!!
Tabla'2.5.3'
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 14!
La!vida!útil!de!este!material!es!aproximadamente!de!3!años.!Si!dividimos! la!
cantidad!total!entre!este!periodo,!obtenemos!2,62!€!al!mes.!A!esta!cantidad,!hay!que!
sumarle!20!€!al!mes!del!servidor!para!producción!y!29,95!€!al!mes!de!la!conexión!a!
internet!con!tarifa!de!datos.!
Esto!genera!un!total!en!explotación!de!52,57!€!/!mes.!
!
Una! vez! que! tenemos! todos! los! datos! necesarios! podemos! hacer! algunos!
cálculos!simples!para!estimar!el!desembolso!inicial!y!los!gastos!mensuales!durante!el!
desarrollo!del!proyecto.!
Veamos!una!aproximación:!
H! Al!inicio!de!nuestra!actividad,!necesitamos!adquirir!los!equipos!informáticos!
y!un!hardware!para!realizar!pruebas,!esto!nos!supone!un!coste!de!1127,34!
(187,89!€!/!mes).!
H! Necesitamos!contratar!al!personal.!Podríamos!saber!cuál!sería!el!coste!en!
horas! de! cada! uno! y! calcularlo! en! consecuencia,! pero! es! más! realista!
contratar! al! equipo! a! tiempo! completo! ya! que! habrá! que! realizar! otras!
muchas!tareas!a!nivel! interno!en!la!empresa.!Por!tanto,!necesitaremos!al!
menos!6!meses!de!trabajo!del!equipo!completo,!lo!que!supone!un!coste!en!
nóminas!de!78516!(13086!€!/!mes).!
Necesitamos!un!fondo!de!80000!€!para!poder!desarrollar!el!proyecto.!
El!modelo!de!negocio!que!mejor!se!adapta!a!la!problemática!que!se!resuelve!
con!este!proyecto!es!el!pago!por!suscripción.!Nuestro!coste!por!vehículo!es!de!52,57!
€!y!los!gastos!de!la!empresa!al!mes!son!13273,89!€.!Suponiendo!una!subscripción!
mensual!de!25!€!por!vehículo,!necesitaríamos!600!vehículos!para!empezar!a!obtener!
ingresos!(con!una!media!de!5!vehículos!por!empresa,!podría!rondar!las!60!empresas).!
A!partir!de!esa!cantidad,!se!pueden!abaratar!los!pagos!mensuales,!realizar!ofertas,!
etc.!También!podemos!establecer!permanencias!o!un!pago!inicial!para!evitarla,!con!lo!
que!nos!aseguramos!clientes!durante!periodos!más!largos!de!tiempo.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 15!
Nuestro! primer! objetivo! comercial! será! mantener! más! de! 300! vehículos!
suscritos! al! servicio,! consiguiendo! tracción! y! algo! de! facturación.! El! siguiente,!
conseguir!5!nuevos!vehículos!cada!mes.!!
Un!años!después!de!alcanzar!el!primer!objetivo,!esperamos!tener!60!vehículos!
nuevos,! que! nos! proporcionarán! unos! ingresos! de! 250! €! al! mes.! De! esta! forma!
tendremos!ingresos!de!forma!exponencial.!Calculamos!el!beneficio!anual!(ingresos!H!
gastos!=!beneficio):!
H! 1º!año,!conseguir!60!vehículos:!!
(360!vehículos!x!25!€)!H!(13273,89!gastos)!=!H4273!€!/!mes!=!H51276!el!
primer!año.!
•! Acumulando!el!gasto!del!desarrollo,!nos!encontraríamos!en!H131276!
€,!es!decir!tendríamos!perdidas.!
H! 2º!año,!conseguir!120!vehículos:!!
(480!vehículos!x!25!€)!H!(13273,89!gastos)!=!H1273!€!/!mes!=!H15276!el!
segundo!año.!
•! Acumulando!las!pérdidas!anteriores,!nos!encontraríamos!en!H146552!
€,!es!decir!tendríamos!perdidas.!
H! 3º!año,!conseguir!240!vehículos:!
(720!vehículos!x!25!€)!H!(13273,89!gastos)!=!4727!€!/!mes!=!56724!al!
tercer!año.!
•! Acumulando!las!pérdidas!anteriores,!nos!encontraríamos!en!H89828!
€,!es!decir!recuperando!parte!de!las!perdidas!de!los!años!anteriores.!
Como!vemos,!a!partir!del!3º!año,!nuestros!ingresos!se!disparan!con!cifras!de!
700!vehículos.!Según!estadísticas!de!la!DGT[11],!hay!más!de!30!millones!de!vehículos!
en!España!al!inicio!de!2013,!por!lo!que!700!vehículos!no!parecen!ser!demasiados.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 16!
2.6.+ Modelo+del+dominio+
Realizamos! un!modelo! conceptual! de! todos! los! temas! relacionados! con! un!
problema!y!describimos!las!distintas!entidades,!sus!atributos,!papeles!y!relaciones,!
además!de!las!restricciones!que!rigen!el!dominio!del!problema.!
Podemos!identificar!los!siguientes!conceptos:!
H! Empresa!
H! Vehículo!
H! Conductor!
H! Ruta!
H! Posición!
H! Alerta!
H! Chat!
H! Comentario!
H! Cliente!Raspberry!Pi!
H! Cliente!para!empresa!
H! REST!
Con! el! fin! de! representar! los! conceptos! clave! del! problema! y! una! visión!
estructural,!creamos!el!modelo!de!dominio.!Este!nos!ayuda!a! limitar!el!alcance!del!
problema.!
!
Diagrama'2.6'
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 17!
Como!vemos!en!el!diagrama,!no!todos!los!conceptos!son!parte!del!modelo!de!
datos,!algunos!son!otros!componentes.!
El!eje!central!de! la!aplicación!es!el!vehículo.!Este!contiene! listas!de!alertas,!
rutas! y! chats.!Cada!uno!de!estos! conceptos! solo! van!a!pertenecer! a!un! vehículo.!
Además,!cada!vehículo!contiene!un!conductor.!
Cada! empresa! gestiona! una! serie! de! vehículos.! Estas! serán! accesibles!
mediante!un!API!REST!
2.7.+ Casos+de+uso+
Para!complementar!el!modelo!de!domino! realizamos!algunos!casos!de!uso.!
Estos! describen! el! proceso! para! realizar! una! acción! en! el! sistema,! ayudan! a!
determinar!la!funcionalidad!y!características!desde!el!punto!de!vista!del!usuario.!
Existen!dos!tipos!de!usuarios!que!utilizaran!nuestros!sistema:!conductores!de!
los! vehículos! y! administradores! de! la! empresa.! Como! no! todos! los! casos! de! uso!
pueden!ser!útiles,!proponemos!representar!los!siguientes:!
H! Consultar!la!información!de!un!vehículo.!
H! Detener!un!vehículo.!
H! Enviar!SOS!a!la!empresa.!
Consultar+la+información+de+un+vehículo.+
'
Diagrama'2.7.1+
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 18!
Caso!de!uso! Consultar!información!de!un!vehículo!
Actor!primario! Empresa!
Sistema! Sistema!
Participantes! Empresa,!CoreService!
Nivel! Objetivo!empresa!
Condición!previa! Estar!logueado!en!el!sistema!
Operaciones!básicas! !
1! Seleccionar!la!opción!del!menú!
“vehículos”!
2! Seleccionar!el!vehículo!del!listado!
Alternativas! !
H! H!
Tabla'2.7.1'
Detener+un+vehículo.+
Diagrama'2.7.2+
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 19!
Caso!de!uso! Consultar!información!de!un!vehículo!
Actor!primario! Empresa!
Sistema! AdminClient!
Participantes! Empresa,!CoreRealTime,!Vehicle,!
CoreService!
Nivel! Objetivo!empresa!
Condición!previa! Estar!logueado!en!el!sistema!
Operaciones!básicas! !
1! Seleccionar!la!opción!del!menú!
“vehículos”!
2! Seleccionar!el!vehículo!del!listado!
3! Pulsar!el!botón!detener!vehículo!
4! Aceptar!para!el!vehículo!
Alternativas! !
4.A! ¿Quiere!detener!el!vehículo?!
4.A.1! Si,!se!detiene!cuando!sea!posible!
4.A.2! No,!se!vuelve!al!vehículo!sin!hacer!nada!
Tabla'2.7.2'
+
+
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 20!
Enviar+SOS+a+la+empresa.+
Diagrama'2.7.3+
Caso!de!uso! Consultar!información!de!un!vehículo!
Actor!primario! Conductor!
Sistema! CarClient!
Participantes! Conductor,!CoreRealTime,!Empresa,!
CoreService!
Nivel! Objetivo!conductor!
Condición!previa! Tener!conexión!a!internet!
Operaciones!básicas! !
1! Seleccionar!opción!del!menu!SOS!
2! Aceptar!enviar!SOS!
Alternativas! !
2.A! Se!enviará!si!no!indica!lo!contrario.!
2.A.1! Cancelar,!no!hacer!nada.!
Tabla'2.7.3'
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 21!
2.8.+ Analisis+de+la+interfaz+
Se!ha!realizado!un!análisis!previo!de!la!interfaz!para!madurar!la!idea.!Podemos!
identificar! dos! interfaces! gráficas,! la! del! panel! de! administración! para! la! empresa!
(AdminClient)!y!la!interfaz!que!aparece!en!la!pantalla!del!vehículo!(CarClient).!
El!diseño!de!la!interfaz!de!usuario!incluye!seleccionar!y!ordenar!los!elementos!
de!la!interfaz!para!permitir!a!los!usuarios!interactuar!con!la!funcionalidad!del!sistema.!
Podemos! ver! un! wireframe! de! ambas! interfaces! para! representar! el! esqueleto! o!
estructura!visual!de!las!mismas.!
AdminClient+
Imagen'2.8.1'
CarClient+
Imagen'2.8.2'
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 22!
Como! vemos,! contienen! todos! los! elementos!mencionados! y! nos! ayudan! a!
visualizar!mucho!mejor!el!concepto.!AdminClient!usa!una!proporción!panorámica!de!
16:9!mientras!que!CarClient!es!más!parecida!a!4:3.!
Se! ha! tenido! encuenta! la! coherencia! a! la! hora! de!maquetar! y! diseñadar! la!
aplicación.!Las!ventanas!y! los!botones!presentan!el!mismo!estilo!y!aparecen!en!el!
mismo! lugar,!para!mejorar! la!experiencia!y!usabilidad!del!usuario,!creando!así!una!
aplicación!muy!intuitiva.!Además,!ambas!aplicaciones!tienen!el!menú!a!la!izquierda,!
ya!que!nuestros!clientes!potenciales!serán!occidentales.!
!
!
! +
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 23!
3.+ DISEÑO+
En!este!punto,!vamos!a!describir!la!definición!de!la!arquitectura,!componentes,!
interfaces!y!otras!características!del!sistema.!
3.1.+ Diagrama+de+clases+
La!aplicación!está!compuesta!por!5!partes!diferenciadas!e!interconectadas.!Las!
vamos!a!definir!en!este!diagrama!de!paquetes:!
Diagrama'3.1.1!
Vamos!a!realizar!una!implementación!orientada!a!objetos,!por!tanto,!diseñar!un!
diagrama!de!clases!nos! facilitará!el! trabajo.!Para!que!se!entienda!mejor,! vamos!a!
explicar!por!separado!las!5!partes.!
Coreservice+
Será!el!núcleo!del!sistema,!tres!de!las!4!partes!restantes!estarán!conectadas!a!
esta.!Contendrá!la!lógica!de!negocio,!conexión!a!base!de!datos!y!ofrecerá!cada!uno!
de!los!recursos!REST.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 24!
Diagrama'3.1.2!
Como!se!puede!apreciar,! se!ha!simplificado! la! representación!de! los!getter,!
setter!y!los!métodos!CRUD!(crear,!obtener,!actualizar!y!eliminar)!de!los!objetos.!
En!este!diseño,!se!usarán!algunos!patrones.!En!general,!las!clases!utilizarán!
experto! en! información,! alta! cohesión! y! bajo! acoplamiento.! Además,! todos! los!
modelos!que!se!persistirán!utilizarán:!
H! Patrón!DAO!(objeto!de!acceso!a!los!datos)!!con!un!manejador!de!entidades!
de!ORM!Hibernate,!
H! Patrón!DTO!(objeto!de!transferencia!de!datos)!para!serializar!los!objetos!de!
forma!simple!y!ofrecerlos!como!recursos!REST.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 25!
Existe!una!clase!que!hace!de!interfaz!al!resto!del!sistema,!EnterpriseBean.!Es!
un!Bean! de!Spring[2],! que! por! su! naturaleza! implementa! los! patrones!Singleton! y!
Creación.!Se!encarga!de!construir! los!objetos!y!realizar!inyección!de!dependencias!
entre! los! modelos.! La! inyección! de! dependencias! es! usada! también! en! la!
implementación!de!los!Bean!en!Spring,!pero!se!realiza!de!forma!automática!mediante!
anotaciones.!
AdminClient+
Será! un! cliente! para! las! empresas.! Facilitará! el! acceso! y! control! de! las!
empresas! a! sus! vehículos.! Permitirá! añadir,! eliminar,! actualizar! y! ver! vehículos! y!
conductores.!Dispondrá!de!un!chat!para!la!comunicación!del!vehículo.!Recibirá!alertas!
y!notificaicones!del!vehículo.!Se!conectará!a!CoreService!a!través!de!REST.!No!es!
necesario!un!diagrama!de!clases!de!esta!parte!ya!que!los!modelos!son!los!mismos!
descritos!en!CoreService!y!gran!parte!del!código!no!es!orientado!a!objetos.!
Dispondrá!de!conexión!en!tiempo!real!con!el!sistema.!Para!ello,!será!necesario!
implementar!sockets.!Utilizará!DTOs!para!la!transferencia!de!datos!REST.!!
CarClient+
Será!el!cliente!ejecutado!en!el!vehículo.!Dispondrá!de!una!interfaz!gráfica!para!
que!desde!el!vehículo!se!pueda!interactuar!con!la!empresa.!Se!utilizarán!sockets!en!
su!mayor!parte.!La!programación!orientada!a!objetos!no!es!una!caractarística!que!
destacará!y!no!queda!claro!que!con!programación!estructurada!no!sea!suficiente!para!
su!implementación.!
CoreRealTime+
Será! el! núcleo! del! sistema! de! tiempo! real.! Hará! de! intermediario! entre! las!
distintas!aplicaciones!para!notificar,!mediante! sockets,! todo! lo!que!ocurre!en! cada!
momento.!!
+
+
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 26!
CarControl+
Será!un!script!para!controlar!el!hardware! incrustado!en!el!vehículo.!Utilizará!
sockets!y!se!conectará!a!CoreRealTime.!No!es!orientado!a!objetos!por!lo!que!no!se!
incluye!diagrama!de!clases.!
3.2.+ Diagramas+Entidad(Relación+
No!se!generará!un!diagrama!entidad! relación!en!el!diseño,!ya!que!vamos!a!
utilizar!un!ORM!(Hibernate)!para!la!persistencia!de!objetos.!Este!será!el!encargado!de!
autogenerar! las! tablas! de! la! base! de! datos! correspondiente! al! CoreServices!
(encargado!de!persistir!los!datos).!!
Los!objetos! a! persistir! son!Business,!Vehicle,!Chat,!Comment,!Alert,!Way! y!
Position.! Para! poder! persistir! las! relaciones,! comprobaremos! que! se! crean! tablas!
intermedias!con!los!identificadores!de!los!objetos.!
'Diagrama'4.2!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 27!
Los!siguientes!puntos!confirmarán!si!las!tablas!están!normalizadas:!
H! 1FN!
o! Todos!los!atributos!son!atómicos.!!
o! La!tabla!contiene!una!clave!primaria!única.!
o! La!clave!primaria!no!contiene!atributos!nulos.!
o! No!existe!variación!en!el!número!de!columnas.!
o! Los!Campos!no!clave!se!identifican!por!la!clave.!
H! 2FN!
o! Está!en!1FN!y! los!atributos!que!no!forman!parte!de!ninguna!clave!
dependen!de!forma!completa!de!la!clave!principal.!
H! 3FN!
o! Está! en! 2FN! y! no! existe! ninguna! dependencia! funcional! transitiva!
entre!los!atributos!que!no!son!clave.!
Podemos!afirmar!que!el!ORM!ha!creado!la!base!de!datos!de!forma!correcta.!
!
!
!
!
!
!
!
!
!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 28!
3.3.+ Diagrama+de+secuencia+
Vamos!a!mostrar! la! interacción!que!se!produce!entre! los!objetos!de!nuestro!
sistema! en! el! tiempo,! basandonos! en! los! casos! de! uso! descritos! anteriormente,!
mediante! diagramas!de! secuencia.!Con!ellos! quedarán!más! claros! los! detalles! de!
implementación!de!cada!escenario.!Los!diagramas!de!secuencia!descritos!son:!
H! Consultar!la!información!de!un!vehículo.!
H! Detener!un!vehículo.!
H! Enviar!SOS!a!la!empresa.!
Consultar+la+información+de+un+vehículo+
'
Diagrama'3.3.1!
Como!observamos,!la!empresa!solicita!el!listado!de!vehículos.!El!controlador!
los!obtiene!del!servicio!REST!y!los!muestra.!Después,!la!empresa!elige!el!vehículo!del!
que!desea!obtener! la! información.!Este!es!solicitado!al!controlador!que!a!su!ver! lo!
obtiene! mediante! el! servicio! REST! y! se! lo! muestra! a! la! empresa! con! toda! la!
información!relacionada.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 29!
Detener+un+vehículo.+
'Diagrama'3.3.2+
Este!proceso!es!similar!al!anterior,!ya!que!para!poder!detener!el!vehículo!antes!
hay!que!obtenerlo.!Una!vez!que!estamos!visualizando!la!información!del!vehículo,!la!
empresa!puede!solicitar!que!se!detenga.!Esta!solicitud!llega!al!socket!que!notifica!al!
vehículo!para!que!active!el!hardware!necesario!para!detenerse.!
Enviar+SOS+a+la+empresa.+
'Diagrama'3.3.2'
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 30!
!
Enviar!una!alerta!debe! requerir! de!demasiado!esfuerzo,! ya!que!es!un! tema!
delicado!y!debería!ser!muy!rápido.!Por! tanto,!el!conductor!solo! tiene!que!pulsar!el!
botón!de!SOS!y!el!sistema!se!encargará!de!realizar! todo!el!proceso.!La!aplicación!
mostrará! una! alerta! en! el! vehículo! y! enviará! la! petición! de! SOS! al! socket.! Este!
notificará!mediante!el!manager!correspondiente!a!la!aplicación!de!la!empresa.!
!
3.4.+ Diseño+de+la+interfaz+
Siguiendo! el! wireframe! creado! en! el! análisis,! nos! disponemos! a! crear! un!
prototipo.!Este!debe!ser!construido!en!poco!tiempo,!usando!los!programas!adecuados!
y!no!se!debe!utilizar!muchos!recursos.!
Se!han!utilizado!metáforas!para!representar!los!iconos.!El!layout!esta!basado!
en!dos!columnas,!una!para!el!menú!y!otra!para!el!contenido.!
AdminClient+
Imagen'3.4.1!
+
+
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 31!
+
CarClient+
'
Imagen'3.4.2!
!
Los!colores!no!han!sido!escogidos!aleatoriamente,!sino!que!además!de!tener!
armonía,!se!han!buscado!unas!cualidades!específicas:!
H! El! color! verde! representa! la! aceptación,! al! contrario! del! color! rojo,! que!
además!representa!atención.!
H! No! se! han! utilizado! colores! muy! saturados! para! no! desviar! la! vista! del!
conductor!que!debe!ir!atendiendo!a!la!carretera.!
H! El! color!principal!escogído!en!el!modelo! (azul!oscuro,!como!el! fondo!del!
reloj)!cumple!una!función!muy! importante,!al!ser!un!color!oscuro!y!de!un!
brillo! y! saturación! concretos! no! deslumbra! con! baja! luminosidad.! Se! ha!
pensado!así!porque!el!salvapantallas!(reloj)!aparecerá! la!mayor!parte!del!
tiempo!en!la!pantalla!y!nos!ayuda!a!conseguir!una!mejor!experiencia!tanto!
de!día!como!de!noche.!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 32!
3.5.+ Circuito+electrónico+
Se!ha!diseñado!el!siguiente!circuito!para!controlar!el!vehículo:!
Circuito'3.1'
Se!necesitará!un!hardware!que!pueda!controlar!3!pines!de!entrada!y!salida!a!
3,3V.!El!pin!22,!controlará!si!el!vehículo!está!en!funcionamiento.!El!pin!17!se!utilizará!
para!indicar!si!el!vehículo!ha!sido!bloqueado,!siendo!el!pin!23!el!encargado!del!control!
del!bloqueo.!
!
+! +
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 33!
4.+ IMPLEMENTACIÓN+
Una! vez! que! tenemos! clara! la! especificación! técnica,! en! la! medida! de! los!
posible,!vamos!a!realizar!el!desarrollo.!
4.1.+ Arquitectura+
! Tenemos!que!definir!de!forma!clara!la!arquitectura!hardware!del!sistema!y!las!
tecnologías!que!vamos!a!emplear!en!cada!una!de!las!partes!que!lo!componen.!
! La!arquitectura!hardware!estará!compuesta!por!partes:!
H! Servidor!Ubuntu:!Sistema!operativo!linux!para!servidores.!Se!utilizará!para!
desplegar! las! aplicaciones! desarrolladas! en! sus! correspondientes!
servidores.!Utilizaremos!un!equipo!con!2!Gb!de!memoria!ram,!2!núcleos!y!
40!Gb!de!SSD.!
H! Raspberry!Pi[9]:!Hardware!libre!de!bajo!coste.!Necesitaremos!una!pantalla!
y!un!circuito!para!el!control!del!vehículo.!Además!se!utilizará!para!ejecutar!
el!cliente!para!el!vehículo.!
Cada!uno!de!los!vehículos!integrará!una!Raspberry!Pi!con!todo!lo!necesario.!A!
modo!orientativo,!podemos!ver!el!resultado!en!la!siguiente!imagen:!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 34!
En!este!diagrama!de!arquitectura!podemos!ver!de!forma!gráfica!la!estructura!
hardware!y!las!tecnologías!que!se!van!a!usar!en!cada!parte.!
!!
Diagrama'4.1'
'
'
'
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 35!
4.2.+ Detalles+sobre+implementación+
Este! proyecto! engloba! una! gran! cantidad! de! tecnologías.! Que! todas! ellas!
trabajen!juntas!no!es!una!tarea!sencilla.!
A! nivel! hardware,! la! Rapsberry! Pi! se! ha! configurado! de! tal!modo! que! todo!
funciona!mientras! las!esta!no! interceda.!De!esta! forma,!si! la!Raspberry!Pi!deja!de!
funcionar,!el!vehículo!podría!ser!utilizado!sin!problemas.!
A!nivel!software,!hay!dos!tecnologías!que!se!repiten,!REST!y!Sockets.!Ambas!
se!utilizan!para!la!comunicación!entre!las!aplicaciones.!En!general!se!utilizan!DTOs!
para! la! transferencia! de! datos,!mapeando! los! objetos! correspondientes,! nunca! se!
persisten!objetos!tal!cual!se!reciben.!Otro!apunte!a!tener!en!cuenta!es!que!todos!los!
ids! son! autogenerados! desde! el! sistema,! utilizando! como! prefijo! el! objeto! que! lo!
contiene.!!
Vamos!a!enumerar!gran!parte!de!las!tecnologías!utilizadas,!explicando!por!qué!
se!han!elegido:!
H! Java[4]:!!
o! BackHend.!Se!ha!utilizado!el!framework!Spring!para!la!lógica!de!negocio.!
En!la!capa!de!presentación!se!utiliza!el!paquete!Jersey!de!Spring!para!
generar! un! API! Rest.! Utilizar! una! tecnología! tan!madura! como! Java!
como! base! de! nuestra! aplicación! nos! aporta! una! robustez! que! no!
podemos!encontrar!en!otras!tecnologías.!
o! FrontHend.! Se! ha! desarrollado! la! aplicación! para! la! empresa! que!
administrará!sus!vehículos!utilizando!Servelts,!JSP,!etc!para!desarrollar!
una!aplicación!web!MVC.!Utilizar!Java!en!este!cliente!ha!sido!más!una!
elección!para!diversificar!las!tecnologías!y!demostrar!que!la!integración!
se!puede!realizar!sin!problemas!que!por!cualquier!otro!motivo.!
H! MySQL:!!
o! Se! ha! utilizado! para! almacenar! la! información! utilizando! el! ORM!
Hibernate.!Es!una!de! las!bases!de!datos! relacionales!más!utilizadas.!
Existen!drivers!para!casi!todos!los!ORM!de!este!sistema!de!gestión!de!
bases!de!datos.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 36!
!
H! Javascript:!!
o! BackHend.! Se! ha! implementado! un!miniHframework!MVC[5]! utilizando!
Express.js!y!Socket.io!sobre!un!servidor!Node.js.!Usar!esta!tecnología!
para!gestionar! todo!el!sistema!en!tiempo!real!hace!que!todo!funcione!
infinitamente!más!rápido.!
o! FrontHend.!Se!ha!utilizado!en!todos!los!clientes!web!para!gestionar!las!
funcionalidades! en! tiempo! real! utilizando! Socket.io.! Además,! la!
aplicación! para! el! vehículo! seguirá! la! metodología! Single! Page! y!
utilizaremos!Backbone[8]! para! crear! una! aplicación!web!MV*.!Utilizar!
Backbone! simplifica! enormemente! el! manejo! del! DOM! y,m! unido! a!
socket,!se!convierten!en!una!mezcla!realmente!eficiente.!
!
H! Python:!!
o! Se!implementarán!sockets!para!la!comunicación!entre!la!Raspberry!Pi!y!
el!servidor!en!Node.js.!Además!se!controlará!la!entrada!y!salida!de!la!
Raspberry!mediante!la!biblioteca!en!GPIO!desarrollada!en!Python.!De!
igual!modo,!se!utilizará!la!biblioteca!para!GPS.!Que!la!biblioteca!GPIO!
para! la!Raspberry!esté!escrita!en!Python!condiciona!enormemente! la!
tecnología!a!utilizar.!Implementar!la!conexión!con!sockets.io!se!ha!vuelto!
una!tarea!compleja.!
!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 37!
5.+ CONCLUSIÓN+
Una!vez!implementado!el!sistema,!realizar!una!restrospectiva!del!proceso!nos!
ayudará!a!mejorar!en!próximos!desarrollos.!
5.1.+ Retrospectiva+
La! primera! preguna! que! nos! podemos! hacer! es,! ¿se! han! cumplido! los!
objetivos?!Completamente.!Los!cuatro!puntos!marcados!como!objetos!al!inicio!de!este!
documento! se! han! completado! en! mayor! o! menor! medida.! Quizá,! la! parte! mas!
compleja!ha!sido!definir,!planificar!y!diseñar!un!sistema!del!que!desde!un!principio!no!
se!tenía!claro!como!iba!a!evolucionar.!Intentar!limitar!el!alcance!y!definir!un!diseño!
antes!de!la!implementación!ha!hecho!que!alguna!parte!no!corresponda!con!la!realidad.!
Además,!un!sistema!tan!complejo!como!este,!hace!que!los!diagramas!tenga!que!ser!
simplificados.!
Una!vez!implementado!el!sistema,!en!general,!la!elección!de!las!tecnologías!ha!
sido! bastante! acertada.! La! combinación! de! nuevas! tecnologías! con! otras! muy!
maduras!da!como!resultado!aplicaciones!bastante!robustas.!Raspberry!Pi!a!aportado!
con! un! coste! bastante! bajo! una! parte! muy! importante! del! sistema,! el! control! de!
vehículos.! Por! el! contrario,! Java! no! termina! de! alcanzar! la! velocidad! que! otras!
tecnologías! proporcionan,! eso! sin! contar! que! uno! de! los! dolores! de! cabeza! más!
grandes!ha!sido!que!Tomcat!funcione!correctamente!(además!de!consumir!bastantes!
recursos).!!
Personalmente,! el! mayor! reto! ha! sido! hacer! que! tecnologías! muy! distintas!
funcionen!sincronizadas!por!un!objetivo!común.!Realmente!es!muy!enriquecedor!ver!
como!con!tu!esfuerzo!consigues!que!al!pulsar!un!botón!en!una!página!web,!puedas!
ser!capaces!de!parar!un!vehículo!que!puede!estar!circulando!a!miles!de!kilómetros.!A!
su!vez,!hace!que!el!desarrollo!tenga!una!complejidad!añadida,!mas!aún!si!cabe.!
En! definitiva,! ha! supuesto! un! buen! complemento! a! la! formación! adquirida!
durante!el!grado.!Javascript!y!Socket!no!han!sido!dos!tecnologías!que!se!toquen!de!
forma! avanzada! (al! menos! en! el! año! cursado).! Aún! así,! las! aplicaciones! webs! y!
empresariales!con!Java!me!han!sido!muy!útiles!y!han!quedado!bastante!afianzados!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 38!
después!de!enfrentarme!a!una!aplicación!de!esta!envergadura.!Utilizar!patrones!de!
diseño,! programaicón! orientada! a! objetos! y! metodologías! ágiles! ha! facilitado! la!
implementación!del!sistema!enormemente.!
5.2.+ Mejoras+y+trabajos+futuros+
Al!ser!un!prototipo!y!a!que!el!sistema!puede!crecer!casi!de!forma!infinita,!las!
mejoras!son!muchas.!Aún!así,!si!nos!centramos!en!refinar!el!prototipo!desarrollado!
podemos!acotar!la!lista.!
H! Evitar!recargar!la!página!siempre!que!sea!posible!es!una!característica!que!
aporta!velocidad.!La!experiencia!de!usuario!es!mucho!mejor.!!
H! Utilizar!Backbone!en!el!cliente!de!administración!para!la!empresa,!mejoraría!
la!gestión!del!DOM,!que!está!muy!relacionado!con!el!punto!anterior.!
H! Implementar!seguridad!en!las!comunicaciones.!
H! Mejorar!el!reinicio!de!la!Raspberry!Pi.!Iniciar!el!sistema!completo!hace!que!
sea!bastante!lento.!Añadirle!una!batería!nos!ahorraría!algunos!reinicios.!
H! Utilizar! una! pantalla! más! grande.! Supondrían! un! sobre! coste! pero! la!
experiencia!de!usuario!sería!mejor.!
H! Añadir! un! sistema!de! control! por! voz! intentando! que! el! conductor! no! se!
despiste!mientras!conduce.!
H! Añadir!un!sistema!que!detecte!de!forma!automática!accidente.!
H! Añadir!nuevos!sensores!y!actuadores!para!añadir!nuevas!funcionalidades!
con! los! vehículos,! como! avisar! si! el! vehículo! se! está! quedando! sin!
combustible!o!si!los!neumáticos!no!tienen!la!presión!adecuada.!
Hay!funcionalidades!que!directamente!no!se!han!implementado!por!no!tener!
demasiada!relevancia!en!el!ambito!en!el!que!queríamos!centrarnos.!Poder!editar!tu!
perfil!de!usuario,!mantener!un!historico!de!actividad!de!un!conductor!o!tener!un!panel!
principal! real! con! información! relevante,! son! características! que! podrían!
implementarse! en! futuros! desarrollos! ya! que! el! sistema! está! completamente!
preparado!para!afrontar!estas!mejoras.!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 39!
6.+ BIBLIOGRAFÍA+
Libros+
[1]!Roger!S.!Pressman,! Ingeniería!del!software.!Un!enfoque!práctico.!7a!ed.!
Madrid:!McGrawHill/Interamericana!de!España,!2010!
[2]! W.! Wheeler! and! J.White,! Spring! in! Practice.! Safari,! 2012.! [Online].!
Disponible!en!Recursos!Electrónicos!de!la!Universidad!de!Jaén!
[3]!Ricardo!Puttini,!Cloud!Computing:!Concepts,!Technology!&!Architecture.!
Edition:!1st !
Texto+en+internet+
![4]!E.!Jendrok!et!al.!(Junio,!2013)!The!Java!EE!7!Tutorial.!Oracle.![Online]!
Disponible!en:!https://docs.oracle.com/javaee/7/tutorial/index.html!Acceso:!Jun.!
2015.!
[5]!Modelo!Vista!Controlador.!Wikipedia.![Online]!Disponible!en:!
http://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador.!
Acceso:!!Jun,!2015.!
[6]!Internet!de!las!cosas.!Wikipedia.![Online]!Disponible!en:!
https://es.wikipedia.org/wiki/Internet_de_las_cosas!Acceso:!Jun,!2015.!
[7]!A!Financial!Engine!ShutHoff!Switch.!Freakonomics.![Online]!Disponible!en:!
http://freakonomics.com/2009/04/23/aHfinancialHengineHshutHoffHswitch/!Acceso:! ! Jun,!
2015.!
[8]!Backbone!Tutorial.!Backbone.![Online]!Disponible!en:!http://backbonejs.org/!!
Acceso:!!Jun,!2015.!
[9]!Learn!resources.!RaspberryPi.![Online]!Disponible!en:!
https://www.raspberrypi.org/resources/learn/!Acceso:!!Jun,!2015.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 40!
[10]! Gastos! en! personal.! TuSalario.! [Online]! Disponible! en:!
http://www.tusalario.es/!Acceso:!!Jun,!2015.!
![11]! Estadísticas! de! vehículos.! DGT.! [Online]! Disponible! en:!
http://www.dgt.es/es/seguridadHvial/estadisticasHeHindicadores/parqueH
vehiculos/provHyHtiposHvehiculos/!Acceso:!!Jun,!2015.! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 41!
!
+++++
++++++ APÉNDICE+I.+MANUAL+DE+INSTALACIÓN+DEL+SISTEMA.+
!
!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 42!
Antes!de!comenzar!la!instalación,!necesitamos!una!máquina!para!utilizarla!de!
servidor.!Hemos!optado!por!una!maquina!virtual!en!Digital!Ocean,!un!servicio!IaaS,!
con!Ubuntu!15.04!x64!con!2Gb!de!ram!2!núcleos!y!40Gb!de!SSD.!El!sistema!ha!sido!
probado!en!máquinas!con!4!veces!menos!recursos!y!ha!funcionado!sin!problemas.!
Una!vez!instalado!el!sistema,!pasamos!a!realizar!la!configuración!de!la!zona!
horaria:!
cat /etc/timezone
!
! Si! obtenemos! 'Europe/Madrid'! todo! está! correcto,! si! no! es! así,! podemos!
configurarla!con!el!siguiente!comando.!
sudo dpkg-reconfigure tzdata
!
El!siguiente!paso!es!la!instalación!de!todos!los!servicios!necesarios.!
MySQL+
sudo apt-get install mysql-server mysql-client sudo mysql_install_db sudo mysql_secure_installation sudo mysql restart mysql -u root –p create database carcontol; !
!
!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 43!
Apache2+
Se! utiliza! Apache! como! servicor! principal,! haciendo! de! servidor! para! la!
aplicación!de!CarClient!y!de!proxy!para!el!resto.!
sudo apt-get install apache2 sudo vi /etc/apache2/sites-available/default sudo vi /etc/apache2/ports.conf (cambiar el puerto) sudo service apache2 restart sudo a2enmod proxy sudo a2enmod proxy_http sudo service apache2 restart
!
Configuramos!los!virtual!host!de!cada!una!de!las!aplicaciones:!
Proxy!Tomcat!
<VirtualHost *:80> ProxyRequests off ProxyPreserveHost on ServerName carcontrol-soft.tk ServerAlias www.carcontrol-soft.tk ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ProxyPassReverseCookieDomain localhost carcontrol-soft.tk ProxyPreserveHost On ErrorLog ${APACHE_LOG_DIR}/tomcat-error.log CustomLog ${APACHE_LOG_DIR}/tomcat-access.log combined </VirtualHost> <VirtualHost *:80> ProxyRequests off ProxyPreserveHost on ServerName api.carcontrol-soft.tk ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ProxyPassReverseCookieDomain localhost api.carcontrol-soft.tk ProxyPreserveHost On ErrorLog ${APACHE_LOG_DIR}/tomcat-error.log CustomLog ${APACHE_LOG_DIR}/tomcat-access.log combined </VirtualHost>
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 44!
Proxy!Node!
<VirtualHost *:80> ServerName realtime.carcontrol-soft.tk ProxyRequests off ProxyPreserveHost on ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPassReverseCookieDomain localhost realtime.carcontrol-soft.tk ProxyPreserveHost On ErrorLog ${APACHE_LOG_DIR}/node-error.log CustomLog ${APACHE_LOG_DIR}/node-access.log combined </VirtualHost>
!
CarClient!
<VirtualHost *:80> ServerName client.carcontrol-soft.tk DocumentRoot /var/www/carclient ErrorLog ${APACHE_LOG_DIR}/carclient-error.log CustomLog ${APACHE_LOG_DIR}/carclient-access.log combined </VirtualHost>
Tomcat8+
Hay!que!instalar!Java7,!uso!el!de!oracle!desde!el!repositorio!de!webupd8team:!
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer java -version
!
Ahora!instalamos!Tomcat8!
sudo apt-get install tomcat8 sudo apt-get install tomcat8-admin
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 45!
Ahora!en!/var/lib/tomcat8/conf/server.xml!hay!que!añadir!el!siguiente!fragmento!
de!código!para!añadir!los!host!dentro!de!tomcat:!
<Host name="carcontrol-soft.tk" appBase="webapps/adminclient"
autoDeploy="true"> <Alias>carcontrol-soft.tk</Alias> <Alias>www.carcontrol-soft.tk</Alias> <Context path="" docBase="${catalina.base}/webapps/adminclient"/> </Host> <Host name="api.carcontrol-soft.tk" appBase="webapps/coreservice"
autoDeploy="true"> <Alias>api.carcontrol-soft.tk</Alias> <Context path="" docBase="${catalina.base}/webapps/coreservice"/> </Host>
Instalo+Git+
Instalamos!git!y!lo!configuramos!para!clonar!el!repositorio:!
sudo apt-get install git sudo ssh-keygen cat id_rsa.pub git clone [email protected]:XXX
!
Instalar+Node.js,+NPM+y+Forever+
curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install nodejs ln -s /usr/bin/nodejs /usr/bin/node sudo apt-get install npm sudo apt-get install build-essential sudo npm install forever --g
!
Con!esto,!ya!tenemos!todo!lo!necesario!instalado!en!nuestro!servidor.!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 46!
Ahora!vamos!a!describir!el!proceso!de!instalación!de!una!Raspberry!Pi.!
Lo!primero!es!descargar!el!sistema!operativo!Raspbian!con! los!drivers!de! la!
Piscreen!de!la!página!oficial!del!fabricante,!adafruit.!https://learn.adafruit.com/adafruitH
pitftH28HinchHresistiveHtouchscreenHdisplayHraspberryHpi!
Lo!siguiente!es!instalar!Raspbian!con!los!drivers!de!Piscreen!en!la!SD!desde!
Mac!OSx.!
diskutil list diskutil unmountDisk /dev/<disk# from diskutil> sudo dd bs=1m if=image.img of=/dev/<disk# from diskutil>
! !
! Es!el!momento!de!instalar!los!divers!GPIO!con!la!biblioteca!escrita!en!Python:!
diskutil wget ‘http://downloads.sourceforge.net/project/raspberry-gpio-
python/RPi.GPIO-0.5.11.tar.gz’ tar zxvf RPi.GPIO-0.5.11.tar.gz cd RPi.GPIO-0.5.11 sudo apt-get install python-dev sudo python setup.py install
!
Después!instalamos!el!cliente!en!Python!para!sockets!llamado!socketIOHclient:!
sudo apt-get install python-pip sudo pip install -U socketIO-client
!
Tenemos! que! configurar! el! sistema! operativo! para! que! al! arrancar! inicie!
Chromium!en!modo!kiosco:!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 47!
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install matchbox chromium x11-xserver-utils ttf-
mscorefonts-installer xwit sqlite3 libnss3 sudo reboot
!
Cuando!se!vuelva!a!iniciar,!configuramos!el!autologin:!
sudo nano /etc/inittab En!este!archivo!buscamos!la!línea:!
1:2345:respawn:/sbin/getty!115200!tty1!
y!la!sustituimos!por:!
1:2345:respawn:/bin/login!Hf!pi!tty1!</dev/tty1!>/dev/tty1!2>&1!
Acto!seguido,!añadimos!en!/etc/rc.local!
su -l pi -c startx !
A!continuación,!en!la!home,!creamos!un!archivo!llamado!.xinitrc!y!escribimos:!
#!/bin/sh killall -TERM chromium 2>/dev/null; killall -TERM matchbox-window-manager 2>/dev/null; sleep 2; killall -9 chromium 2>/dev/null; killall -9 matchbox-window-manager 2>/dev/null; xset -dpms xset s off xwit -root -warp $( cat /sys/module/*fb*/parameters/fbwidth ) $( cat
/sys/module/*fb*/parameters/fbheight ) matchbox-window-manager -use_titlebar no -use_cursor no & chromium --app=http://client.carcontrol-
soft.tk/?cr=gh2333&cif=b233344
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 48!
Para!añadirle!un!toque!personalizado,!vamos!a!cambiar!el!splash!del!sistema!
por!le!logo!del!proyecto!(una!imagen!jpg!en!la!home):!
sudo apt-get install fbi sudo mv logotipo.jpg /etc/splash.jpg
!
Creamos!el!archivo!/etc/init.d/asplashscreen!y!escribimos:!
#! /bin/sh do_start () { /usr/bin/fbi -T 1 -noverbose -a /etc/splash.png exit 0 } case "$1" in start|"") do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # No-op ;; status) exit 0 ;; *) echo "Usage: asplashscreen [start|stop]" >&2 exit 3 ;; esac :
!
Por!último,!para!asignarlo!al!inicio!ejecutamos:!
sudo chmod a+x /etc/init.d/asplashscreen sudo insserv /etc/init.d/asplashscreen
! +
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 49!
+
+
+!
APÉNDICE+II.+DESCRIPCIÓN+DE+CONTENIDOS+SUMINISTRADOS.+
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 50!
INTRODUCCIÓN+
En!este!apartado!vamos!a!explicar!de!que!tratan!cada!uno!de!los!contenidos!
suministrados!para!facilitar!su!comprensión.!!
CONTENIDO+SUMINISTRADO+
Se! han! entregará! un! CD! con! las! diferentes! carpetas! y! archivos! que!
describiremos!a!continuación:!
H! Memoria:!Es!el!documento!en!el!que!nos!encontramos.!Es!una!de!las!partes!
clave!para!entender!el!desarrollo!del!proyecto,!el!pensamiento!del!alumno!y!
el!procedimiento!que!este!ha!seguido!a!la!hora!de!realizarlo.!Es!explicado!
paso!a!paso,!con!imágenes,!tablas!y!diagramas!de!referencia!para!que!todo!
sea!mucho!más!visual!y!comprensible.!
H! Codigo!fuente:!Es!la!implementación!del!sistema.!Contiene!cada!una!de!las!
aplicaciones!descritas!y!todo!lo!necesario!para!su!despliegue!en!un!servidor!
(clases,! scripts,! bibliotecas! necesarias,! dependencias! de! paquetes,!
ejecutables,!etc.)!
H! Contenidos!auxiliares:!Es!una!carpeta!que!contiene!todas!las!imágenes!y!
los!diagramas!que!han!sido! incluidos!en! la!memoria.!Debido!al! tamaño!y!
dificulta! de! estos,! es! posible! que! no! se! vean! correctamente! en! este!
documento,!ya!que!se!ha!tenido!que!reducir!el!tamaño!para!su!exposición,!
sin!dejar!de!cumplir!la!normativa!del!formato.!Para!solventar!este!problema!
y!poder!consultarlo!de!forma!cómoda,!se!incluyen!los!originales!a!un!mayor!
tamaño.!
!
!
!
!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 51!
+
+
+
+
APÉNDICE+III.+ACCESO+A+INSTALACIÓN+DE+PRUEBAS.+
!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 52!
Se!ha!realizado!un!despliegue!de!todas!las!aplicaciones!siguiendo!el!manual!
de!instalación!descrito!en!el!apartado!anterior.!Se!ha!utilizado!una!máquina!virtual!en!
Digital!Ocean!con!2Gb!de!ram!2!núcleos!y!40Gb!de!SSD.!Se!ha! instalado!Ubuntu!
15.04! x64! como! sistema! operativo! de! la! máquina.! Además,! se! ha! registrado! un!
dominio!.tk!en!freenom.com.!
Los!datos!de!conexión!para!el!servidor!son!los!indicados!en!la!tabla!AI.1.!
Tipo! Contenido!
Ip! 188.166.64.54!
Apache! 188.166.64.54:80!
Tomcat! 188.166.64.54:8080!
Nodejs! 188.166.64.54:3000!
Tabla'AI.1.!
Para!establecer!una!conexión!con!el!servidor!utilizamos!el!protocolo!Secure!
Shell!(SSH)!utilizando!el!usuario!root!escribiendo!el!siguiente!comando:!
La'contraseña'de'acceso'sera'omitida'por'seguridad.'
'
Se!ha! configurado! el! dominio! carcontrolHsoft.tk! para! acceder! a! la! aplicación!
AdminClient.! Además! se! han! configurado! subdominios! para! el! acceso! al! resto! de!
aplicaciones:!!
H! Para!acceder!a!CoreService:!api.carcontrolHsoft.tk!
H! Para!acceder!a!CoreRealtime:!realtime.carcontrolHsoft.tk!
H! Para!acceder!a!CarClient:!client.carcontrolHsoft.tk!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 53!
Esta!configuración!se!ha!realizado!para!facilitar!el!acceso!a!cada!una!de!las!
aplicaciones!y!no!usar!la!ip,!el!puerto!y!el!contexto!de!cada!aplicación!en!cada!servidor.!
Se! han! creado! datos! de! ejemplo! para! poder! utilizar! las! funcionalidades! sin!
necesidad!de!introducir!datos.!
Se!ha!habilitado!un!usuario!de!pruebas!con!los!siguientes!datos:!
H! Usuario:!“b233344”!
H! Contraseña:!“123456”!(se!ha!omitido!la!comprobación!de!la!contraseña!
para!facilitar!el!acceso)!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 54!
+!
!
!
!
!
!
APÉNDICE+IV.+MANUAL+DE+USUARIO.+
!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 55!
AdminClient+
Al!entrar!en!carcontrolHsoft.tk,!lo!primero!que!tenemos!que!hacer!es!introducir!
nuestros!datos,!usuario!y!contraseña.!Después!pulsamos!en!entrar.!
!
! !
Una!vez!dentro!de!la!aplicación!podemos!ver!el!listado!de!vehículos.!Debemos!
hacer!click!en!la!opcion!de!menú!“vehículos”!y!en!la!opción!“listado!de!vehículos”.!Nos!
aparecerá!una!página!como!la!siguiente:!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 56!
Desde! este! listado,! podemos! seleccionar! un! vehículo! para! consular! su!
información.!Podemos!hacer!click!en!el!simbolo!del!ojo!o!directamente!en!la!fila.!Al!
entrar!a!un!vehículo!veremos!una!página!similar!a:!
!
En!esta!página!podremos!consultar!la!velocidad,!la!posición,!las!ultimas!rutas,!
información!general,! etc.!Además,!podemos!detener!el! vehículo!pulsando!el! boton!
“Bloquear!el!vehículo”.!Al!pulsarlo!nos!aparecerá!un!mesjase:!
!
Al!pulsar!en!sí,!el!vehículo!recibirá!una!señal!para!que!se!detenga.!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 57!
Además! de! estas! funcionalidades,! los! vehículos! se! pueden! crear,! editar! y!
eliminar.! Si! volvemos! al! menu! y! pulsamos! en! “conductores”! y! a! continuación! en!
“listado!de!conductores”!nos!aparecerá!una!página!como!la!siguiente:!
!
Si! hacemos! click! en! cualquiera! de! ellos,! entramos! a! una! página! en! la! que!
podemos!ver!la!información!de!ese!conductor.!
!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 58!
Si!volvemos!al!menú!y!hacemos!click!en!“chat”,!nos!aparecerá!un!listado!de!
vehículos!con!los!que!poder!hablar.!Si!seleccionamos!un!vehículo,!nos!aparecera!un!
chat!como!el!siguiente:!
!
Por!último,!si!volvemos!al!menú,!selecionamos!“Alertas”!y!a!continuación!un!
vehículo,!podremos!ver!las!distintas!alertas!que!se!han!producido!en!un!vehículo.!
!
! !
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 59!
CarClient+
En!cada!vehículo,!se!ha!incrustado!una!aplicación.!Al!encender!el!vehículo,!nos!
aparece!un!reloj.!!
!
Al! tocar! la! pantalla,! nos! aparece! la! página! de! chat.! Podemos! hablar!
directamente!con!nuestra!empresa.!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 60!
En! el! menú! de! la! izquierda! tenemos! la! opción! de! alertas! (simbolo! de! la!
campana),!donde!podremos!ver!cada!una!de!las!alertas!que!se!han!producido!en!el!
vehículo.!
!
Por!último,!podemos!enviar!una!señal!SOS!a!nuestra!empresa.!Simplemente!
tenemos! que! pulsar! sobre! el! botón! SOS! y! nos! aparecerá! un! mensaje! como! el!
siguiente:!
!
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 61!
Si!no!pulsamos!cancelar,!la!alerta!se!enviará!automáticamente.!
Para!volver!al!reloj,!solo!tenemos!que!pulsar!sobre!el!botón!del!reloj!en!el!menú!
o!esperar!20!segundo!sin!tocar!la!pantalla.!
+ +
Raúl!Moya!Reyes! ! CarControlHSoft!
Escuela!Politécnica!Superior!de!Jaén! ! 62!
+