La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción Arquitectura Cliente-Servidor Evolución Networking Socket en Java.

Presentaciones similares


Presentación del tema: "Introducción Arquitectura Cliente-Servidor Evolución Networking Socket en Java."— Transcripción de la presentación:

1

2 Introducción Arquitectura Cliente-Servidor Evolución Networking Socket en Java

3 Objetivos Networking: Crear aplicaciones distribuidas Comunicar o interoperar aplicaciones por redes conocidas (LAN, Internet, etc.)

4 Es una c ombinación de sistemas que pueden colaborar entre si para dar a los usuarios toda la información que ellos necesiten sin que tengan que saber donde esta ubicada. Es una arquitectura de procesamientos cooperativo donde uno de los componentes pide servicios a otro.

5

6 Se aprovecha la potencia de cómputo de las estaciones de trabajo Se ubica el procesamiento cerca de las fuentes de trabajo reduciendo tráfico y tiempo de respuesta Facilita la gestión de cambios de software Alienta la aceptación de sistemas abiertos. Libera a los usuarios de las arquitecturas propietarias

7 El servidor puede convertirse en cuello de botella Costo elevado Software y hardware específico

8 Modelo de sistemas y/o de aplicaciones, en el cual las funciones y los datos pueden estar distribuidos a través de múltiples recursos de cómputo, conectados en un ambiente de redes LAN o WAN.

9 Sockets Punto de comunicación por el cual un proceso puede enviar o recibir información Canal de comunicación bidireccional Comunicación por TCP/IP Requieren del conocimiento por parte del cliente de la máquina y puerto donde está el servidor. La comunicación cliente/servidor debe implementar un protocolo tratado en tiempo de programación

10 CORBA (Common Object Request Broker Architecture) Un producto de la O.M.G. (Object Management Group) Un entorno para la ejecución de P.O.O. Distribuido. Esta especificación debe ser implementada para los distintos lenguajes de programación

11 RMI (Remote Method Invocation) Es un API standard para construir sistemas distribuidos en Java 100 % Java Permite que programas residentes en una computadora, realicen llamadas a metodos sobre objetos existentes en otras.

12 Web Services Especificación para interoperar sistemas informáticos Estándar SOAP sobre HTTP Adoptado por.NET, JAVA, etc. Ideal para Internet

13 Direccionar la conexión: La ubicación o nombre de la máquina remota Número del Puerto para identificar el propósito en el servidor Números de Puertos: Rango desde 0 a 65535

14

15 Servidor Boolean stop= false; SockeServer ss= new SocketServer(PortNumber); while (!stop){ Socket s = ss.accept(); DataInputStream input = new DataInputStream(s.getInputStream()); DataOutputStream output =output = new DataOutputStream(s.getOutputStream()); …… }

16 Cliente Socket s; try { s = new Socket(ServerAddress,PortNumber); DataOutputStream output = new DataOutputStream( s.getOutputStream()); DataInputStream input = new DataInputStream(s.getInputStream()); ……… s.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

17 import java.io.*; import java.net.*; class Cliente { static final String HOST = "localhost"; static final int PUERTO=5000; public Cliente( ) { try{ Socket skCliente = new Socket( HOST, Puerto ); InputStream aux = skCliente.getInputStream(); DataInputStream flujo = new DataInputStream( aux ); System.out.println( flujo.readUTF() ); skCliente.close(); } catch( Exception e ) { System.out.println( e.getMessage() ); }} public static void main( String[] arg ) { new Cliente(); }}

18 En primer lugar se crea el socket denominado skCliente, al que se le especifican el nombre de host (HOST) y el número de puerto (PORT) en este ejemplo constantes. Luego se asocia el flujo de datos de dicho socket (obtenido mediante getInputStream)), que es asociado a un flujo (flujo) DataInputStream de lectura secuencial.

19 De dicho flujo capturamos una cadena ( readUTF() ), y la imprimimos por pantalla (System.out). El socket se cierra, una vez finalizadas las operaciones, mediante el método close(). Debe observarse que se realiza una gestión de excepción para capturar los posibles fallos tanto de los flujos de datos como del socket.

20 El programa servidor se instala en un puerto determinado, a la espera de conexiones, a las que tratará mediante un segundo socket. Cada vez que se presenta un cliente, le saluda con una frase "Hola cliente N". Este servidor sólo atenderá hasta tres clientes, y después finalizará su ejecución, pero es habitual utilizar bucles infinitos ( while(true) ) en los servidores, para que atiendan llamadas continuamente.

21 Utiliza un objeto de la clase ServerSocket (skServidor), que sirve para esperar las conexiones en un puerto determinado (PUERTO), y un objeto de la clase Socket (skCliente) que sirve para gestionar una conexión con cada cliente. Mediante un bucle for y la variable numCli se restringe el número de clientes a tres, con lo que cada vez que en el puerto de este servidor aparezca un cliente, se atiende y se incrementa el contador.

22 Para atender a los clientes se utiliza laccept() de la clase ServerSocket, que es una rutina que crea un nuevo Socket (skCliente) para atender a un cliente que se ha conectado a ese servidor. Se asocia al socket creado (skCliente) un flujo (flujo) de salida DataOutputStream de escritura secuencial, en el que se escribe el mensaje a enviar al cliente.

23 Introducción Arquitectura Cliente-Servidor Evolución Networking RMI-CORBA Web Services Sockets en Java

24 The Java Tutorial OMG Examples from Java Network Programming /index.html Java 109 : Networking with Java Ecured ervidor


Descargar ppt "Introducción Arquitectura Cliente-Servidor Evolución Networking Socket en Java."

Presentaciones similares


Anuncios Google