PDF de programación - Tecnología de Programación

Imágen de pdf Tecnología de Programación

Tecnología de Programacióngráfica de visualizaciones

Publicado el 29 de Marzo del 2018
318 visualizaciones desde el 29 de Marzo del 2018
1,5 MB
26 paginas
Creado hace 3a (19/11/2016)
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: homer@snpp.com
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



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
  • Links de descarga
http://lwp-l.com/pdf9963

Comentarios de: Tecnología de Programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad