Tecnología de Programación
Diego C. Martínez
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Escenario cliente‐servidor
El escenario de trabajo web es el del modelo cliente‐servidor.
El modelo cliente‐servidor describe la relación entre
un cliente, un proceso corriendo en un sistema que requiere un servicio, y
un servidor un proceso corriendo en un sistema que provee un servicio
un servidor, un proceso corriendo en un sistema, que provee un servicio.
provee
Servidor
requiere
Cliente
Las computadoras son ilustrativas!
Un sistema puede alojar más de un servidor o cliente
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Servidores y clientes
El programa servidor espera pasivamente por los pedidos de los clientes.
Al recibir un pedido, realiza las computaciones necesarias y retorna el resultado.
En muchas aplicaciones el servidor puede atender a varios clientes
simultáneamente. Tal el caso de los servidores Web.
simultáneamente. Tal el caso de los servidores Web.
El programa cliente envía un pedido al servidor
Para ello debe conocer al servidor y comprender
su servicio y forma de comunicación (protocolo).
p
y
La comunicación entre el cliente y el servidor puede presentarse de varias formas:
Una aplicación cliente interactúa con un sólo servidor
p
Una aplicación es cliente de un servicio y luego se vuelve cliente de otro servicio
Un servidor que provee un servicio puede volverse cliente de otro.
servidor
Servidor 1
Servidor 2
servidor
servidor
cliente
cliente
cliente
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Servidores y clientes
El programa cliente debe conocer al servidor y comprender su servicio.
El programa cliente debe conocer al servidor y comprender su servicio.
Centrémonos en el escenario de Internet y la Web.
Dado que el cliente debe conocer el alojamiento del programa servidor
¿ ó
¿cómo identifica al servidor entre todas las computadoras de Internet?
t?
Número IP o el nombre de dominio equivalente: “el nombre de la máquina”
id tifi
d I t
t d
id
l
t
t d
l
Dado que una computadora tiene usualmente un solo canal de comunicación con la red, y
que puede ofrecer más de un servicio... ¿cómo se identifica cada servicio?
Número de port: “el punto de acceso al servidor”
Por ejemplo,
p ,
j
cs.uns.edu.ar:80
cs.uns.edu.ar:3306
cs.uns.edu.ar:3306
servidor web del Departamento
servidor MySQL del Departamento
servidor MySQL del Departamento
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Internet
Internet define una forma de conexión de redes heterogéneas
Internet define una forma de conexión de redes heterogéneas.
abcdef
abcdef
Los usos de esta conexión son variados y cada uno determina a
su vez diferentes protocolos de comunicación
su vez, diferentes protocolos de comunicación.
Entre ellos:
envío y recepción de mensajes (SMTP)
envío y recepción de archivos (FTP)
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Web
World Wide Web
Tim Berners-Lee
los documentos
están escritos
están escritos
en hipertexto
(HTML)
El protocolo de
comunicación es HTTP
Navegadores
En 1994 Berners‐Lee funda el World Wide Web Consortium (W3C) en el MIT, con
apoyo de DARPA.
La idea central era asegurar la compatibilidad por medio de la definición de estándares,
denominados W3C Recommendations.
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
HTTP es el protocolo de red para la Web.
HTTP
“Hypertext Transfer Protocol”
protocolo de aplicación para la
entrega de documentos variados
protocolo de comunicación
define
tipo estr
t ra de los mensajes
tipo y estructura de los mensajes
las reglas del diálogo
“recursos”
ubicables por medio del URL.
HTTP request
HTTP response
Cliente HTTP
(browser)
(
)
Servidor HTTP
(web server)
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Servidores web
El servidor web actúa como una interfaz entre un conjunto de recursos y los clientes.
Típicamente, los recursos se encuentran todos ubicados en un directorio o carpeta
específica, denominado document root o docroot.
Proceso Servidor Web
Filesystem
Servidor HTTP
(web server)
(web server)
Usualmente denominado también
Usualmente denominado también
htdocs
public_html
www
webroot
webaps
Para solicitar un recurso del servidor,
es necesario mencionar
el host y
el camino hacia el recurso
No necesariamente el camino físico:
http://unhost.com/~john/index.html
puede ser
/home/users/john/web/index.html
en el servidor unhost.com
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Servidores web
El esquema de trabajo de un servidor web es el siguiente:
q
j
g
ibi
1. aceptar conexión
t
2. recibir request
2
3. procesar request
4. acceder al recurso
5. construir la respuesta
6. enviar la respuesta
7. registrar transacción
Proceso Servidor Web
(3)
(2)
(6)
(6)
(5)
(4)
(7)
Cliente HTTP
(browser)
(1)
Stack TCP/IP
Interfaz de Red
Filesystem
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Requests ‐ responses
GET /path/file.html HTTP/1.0
From:
[email protected]
User-Agent: SuperBrowser/1.0
[CRLF]
[CRLF]
Cliente HTTP
Servidor HTTP
HTTP/1 0 200 OK
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59
GMT
Content-Type: text/html
Content-Length: 1354
<html>
<body>...</body>
</html>
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Métodos HTTP
Obtiene un documento del servidor.
El mensaje no tiene cuerpo.
Envía datos al servidor para el procesamiento.
Los datos se especifican en el cuerpo del mensaje
Los datos se especifican en el cuerpo del mensaje.
Solicita solo los encabezados de un documento.
El mensaje no tiene cuerpo.
p
j
Almacena el cuerpo del request en el servidor, bajo el nombre
indicado como URL.
Hace un rastreo del mensaje al servidor. El mensaje no tiene cuerpo
GET
POST
HEAD
PUT
TRACE
OPTIONS
Determina qué métodos pueden operar en un servidor.
El mensaje no tiene cuerpo
DELETE
DELETE
Remueve un documento del servidor El mensaje no tiene cuerpo
Remueve un documento del servidor. El mensaje no tiene cuerpo
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Java
Java es un lenguaje de programación orientado a objetos,
creado en 1990 por Sun Microsystems.
Su escenario de trabajo es mayoritariamente el de las aplicaciones
distribuídas y la programación en red.
Sus premisas iniciales son:
Uso de la metodología OO
Ejecutar un mismo programa en diferentes SO
S
Soporte para redes de computadoras
Diseñado para ejecutar código remotamente con seguridad
Fácil de usar
d
d
d
Programas Java:
Applets : se ejecutan en browsers, incrustados en páginas web.
Applications : se ejecutan directamente sobre la Java Virtual Machine.
Applications : se ejecutan directamente sobre la Java Virtual Machine.
Servlets: se ejecutan en un servidor que posee un Contenedor Web.
Midlets: se ejecutan en la JVM para dispositivos móviles.
Cada cual posee una estructura particular con ciertos métodos específicos
Cada cual posee una estructura particular, con ciertos métodos específicos.
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Java 2 Platform
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Servlets
Los servlets son extensiones a la funcionalidad de un servidor, como un servidor Web.
Los servlets son extensiones a la funcionalidad de un servidor, como un servidor Web.
Son módulos de código Java corriendo en un servidor de aplicaciones.
Si bien no necesariamente están asociados a un protocolo particular, suelen
)
usarse bajo HTTP (Servlets HTTP)
(
Un servlet está mapeado a uno o más URLs, y cuando el servidor recibe un pedido
(request) un método especial en el servlet es invocado y responde a ese pedido.
Al estar escrito en Java, puede recibir todos los beneficios del JAVA API y los
elementos mencionados anteriormente para J2EE como JDBC y EJB
elementos mencionados anteriormente para J2EE, como JDBC y EJB.
Además es portable y altamente reusable.
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Servlet Containers
Los servlets se alojan e interactúan con un contenedor web (Web Container).
Servlet Containers no comerciales:
Apache Tomcat Enhydra Java Mini Daemon Jetty Winstone
Apache Tomcat, Enhydra, Java Mini Daemon, Jetty, Winstone
Servlet Containers comerciales
BEA WebLogic Server or Weblogic Express
BEA WebLogic Server or Weblogic Express
Borland Enterprise Server
Caucho Resin Server
IBM's WebSphere
iPlanet Sun/Netscape
Sun Java System Web Server
Oracle Application Server
Commercial Open Source Servlet Containers
JBoss
Departamento de Ciencias e Ingeniería de la Computación ‐ Universidad Nacional del Sur
Apache Tomcat
Servlets
Un servlet es una instancia de una clase que implementa la interfaz
javax.servlet.Servlet.
La mayoría de los servlet en realidad extienden la funcionalidad de
implementaciones estándar de servlets: javax.servlet.GenericServlet y
javax.servlet.http.HttpServlet
j
Ciclo de vida:
1. El servlet se inicializa ante el primer pedido (init)
2. El servlet atiende pedidos y genera respuestas (service). Esto puede
hil
d
ió
l
provocar la creación de diferentes hilos de ejecución.
j
3. El servlet es destruido del servidor (destroy).
ió d dif
Es fácil ver que un servlet es básicamente la implementación de un servidor en
Es fácil ver que un servlet es básicamente la implementación de un servidor en
Java!
Departamento de Ciencias e Ingeniería de la Computación ‐ Un
Comentarios de: Tecnología de Programación (0)
No hay comentarios