Tiempo: 2h Introducción a las Aplicaciones Web Departamento de Lenguajes y Sistemas Informá Informáticos Grupo de Ingenierí Ingeniería del Software Versión original: Amador Durán y David Benavides (octubre 2005) Última revisión: Amador Durán Toro (octubre 2006); cambio de plantilla y pequeños cambios. escuela técnica superior de ingeniería informática Octubre 2006 [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Introducció Introducción a las Aplicaciones Web • ARPANet Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Un poco de historia 2. ¿Qué Qué es una aplicació aplicación web? web? 3. Arquitectura de aplicaciones web 4. Procesamiento en aplicaciones web 5. Servicios web – Advanced Research Projects Agency (DoD), guerra fría, amenaza nuclear (1950-1990); conmutación de paquetes frente a conmutación de circuitos. – TCP/IP, dirección IP de 32 bits (1983); IPv6 (128 bits); servidores DNS (Domain Name System). – El concepto de puerto TCP (http Æ 80, ftp Æ 20-21, …). • La Web – HTML, HTTP, navegador: Tim Berners-Lee, CERN de Ginebra (Suiza, alrededor de 1989). – URL protocolo://servidor:puerto/recurso – Navegador Mosaic: NCSA de la Universidad de Illinois en Urbana-Champaign (1993). – Boom de Internet (1998 Æ …) – Lenguajes de la Web: • SGML, HTML, XML, XHTML, … Sevilla, octubre de 2006 Grupo de Ingeniería del Software Lectura recomendada: wikipedia internet 1 1 [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Introducció Introducción a las Aplicaciones Web • Definició Definición Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Un poco de historia 2. ¿Qué Qué es una aplicació aplicación web? web? 3. Arquitectura de aplicaciones web 4. Procesamiento en aplicaciones web 5. Servicios web – Una aplicación web es una aplicación informática distribuida cuya interfaz de usuario es accesible desde un cliente web, normalmente un navegador web (funcionando en un PC, un teléfono móvil, una PDA, …). • Caracterí Características habituales – Comunicación mediante HTTP sobre TCP/IP. – Procesamiento en servidor. – Acceso a bases de datos. – Arquitectura por capas. – Distintos tipos de usuarios. 2 Introducció Introducción a las Aplicaciones Web • Definició Definición Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Un poco de historia 2. ¿Qué Qué es una aplicació aplicación web? web? – La arquitectura de una aplicación define como se organizan los distintos módulos que la componen. – Las aplicaciones web se suelen organizar en tres niveles: presentación, lógica de negocio y datos. 5. Servicios web HTTP HTTP TCP/IP TCP/IP Cliente web Datos Datos 4. Procesamiento en aplicaciones web Lógica de de Negocio Negocio Lógica 3. Arquitectura de aplicaciones web Presentació ón Presentaci Presentación [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Sevilla, octubre de 2006 Grupo de Ingeniería del Software SGBD SGBD Aplicació Aplicación web Sevilla, octubre de 2006 Grupo de Ingeniería del Software 3 2 • Niveles de una aplicació aplicación web 2. ¿Qué Qué es una aplicació aplicación web? web? 3. Arquitectura de aplicaciones web 4. Procesamiento en aplicaciones web 5. Servicios web – El nivel de lógica de negocio es responsable de implementar la lógica de la aplicación como respuesta a las peticiones de usuario, normalmente accediendo al nivel de datos. – El nivel de datos es responsable de proporcionar acceso a los datos al nivel de lógica de negocio, normalmente accediendo a un sistema de gestión de bases de datos. 11 Cliente web 88 22 77 33 44 Datos Datos 1. Un poco de historia – El nivel de presentació presentación es responsable de generar la interfaz de usuario con la información proporcionada por el nivel de lógica de negocio Lógica de Negocio Lógica de Negocio Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos Presentació ón Presentaci Presentación [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Introducció Introducción a las Aplicaciones Web 66 SGBD SGBD 5 [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Sevilla, octubre de 2006 Grupo de Ingeniería del Software 4 Introducció Introducción a las Aplicaciones Web • Procesamiento en el SGBD Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Un poco de historia 2. ¿Qué Qué es una aplicació aplicación web? web? 3. Arquitectura de aplicaciones web 4. Procesamiento en aplicaciones web 5. Servicios web – Integridad referencial. – Procedimientos almacenados. – Disparadores. • Procesamiento en el servidor web – CGI (C, Perl, …). – Lenguajes de script (ASP, PHP, JSP, ColdFusion). – Servlets (Java). • Procesamiento en el cliente web – JavaScript. – Applets (Java). – ActiveX (Microsoft). – Flash (Macromedia). Sevilla, octubre de 2006 Grupo de Ingeniería del Software 5 3 [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Introducció Introducción a las Aplicaciones Web • El concepto de servicio web Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Un poco de historia 2. ¿Qué Qué es una aplicació aplicación web? web? – Un servicio web ofrece una interfaz de programació programación (no de usuario) de una determinada funcionalidad (servicio) accesible a través de Internet y basada en estándares W3C. 3. Arquitectura de aplicaciones web 4. Procesamiento en aplicaciones web 5. Servicios web HTTP HTTP SOAP SOAP XML XML 6 Introducció Introducción a las Aplicaciones Web • El concepto de servicio web Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 3. Arquitectura de aplicaciones web 4. Procesamiento en aplicaciones web XXM MLL L ML XXM Internet Internet SO AP 5. Servicios web AP SO 2. ¿Qué Qué es una aplicació aplicación web? web? HTTP HTTP L ML XXM SO AP 1. Un poco de historia SO AP [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Sevilla, octubre de 2006 Grupo de Ingeniería del Software XXM MLL BabelFish Sevilla, octubre de 2006 Grupo de Ingeniería del Software 7 4