Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Tecnologías para el Desarrollo de Aplicaciones para Dispositivos Móviles. Parte 2 Sesión 4. Proyecto final. Protocolos de comunicación en red. TCP/IP
© 2014-2015 Escuela Politécnica Superior
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Puntos a tratar! • Protocolos de comunicación en red. TCP/IP • TCP/IP • Proyecto final
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
2
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
TCP / IP! • La arquitectura TCP/IP consta de 4 capas o niveles. • Nivel superior (aplicación): programas de usuario. • Nivel inferior (acceso a red): conexión con tecnología de acceso al medio.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
3
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
TCP / IP! • Para la transmisión de información a través de la red se utilizan dos protocolos de transporte diferentes: • TCP: Trasnmission Control Protocol • Orientado a conexión. • Protocolo para el envío fiable de la información. • UDP: User Datagram Protocol • No orientado a conexión. • Protocolo para aplicaciones en tiempo real
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
4
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
TCP! • La estructura de datos creada en TCP se denomina segmento. • El segmento TCP evitará la fragmentación de los datagramas IP. • El segmento tiene una cabecera de 20 bytes (puede extenderse):
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
5
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
UDP! • La estructura de datos creada en UDP se denomina datagrama UDP.
• UDP no realizará ningún control sobre los datos que transporta. • El datagrama UDP sólo tiene 8 bytes de cabecera:
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
6
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Requerimientos de transporte! • Se empleara UDP: • Aplicaciones que exijan rapidez frente a fiabilidad. • Ejemplo: Voz IP, video en tiempo real.
• Se empleará TCP: • Aplicaciones que exijan fiabilidad frente a rapidez. • Ejemplo: Transferencia de ficheros o mensajes de texto.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
7
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Sockets! • Un socket es el punto final de una comunicación bidireccional entre dos programas que intercambian información a través de Internet (socket se traduce literalmente como enchufe). • Un socket se va a identificar por la dirección IP del dispositivo donde está, más un número de puerto. • En Internet se suele asociar a cada aplicación un número de puerto concreto (por ejemplo: 80 para la web, 25 para el correo electrónico, 7 para ECHO…) • Una conexión está determinada por un par de sockets, que son los extremos de la conexión. • Existen dos tipos de sockets: • Socket stream • Socket datagram TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
8
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Socket stream (TCP)! • Los sockets stream ofrecen un servicio orientado a conexión. • Este tipo de socket se basa en el protocolo TCP. • Antes de transmitir hay que establecer una conexión entre los dos sockets. • El servidor está a la escucha y es el cliente quien solicita la conexión.
• Una vez que los dos equipos están conectados, se puede transmitir la información entre las dos máquinas (en ambas direcciones). • El protocolo incorpora de forma transparente al programador la corrección de errores: • Si se detecta que una parte de información no llegó a su destino, ésta será retransmitida.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
9
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Socket datagram (UDP)! • Los sockets datagram ofrecen un servicio no orientado a conexión. • Este tipo de socket se basa en el protocolo UDP. • No es necesario establecer una conexión previa entre los equipos. • La entrega no está garantizada. • Los datos podrán llegar desordenados, duplicados, algo que no se solucionará en el receptor. • Puede requerir un control en nivel de aplicación por parte del programador.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
10
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Sockets / Aplicación! • Por tanto, el programa a desarrollar por el alumno incluirá sockets (Serversocket en el servidor y Socket en el cliente). • El cliente y el servidor se comunicarán con manejadores InputStream y OutputStream (en el caso de sockets stream):
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
11
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Crear una aplicación cliente / servidor para comunicar dos dispositivos móviles para envío de mensajes-archivos o voz: • El alumno puede elegir entre un sistema de comunicación de mensajes o un sistema que simule Voz IP. • En ambos casos, la comunicación se iniciará con sockets stream para tener un control del inicio de la comunicación.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
12
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Crear una aplicación cliente / servidor para comunicar dos dispositivos móviles para envío de mensajes-archivos o voz:#
• Requerimientos mínimos para app de envío de mensajes-archivos: • El servidor únicamente aceptará a un cliente. • Debes ser capaz de poder comunicar un dispositivo con otro y enviar secuencias de texto y al menos un archivo almacenado en tu dispositivo. • Los dos equipos deben ser capaces tanto de leer como de escribir mensajes, así como de enviar y recibir archivos. • Requerimientos mínimos para app de envío de Voz IP: • El servidor únicamente aceptará a un cliente. • Una vez establecida la comunicación mediante sockets stream, tu dispositivo deberá comunicar la voz mediante socket datagram. • Para la codificación de la voz se recomienda emplear el codificador de GSM: RTE-LTP.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
13
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Funcionamiento genérico de las aplicaciones:#
• El servidor únicamente espera, escuchando a través del socket a que un cliente haga una petición. • En el lado del cliente: el cliente conoce el nombre de host de la máquina en la cual el servidor se encuentra ejecutando y el número de puerto en el cual el servidor está conectado. Para realizar una petición de conexión, el cliente intenta encontrar al servidor en la IP y puerto especificado. • Por la parte del cliente, si la conexión es aceptada, un socket se crea de forma satisfactoria y puede usarlo para comunicarse con el servidor • Ahora el cliente y el servidor pueden comunicarse escribiendo o leyendo en o desde sus respectivos sockets.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
14
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Apertura de sockets • Si estamos programando un CLIENTE, el socket se abre de la forma: Socket miCliente; miCliente = new Socket( dstName, dstPort );
donde dstName y dstPort corresponden a la IP y puerto del servidor. Estos datos deben ser mostrados por la pantalla del servidor para que el # cliente pueda conectar con él.
• Si estamos programando un SERVIDOR, el socket se abre de la forma: private ServerSocket serverSocket; # serverSocket = new ServerSocket(ServerPort);
TDADM
donde ServerPort es el número de puerto para aceptar conexiones, # por ejemplo: 6000.
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
15
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Funcionamiento genérico de las aplicaciones:#
• En el lado del servidor: Una vez que se ha creado el objeto ServerSocket, este empezará a escuchar con el fin de que algún cliente se conecte. Esto se realiza mediante la siguiente línea de código:
socket = serverSocket.accept();
• El hilo se bloqueará hasta que un cliente se conecte, devolviendo el socket de conexión (que lo guardamos en el objeto de tipo Socket llamado socket), con el cual podremos comunicarnos con el cliente.
• En el lado del cliente: el cliente conoce el nombre de host de la máquina en la que encuentra el servidor y el número de puerto en el cual el servidor está conectado. Para realizar una petición de conexión, el cliente intenta encontrar al servidor en la IP y puerto especificado.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
16
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Funcionamiento genérico de las aplicaciones:
• Para enviar y recibir información a través de este socket TCP, en el cliente y en el servidor, se deben crear dos objetos: uno del tipo DataOutputStream para el envío de datos y otro del tipo DataInputStream para la recepción de datos.#
• … Y se le debe asignar el stream de salida o de entrada del socket creado anteriormente para comunicarse con el otro terminal, mediante el método getOutputStream() o el método getInputStream(). #
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
17
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • No te olvides de los permisos en Manifest.xml #
#
• Y emplea las clases:
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
18
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Enriquecimientos de la aplicación: • Crear la aplicación cliente/servidor en ambas máquinas, de forma que ninguna tenga privilegios sobre la otra. • Ambos dispositivos estarían en escucha. • El dispositivo móvil que solicite conexión actuaría de cliente y el otro tomaría el rol de servidor. • Incorporar un botón de rechazar conexión. • Permitir la comunicación con más de un cliente (aplicación de datos). • Crear un interfaz de usuario totalmente personalizado y fácil de manejar.
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
19
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Ayuda, aplicaciones de ejemplo: • http://examples.javacodegeeks.com/android/core/socket-core/ android-socket-example/
• https://www.youtube.com/watch?v=ckWG3JXCCzM (como usar el emulador para la programación de los sockets)
• http://android-er.blogspot.com.es/2014/02/android-sercerclientexample-server.html • http://www.pixelstech.net/article/1368328614-Android-socketprogramming-example
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
20
Máster Universitario en Desarrollo de Software para Dispositivos Móviles
Proyecto a desarrollar! • Entrega: • Hasta el viernes 5 de diciembre en el email del profesor
[email protected]. • Mediante un fichero ZIP que contenga el proyecto y la presentación que realizará el alumno / los alumnos en el aula ese mismo día.
• Defensa del proyecto: • Para la correcta evaluación del proyecto el alumno o pareja de alumnos defenderá/n su aplicación explicando las partes más importantes del código. Para ello, empleará/n una presentación multimedia con la que podrá resaltar aquellos puntos que el alumno / los alumnos considere/n más importantes. • La exposición del proyecto durará 15 minutos como máximo (incluido en este tiempo la puesta en marcha de la aplicación y cómo funciona).
TDADM
© 2014-2015 Escuela Politécnica Superior
S7. Características y hardware de los disp. móviles
21