Você está na página 1de 8

ndice

Pginas estticas y dinmicas


Programacin web Arquitectura de aplicaciones Web
Tecnologas Web

Copyright 2001-2003 Vctor ROBLES


FORCADA
vrobles@fi.upm.es
http://laurel.datsi.fi.upm.es/~ssoo/DSW/
15/10/2001 Diseo de Servicios Web

Pginas estticas

Pginas estticas y
http://www.fi.upm.es GET www.fi.upm.es

dinmicas
<HTML> Index.html

<IMG src=logo.gif>

</HTML> GET www.fi.upm.es/logo.gif

Logo.gif

Servidor Web de
www.fi.upm.es

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Pginas dinmicas
Algunos problemas...
http://search.unisys
.com/search/default
GET &Submit=Go
.asp?section=allse
ctions&q1=http&Su Problema Solucin
bmit=Go
Alto trasiego de conexiones Scripts de cliente (Java script, VB script)
Lgica de negocio

Interfaz insuficientemente atractivo y Applets Java, ActiveX, DHTML


Sdfgdfg dfg
Dsf gsdfg sdfg
Dsfg dsfg sdfg

BD
Sdfgdfg dfg
Dfg
Dsf gsdfg sdfg
Dsfg dsfg sdfg

dinmico
Sdfgdfg dfg
Dfg
Dsf gsdfg sdfg
Dsfg dsfg sdfg
Dfg

Ejecucin de cdigo desconocido en Uso exclusivo de Applets Java y Java


Plantillas
cliente Script
Respuesta dinmica
+ Necesidad de simplificar los procesos de Scripts de servidor (ASP, JSP, PHP,
generacin dinmica de respuestas ASP.NET)

Servidor Web de
www.fi.upm.es

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

1
Aplicaciones por capas

Arquitectura de Nmero de capas: cantidad de capas


que atraviesa la informacin desde la
aplicaciones Web capa de datos hasta la de presentacin
Cada capa suele ejecutar en un sistema
diferente o en espacios de proceso
diferentes dentro de la misma mquina

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Modelo de 2 capas Modelo de 3 capas

Lgica
Interfaz de usuario de
negocio

Datos
Interfaz de usuario Servicios de usuario Servicios de trabajo Servicios de datos
con lgica de negocio
Base de datos.
Lgica de negocio: rutinas SQL

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Modelo de 3 capas (II) Modelo de 3 capas (III)


Capa de servicios de presentacin: Capa de servicios de datos
 Recoger informacin del usuario
 Almacenar datos
 Enviar esta informacin a capa de trabajo
 Recoger resultados de capa de trabajo  Recibir datos
 Presentar los resultados al usuario  Mantenimiento de los datos
Capa de servicios de trabajo  Integridad de los datos
 Recibir informacin de capa de informacin
 Interactuar con los servicios de datos para realizar
la lgica de negocio de la aplicacin
 Enviar resultados a capa de presentacin.

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

2
Aplicaciones Web hoy
Modelo Web de 3 capas
Cliente
Browser HTTP
DBMS
Navegador Servidor
Presentacin Web Lgica de
negocio

Servicios DBMS
Soportados
Lgica de negocio
Servidor Web Cliente Mquina Servidora
No Protocolo de
Browser objetos
Acceso a datos
Aplicaciones
existentes

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Windows DNA
Servidor de Aplicaciones Cliente
Visual
InterDev
Browser HTTP

IIS DBMS
Los servidores que proporcionan
Aplicaciones
servicios a las aplicaciones tales como ASP
ADO

persistencia, transacciones, seguridad, VB,


VC++, DBMS
escalabilidad... se denominan VJ++
Servidores de Aplicaciones. Aplicaciones
ADO
COM+
COM+ DBMS
Cliente
DCOM
Pesado
Windows 2000

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Java 2 Enterprise Edition


Cliente Herramientas
JSP
J2EE
Browser HTTP

DBMS
Servidor Es una especificacin que proporciona
Web
Pginas
JSP
JDBC un estndar para los servidores de
Herra- Java Servlets JDBC
apliaciones Java. Por tanto:
mientas DBMS
Java  No es una plataforma propietaria
Aplicaciones
 Diversas implementaciones
JDBC
EJB  Existe test de compatibilidad (CTS)
EJB DBMS
Cliente
Pesado CORBA

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

3
Entorno J2EE Entorno J2EE (II)
Obligacin de cuatro componentes de Adems:
aplicacin:  Contenedores: cada componente vive dentro de
un contenedor que proporciona servicios en
 Existen clientes pesados Java que tiempo de ejecucin.
acceden al servidor usando RMI  Bases de datos con JDBC.
 Applets  JTA: Java Transaction API.
 Servlets y JSP  JavaMail.
 Enterprise Java Beans (EJB):  JNDI: Java Naming and Directory Interface.
componentes que ejecutan dentro de un Interfaz de acceso a servicios de directorio como
DNS o LDAP.
contenedor en el servidor.

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Servidores J2EE
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 ms

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Sistemas Operativos
El mundo del browser
HTML / DHTML / CSS
Lenguajes de script: JavaScript /
VBScript
Applet Java / Active X

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

4
El mundo del servidor
HTML / DHTML / XML
ASP / JSP / PHP
CGI Tecnologas Web
ISAPI / NSAPI
VBScript / JavaScript
Servlets / Scriptlets
COM / DCOM / COM+ / EJB
ODBC / JDBC / OLE DB / ADO

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

DHTML (II)
DHTML
Ventajas:
Manipular una pgina Web despus de ser  Creacin de interfaces de usuario interactivos
cargada en cliente  Est basado en HTML
 Elementos y atributos de la pgina  Soporte directo en el Browser => rapidez
 estilos y colores (CSS)  Estndar abierto del W3C
 posicin de los elementos
Inconvenientes:
Programabilidad a travs de DOM
 Netscape e Internet Explorer tienen diferentes
Manipular datos en el cliente implementaciones
DHTML Scriptlet: Crear un componente de
un script y reutilizarlo en pginas con
<OBJECT>. IE 4.0
15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Controles ActiveX Controles ActiveX (II)


Ventajas:
 Gran integracin con herramientas y aplicaciones
Tienen sistema de seguridad para Win32
verificacin del autor  Estos controles pueden ser utilizados en otro tipo
de aplicaciones
Desarrollados en cualquier lenguaje  Se pueden comprar controles
Puede acceder a los servicios del Inconvenientes:
sistema, al registro, etc.  Slo disponibles en plataformas Win32 y
Macintosh (no Win3.1 o UNIX)
Una vez en el cliente son rpidos  No ejecutan en un rea protegida
Muy bueno para crear elementos  En quin puedes confiar?
visuales

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

5
Applets de Java Applets de Java (II)
Programas descargados de la Web y Ventajas:
que ejecutan en el navegador  Lenguaje verstil
Para ser ejecutados necesitan JVM  Simple de usar

Proporcionan componentes para  Son seguros

interfaces de usuario Inconvenientes:


Tienen restricciones para ser ms  Mal soporte para Win3.1 y MAC
seguros.  Cuidado con el tamao
Write once, run everywhere  Son usados slo en el 1% de las pginas

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Lenguajes de script en Construyendo aplicaciones Web


cliente: JavaScript y VBScript
Servidor
VBScript slo para Internet Explorer Web
CGI Aplicacin CGI
JavaScript ampliamente utilizado HTTP

Cada navegador tiene sus propias


ISAPI / NSAPI
extensiones
Componentes
Muy usados para realizacin de Servlets de Java
clculos y validacin de formularios
ASP/JSP/PHP

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

CGI CGI (II)


Siguen el estndar Common Gateway Ventajas
Interface  Cualquier lenguaje de programacin
 Son muy estables y estn altamente extendidos
Se pueden desarrollar con cualquier  Todas las plataformas
lenguaje
Inconvenientes
Por aspectos de seguridad se  Crean un nuevo proceso por cada peticin de
almacenan en directorios especficos cliente
del servidor  Ojo con el uso de ejecutables en servidor
 En general son lentos y ms todava en IIS

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

6
Servlets de Java Ciclo de vida de un Servlet
Es cdigo Java que ejecuta en un servidor de En primera invoacin se carga en
aplicacin
memoria. Proceso init() Hot Servlet
Estn diseados como el sustituto Java de
los CGIs Permanece en memoria hasta que se
Ofrecen independencia de la plataforma apaga el servidor.
Ejecutan dentro de un contenedor servlet Servlets que se cargan inicialmente.
Requisitos: Cold Servlets. Se descargan despus
 El servidor debe tener una JVM
 El servidor debe soportar la API de los servlets
de responder al cliente.
Java.
15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

CGIs vs Servlets
CGIs vs Servlets (II)
Portabilidad de los servlets.
Rendimiento: Abren y cierran la conexin con la base
 El servlet se ejecuta solamente la primera vez que de datos en cada peticin.
es llamado
 Permanece en memoria una vez cargado Al activar un servlet puede pedir varias
 Puede compartir informacin entre varias conexiones a la base de datos en el
llamadas de clientes.
proceso init() y las tiene en un pool de
Los servlets son multithread. Se crea un
nuevo thread para cada peticin conexiones. Lmite de tiempo 8 horas.
Los servlets son modulares y pueden
comunicarse entre ellos

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

Conexiones permanentes con BD

ASP/JSP/PHP
Una peticin de acceso a un URL hace que
el servidor web ejecute un script del servidor
 Este script manda informacin de retorno al
servidor web
 El servidor web manda esta informacin al cliente
Los script de servidor son:
 Ms sencillos que los Java servlets o ISAPI
 Muy populares
JSP se convierte en servlet en la primera
peticin.
15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

7
Funcionamiento de ASP ASP vs JSP
1) Peticin de URL a
travs de HTTP
IIS
<HTML> Caracterstica ASP JSP
Browser 2) El servidor
<TITLE>Ejemplo</TITLE>
<BODY> Servidores Slo IIS Apache, Netscape, IIS ...
4) El Browser Web lee <H1>Un ejemplo de ASP</H1>
muestra el HTML y <% Plataformas Windows Solaris,Windows,Linux...
HTML response.write "<HR>"
ejecuta script
response.write "Hola!"
response.write "<HR>
Componentes reusables Componentes COM Componentes Bean
%>
</BODY> Seguridad contra fallos Basada en seguridad de Seguridad inherente a
</HTML> de sistema NT Java
<HTML>
<TITLE>Ejemplo</TITLE> ejemplo.asp Lenguajes de VBScript, JScript, Perl Java, JavaScript
<BODY>
<H1>Un ejemplo de ASP</H1> programacin admitidos
<HR>
3) HTML resultante
Hola! es enviado al Posibilidad de integrar ODBC, OLEDB, ADO ODBC, JDBC
<HR> browser a travs orgenes de datos
</BODY> de HTTP
</HTML>

15/10/2001 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web

PHP
PHP - Professional Home Page. 1994 Lo ms utilizado
Rasmus Lerdorf
Puede ejecutar como mdulo de apache o Altavista bsquedas del tipo link:*.xxx
como CGI.
 ASP: 37.271.877
Junto con apache y MySQL es una opcin
muy utilizada.  JSP: 3.922.317
Caractersticas:  PHP: 7.221.479
 Muy rpido
 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 Diseo de Servicios Web 15/10/2001 Diseo de Servicios Web