![Page 1: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/1.jpg)
Tecnologías para el desarrollo de aplicaciones Web
Bárbara EspinozaLuis UsecheEdwin GuilbertEzequiel ZamoraJean Carlos Meninno
![Page 2: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/2.jpg)
Contenido
Arquitecturas Cliente/Servidor Protocolo HTTP CGI Applets Servlets JSP Otros lenguajes
![Page 3: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/3.jpg)
El Modelo Cliente/Servidor Dividido en 3 capas fundamentales
Interfaz de usuario: recibe las peticiones del usuario y generalmente está ubicada del lado del cliente
Procesamiento: cómputo y procesamiento lógico de la petición del cliente
Datos: engloba todos los datos, generalmente consta de una base de datos
![Page 4: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/4.jpg)
El Modelo Cliente/Servidor
![Page 5: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/5.jpg)
Arquitecturas Cliente/Servidor Verticales
Servidor muy cargado.
Mucha responsabilidad del cliente.
![Page 6: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/6.jpg)
Arquitecturas Cliente/Servidor Horizontales
![Page 7: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/7.jpg)
HTTP Hypertext Transfer Protocol Opera al nivel de aplicación OSI sobre TCP Usado en Internet desde 1990 Funcionamiento:
Luego de resolver el nombre del servidor, el cliente inicia una conexión TCP a la dirección del servidor (usualmente puerto 80)
Al establecerse la conexión el cliente envía la petición HTTP y espera por la respuesta
El servidor recibe la petición, genera la respuesta, la envía al cliente y cierra la conexión
![Page 8: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/8.jpg)
Características HTTP La versión actualmente utilizada es la 1.1:
Protocolo sin estado Utiliza tipos de archivo al estilo MIME
(Multipurpose Internet Mail Extensions) Permite Virtual Hosts: Varios servidores
operando en un mismo host. Ejm: http://forums.example.com http://webmail.example.com
Las peticiones más comunes de HTTP son las GET y POST
![Page 9: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/9.jpg)
CGI – Common Gateway Interface Estándar para correr programas externos a un servidor
HTTP Fue la primera tecnología de generación de contenido Web
dinámico Los programas se escriben en cualquier lenguaje que acepte
argumentos de línea de comandos (preferiblemente interpretado)
Por cada petición se crea un nuevo proceso en el sistema: se consume tiempo y espacio en memoria
Las respuestas se envían por la salida estándar (incluyendo HTML, encabezados HTTP, etc.)
Algunos servidores como Apache incluyen módulos para optimizar los CGI: FastCGI: crea una piscina de procesos para atender peticiones Mod Perl: el interpretador de Perl se incluye como parte del
servidor
![Page 10: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/10.jpg)
CGI
![Page 11: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/11.jpg)
CGIVentajas Flexibilidad en el uso
de lenguajes Fácil acceso a
aplicaciones existentes (gnuplot, nmap, ping, etc)
No hay problemas de sincronización ni exclusión mutua entre peticiones de un mismo programa CGI
Desventajas La responsabilidad del
diseño gráfico recae en el programador
Poco escalable, a menos que se utilice alguna optimización.
Overhead por la continua creación de nuevos procesos
![Page 12: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/12.jpg)
Applet Aplicación que corre a nivel del cliente, en
el contexto del navegador del usuario Permite crear interacción sin necesidad de
realizar comunicación con el servidor y en consecuencia disminuir la carga del servidor
Es necesario trasladar al cliente el código ejecutable, ocasionando retardos
Requiere soporte por parte del navegador
![Page 13: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/13.jpg)
HTTP Servlets A diferencia de los applets, que corren en los
navegadores, los HTTP Servlets corren en los servidores
Son la respuesta de la tecnología Java a la programación con CGI
Permiten a los clientes http interactuar con aplicaciones y bases de datos
A diferencia de los CGI, cada petición es manejada por un nuevo hilo java, en vez de un proceso del sistema operativo
Lucen como programas en Java, de hecho son clases de Java
Proveen librerías y funcionalidades para el cómodo manejo del protocolo HTTP
![Page 14: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/14.jpg)
Funciones de un HTTP Servlet
Leer los datos enviados por el cliente Leer los datos implícitos del HTTP
request enviado por el browser (HTTP Info)
Generar los resultados Enviar los datos al cliente Enviar los datos implícitos del HTTP
response
![Page 15: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/15.jpg)
Funcionamiento de un HTTP Servlet
![Page 16: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/16.jpg)
Atención de peticiones con HTTP Servlets y Ciclo de Vida
![Page 17: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/17.jpg)
¿Problemas para sincronizar hilos?
Primitivas de sincronización de Java Implementando el SingleThreadModel
![Page 18: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/18.jpg)
ServletsVentajas Eficientes en
comparación con los CGI (hilo vs. proceso)
Conveniente en el manejo del protocolo HTTP
Muy portables Seguro al correr en el
contexto de una máquina virtual Java
Desventajas Requiere compilación
luego de cada modificación
Requiere un servidor Web con soporte para servlets
Al igual que los CGI no separa la interfaz de la lógica de aplicación
Se debe ser cuidadoso con la sincronización de los hilos
![Page 19: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/19.jpg)
JSP: JavaServer Pages Tecnología que permite incluir código java y
directivas predefinidas junto con en el contenido estático (HTML/XML)
Implementada sobre servlets: lo que se puede hacer con JSP se puede hacer con servlets
Incluye directivas para el manejo de errores/excepciones
Permite indicar si el código desarrollado no es a prueba de hilos y en consecuencia utilizar el SingleThreadModel.
![Page 20: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/20.jpg)
JSP: JavaServer Pages Permite incluir
encabezados HTTP en cualquier parte del código gracias a un preprocesador
Permite crear etiquetas personalizadas (estilo HTML) y manipular ciertas clases (java beans) mediante etiquetas particulares.
<jsp:setProperty name=“clase” property=“atributo” value=“valor"/>
![Page 21: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/21.jpg)
Ciclo de Vida de las páginas JSP Se recibe un request de una página JSP. Un servlet especial chequea si el JSP ha
sido modificado luego de su última traducción a servlet.
En caso de modificación traduce la página JSP a un servlet y la compila.
Luego se sigue el ciclo de vida de los servlets.
Cabe destacar que una ventaja de las páginas JSP sobre los servlets es que son compiladas automáticamente.
![Page 22: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/22.jpg)
JSPVentajas Permite la separación
de la capa de presentación con la lógica de aplicación.
Separación de roles en el equipo desarrollador.
Buen Desempeño. Ventajas de Java.
Desventajas En ocasiones es
preferible utilizar directamente servlets para optimizar código
Se requiere un servidor con soporte para JSP/Servlets
![Page 23: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/23.jpg)
Otros lenguajes ASP
Utililiza VBScript o JScript entre otros. Dependiente de plataforma (Microsoft IIS)
Server Side JavaScript Corre sobre servidor Netscape
PHP Código Abierto Corre sobre los principales sistemas de operación Sintaxis estilo C Interpretado y dinámicamente tipado Realiza menos verificaciones que Java Buen soporte para acceso a bases de datos Muy popular su uso junto con Apache y MySQL Criticado por ser poco elegante.
![Page 24: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/24.jpg)
Conclusiones Para cada caso puede resultar conveniente el uso de
una tecnología distinta, dependiendo de las necesidades de desempeño, escalabilidad, facilidad de desarrollo y seguridad
Existen actualmente optimizaciones para el uso de CGI y estos pueden resultar muy adecuados. (Ejm: llamadas a aplicaciones existentes)
Por lo general resulta ventajosa la separación de la interfaz de la lógica de aplicación, por lo que se prefieren lenguajes como JSP y PHP.
En el caso de JSP es importante conocer Servlets para comprender mejor su funcionamiento.
En ocasiones se mezcla JSP y Servlets para mejorar desempeño.
Los applets pueden ser útiles para proveer una interfaz interactiva, no viable con HTML puro.
![Page 25: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/25.jpg)
¡Muchas Gracias!
Sesión de Preguntas
![Page 26: Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno](https://reader035.vdocumento.com/reader035/viewer/2022062500/5665b42a1a28abb57c8fb67b/html5/thumbnails/26.jpg)
Referencias Bibliográficas Core Servlets and JavaServer Pages. Sun
Microsystems, 2001. More Servlets and JavaServer Pages. Sun
Microsystems, 2002. Java Servlet Programming. O’Reilly, 1998 Web Development with JavaServer Pages, Manning,
2000. CGI Programming. O’Reilly, 1996. Teach Yourself Java in 21 days. Sams.net, 1996. www.thefreedictionary.com Internet Protocols Handbook. The Coriolis Group,
1996.