01. introduccion al web v2
DESCRIPTION
hhTRANSCRIPT
-
33
Servidor Web
Qu es un servidor Web?Un que atiende laspeticiones HTTP llegadas a unpuerto determinado de la mquinaTambin se denomina as, por extensin,a la mquina que cuenta con uno detales programas
Ejemplos de servidores Web:Apache
Apache HTTP Server Projecthttp://httpd.apache.org/
Internet Information Server (IIS)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
34
Pginas estticasAl principio, el Web estaba poblado nicamente por
pginas El servidor Web simplemente localizaba el documentosolicitado en el URL y se lo entregaba al cliente
Este enfoque puede ser perfectamente vlido paramuchos sitiosSiempre y cuando no requieran actualizacionescontinuas
Pero no permitira, por ejemplo, crear un sitio decomercio electrnico donde se pueda comprar, oel de un bancoEs necesario acceder a datos en el servidor y crearuna pgina a peticin
Funcionamiento de las pginasestticas
17/10/2005
17/10/2005
En el navegadorse vera
17/10/2005
pagina.html
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
35
Funcionamiento de las pginasdinmicas
18/10/2005
18/10/2005
En el navegadorse vera
pagina.php
MotorPHP
Modo de funcionamiento
El servidor Web detecta una peticin de una pginadinmica y se la pasa al programa necesarioPodra ser una extensin del servidorO bien un programa completamente independiente
ste programa es quien sabe cmo interpretar elcdigo de la pgina para devolver el HTMLapropiado
Diversas tecnologasCGIs, ASP, JSP, Servlets, etc.
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
36
CGI
CGI fue la primera tecnologaque permiti crear pginasdinmicas, que realizaban algntipo de procesamiento en el ladodel servidor.
CGI: Common Gateway Interface
Es un estndar que permite el intercambiode informacin entre servidores Web yprogramas externos
As, mientras que un documento HTML esesttico (un fichero de texto que nocambia), un programa CGI permitemostrar informacin dinmica, alejecutarsePor ejemplo, puede hacer una consulta a unabase de datos ubicada en el servidor y mostrarlos resultados en HTML
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
37
Introduccin
HTTP
Cmo obtiene el programa losdatos necesarios?
Hay dos formas posibles en que elservidor Web puede pasarle losdatos al programa CGI:Mediante las variables de entornovariables de entornoMediante la entrada estentrada estndarndar ()
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
38
Variables de entornoLa tabla siguiente muestra alguna de lasvariables de entorno:(Puede verse una lista completa enhttp://hoohoo.ncsa.uiuc.edu/cgi/env.html)
PATH_INFO
CONTENT_LENGTH
QUERY_STRING
SERVER_NAME
DescripcinVariable
Acceder a las variables de entorno
La forma de acceder al contenido de dichasvariables desde el programa CGI varadependiendo del lenguaje en que haya sidoescritoPor ejemplo, a continuacin se muestra cmo accederal valor de la variable SERVER_NAMESERVER_NAME en C y en Perl:
$ENV{'SERVER_NAME'}Perlgetenv("SERVER_NAME")C
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
39
Ejemplo
El siguiente programa CGI en Perlmuestra el valor de todas lasvariables de entorno:
#!/usr/bin/perlprint "Content-type: text/html\n\n";foreach $key (keys %ENV) {print "$key --> $ENV{$key}";}
Mantenimiento de la sesin
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
40
HTTP, protocolo sin estado
HTTP es un protocolo Esto significa que para el servidor Web cadapeticin de una pgina es nicaNo tendra forma de saber, por ejemplo, que eseusuario acaba de aadir un producto a sucarrito, o si ya se valid o no, en qu punto delproceso de compra se encuentra, etctera
Son necesarias alternativas software, portanto, que permitan simular el estado
Alternativas para mantener sesin
Algunas de las alternativas son:Usar el objeto (o similar) provisto por losentornos de programacin como ASP o J2EE(Servlets, JSP...)
Almacenar toda la informacin de la sesin, a mano,en una (por ejemplo, mediante JavaScript)
Una combinacin de (para guardar un ID deusuario) y bases de datos
URL rewritingURL rewritingEtctera
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
41
Qu son las cookies?
Las cookies son pequeas porcionesdatos que son almacenadoslocalmente por el navegador enforma de pequeos ficheros detexto
Cada vez que el cliente envainformacin al servidor, incluye enla peticin HTTP las cookies quepreviamente haya guardadoprovenientes de ese servidor
Detalles de implementacin
Segn la especificacin, un agente deusuario (es decir, un navegador), debepermitir al menos:Un total de 300 cookies300 cookiesHasta 4 KB4 KB (4.096 bytes) porpor cookiecookieAl menos 20 cookies de un servidor20 cookies de un servidor dado
El navegador se encarga automticamentede eliminar aqullas que hace ms tiempoque no se utilizan cuando necesitaguardar nuevas cookies
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
42
Sintaxis
Cada cookie presenta la siguientesintaxis general:
Lo nico obligatorio es que tenga unnombre y un valor asociado; elresto de atributos son opcionalesAunque tambin se utiliza bastante elatributo expiresexpires
=; [expires=; path=;domain=; secure]=; [expires=; path=;domain=; secure]
Descripcin de los atributos
Un par Por ejemplo: IDUsuarioIDUsuario = 49;= 49;
expiresHasta cundo ser vlida la cookie
Debe ir en este formato: WdyWdy, DD, DD--MonMon--YYYYYYYYHH:MM:SSHH:MM:SS GMTGMT
Si no se dice nada, la cookie ser eliminada alterminar la sesinEs decir, al cerrar la ventana actual del navegador
pathEl conjunto de directorios del servidor para losque es vlida esta cookie (por omisin, ser elraz /, es decir, todos)
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
43
Descripcin de los atributos (2)
domainEl servidor o nombre de dominio para elque es vlida la cookie
Una cookie slo puede ser leda ymodificada desde el servidor ydirectorio especificados en la cookiecuando sta fue creada
secureEs booleano; si est definido (si apareceel atributo) deber haber una conexinsegura (httpshttps) para que la cookie seaenviada
URL Rewriting
Consiste en incluir la informacin delestado en el propio URL
///comprar.asp?paso=3&producto1=01992CX/comprar.asp?paso=3&producto1=01992CX&producto2=ZZ112230&producto3=HJ19X25&producto2=ZZ112230&producto3=HJ19X25
No es de recibo en aplicacionesseriasUn cliente puede iniciar dos o mssesiones simultneas, pginas tediosasde programar, slo se puede usar elmtodo GET, etc.
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
44
Ventajas del uso de cookies
Menor uso de los recursos del servidorLos servidores sin estado no necesitan reservary mantener recursos para guardar el estado dela sesin
Fcil escalabilidad y uso de clustersAl no tener estado, cualquier servidor puedeatender a cualquier clienteNo hace falta que un cliente siempre seaatendido por el mismo servidor, ni ningn tipode distribucin del estado entre servidores
La sesin del cliente podra sobrevivir a unacada del servidorUn reintento por parte del cliente con el mismoURL suele funcionar
Inconvenientes del uso de cookies
PrivacidadOtros servidores podran leer informacinalmacenada en las cookies del clienteNo son vlidas para guardar nmeros detarjeta, contraseas y cosas por el estilo
Los datos pueden ser alteradosUn usuario podra modificar el fichero de unacookie
Lo mismo ocurre con otros mecanismos decliente: URL, formularios, etc.
Aumenta el trfico por la redEl estado se transmite con cada peticin alservidor
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
45
Inconvenientes del uso de cookies
Implementacin complejaMantener a mano el estado en elcliente puede ser realmente complicadosi queremos hacerlo de manera robusta
Tamao de datos limitadoTanto el tamao mximo permitido porlas cookies como la longitud mxima deun URL pueden darnos problemas paraalmacenar sesiones complejas
Servidores de aplicaciones
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
46
Qu es un servidor de aplicaciones?
Es un programa que provee la para las aplicaciones Webempresariales
Qu quiere decir esto?Que los programadores van a poder dedicarse casi enexclusiva a implementar la lgica del dominio, yaque servicios de uso comn, como transacciones,seguridad, persistencia, etc. ya son proporcionadospor el servidor Web
Se ha convertido en una pieza de software clave paracualquier empresa dedicada al comercio electrnico
Es una capa intermedia () que se sita entreel servidor Web y las aplicaciones y bases de datossubyacentes
Visin general
Servidor de aplicaciones(Transacciones, mensajera, servicios Web)
Aplicacincliente
Aplicacincliente
Aplicacincliente
SGBD
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
47
MotivacinComienzan a surgir cuando queda claro lasaplicaciones cliente/servidor no iban a serescalables a un gran nmero de usuariosDebido a las caractersticas de los clientes pesados
Se haca necesario mover las reglas de negocio aalgn lugar intermedio entre los clientes y labase de datos
Empezaron a surgir productos para hacer esatareaCada compaa los llamaba de una forma distinta
Servidores de transacciones, servidores deaplicaciones
Misin
Los llamasen como los llamasen,estaban diseados para gestionarde forma centralizada el modo enque los clientes deban conectarse ala base de datos o a los servicioscon los que tenan que interoperar
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
48
Servicios proporcionados
Creacin y gestin de los componentes delservidorPor aquel entonces, basados en CORBA o COM
Equilibrado de cargaTransaccionesSeguridadAcceso a datos
Servicios proporcionados
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
49
Gestin de la sesin
Como sabemos, HTTP es un protocolo sin sesinNo permite mantener una conexin abierta entre elcliente y el servidor ms all de lo que dura latransferencia del documento en cuestin
En cualquier aplicacin de comercio electrnico,es necesario poder identificar al usuario atravs de su navegacin por el sitio WebAutenticacin, adicin de productos al carrito de lacompra, etc.
El servidor ha de conservar informacin entre peticiones del usuario a lo largo de laduracin de una sesinEl servidor ha de conservar informacin entre peticiones del usuario a lo largo de laduracin de una sesin
Gestin de la sesin (2)
La implementacin a mano se complicaraenormemente en el caso de contar con variosservidores (equilibrado de carga)La peticin de un usuario registrado en la mquina Apuede ser redirigida al servidor B
Lo lgico es que sea el servidor de aplicacionesquien se encargue de gestionar la sesinAdems, debera ser ms eficiente que si loprogramamos nosotros mismos
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
50
Equilibrado de carga
Por equilibrado de carga ( ) seentiende la capacidad de repartir elprocesamiento entre distintos servidoresLas peticiones de los clientes se redirigen a lamquina que ms desocupada se encuentre en esemomento
Mejora de rendimiento de la aplicacinNo es tan sencillo como aadir una nueva mquina y
ya estAdems de la escalabilidad, se consigue una mayor
tolerancia a fallos
Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga(aspecto clave para la escalabilidad)Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga(aspecto clave para la escalabilidad)
Acceso a datos
Los servidores de aplicaciones proveen facilidades paraadministrar conexiones a bases de datos relacionalesOracle, SQL Server, DB2
Los componentes (las clases que implementan la lgicadel negocio) acceden a ellas de forma estndarIndependiente de la base de datos subyacente
Tambin suelen permitir acceder a otros tipos de fuentesde datos:Tales como distintos ERP (SAP, Vaan...), repositorios XML,
etc.Los servidores de aplicaciones son tambin importantes, por
tanto, como mecanismo de integracin de sistemasheredados
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
-
51
Pooling de conexiones
Abrir una conexin a una base de datossuele ser un proceso costosoNo es viable abrir una nueva conexin por cadaconsulta a la base de datosPenalizara enormemente el rendimiento de laaplicacin
Los servidores de aplicaciones suelen contarcon una serie de conexionespermanentemente abiertas que distribuyede forma transparente a los distintosprocesosSe debera poder configurar el nmero deconexiones abiertas, e incluso la poltica deasignacin
Gestin transaccional
Son un elemento bsico de cualquieraplicacin comercialEvitan que haya informacin inconsistente
Sera complejsimo implementarlas amano
Con un servidor de aplicaciones que tengaesta caracterstica, bastara con indicarlednde empieza y termina la transaccinEncargndose l de deshacer los pasosintermedios en caso de un error del sistema
Transaccin: secuencia de pasos que, o se ejecutan todos, o si no el sistemaqueda en el estado originalTransaccin: secuencia de pasos que, o se ejecutan todos, o si no el sistemaqueda en el estado original
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com