Indice Programacion cliente servidor Arquitectura Cliente-servidor

Slides:



Advertisements
Presentaciones similares
Sistemas operativos Prof. Alberto Rivas.
Advertisements

Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
Internet y tecnologías web
Fernando Alonso Blázquez Formularios en lenguaje HTML 26 de Febrero de 2004.
Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Servidores Web Capítulo 2.
Programación Interactiva Aplicaciones Cliente-Servidor
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
Aplicaciones Cliente-Servidor
INTRODUCCIÓN A JAVA.
Introducción a Programación Concurrente
"java del lado del servidor" Servlet y JSP Java Server Pages.
Servlets Servlets.
EI, Profesor Ramón Castro Liceaga APLICACIONES DE JAVA CON PAGINAS WEB (Applets) UNIVERSIDAD LATINA (UNILA)
Java 2 Platform Enterprise Edition
Almacenamiento virtual de sitios web: «Hosts» virtuales Gustavo Antequera Rodríguez.
QUE ES INTERNET Podríamos decir que Internet está formado por una gran cantidad de ordenadores que pueden intercambiar información entre ellos. Es una.
Formularios en lenguaje HTML 7 de Abril de Índice Generalidades Definición en HTML Elementos Formas de envío: métodos GET y POST Recepción y tratamiento.
Lenguaje de Programación II Manejo de Paquetes Corporación Universitaria del Caribe CECAR.
Desarrollo de aplicaciones web en entorno servidor
Tecnologías para el desarrollo de aplicaciones Web
Ingeniero Anyelo Quintero
Servlets, JSP, JavaBEANS,JDBC
Una java servlet es un programa que se ejecuta en un servidor. Por lo general son aplicaciones Java que corren en un entorno de servidor web. Los Java.
Desarrollo de Aplicaciones Web
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
PHP TODO SOBRE PHP.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
CONTROL REMOTO YESID ERNESTO PERDOMO B
Lenguajes de programación Web
Desarrollo de aplicaciones para ambientes distribuidos
Applets CONTENIDO ¿Que es un applet? Lo básico de un applet Ciclo de vida de un Applet Las etiquetas de HTML Pasando información a los applets.
TEMA 6. Applets y servlets
PROTOCOLO H T T P.
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
“SERVLETS”. Paola Rojas Contreras Juan Villarroel Leiva José Miguel Perez V. Departamento de Electrónica.
Fernando Alonso Nicolás Serrano Servlets con acceso a Bases de Datos 21 de Abril de 2008.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Aplicaciones Web de Servidor
Servlets 10 de Mayo de 2006.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Almacenamiento virtual de sitios web “HOSTS VIRTUALES”
 Un servidor proporciona información a los ordenadores que se conecten a él.  Cuando lo usuarios se conectan a un servidor pueden acceder a programas,
Servidores web. Integrantes: Dany Alexander Orozco. Maycol Gómez Herrera. Luisa Fernanda Moncada.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Cristian Fonnegra Marin
Sun Microsystems. Los servlets son objetos que corren dentro del contexto de un contenedor de servlets y extienden su funcionalidad. También podrían correr.
Almacenamiento virtual de sitios web: «Hosts» virtuales. Jesús Torres Cejudo.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
Ihr Logo PHP Parte 2 “php toma muchas sintaxis de lenguajes de alto nivel conocidos para poder trabajar”
S ERVICIOS DE RED E I NTERNET T EMA 4 : I NSTALACIÓN Y ADMINISTRACIÓN DE SERVICIOS W EB Nombre: Adrián de la Torre López.
File Transfer Protocol.
Almacenamiento virtual de sitios web: «Hosts» virtuales
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
Servidores. ¿Qué es un servidor? Servidor de Aplicación Servidor de impresión Servidor de base de datos Servidor de correo Servidor de Internet Servidor.
SEGURIDAD EN SERVIDORES WEB (APACHE).
API JDBC Java Database Connectivity. Conceptos básicos API de Conectividad a Bases de Datos Emplea SQL Standard Ventaja: los programas desarrollados en.
Autentificación y Seguridad en Aplicaciones Web.  Delegadas en el cliente y el servidor ◦ Basados en estándares de Internet  Autentificación Básica.
Conociendo el modelo Cliente-Servidor
Temario Java 2 Enterprise Edition Arquitectura Especificación Servlets Contenedores Cookies Sesiones.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Introducción En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor.
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
Asignaturas: Informática/Electiva I. Definición de Sistema operativo Conceptos Básicos Funciones de los Sistemas Operativos Clasificación Componentes.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Transcripción de la presentación:

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

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 Comunicaciones - Java

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 Comunicaciones - Java

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 Comunicaciones - Java

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 Comunicaciones - Java

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 Comunicaciones - Java

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 Comunicaciones - Java

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 Comunicaciones - Java

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 Comunicaciones - Java

¿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 Comunicaciones - Java

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 Comunicaciones - Java

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” Comunicaciones - Java

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. Comunicaciones - Java

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. Comunicaciones - Java

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. Comunicaciones - Java

Servlets Servidor Web Equipo cliente 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 Servidor Web Equipo cliente Peticion HTTP Explorador Servlet Respuesta HTTP Comunicaciones - Java

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 Comunicaciones - Java

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 Comunicaciones - Java

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 <html> <head> <title>Ejemplo "Mi Primer Servlet"</title> </head> <body> <form action=http://servidor:8080/servlet/MiPrimerServlet method=POST> <BR> <BR>Introduzca un texto en el cuadro y pulse "Submit"<BR> <input type=text name=TEXTO> <BR><input type=submit><input type=reset></form> </body> </html> Comunicaciones - Java

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("<p>Usted ha escrito : "+TEXTO+"</p>"); } Comunicaciones - Java

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. Comunicaciones - Java

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. Comunicaciones - Java

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. Comunicaciones - Java

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. Comunicaciones - Java

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 Comunicaciones - Java