1 / 26

Tecnologías para el desarrollo de aplicaciones Web

Tecnologías para el desarrollo de aplicaciones Web. Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno. Contenido. Arquitecturas Cliente/Servidor Protocolo HTTP CGI Applets Servlets JSP Otros lenguajes. El Modelo Cliente/Servidor.

neila
Télécharger la présentation

Tecnologías para el desarrollo de aplicaciones Web

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tecnologías para el desarrollo de aplicaciones Web Bárbara Espinoza Luis Useche Edwin Guilbert Ezequiel Zamora Jean Carlos Meninno

  2. Contenido • Arquitecturas Cliente/Servidor • Protocolo HTTP • CGI • Applets • Servlets • JSP • Otros lenguajes

  3. 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

  4. El Modelo Cliente/Servidor

  5. Arquitecturas Cliente/Servidor Verticales Mucha responsabilidad del cliente. Servidor muy cargado.

  6. Arquitecturas Cliente/Servidor Horizontales

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

  8. 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

  9. 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

  10. CGI

  11. Ventajas 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 CGI

  12. 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

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

  14. 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

  15. Funcionamiento de un HTTP Servlet

  16. Atención de peticiones con HTTP Servlets y Ciclo de Vida

  17. ¿Problemas para sincronizar hilos? • Primitivas de sincronización de Java • Implementando el SingleThreadModel

  18. Ventajas 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 Servlets

  19. 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.

  20. 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"/>

  21. 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.

  22. Ventajas 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 JSP

  23. 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.

  24. 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.

  25. ¡Muchas Gracias! Sesión de Preguntas

  26. 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.

More Related