INGENIERA DE TELECOMUNICACIN
2011/2012
Rafael Martos Llavero Y dirigido por el tutor: Juan Jos Ramos Muoz
Realizado por el alumno: Ha resuelto asignarle la calicacin de: SOBRESALIENTE (9 - 10 puntos) NOTABLE (7 - 8.9 puntos) APROBADO (5 - 6.9 puntos) SUSPENSO
Con la nota:
puntos.
El Presidente:
El Secretario:
El Vocal:
Granada, a
de
de 2012.
REALIZADO POR:
DIRIGIDO POR:
DEPARTAMENTO:
iii
Palabras Clave
Vdeo vigilancia, servidores distribuidos,
streaming
Resumen
En nuestros das vivimos bajo innidad de ojos que cuidan de nuestros negocios, de la gente que utiliza servicios pblicos, de la guardera de nuestros hijos y/o hijas, etc. El desarrollo de redes IP sobre las que se fundamenta la vdeo vigilancia actual permite pensar en multitud de funcionalidades innovadoras para la interconexin de sedes y puntos remotos. Adems, la proliferacin de necesidades relacionadas con gestin remota de alarmas, unicacin de servicios de vdeo, voz y datos, etc. obligan en gran parte al uso de tecnologas IP que den solucin a todo tipo de retos. Bla, bla, bla ... No pasarse de una cara
Key Words
Video surveillance, distributed servers, streaming video, IP networks, Android devices, data encryption, PTZ, camera control
Abstract
Today we live under numerous "eyes" who care for our businesses, for people who use public services, day care of our children and / or daughters, etc. The early development of IP networks that are based on currently existing video surveillance suggests a multitude of innovative features to interconnect oces and remote locations. In addition, the proliferation of remote management needs related to alarm, unied video services, voice and data, etc.. largely require the use of IP technologies that provide solutions to all kinds of challenges. Blah, blah, blah ...
vii
D. Juan Jos Ramoz Muoz, profesor del Departamento de Teora de la Seal, Telemtica y Comunicaciones de la Universidad de Granada, como director del Proyecto Fin de Carrera de D. Rafael Martos Llavero
Ha sido realizado y redactado por el mencionado alumno bajo mi direccin, y con esta fecha autorizo a su presentacin.
Granada, a
de
de 2012.
ix
Los abajo rmantes autorizan a que la presente copia de Proyecto Fin de Carrera se ubique en la Biblioteca del Centro y/o departamento para ser libremente consultada por las personas que lo deseen.
Granada, a
de
de 2012.
xi
Agradecimientos
En primer lugar quisiera agradecer a todos aquellos que estis utilizando la plantilla y que me enviis comentarios ya sea para sugerir mejoras o para agradecrmelo. :) Tambin al equipo de BorrowBITs por el gran trabajo que estn haciendo y por dejarme ser parte de ellos. Bla, Bla, Bla ...
xiii
xiv
ndice general
1. Introduccin
1.1. Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1. 1.1.2. 1.1.3. 1.2. 1.3. La importancia de la vdeo vigilancia . . . . . . . . . . . . . . Seguridad emocional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1 1 1 2 2 2
3
3 3 4 4 4 4 4 4 4
Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Caractersticas
Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.
3. Especicacin de requisitos
3.1. 3.2. Requisitos funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . Requisitos de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. 3.2.2. 3.3. 3.4.
5
5 6 6 6 6 7 7 7
Streaming
Ms cosas
de vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xv
9
9 9 9 9 10 10 10 10 10 10 11 11 11 11 11
Hardware Software .
Fase de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1. 4.2.2. 4.2.3. 4.2.4. 4.2.5. 4.2.6. WP1: Revisin del estado del arte . . . . . . . . . . . . . . . . WP2: Especicacin de requisitos . . . . . . . . . . . . . . . . WP3: Diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WP4: Implementacin
. . . . . . . . . . . . . . . . . . . . . .
4.3.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.
Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Diseo
5.1. Diseo de la arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1. 5.1.2. 5.2. Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
13 13 13 13 14 14 15 15
Diseo de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1. Mdulos del servidor . . . . . . . . . . . . . . . . . . . . . . . 5.2.1.1. 5.2.1.2. 5.2.2. Clase Clase
servidorVVD masClases()
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6. Implementacin
6.1. Servidor 6.1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Servidor HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1.1. Tarea
17
17 17 19
otroEjemplo .
. . . . . . . . . . . . . . . . . .
7. Evaluacin
7.1. Topologa 1: Descubrimiento de una cmara no operativa . . . . . . . 7.1.1. 7.1.2. 7.1.3. Escenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21 21 21 22
xvi
NDICE GENERAL
7.1.4. 7.2. Trco generado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 23 23 23 23 23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
8. Conclusiones
8.1. 8.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lneas de trabajo futuras . . . . . . . . . . . . . . . . . . . . . . . . .
25
25 25
27
27 27 27 27 28 29
31
31 31
Referencias
33
xvii
NDICE GENERAL
xviii
ndice de guras
2.1. 3.1. 4.1. 5.1. 6.1. TeleEye iView para Android.[5] Diagrama de contexto. . . . . . . . . . . . . . . . . . . . . . 3 5 10 14
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagrama de Gantt, con la planicacin temporal del proyecto[7]. Relacin entre mdulos del servidor.
. . . . . . . . . . . . . . . . . .
7.1.
Topologa 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1. Interfaz de control del servidor VVD. . . . . . . . . . . . . . . . . . . A.2. Ventana para aadir un nuevo servidor. . . . . . . . . . . . . . . . . . B.1. Men Android VVD conectado. . . . . . . . . . . . . . . . . . . . . .
xix
NDICE DE FIGURAS
xx
ndice de cuadros
3.1. 4.1. 4.2. 7.1. Parmetros de vdeo aconsejados por Android Developers [8]. . . . . . Coste temporal del proyecto. . . . . . . . . . . . . . . . . . . . . . . . Presupuesto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologa 1. Listas de los servidores al inicio. . . . . . . . . . . . . . . 6 11 12 22
xxi
NDICE DE CUADROS
xxii
ndice de algoritmos
6.1. 6.2. 6.3. Constructor Contexto
HttpServidor /listaCamaras
. . . . . .
18 18 20
. . . . . . . . . . . . . . . . . . . . . . . .
Layout
de la la de la lista:
filalayout.xml.
. . . . . . . . . . . . .
xxiii
NDICE DE ALGORITMOS
xxiv
Captulo 1 Introduccin
1.1. Contexto
1. INTRODUCCIN
1.2.
Motivacin
Como ya se ha apuntado en la Seccin 1.1, los sistemas de vdeo vigilancia sirven para una gran cantidad de propsitos. En el mbito de las empresas, bancos, instituciones pblicas, aeropuertos, grandes eventos con aglomeraciones de personas, etc. Bla, Bla, Bla.
1.3.
El principal objetivo del presente proyecto es el diseo e implementacin de un sistema Bla, Bla, Bla
2.1.
TeleEye iView
The TeleEye Group ha desarrollado un sistema de vdeo vigilancia para mviles iOS y Android que permite el control y visualizacin remota de videocmaras instaladas en hogares o en ocinas desde cualquier parte del mundo[4].
2.1.1. Caractersticas
TeleEye iView est desarrollado siguiendo Bla, Bla, Bla... y puede realizar PTZ.
2.1.2. Ventajas
El cliente est disponible para un amplio nmero de dispositivos diseados tanto para Android como para iOS. Transmisin de vdeo sobre Wi-Fi, HSDPA, 3G, EDGE o GPRS.
2.1.3. Desventajas
Es necesario un
hardware
TeleEye Mobile Monitoring Solution (M-303), por lo tanto, no es gratuito. En el cliente slo es posible visualizar una de las cmaras Bla, Bla, Bla
streaming
2.2.
Otro Ejemplo
2.2.1. Caractersticas
Bla, Bla, Bla
2.2.2. Ventajas
Bla, Bla, Bla
2.2.3. Desventajas
Bla, Bla, Bla
2.3.
3.1.
Requisitos funcionales
Un requisito funcional dene el comportamiento interno del software: Bla, Bla, Bla
3. ESPECIFICACIN DE REQUISITOS
3.2. Requisitos de los datos
3.2.1.
Streaming de vdeo
El cliente, una vez que haya seleccionado una cmara Bla, Bla, Bla. Los parmetros de vdeo aconsejados por Android Developers son:
HD
H.264 1280 x 720
pxeles
pxeles
pxeles
12 fps 56 Kbps
30 fps 2 Mbps
3.2.2. Ms cosas
Bla, bla, bla Elemento nmero uno. Elemento nmero dos.
3.3.
Requisitos no funcionales
Un requisito no funcional o atributo de calidad es un requisito que especica criterios que pueden usarse para juzgar la operacin de un sistema en lugar de sus comportamientos especcos, ya que stos corresponden a los requisitos funcionales. Por tanto, se reeren a todos los requisitos que ni describen informacin a guardar, ni funciones a realizar.
Software y compatibilidad
En la implementacin del servidor se usar el bla,bla,bla.
Gestin de fallos
bla,bla,bla.
Extensibilidad
bla,bla,bla.
Seguridad
bla,bla,bla.
Portabilidad
bla,bla,bla.
Concurrencia
bla,bla,bla.
3.4.
Requisitos de la interfaz
Tanto para el servidor como para el cliente, se proporcionar una interfaz grca para bla,bla,bla.
3. ESPECIFICACIN DE REQUISITOS
4.1.1. Humanos
D. Juan Jos Ramos Muoz, profesor del Departamento de Teora de la Seal, Telemtica y Comunicaciones de la Universidad de Granada, en calidad de tutor del proyecto. Rafael Martos Llavero, alumno de la Escuela Tcnica Superior de Ingenieras Informtica y de Telecomunicacin de la Universidad de Granada, autor del proyecto.
4.1.2.
Hardware
con sistema operativo
Ordenador personal.
Tablet
bla,bla,bla.
Android
2.3
Gingerbread.
4.1.3.
Software
Windows 7.
bla,bla,bla.
La distribucin temporal de los seis paquetes de trabajo puede verse en el diagrama de Gantt de la Figura 4.1. A continuacin se proceder a enumerar los paquetes junto con las tareas que los componen:
10
Duracin (das)
X X X X X X X
TOTAL
4.3.
Estimacin de costes
4.3.2. Herramientas
Se han empleado para el diseo del proyecto herramientas gratuitas siempre que ha sido posible para minimizar el coste del proyecto. Bla, bla,bla.
4.4.
Presupuesto
11
Concepto
Recursos humanos
1 desarrollador x X das x 8 h/da x 20
Herramientas
1 ordenador personal x X Tablet de 7 pulgadas Sistema operativo Entorno de desarrollo
Cantidad
X X X X 0 0 0
/h
Software
complementario y libreras
TOTAL
Paquetes de omtica
X
Cuadro 4.2: Presupuesto.
12
Captulo 5 Diseo
A continuacin, se establecer el diseo de la aplicacin en dos pasos: en primer lugar y con un mayor nivel de abstraccin, se proceder al diseo de la arquitectura de forma que quede denido el comportamiento global del sistema; en segundo lugar, se profundizar en su estructura a travs de los diagramas de clases en el apartado de diseo de los datos.
5.1.
Diseo de la arquitectura
Tal y como se ha especicado en el Captulo 3, la arquitectura escogida es de tipo cliente-servidor. La herramienta constar de Bla,bla,bla.
5.1.1. Servidor
Como se puede verse en Bla,bla,bla.
5.1.2. Cliente
El cliente, por su parte, consta de Bla,bla,bla.
5.2.
Se dividir entre la aplicacin del servidor y la del cliente, deniendo los mdulos (clases de Java o
Activities[1]
13
5. DISEO
ServidorVVD otroMas
standalone, para
Bla,bla,bla.
muchosMas
Bla,bla,bla.
Constructores
constructor()
Bla,bla,bla. Bla,bla,bla.
constructor(muchosArgumentos)
14
Constructores
Bla,bla,bla.
Mtodos
Bla,bla,bla.
15
5. DISEO
16
Captulo 6 Implementacin
El presente captulo tiene por objetivo detallar las soluciones adoptadas a la hora de acometer la implementacin del sistema planteado en el captulo anterior. Los puntos principales a tratar son dos: la implementacin del servidor y del cliente, detallando aquellos aspectos fundamentales.
6.1.
Servidor
17
7 8 9 10 11 12 13 14 15 16 17
public HttpServidor ( int puerto ){ this . puerto = puerto ; try { server = HttpServer . create ( new InetSocketAddress ( this . puerto ) , 0) ; } catch ( BindException be ){ JOptionPane . showMessageDialog ( null , " El puerto : "+ puerto +" est ocupado por otra aplicacin .\ r \n Cambie su valor en el archivo de configuracin \" config . txt \" en la siguiente linea : \ r\n # Puerto ( Esta linea es un comentario opcional ) \n puerto = Valor_Del_Puerto \n" , " Error al abrir el puerto " + puerto , 0) ; } catch ( IOException e ) { e. printStackTrace () ; } try { InetAddress address = InetAddress . getLocalHost () ; ... } catch ( UnknownHostException e) { e. printStackTrace () ; } server . start () ; }
static class ListaCamarasHandler implements HttpHandler { public void handle ( HttpExchange t ) throws IOException { InputStream is ; OutputStream os ; String response = ""; String camaras [] = new String [100]; is =t. getRequestBody () ; ... int i =0; if ( camaras [i ]!= null ){ response = camaras [ i ]; i ++; } else { response = " null "; } while ( camaras [i ]!= null ){ response = response + " ;" + camaras [i ]; i ++; } ... } }
Para servir la lista de servidores a los clientes que la soliciten, se realizar siguiendo el formato siguiente:
18
maras.txt.
2. Se conecta a la cmara solicitndole su informacin de conguracin.
listaCa-
3. Si la cmara se encuentra disponible, se dibuja en la interfaz grca de la lista de cmaras una luz verde, y se actualiza el contenido del archivo
IPcamara.txt.
19
6. IMPLEMENTACIN
4. En caso de que la cmara no est operativa, se dibuja un icono rojo y no se altera el contenido del archivo
IPcamara.txt.
5. Se conecta a la siguiente cmara y se repite el proceso hasta llegar al nal del archivo
listaCamaras.txt.
de la la de la lista:
filalayout.xml.
<? xml version = " 1.0 " encoding =" utf -8 "?> < LinearLayout xmlns : android =" http :// schemas . android . com / apk / res / android " android : id ="@ + id / filaLayout " android : layout_width =" wrap_content " android : layout_height =" wrap_content " android : orientation =" horizontal " > < ImageView android : id ="@ + id / icono " android : layout_width =" 32 dp " android : layout_height =" 32 dp " android : layout_marginLeft ="4 dp " android : layout_marginRight =" 10 dp " android : layout_marginTop ="4 dp " android : scaleType =" fitCenter " android : src =" @drawable / cisco " > </ ImageView > < TextView android : id ="@ + id / label " android : layout_width =" wrap_content " android : layout_height =" wrap_content " android : text = "@+ id / label " android : textScaleX = " 1.2 " android : gravity =" center_vertical " android : layout_gravity =" center_vertical " > </ TextView > </ LinearLayout >
20
Captulo 7 Evaluacin
En este captulo se procede a la evaluacin del proyecto llevado a cabo. Se realizar el estudio sobre tres escenarios en los que se simulan los casos ms comunes. En primer lugar se denen los escenarios empleados para la realizacin de las pruebas, los pasos que realizan los servidor durante su funcionamiento y cmo quedan sus datos tras la ejecucin. Se analizar en cada apartado los Bla,bla,bla.
7.1.
7.1.1. Escenario
Se establece una red en el rango 192.168.1.0/24. Existen dos servidores: Servidor A con la IP 192.168.1.35:8004 y Servidor B con la IP 192.168.1.100:8006; los puertos de escuchan han sido congurados en los respectivos archivos de conguracin de cada servidor. Hay un dispositivo Android que actuar como cliente con la IP 192.168.1.10, y dos cmaras Cisco WVC210 con las IP: 192.168.1.34 y 192.198.1.33 (vase Figura 7.1).
7.1.2. Funcionamiento
El tiempo entre actualizaciones se ha establecido en 30 segundos en ambos servidores. Las listas de los servidores al iniciarse se encuentran con los datos reejados en la tabla 7.1.
21
7. EVALUACIN
Cmaras
-
Servidor A
Servidores
Cmaras
Servidor B
Servidores
-
Servidor B
Cmara 1 Cmara 2
El Servidor B y las cmaras se encuentra en funcionamiento. Al iniciar el Servidor A se generan los siguientes mensajes de
log :
[11/09/2012 11:22:01.493] SERVER:# INFO: Servidor VVD iniciado. [11/09/2012 11:22:01.524] SERVER:# INFO: Temporizador Actualizaciones Automticas = 0.5 minutos.
Anuncia que se ha iniciado el servidor e informa del tiempo entre actualizaciones.
[11/09/2012 11:22:02.553] SERVER:# INICIO: Actualizacin lista de servidores. [11/09/2012 11:22:03.240] SERVER:# FIN: Actualizacion lista de servidores.
Bla,bla,bla.
22
7.2.1. Escenario
Bla,bla,bla.
7.2.2. Funcionamiento
Bla,bla,bla.
23
7. EVALUACIN
24
Captulo 8 Conclusiones
8.1. Resultados
8.2.
25
8. CONCLUSIONES
26
Bla,bla,bla.
A.2.
Documentacin
Bla,bla,bla.
hostname = camaraVVD description = WVC210 WirelessPTZ Video Camera defname = camaraVVD ...
27
Nombre del
host.
description
Descripcin.
Bla,bla,bla.
A.3.
Uso
Dentro del grupo de botones de control que abre una ventana para
aadir servidor,
introducir el nombre, IP y puerto del nuevo servidor de la lista, tal y como puede verse en la Figura A.2.
28
A.3 Uso
29
30
El cliente de VVD: Vdeo Vigilancia Distribuida es una aplicacin diseada para Android. Tiene las siguientes Bla,bla,bla.
B.2.
Uso
Para ejecutar el cliente hay que pulsar sobre el icono Android VVD creado en Bla,bla,bla. La interfaz puede verse en la Figura B.1. Los botones bla,bla,bla.
Otro Apartado Ms
Bla,bla,bla
31
32
Referencias
[1] ANDROID
ACTIVITY.
Ventanas
de
una
aplicacin
android.
http://developer.android.com/reference/android/app/Activity.html.
[2] Android. Sistema operativo. [3] Seguridad
http://www.android.com/about/.
Denicin y ejemplos.
emocional.
http://ebookbrowse.com/ticmania-cha-21-videovigilancia-pdf-d252554299.
[4] The TeleEye Group. Teleeye iview hd. [5] Imagen TeleEye iView.
http://www.teleeye.com.
http://dd6xle2n4vut.cloudfront.net/com.teleeye.gViewFull3.png. http://www.lyx.org/.
para generar diagramas de gantt.
Herramienta
http://www.ganttproject.biz/.
[8] Video
Encoding Recommendations.
Android
developers.
http://developer.android.com/guide/appendix/media-formats.html.
[9] ANDROID
SDK.
Software
developement
kit.
http://developer.android.com/sdk/index.html.
33