martes, 17 de octubre de 2017

Reporte visita INEGI

Reporte visita

El pasado viernes 13 de 2017 realizamos una visita escolar a el Instituto Nacional de Geografía y Estadística, con sede en la ciudad de Aguascalientes.

Salimos de la escuela el jueves 12 a las 11:00pm para llegar por la mañana del día siguiente. Arribamos a un lado del inmueble, autorizaron nuestra entrada, nos colocaron los gafetes de visitantes y empezó dicha visita guiada.

Primero nos llevaron a una habitación en la que se crean mapas con relieve, calentando una lámina de plástico con el mapa impreso y dándole el relieve con un molde debajo. Nos obsequiaron un mapa de la República Mexicana, con el relieve de las montañas, montes, valles, llanuras y el del océano.

Proseguimos a una exposición de seguridad web. Desafortunadamente, los expositores no estaban preparados y se notaba un cierto nerviosismo, por lo que dicha exposición no fue para nada atractiva, pero no menos importante por los temas de los que hablaron.

Tras un breve receso  tuvimos una exposición en la que un experimentado trabajador de la institución nos explicó cómo era todo lo relacionado a la informática en INEGI, tales como las herramientas de programación, las tecnologías, los procesos y algunos consejos para los que tenemos en mente trabajar en este ámbito.

Al salir del salón de usos múltiples nos llevaron hacia el edificio de informática, en donde nos mostraron, detrás de una ventana, los servidores que la institución empleaba para las enormes cantidades de información que aquí se procesa, ademas de una breve explicación de la beta de la nueva página web del INEGI y de un mapa interactivo.

Aquí concluyó la visita a la institución, devolvimos los gafetes y regresamos al camión. Comimos en un establecimientos a unos minutos de aquel lugar y partimos el viaje de regreso a la escuela.

domingo, 8 de octubre de 2017

Sockets

Hoy en día, gracias al desarrollo de la tecnología se ha podido crear métodos de comunicación cada vez más sofisticados y accesibles. Uno de los métodos más utilizados son los protocolos TCP/IP  y en menor medida UDP. Estos protocolos de comunicación han permitido que el envío y recibo de información sea mucho más rápida y eficiente que los pasados métodos, ahora obsoletos. Tanto el protocolo TCP, como el UDP tienen una característica en común, el uso de sockets.


Un socket de red es un punto de inicio o final del flujo de la información entre dos procesos regularmente desde dos computadores distintos. Estos tienen dos diferentes usos de acuerdo a su función; puede ser un socket de cliente, que busca al otro tipo de socket, el de servidor para establecer una conexión y así, permitir el flujo de la información.
Su implementación en JAVA incluye la biblioteca Java.net que proporciona tanto los sockets TCP como UDP.


Para el protocolo TCP existen dos clases: la clase Socket, la cual implementa los sockets de cliente y la ServerSocket, que implementa los sockets de servidor. Por su parte, el protocolo UDP cuenta con las clases DatagramPacket, la clase que representa un paquete datagrama y DatagramSocket, clase representa un socket para enviar y recibir paquetes datagrama.

El siguiente es un ejemplo sencillo de la implementación de sockets y crear una conexión  mediante el protocolo TCP:

public class Conexion { private final int PUERTO = 1234; //Puerto para la conexión private final String HOST = "localhost"; //Host para la conexión protected String mensajeServidor; //Mensajes entrantes (recibidos) en el servidor protected ServerSocket ss; //Socket del servidor protected Socket cs; //Socket del cliente protected DataOutputStream salidaServidor, salidaCliente; public Conexion(String tipo) throws IOException //Constructor { if(tipo.equalsIgnoreCase("servidor")) { ss = new ServerSocket(PUERTO) cs = new Socket(); } else { cs = new Socket(HOST, PUERTO); } } }
--------------------------------------------------------------------------------------------------------------------------
Para crear una clase para el servidor se implementa el siguiente código:

public class Servidor extends Conexion { public Servidor() throws IOException{super("servidor");} public void startServer()//Método para iniciar el servidor { try { System.out.println("Esperando..."); cs = ss.accept(); System.out.println("Cliente en línea"); salidaCliente = new DataOutputStream(cs.getOutputStream()); salidaCliente.writeUTF("Petición recibida y aceptada"); BufferedReader entrada = new BufferedReader(new InputStreamReader(cs.getInputStream())); while((mensajeServidor = entrada.readLine()) != null) { //Se muestra por pantalla el mensaje recibido System.out.println(mensajeServidor); } System.out.println("Fin de la conexión"); ss.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } }

Así es como se crea una conexión simple mediante sockets con el protocolo TCP.