Programación web
© Copyright 2001-2003 Víctor ROBLES
FORCADA
[email protected]
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
Páginas estáticas
http://www.fi.upm.es
GET “www.fi.upm.es”
<HTML>
…
<IMG src=“logo.gif”>
…
</HTML>
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
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
BD
Sdfgdfg dfg
Dsf gsdfg sdfg
Dsfg dsfg sdfg
Dfg Sdfgdfg dfg
Dsf gsdfg sdfg
Dsfg dsfg sdfg
Dfg Sdfgdfg dfg
Dsf gsdfg sdfg
Dsfg dsfg sdfg
Dfg
Respuesta dinámica
Plantillas
+
Servidor Web de
www.fi.upm.es
Algunos problemas...
Problema
Alto trasiego de conexiones
Solución
Scripts de cliente (Java script, VB script)
Interfaz insuficientemente atractivo y
dinámico
Ejecución de código “desconocido” en
cliente
Applets Java, ActiveX, DHTML
Uso exclusivo de Applets Java y Java
Script
Necesidad de simplificar los procesos de
generación dinámica de respuestas
Scripts de servidor (ASP, JSP, PHP,
ASP.NET)
15/10/2001
Diseño de Servicios Web
15/10/2001
Diseño de Servicios Web
1
Arquitectura de
aplicaciones 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
15/10/2001
Diseño de Servicios Web
Modelo de 2 capas
Modelo de 3 capas
Interfaz de usuario
Lógica
de
negocio
Interfaz de usuario
con lógica de negocio
Base de datos.
Lógica de negocio: rutinas SQL
Servicios de usuario
Servicios de trabajo
Servicios de datos
Datos
15/10/2001
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:
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.
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
15/10/2001
Diseño de Servicios Web
2
Modelo Web de 3 capas
Navegador
Servidor Web
Presentación
Lógica de negocio
Acceso a datos
Aplicaciones Web hoy
Cliente
Browser
HTTP
Servidor
Web
Lógica de
negocio
Servicios
Soportados
Máquina Servidora
Protocolo de
objetos
Cliente
No
Browser
DBMS
DBMS
Aplicaciones
existentes
15/10/2001
Diseño de Servicios Web
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.
Windows DNA
Visual
InterDev
Cliente
Browser
HTTP
Cliente
Pesado
DCOM
IIS
VB,
VC++,
VJ++
Aplicaciones
ASP
ADO
Aplicaciones
COM+
COM+
ADO
Windows 2000
DBMS
DBMS
DBMS
15/10/2001
Diseño de Servicios Web
15/10/2001
Diseño de Servicios Web
Java 2 Enterprise Edition
Cliente
Browser
HTTP
Herramientas
JSP
Servidor
Web
Herra-
mientas
Java
Páginas
JSP
JDBC
Java Servlets JDBC
Aplicaciones
EJB
EJB
JDBC
DBMS
DBMS
DBMS
Cliente
Pesado
CORBA
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
15/10/2001
Diseño de Servicios Web
3
Entorno J2EE
Entorno J2EE (II)
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.
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
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
Servidores en Internet
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
Tecnologías Web
15/10/2001
Diseño de Servicios 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
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
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
Controles ActiveX (II)
Ventajas:
Gran integración con herramientas y aplicaciones
Estos controles pueden ser utilizados en otro tipo
Win32
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
15/10/2001
Diseño de Servicios Web
5
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
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
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
Construyendo aplicaciones Web
Servidor
Web
HTTP
CGI
Aplicación CGI
ISAPI / NSAPI
Servlets de Java
ASP/JSP/PHP
Componentes
15/10/2001
Diseño de Servicios Web
15/10/2001
Diseño de Servicios Web
CGI
CGI (II)
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
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
15/10/2001
Diseño de Servicios Web
6
Servlets de Java
Ciclo de vida de un Servlet
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.
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
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
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
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 IS
Comentarios de: 04 - Programación Web (0)
No hay comentarios