Download Programación web

Document related concepts
no text concepts found
Transcript
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
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