Tecnologías para el Desarrollo de Aplicaciones para Dispositivos
Transcripción
Tecnologías para el Desarrollo de Aplicaciones para Dispositivos
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 # <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> # • 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