Download Programación web
Document related concepts
no text concepts found
Transcript
Programación web © Copyright 2001-2003 Víctor ROBLES FORCADA vrobles@fi.upm.es http://laurel.datsi.fi.upm.es/~ssoo/DSW/ Índice Páginas estáticas y dinámicas Arquitectura de aplicaciones Web Tecnologías Web 15/10/2001 Diseño de Servicios Web Páginas estáticas y dinámicas 15/10/2001 Diseño de Servicios Web Páginas estáticas http://www.fi.upm.es <HTML> … <IMG src=“logo.gif”> … </HTML> GET “www.fi.upm.es” Index.html GET “www.fi.upm.es/logo.gif” Logo.gif Servidor Web de www.fi.upm.es 15/10/2001 Diseño de Servicios Web Páginas dinámicas http://search.unisys .com/search/default .asp?section=allse ctions&q1=http&Su bmit=Go GET “…&Submit=Go” Lógica de negocio Sdfgdfg dfg Dsf gsdfg sdfg Dsfg dsfg sdfg Sdfgdfg dfg Dfg Dsf gsdfg sdfg Dsfg dsfg sdfg Sdfgdfg dfg Dfg Dsf gsdfg sdfg Dsfg dsfg sdfg Dfg BD Plantillas Respuesta dinámica + Servidor Web de www.fi.upm.es 15/10/2001 Diseño de Servicios Web Algunos problemas... Problema Alto trasiego de conexiones Solución Scripts de cliente (Java script, VB script) Interfaz insuficientemente atractivo y Applets Java, ActiveX, DHTML dinámico Ejecución de código “desconocido” en Uso exclusivo de Applets Java y Java cliente Script Necesidad de simplificar los procesos de Scripts de servidor (ASP, JSP, PHP, generación dinámica de respuestas ASP.NET) 15/10/2001 Diseño de Servicios Web Arquitectura de aplicaciones Web 15/10/2001 Diseño de Servicios Web Aplicaciones por capas Número de capas: cantidad de capas que atraviesa la información desde la capa de datos hasta la de presentación Cada capa suele ejecutar en un sistema diferente o en espacios de proceso diferentes dentro de la misma máquina 15/10/2001 Diseño de Servicios Web Modelo de 2 capas Interfaz de usuario con lógica de negocio 15/10/2001 Base de datos. Lógica de negocio: rutinas SQL Diseño de Servicios Web Modelo de 3 capas Interfaz de usuario Lógica de negocio Datos Servicios de usuario 15/10/2001 Servicios de trabajo Diseño de Servicios Web Servicios de datos Modelo de 3 capas (II) Capa de servicios de presentación: Recoger información del usuario Enviar esta información a capa de trabajo Recoger resultados de capa de trabajo Presentar los resultados al usuario Capa de servicios de trabajo Recibir información de capa de información Interactuar con los servicios de datos para realizar la lógica de negocio de la aplicación Enviar resultados a capa de presentación. 15/10/2001 Diseño de Servicios Web Modelo de 3 capas (III) Capa de servicios de datos Almacenar datos Recibir datos Mantenimiento de los datos Integridad de los datos 15/10/2001 Diseño de Servicios Web Modelo Web de 3 capas Presentación Lógica de negocio Navegador Servidor Web Acceso a datos 15/10/2001 Diseño de Servicios Web Aplicaciones Web hoy Cliente Browser HTTP DBMS Servidor Web Lógica de negocio Servicios Soportados Cliente Protocolo de No objetos Browser DBMS Máquina Servidora Aplicaciones existentes 15/10/2001 Diseño de Servicios Web Servidor de Aplicaciones Los servidores que proporcionan servicios a las aplicaciones tales como persistencia, transacciones, seguridad, escalabilidad... se denominan Servidores de Aplicaciones. 15/10/2001 Diseño de Servicios Web Windows DNA Cliente Browser Visual InterDev HTTP DBMS IIS Aplicaciones ASP ADO VB, VC++, VJ++ DBMS Aplicaciones COM+ COM+ Cliente Pesado 15/10/2001 DCOM Windows 2000 Diseño de Servicios Web ADO DBMS Java 2 Enterprise Edition Cliente Browser Herramientas JSP HTTP Servidor Web Herramientas Java DBMS Páginas JSP Java Servlets JDBC DBMS Aplicaciones EJB EJB Cliente Pesado CORBA 15/10/2001 JDBC Diseño de Servicios Web JDBC DBMS J2EE Es una especificación que proporciona un estándar para los servidores de apliaciones Java. Por tanto: No es una plataforma propietaria Diversas implementaciones Existe test de compatibilidad (CTS) 15/10/2001 Diseño de Servicios Web Entorno J2EE Obligación de cuatro componentes de aplicación: Existen clientes pesados Java que acceden al servidor usando RMI Applets Servlets y JSP Enterprise Java Beans (EJB): componentes que ejecutan dentro de un contenedor en el servidor. 15/10/2001 Diseño de Servicios Web Entorno J2EE (II) Además: Contenedores: cada componente vive dentro de un contenedor que proporciona servicios en tiempo de ejecución. Bases de datos con JDBC. JTA: Java Transaction API. JavaMail. JNDI: Java Naming and Directory Interface. Interfaz de acceso a servicios de directorio como DNS o LDAP. 15/10/2001 Diseño de Servicios Web Servidores J2EE BEA WebLogic Servidor de aplicaciones IBM WebSphere Servidor de aplicaciones Oracle Servidor de aplicaciones SilverStream Servidor de aplicaciones Sun iPlanet Servidor de aplicaciones Inprise Muchos más 15/10/2001 Diseño de Servicios Web Servidores en Internet 15/10/2001 Diseño de Servicios Web Sistemas Operativos 15/10/2001 Diseño de Servicios Web El mundo del browser HTML / DHTML / CSS Lenguajes de script: JavaScript / VBScript Applet Java / Active X 15/10/2001 Diseño de Servicios Web El mundo del servidor HTML / DHTML / XML ASP / JSP / PHP CGI ISAPI / NSAPI VBScript / JavaScript Servlets / Scriptlets COM / DCOM / COM+ / EJB ODBC / JDBC / OLE DB / ADO 15/10/2001 Diseño de Servicios Web Tecnologías Web 15/10/2001 Diseño de Servicios Web DHTML Manipular una página Web después de ser cargada en cliente Elementos y atributos de la página estilos y colores (CSS) posición de los elementos Programabilidad a través de DOM Manipular datos en el cliente DHTML Scriptlet: Crear un componente de un script y reutilizarlo en páginas con <OBJECT>. IE 4.0 15/10/2001 Diseño de Servicios Web DHTML (II) Ventajas: Creación de interfaces de usuario interactivos Está basado en HTML Soporte directo en el Browser => rapidez Estándar abierto del W3C Inconvenientes: Netscape e Internet Explorer tienen diferentes implementaciones 15/10/2001 Diseño de Servicios Web Controles ActiveX Tienen sistema de seguridad para verificación del autor Desarrollados en cualquier lenguaje Puede acceder a los servicios del sistema, al registro, etc. Una vez en el cliente son rápidos Muy bueno para crear elementos visuales 15/10/2001 Diseño de Servicios Web Controles ActiveX (II) Ventajas: Gran integración con herramientas y aplicaciones Win32 Estos controles pueden ser utilizados en otro tipo de aplicaciones Se pueden comprar controles Inconvenientes: Sólo disponibles en plataformas Win32 y Macintosh (no Win3.1 o UNIX) No ejecutan en un área protegida ¿En quién puedes confiar? 15/10/2001 Diseño de Servicios Web Applets de Java Programas descargados de la Web y que ejecutan en el navegador Para ser ejecutados necesitan JVM Proporcionan componentes para interfaces de usuario Tienen restricciones para ser más seguros. Write once, run everywhere 15/10/2001 Diseño de Servicios Web Applets de Java (II) Ventajas: Lenguaje versátil Simple de usar Son seguros Inconvenientes: Mal soporte para Win3.1 y MAC Cuidado con el tamaño Son usados sólo en el 1% de las páginas 15/10/2001 Diseño de Servicios Web Lenguajes de script en cliente: JavaScript y VBScript VBScript sólo para Internet Explorer JavaScript ampliamente utilizado Cada navegador tiene sus propias extensiones Muy usados para realización de cálculos y validación de formularios 15/10/2001 Diseño de Servicios Web Construyendo aplicaciones Web Servidor Web CGI Aplicación CGI HTTP ISAPI / NSAPI Componentes Servlets de Java ASP/JSP/PHP 15/10/2001 Diseño de Servicios Web CGI Siguen el estándar Common Gateway Interface Se pueden desarrollar con cualquier lenguaje Por aspectos de seguridad se almacenan en directorios específicos del servidor 15/10/2001 Diseño de Servicios Web CGI (II) Ventajas Cualquier lenguaje de programación Son muy estables y están altamente extendidos Todas las plataformas Inconvenientes Crean un nuevo proceso por cada petición de cliente Ojo con el uso de ejecutables en servidor En general son lentos y más todavía en IIS 15/10/2001 Diseño de Servicios Web Servlets de Java Es código Java que ejecuta en un servidor de aplicación Están diseñados como el sustituto Java de los CGIs Ofrecen independencia de la plataforma Ejecutan dentro de un “contenedor servlet” Requisitos: El servidor debe tener una JVM El servidor debe soportar la API de los servlets Java. 15/10/2001 Diseño de Servicios Web Ciclo de vida de un Servlet En primera invoación se carga en memoria. Proceso init() – Hot Servlet Permanece en memoria hasta que se apaga el servidor. Servlets que se cargan inicialmente. Cold Servlets. Se descargan después de responder al cliente. 15/10/2001 Diseño de Servicios Web CGIs vs Servlets Portabilidad de los servlets. Rendimiento: El servlet se ejecuta solamente la primera vez que es llamado Permanece en memoria una vez cargado Puede compartir información entre varias llamadas de clientes. Los servlets son multithread. Se crea un nuevo thread para cada petición Los servlets son modulares y pueden comunicarse entre ellos 15/10/2001 Diseño de Servicios Web CGIs vs Servlets (II) Abren y cierran la conexión con la base de datos en cada petición. Al activar un servlet puede pedir varias conexiones a la base de datos en el proceso init() y las tiene en un pool de conexiones. Límite de tiempo 8 horas. 15/10/2001 Diseño de Servicios Web Conexiones permanentes con BD 15/10/2001 Diseño de Servicios Web ASP/JSP/PHP Una petición de acceso a un URL hace que el servidor web ejecute un script del servidor Este script manda información de retorno al servidor web El servidor web manda esta información al cliente Los script de servidor son: Más sencillos que los Java servlets o ISAPI Muy populares JSP se convierte en servlet en la primera petición. 15/10/2001 Diseño de Servicios Web Funcionamiento de ASP 1) Petición de URL a través de HTTP IIS Browser 2) El servidor Web lee HTML y ejecuta script 4) El Browser muestra el HTML <HTML> <TITLE>Ejemplo</TITLE> <BODY> <H1>Un ejemplo de ASP</H1> <HR> Hola! <HR> </BODY> </HTML> 15/10/2001 <HTML> <TITLE>Ejemplo</TITLE> <BODY> <H1>Un ejemplo de ASP</H1> <% response.write "<HR>" response.write "Hola!" response.write "<HR>” %> </BODY> </HTML> ejemplo.asp 3) HTML resultante es enviado al browser a través de HTTP Diseño de Servicios Web ASP vs JSP Característica ASP JSP Servidores Sólo IIS Apache, Netscape, IIS ... Plataformas Windows Solaris,Windows,Linux... Componentes reusables Componentes COM Componentes Bean Seguridad contra fallos de sistema Basada en seguridad de Seguridad inherente a NT Java Lenguajes de programación admitidos VBScript, JScript, Perl Java, JavaScript Posibilidad de integrar orígenes de datos ODBC, OLEDB, ADO ODBC, JDBC 15/10/2001 Diseño de Servicios Web PHP PHP - Professional Home Page. 1994 Rasmus Lerdorf Puede ejecutar como módulo de apache o como CGI. Junto con apache y MySQL es una opción muy utilizada. Características: Muy rápido Buena conectividad con bases de datos !OJO! Las peticiones son encaminadas a procesos hijo Conexiones a la BD persistentes y compartidas entre procesos hijo. 15/10/2001 Diseño de Servicios Web Lo más utilizado Altavista búsquedas del tipo link:*.xxx ASP: 37.271.877 JSP: 3.922.317 PHP: 7.221.479 15/10/2001 Diseño de Servicios Web