Indice - PowerPoint PPT Presentation

About This Presentation
Title:

Indice

Description:

Indice Programacion cliente servidor Arquitectura Cliente-servidor Definicion de socket Ejemplo C/S Servlets Ejemplo Servlets Arquitectura C/S de 3 capas – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 26
Provided by: intras24
Category:

less

Transcript and Presenter's Notes

Title: Indice


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

2
JavaProgramació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
ProgramaciónCliente-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
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
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
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
Arquitectura Cliente-ServidorVentajas
  • 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
Arquitectura Cliente-ServidorVentajas (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
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
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
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
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.getOutputStre
    am())
  • Abre un canal de entrada el el socket
  • is new DataInputStream(echoSocket.getInputStream
    ())
  • Abre un canal de salida el el socket

13
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
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
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
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

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

lthtmlgt ltheadgt lttitlegtEjemplo "Mi
Primer Servlet"lt/titlegt lt/headgt
ltbodygt ltform actionhttp//servidor8080/se
rvlet/MiPrimerServlet methodPOSTgt ltBRgt
ltBRgtIntroduzca un texto en el cuadro y pulse
"Submit"ltBRgt ltBRgt ltinput typetext
nameTEXTOgt ltBRgt ltBRgtltinput
typesubmitgtltinput typeresetgtlt/formgt
lt/bodygt lt/htmlgt
20
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.getOut
putStream()) res.setContentType("text/h
tml") String TEXTO
req.getParameter("TEXTO")
out.println("ltpgtUsted ha escrito
"TEXTO"lt/pgt")
21
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
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
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
Arquitectura Cliente-Servidorde 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
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
Write a Comment
User Comments (0)
About PowerShow.com