Download Programación web Índice Páginas estáticas y dinámicas Páginas

Document related concepts
no text concepts found
Transcript
Índice
Páginas estáticas y dinámicas
Arquitectura de aplicaciones Web
Tecnologías Web
Programación web
© Copyright 2001-2003 Víctor ROBLES
FORCADA
[email protected]
http://laurel.datsi.fi.upm.es/~ssoo/DSW/
15/10/2001
Diseño de Servicios Web
Páginas estáticas
Páginas estáticas y
dinámicas
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
15/10/2001
Páginas dinámicas
http://search.unisys
.com/search/default
.asp?section=allse
ctions&q1=http&Su
bmit=Go
Diseño de Servicios Web
Algunos problemas...
GET “…&Submit=Go”
Problema
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
+
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)
Servidor Web de
www.fi.upm.es
15/10/2001
Diseño de Servicios Web
15/10/2001
Diseño de Servicios Web
1
Aplicaciones por capas
Arquitectura de
aplicaciones Web
15/10/2001
Diseño de Servicios Web
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
Modelo de 2 capas
Diseño de Servicios Web
Modelo de 3 capas
Interfaz de usuario
Lógica
de
negocio
Datos
Interfaz de usuario
con lógica de negocio
15/10/2001
Servicios de usuario
Servicios de trabajo
Servicios de datos
Base de datos.
Lógica de negocio: rutinas SQL
Diseño de Servicios Web
15/10/2001
Diseño de Servicios Web
Modelo de 3 capas (II)
Modelo de 3 capas (III)
Capa de servicios de presentación:
Capa de servicios de datos
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
Almacenar datos
Recibir datos
Mantenimiento de los datos
Integridad de los datos
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
15/10/2001
Diseño de Servicios Web
2
Modelo Web de 3 capas
Presentación
Lógica de negocio
Aplicaciones Web hoy
Cliente
Browser
HTTP
DBMS
Navegador
Servidor
Web
Lógica de
negocio
DBMS
Servicios
Soportados
Servidor Web
Máquina Servidora
Cliente
Protocolo de
No
objetos
Browser
Acceso a datos
Aplicaciones
existentes
15/10/2001
Diseño de Servicios Web
15/10/2001
Servidor de Aplicaciones
Diseño de Servicios Web
Windows DNA
Cliente
Browser
Visual
InterDev
HTTP
DBMS
IIS
Los servidores que proporcionan
servicios a las aplicaciones tales como
persistencia, transacciones, seguridad,
escalabilidad... se denominan
Servidores de Aplicaciones.
Aplicaciones
ASP
ADO
VB,
VC++,
VJ++
DBMS
Aplicaciones
COM+
ADO
COM+
Cliente
Pesado
15/10/2001
Diseño de Servicios Web
15/10/2001
Java 2 Enterprise Edition
Cliente
Browser
Servidor
Web
Herramientas
Java
DBMS
Páginas
JSP
Java Servlets JDBC
DBMS
Aplicaciones
EJB
EJB
Cliente
Pesado
JDBC
Windows 2000
Diseño de Servicios Web
J2EE
Herramientas
JSP
HTTP
DBMS
DCOM
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)
JDBC
DBMS
CORBA
15/10/2001
Diseño de Servicios Web
15/10/2001
Diseño de Servicios Web
3
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.
Entorno J2EE (II)
Además:
15/10/2001
Diseño de Servicios Web
Servidores J2EE
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 en Internet
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
15/10/2001
Diseño de Servicios Web
Sistemas Operativos
El mundo del browser
HTML / DHTML / CSS
Lenguajes de script: JavaScript /
VBScript
Applet Java / Active X
15/10/2001
Diseño de Servicios Web
15/10/2001
Diseño de Servicios Web
4
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 (II)
DHTML
Ventajas:
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
Controles ActiveX
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 (II)
Ventajas:
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
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
5
Applets de Java
Applets de Java (II)
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
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
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
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
15/10/2001
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
CGI (II)
Ventajas
Diseño de Servicios Web
Cualquier lenguaje de programación
Son muy estables y están altamente extendidos
Todas las plataformas
Inconvenientes
15/10/2001
Diseño de Servicios Web
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
6
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
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
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
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
15/10/2001
Diseño de Servicios Web
7
Funcionamiento de ASP
ASP vs JSP
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
Característica
ASP
JSP
Servidores
Sólo IIS
Apache, Netscape, IIS ...
Plataformas
Windows
Solaris,Windows,Linux...
Componentes reusables Componentes COM
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
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:
Componentes Bean
Seguridad contra fallos
de sistema
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
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
15/10/2001
Diseño de Servicios Web
8