La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Comunicaciones - Java1 Indice Programacion cliente servidor Arquitectura Cliente-servidor Definicion de socket Ejemplo C/S Servlets Ejemplo Servlets Arquitectura.

Presentaciones similares


Presentación del tema: "Comunicaciones - Java1 Indice Programacion cliente servidor Arquitectura Cliente-servidor Definicion de socket Ejemplo C/S Servlets Ejemplo Servlets Arquitectura."— Transcripción de la presentación:

1 Comunicaciones - Java1 Indice Programacion cliente servidor Arquitectura Cliente-servidor Definicion de socket Ejemplo C/S Servlets Ejemplo Servlets Arquitectura C/S de 3 capas

2 Comunicaciones - Java2 Java Programación Cliente-Servidor Internet es un sistema Cliente-Servidor gigante La idea primaria es que debe haber un sitio donde descargar la información bajo demanda de los clientes Aquí surge el problema de Internet, cuando hay un solo servidor que atiende a muchos clientes, si se produce un cambio que deba distribuir, El rendimiento general del sistema decrece exponencial al aumento del número de clientes

3 Comunicaciones - Java3 Programación Cliente-Servidor(II) El funcionamiento del Web sigue este mismo principio El navegador fue el primer paso adelante en la expansión de Internet, permite visualizar un mismo fichero en plataformas diferentes Por contra la interactividad con el usuario, y la posibilidad de ejecutar programas en la parte del usuario, esta muy limitada Se proporcionó al lenguaje HTML de botones de entrada de datos, cajas de selección, etc, pero cuando habían muchos clientes colgando, el colapso del servidor era casi seguro Surgen otras alternativas como los CGI, para descargar al servidor y que el cliente tambien hiciese algo

4 Comunicaciones - Java4 El Modelo Cliente - Servidor Arquitectura de sistema distribuido - Clientes: que dan acceso a usuarios a los servicios - Servidores: contienen informaci ó n, servicios,... Cliente y Servidor son roles en una aplicaci ó n - Una m á quina puede ser cliente en un servicio y servidor en otro Muy extendido en programaci ó n distribuida - Utilizando el interfaz de sockets

5 Comunicaciones - Java5 Arquitectura Cliente-Servidor Aplicaciones modulares, distribuidas y personalizadas. Java permite la extensión más potente de servidores de aplicaciones ¿Cómo?. Cuando se accede a un applet de otro ordenador, el navegador carga la clase principal y va cargando dinámicamente el resto de clases a medida que son necesarias Si alguna clase ya reside en la memoria local, no debera cargarla, incrementa el rendimiento

6 Comunicaciones - Java6 Arquitectura Cliente-Servidor(II) Gracias a su rigurosa concepción de orientación a objetos, es muy fácil programar aplicaciones modulares Las funciones que deben ser accedidas por un usuario pueden programarse con applets Basta instalar los distintos módulos de la aplicación, en un único servidor Los usuarios acceden a las aplicaciones a través de su navegador, personalizarlos y tener interfaces familiares El uso del web en los últimos años perite reducir en forma considerable el proceso de aprendizaje y formación en la aplicación

7 Comunicaciones - Java7 Arquitectura Cliente-Servidor Ventajas Una aplicación de biblioteca se liberaría de la preocupación de instalar las aplicaciones localmente y de actualizar sucesivas versiones Los applets se distribuyen fácilmente por la www, las dificultades de trafico en una red no afectan la funcionalidad de estos, pues ocupan un tamaño no más de 10 o 20 Kb según aplicación. Como se dijo antes no es necesario cargar los applets enteros, y La facilidad de distribución tiene otra ventaja, como es el coste de la aplicación en cuanto a actualizaciones y la de asegurar que todos los clientes tienen la misma versión software

8 Comunicaciones - Java8 Arquitectura Cliente-Servidor Ventajas (II) La independencia de Java con respecto a la plataforma permite que las aplicaciones, funcionen igual en todos los ordenadores El usuario sólo cargará la utilidad específica de la aplicación que necesite Toda la arquitectura que acabamos de explicar hace pensar que tan solo se necesita en el ordenador un navegador sin tener que usar ningún S.O. o configuración hardware preferente

9 Comunicaciones - Java9 Thin clients (Clientes delgados) A esta arquitectura se le conoce como thin clients en contra de los fat clients (Clientes gruesos) que utilizan la mayor parte de aplicaciones de gestión Los fat clients necesitan trabajar con un S.O determinado, cantidad de Ram, capacidad de disco, etc.. En esta nueva arquitectura, es más fácil optimizar las presentaciones, ya que los thin clients requieren estaciones menos potentes

10 Comunicaciones - Java10 ¿Qué es un socket? Un socket es un punto final en un enlace de comunicaci ó n de dos v í as entre dos programas que se ejecutan en la red. Las clases Socket son utilizadas para representar conexiones entre un programa cliente y otro programa servidor. El paquete java.net proporciona dos clases -- Socket y ServerSocket -- que implementan los lados del cliente y del servidor de una conexi ó n, respectivamente

11 Comunicaciones - Java11 Ejemplo de cliente en Java El programa EchoTest, conecta con el Echo del servidor(en el port7)mediante un socket. El cliente lee y escribe a través del socket Echotest envía todo el texto tecleado en su entrada estandar al Echo del servidor, El servidor repite todos los caracteres recibidos en su entrada desde el cliente de vuelta a través del socket al cliente

12 Comunicaciones - Java12 Ejemplo de cliente en Java (II) Se esteblece la conexi ó n del socket entre el cliente y el servidor y abre un canal de entrada y un canal de salida sobre el socket (Se crea el objeto socket) echoSocket = new Socket( slabii", 7); os = new DataOutputStream(echoSocket.getOutputStream()); Abre un canal de entrada el el socket is = new DataInputStream(echoSocket.getInputStream()); Abre un canal de salida el el socket

13 Comunicaciones - Java13 Ejemplo de cliente en Java (III) El codigo que sigue lee desde el stream de entrada estandar de EchoTest(donde el usuario teclea). Escribe inmediatamente la entada seguida por un carácter de nueva línea en el stream de salida conectado al socket. String userInput; while ((userInput = stdIn.readLine()) != null) { os.writeBytes(userInput); os.writeByte('\n'); System.out.println("echo: " + is.readLine());} La última línea del bucle while lee una línea de información desde el stream de entrada conectado al socket. El método readLine() se bloquea hasta que el servidor haya devuelto la información a EchoTest. Cuando readline() retorna, EchoTest imprime la información en la salida estandard.

14 Comunicaciones - Java14 Ejemplo de cliente en Java (IV) Cuando el usuario teclea un car á cter de fin de entrada, el bucle while termina y el programa contin ú a ejecutando las siguientes l í neas de c ó digo: os.close(); is.close(); echoSocket.close(); Estas tres l í neas de c ó digo cierran las streams de entrada y salida conectados al socket, y cierra la conexi ó n del socket con el servidor. El orden es importante -- debe cerrar los streams conectados a un socket antes de cerrar é ste.

15 Comunicaciones - Java15 Ejemplo de cliente en Java (V) Cuando los clientes hablen con servidores m á s complicados como un servidor http, el cliente tambi é n ser á m á s complicado. Si embargo, las cosas b á sicas son las que has visto en este programa: 1. Abrir un socket. 2. Abrir un stream de entrada y otro de salida hacia el socket. 3. Leer y escribir a trav é s del socket de acuerdo al protocolo del servidor. 4. Cerrar los Streams. 5. Cerrar el socket. S ó lo el paso 3 ser á diferente de un cliente a otro, dependiendo del servidor.Los otros pasos permanecen inalterables.

16 Comunicaciones - Java16 Servlets Programa en JAVA que se ejecuta en el marco de un servicio de red, como por ejemplo un servidor web, y que recibe y responde a las peticiones de un cliente. Los clientes pueden invocarlo utilizando el protocolo HTTP Equipo cliente Servidor Web ExploradorServlet Peticion HTTP Respuesta HTTP

17 Comunicaciones - Java17 Servlets (II) Caracteristicas Puede comunicarse con otro sevlet para ayudarle en su trabajo, o bien facilitar el acceso a bases de datos Son seguros y portables debido a que se ejecutan bajo la máquina virtual de Java, al mecanismo de excepciones y al uso del administrador de seguridad de java. Java proporciona el soporte necesario para escribir servlets a través del paquete javax.servlet Son independientes de la plataforma Son más rápidos que los programas CGI y que los scrips

18 Comunicaciones - Java18 Servlets. Ejemplo Un ejemplo sencillo consisté en una página HTML que contiene un campo de entrada con los correspondientes botones de Submit y Reset A pulsar sobre el bot ó n Submit se producir á la ejecuci ó n del Servlet en el servidor, procesar á la informaci ó n recibida, y mostrar á como resultado una p á gina HTML con el texto introducido con anterioridad

19 Comunicaciones - Java19 Servlets. Ejemplo (II) El codigo html sería muy sencillo sólo destacar que en el action del form, indica la acción a desencadenar en el servidor al pulsar el botón Submit Ejemplo "Mi Primer Servlet" Introduzca un texto en el cuadro y pulse "Submit"

20 Comunicaciones - Java20 Servlets. Ejemplo (III) C ó digo Servlet. Destacar principalmente la utilizaci ó n de los paquetes javax.servlet.* y javax.servlet.http.*, y la cl á usula extends que define el programa como una extension de HttpServlet. El fichero que contiene el Servlet lo llamaremos MiPrimerServlet.java. // MiPrimerServlet.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class MiPrimerServlet extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { PrintStream out = new PrintStream(res.getOutputStream()); res.setContentType("text/html"); String TEXTO = req.getParameter("TEXTO"); out.println(" Usted ha escrito : "+TEXTO+" "); }

21 Comunicaciones - Java21 El ciclo de vida 1) Cuando el servidor carga el Servlet (solo lo carga ante la primera petici ó n, despu é s ya no hace falta), invoca el m é todo init. Todas las peticiones que lleguen antes de que este m é todo finalice su ejecuci ó n, habr á n de esperar para ser atendidas. 2) Una vez finalizada la ejecuci ó n del m é todo init, todas las peticiones son atendidas por el m é todo service. Normalmente el servidor puede manejar varias peticiones simult á neamente y asigna un hilo propio a cada petici ó n. 3) Cuando el servidor quiere descargar el Servlet invoca el m é todo destroy.

22 Comunicaciones - Java22 El API de los Servlets El API utilizado para la programaci ó n de Servlets incluye dos paquetes El paquete javax.servlet, define la interfaz Servlet y su implementaci ó n GenericServlet. Es esta la interfaz que define los m é todos del Ciclo de Vida. Tambi é n destacan las interfaces ServletRequest y ServletResponse, que definen la mec á nica de las peticiones y las respuestas. El paquete javax.servlet.http, que es una especializaci ó n del paquete anterior para su utilizaci ó n con el protocolo http. Este paquete define la clase HttpServlet que es una extensi ó n de GenericServlet. Asimismo incluye las interfaces HttpServletRequest y HttpServletResponse, que son extensiones de ServletRequest y ServletResponse respectivamente.

23 Comunicaciones - Java23 Servlets & JDBC La clave del é xito de las mejores p á ginas Web, reside en la presentaci ó n de la informaci ó n, de forma interactiva, pr á ctica y atractiva. La interactividad en la presentaci ó n de la informaci ó n, se basa en la consulta de bases de datos por parte de un software, que hace de intermediario entre el cliente y el sistema que almacena la informaci ó n. A las aplicaciones cliente-servidor que utilizan este tipo de arquitectura, se las denomina aplicaciones de tres capas.

24 Comunicaciones - Java24 Arquitectura Cliente-Servidor de tres capas En una aplicaci ó n cliente-servidor de tres capas, el software intermediario hace de puente entre la parte cliente y el servidor de base de datos que posee la informaci ó n Por un lado tendr í amos una maquina en la que un browser ejecuta un Applet ó muestra un formulario HTML. Por el otro tendr í amos una m á quina servidora, en la que un software servidor de Web, recibe las peticiones de los clientes, y desencadena la ejecuci ó n del Servlet. Este Servlet trabajar í a con una base de datos alojada en otro servidor dedicado en exclusiva a esta funci ó n.

25 Comunicaciones - Java25 JDBC JDBC son las siglas de Java Database Connection, y se trata de una API JAVA que proporciona una interfaz similar a ODBC para trabajar con bases de datos SQL. JDBC se basa en el X/Open SQL CLI, al igual que el ODBC de Microsoft JDBC no es un lenguaje de interrogaci ó n, sino que simplemente es una interfaz basada en JAVA para trabajar con SQL. Las aplicaciones pueden utilizar JDBC, por ejemplo, para someter sentencias SQL a un sistema gestor de bases de datos. JDBC se encarga de gestionar aspectos tales como conexiones a bases de datos, recuperaci ó n de resultados de las interrogaciones, transacciones, conversiones de tipos SQL a tipos JAVA y viceversa


Descargar ppt "Comunicaciones - Java1 Indice Programacion cliente servidor Arquitectura Cliente-servidor Definicion de socket Ejemplo C/S Servlets Ejemplo Servlets Arquitectura."

Presentaciones similares


Anuncios Google