01. introducción al web

61
Introducción al desarrollo de aplicaciones Web

Upload: eduardochico

Post on 03-Jun-2015

123 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 01. introducción al web

Introducción al desarrollo de aplicaciones Web

Page 2: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Introducción a Internet y el Web

El Web es una vasta colección de documentos en Internet que están enlazados a través de los hiperenlaces

Internet: millones de ordenadores conectadosInternet: millones de ordenadores conectadosUn conjunto de redes heterogéneas conectadas entre sí mediante el protocolo TCP/IP

Los hiperenlaces permiten a los usuarios acceder a Los hiperenlaces permiten a los usuarios acceder a documentos situados en otros servidores Web, sin documentos situados en otros servidores Web, sin preocuparse de su ubicaciónpreocuparse de su ubicación

Page 3: 01. introducción al web

Tecnologías clave de Internet

Page 4: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Tecnologías claves de Internet

La infraestructura de Internet es proporcionada fundamentalmente por tres tecnologías:

La conmutación de paquetesconmutación de paquetes El protocolo TCP/IPTCP/IP La arquitectura cliente/servidorcliente/servidor

Page 5: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Conmutación de paquetes

Es la tecnología que emplea la red Internet Los mensajes se dividen en paquetes

A cada paquete se le añaden la dirección de origen y destino, el número de secuencia, información de control de errores…

En vez de enviarse directamente a la dirección de destino, los paquetes viajan de una máquina a otra hasta alcanzar su destino

Estas máquinas se denominan routersrouters Ordenadores que interconectan las diferentes subredes y que

son capaces de encaminar los paquetes de una a otra Para asegurar que siguen la mejor ruta disponible, utilizan

programas llamados algoritmos de encaminamientoalgoritmos de encaminamiento (“routing algorithms”)

Page 6: 01. introducción al web

César F. AcebalDaniel F. Lanvin

TCP/IP

Si bien la conmutación de paquetes supuso un gran avance en la capacidad de las redes de comunicaciones, era necesario implementar el modo de llevarla a cabo

Eso es de lo que se encargan los protocolos TCP/IP Transmission Control Protocol (TCP)Transmission Control Protocol (TCP) Internet Protocol (IP)Internet Protocol (IP)

Un protocolo es un conjunto de reglas para formatear, ordenar y comprimir mensajes, comprobar errores, etc.

Pueden ser implementados por hardware o por software

Page 7: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Direcciones IP

Cada ordenador conectado a Internet debe tener una dirección para poder recibir los paquetes TCP. Ésta puede ser:

Estática Fija, siempre la misma

Dinámica Por ejemplo, cada vez que nos conectamos a Internet con un

módem telefónico, nuestro proveedor de Internet (ISP, Internet Service Provider) nos asigna una dirección temporal

Las direcciones IP son números de 32 bits separados en cuatro partes (por ejemplo, 156.35.94.5)

Cada uno va de 0 a 255; esto nos da un total de 232 direcciones (algo más de cuatro mil millones)

Page 8: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Nombres de dominio y URL

Para no tener que recordar direcciones IP tal cual, éstas pueden ser representadas mediante nombres de dominio (por ejemplo, www.euitio.uniovi.es)

El sistema de nombres de domino (DNS) permite que éstas se resuelvan a direcciones IP

Ejemplo: ping www.euitio.uniovi.esping www.euitio.uniovi.es

Los URL (Uniform Resource Locator) son las direcciones que escribimos en el navegador

Como http://www.euitio.uniovi.es/http://www.euitio.uniovi.es/

Page 9: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Computación Cliente/Servidor

En este modelo de computación distribuida, un cliente solicita una acción a un servidor, que le devuelve los resultados

Puede haber diversos tipos de clientes, desde los más ligerosligeros (como un navegador Web, que únicamente es capaz de mostrar documentos HTML) hasta clientes clientes pesadospesados que también realizan procesamiento

Surgen como respuesta a los mainframes de los 60 y 70 (con 128 KB de RAM y y discos duros de 10 MB)

Despega este modelo con el advenimiento de los ordenadores personalesordenadores personales

Toda Internet es una inmensa red cliente/servidor

Page 10: 01. introducción al web

Introducción al Web

Page 11: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Internet ≠ Web Internet permite a cualquier ordenador del

mundo compartir datos con otro ordenador remoto

Un programa cliente en un ordenador accede a un programa servidor en otro ordenador remoto

El Web es el sistema de hipertexto que funciona sobre Internet como uno de sus servicios

En este caso, el programa cliente es nuestro navegador, y el servidor el programa que hace de servidor Web que está ejecutándose en el ordenador remoto y que se encarga de entregar el documento solicitado a nuestro navegador

Page 12: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Nacimiento del World Wide Web

En 1989, Tim Berners-Lee, en el laboratorio europeo de partículas (CERN), en Suiza, crea un lenguaje de etiquetas para representar y enlazar documentos

HTMLHTML —HyperText Markup Language —HyperText Markup Language Lenguaje de Marcado de HipertextoLenguaje de Marcado de Hipertexto Berners-Lee creó las versiones iniciales de:

HTMLHTML, HTTPHTTP, un servidor Webservidor Web y un navegadornavegador Los cuatro componentes esenciales del Web

Tim Berners-Lee

Page 13: 01. introducción al web

César F. AcebalDaniel F. Lanvin

¿Cómo funciona?

1. El usuario solicita un documento tecleando su dirección en el navegador: http://www.uniovi.es

Es lo que se denomina un URL (localizador uniforme de recursos)

2. El cliente busca en el DNS cuál es la IP de www.uniovi.es: 156.35.14.3

Cada ordenador en Internet está identificado por una dirección única denominada IP

El DNS traduce de nombres lógicos a direcciones físicas.El DNS es un servicio de nombrado

3. Navegador y servidor web comienzan un diálogo a través del protocolo HTTP (protocolo de transferencia de hipertexto)

1. GET /HTTP/1.02. El servidor, si todo es correcto, devuelve el documento

solicitado más información adicional

Page 14: 01. introducción al web

César F. AcebalDaniel F. Lanvin

¿Cómo funciona?

4. El navegador mira el tipo de documento devuelto (MIME)5. Si es “text/html” es un documento HTML, lo visualiza el

propio navegador6. Si es otro tipo de documento se ejecutará el programa

que tenga asociado, o nos preguntará si queremos guardar el documento en nuestro ordenador

Nota: estos tipos MIME los podemos configurar en nuestro navegador

Page 15: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Conceptos Básicos de la WEB

Un servidor Web es un ordenador en Internet que sirve páginas Web y contenido estático en general a petición

Para ello, debe tener un programa ejecutándose que haga de servidor Web: Apache, IIS, etcétera

El usuario accede al Web a través de un navegador (browser)

Se encarga de solicitar las páginas Web al servidor y de mostrarlas

Page 16: 01. introducción al web

César F. AcebalDaniel F. Lanvin

El Lenguaje HTML

Es el lenguaje de creación de páginas Web Al menos, de las páginas “estáticas”

Era imprescindible que la misma información se pudiese ver en diferentes plataformas

Por tanto, Berners-Lee diseñó un lenguaje de estructuración de documentos, no de presentación (ésta se dejaba al programa cliente)

Page 17: 01. introducción al web

César F. AcebalDaniel F. Lanvin

HTML es un lenguaje

Como tal, tiene unas reglas que deben ser cumplidas, esto es, una sintaxis, una gramática... igual que el español o cualquier otro lenguaje informático

Es además un lenguaje informático, para ser procesado por ordenadores; pero no es un lenguaje de programación

Page 18: 01. introducción al web

César F. AcebalDaniel F. Lanvin

HTML, lenguaje de hipertexto Por hipertexto designamos al texto al que se le

añade una propiedad: determinadas porciones de texto pueden ser enlazadas a otros documentos

De ahí surge el concepto de navegación: surcamos el Web yendo de unos enlaces a otros

El hipertexto debe ser utilizado en los sitios web para facilitar al usuario la labor de búsqueda de la información

Page 19: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Especificación de HTML

La especificación del lenguaje HTML y de la mayoría de tecnologías relacionadas con el Web está definida por el World Wide Web Consortium (W3C)

www.w3c.org

Page 20: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Ejemplo de documento HTML

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Introducción a HTML</title> </head> <body> <h1>Mi primera página Web</h1> <p> Éste es el equivalente al típico <em>¡Hola, mundo!</em> pero en HTML (cuya <a href="http://www.w3.org/MarkUp/" title="Especificación de las distintas versiones de HTML y XHTML en el W3C">especificación</a> puede encontrarse en el sitio Web del <acronym title="World Wide Web Consortium">W3C</acronym>). </p> </body></html>

holaMundo.htmlholaMundo.html

Page 21: 01. introducción al web

César F. AcebalDaniel F. Lanvin

El protocolo HTTP

HTTP (HyperText Transform Protocol) es el protocolo usado para transferir páginas Web

Es el modo en que un navegador se comunica con un servidor Web (Apache, Internet Information Server…)

Es un protocolo sin estado La sesión termina en cuanto se devuelve el objeto

solicitado Incluso, si una página contiene otros objetos

(imágenes, frames, etc.) cada uno de ellos inicia una nueva petición HTTP

Page 22: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Ejemplo de mensaje HTTP

GET / HTTP/1.0 >>

<HTTP/1.0 200 OK <Date: Wed, 18 Sep 1996 20:18:59 GMT <Server: Apache/1.0.0 < Content-type: text/html <Content-length: 1579 <Last-modified: Mon, 22 Jul 1996 22:23:34 GMT < < HTML document

RespuestRespuestaa

PeticióPeticiónn

Page 23: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Las URLs

URI: Uniform Resource Identifier URL: Uniform Resource Locator

Un URL es la dirección única de todo documento en el Web http://www.eutio.uniovi.es/http://www.eutio.uniovi.es/

Page 24: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis de un URL

Ejemplos: http://www.princast.es/http://www.princast.es/ http://195.55.30.17/http://195.55.30.17/ http://www.cfacebal.com/http://www.cfacebal.com/ http://www.cfacebal.com/index.htmlhttp://www.cfacebal.com/index.html http://web.uniovi.es/Vicerrectorados/Extension/http://web.uniovi.es/Vicerrectorados/Extension/ http://localhost:8080/http://localhost:8080/ http://petra.euitio.uniovi.es/http://petra.euitio.uniovi.es/

protocolo://dirección[:puerto]/directorio/ficheroprotocolo://dirección[:puerto]/directorio/fichero

Page 25: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Protocolo

Un protocolo define el modo en que se comunican dos ordenadores para llevar a cabo alguna tarea

Protocolo del Web: HTTP (HyperText Transfer Protocol)HTTP (HyperText Transfer Protocol) Especifica cómo tiene lugar el diálogo entre el

navegador y el servidor para conseguir el fichero especificado

No se ocupa del transporte en sí: TCPTCP Cada vez que tecleamos una dirección o pulsamos

un enlace el navegador se comunica vía HTTP con el servidor Web indicado

Page 26: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Ejemplos de protocolos

file Permite acceder a un fichero en el sistema de ficheros local

ftp File Transfer Protocol

http Páginas Web

Las URLs no son algo específico de internet o de la WEB. Ejemplo:Abrir el internet explorer y, en lugar de poner una url

http en la barra de navegación, abrir el fichero local c:\boot.ini mediante:

file://C:\boot.ini

Page 27: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Dirección del sitio

Suele ser un nombre simbólico: nombre de dominio

www.uniovi.es especifica una máquina llamada “www” en el dominio “uniovi.es”

El nombre de máquina puede ser cualquiera “www” no es más que un convenio para especificar

aquellas máquinas que son servidores Web como “ftp” suele designar a los servidores de FTP incluso aunque muchas veces se trate de la misma

máquina

Page 28: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Dirección del sitio

También podría ser directamente la dirección IP http://156.35.14.3/

Los nombres de dominio no distinguen entre mayúsculas y minúsculas

http://www.uniovi.es/ http://WWW.UNIOVI.ES/ http://wWw.UniOvi.es/

Tampoco (para nuestra desgracia) tienen Ñs!. Ej:

http://www.eldiariomontanes.eshttp://www.lanuevaespana.es

Page 29: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Directorio

Hay que indicar la ruta hasta el fichero deseado Como mínimo, debe ir la barra (“/”)

http://www.uniovi.eshttp://www.uniovi.es// Si no la ponemos, la pone el navegador por nosotros También se puede indicar un subdirectorio:

http://www.uniovi.es/Vicerrectorados/http://www.uniovi.es/Vicerrectorados/Postgrado_TitulosPropios/doctorado/Postgrado_TitulosPropios/doctorado/

Siempre se usa la barra “/”, no “\” (incluso aunque el servidor Web sea una máquina Windows: está definido por el estándar URI, no depende del SO)

La ruta sí puede diferenciar entre mayúsculas y minúsculas (si el servidor Web es, por ejemplo, una máquina Unix)

Page 30: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Nombre del fichero

Depende del SO del servidor Web Las páginas Web generalmente tienen como

extensión .html o .htm Las extensiones son importantes para que el

navegador sepa cómo tratar un fichero un .html, lo interpreta y lo muestra un .jpg, trata de mostrar la imagen un .doc, abre el Word si lo tenemos instalado etcétera

Page 31: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Nombre del fichero

Si no se especifica, el servidor busca un fichero con un nombre determinado en el directorio especificado

Normalmente, el index.htmlindex.html o el index.htmindex.htm Se puede configurar en el programa que utilicemos

como servidor Web (Apache, IIS...)

Page 32: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis URL: Puerto

Por omisión, una petición HTTP se dirige al puerto 80 Por eso casi nunca la especificamos

Pero se podría configurar el servidor Web para que “escuchase” peticiones en otro puerto

En ese caso, hay que indicarlo explícitamente: http://www.midominio.com:8080/

En el Caso de OC4J: Puerto 8888.Ej:

http://localhost:8888http://localhost:8888

Page 33: 01. introducción al web

César F. AcebalDaniel F. Lanvin

¿Qué es un servidor Web?

Un programa que atiende las peticiones HTTP llegadas a un puerto determinado de la máquina

También se denomina así, por extensión, a la máquina que cuenta con uno de tales programas

Ejemplos de servidores Web: Apache

Apache HTTP Server Project http://httpd.apache.org/

Internet Information Server (IIS)

Page 34: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Páginas estáticas

Al principio, el Web estaba poblado únicamente por páginas estáticas

El servidor Web simplemente localizaba el documento solicitado en el URL y se lo entregaba al cliente

Esto no permitiría, por ejemplo, crear un sitio de comercio electrónico donde se pueda comprar, o el de un banco

Es necesario acceder a datos en el servidor y crear una página a petición

Page 35: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Funcionamiento de las páginas estáticas

Page 36: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Funcionamiento de las páginas dinámicas

Page 37: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Modo de funcionamiento

El esquema de funcionamiento de las páginas dinámicas es siempre similar independientemente de en qué se hayan desarrollado éstas

CGI, ASP, Servlets/JSP… El servidor Web detecta una petición de una

página dinámica y se la pasa al programa necesario

Podría ser una extensión del servidor O bien un programa completamente independiente

Éste programa es quien sabe cómo interpretar el código de la página para devolver el HTML apropiado

Page 38: 01. introducción al web

Mantenimiento de la sesión

Page 39: 01. introducción al web

César F. AcebalDaniel F. Lanvin

HTTP, protocolo sin estado

HTTP es un protocolo sin estado Esto significa que para el servidor Web cada

petición de una página es única No tendría forma de saber, por ejemplo, que ese

usuario acaba de añadir un producto a su carrito, o si ya se validó o no, en qué punto del proceso de compra se encuentra, etcétera

Son necesarias alternativas software, por tanto, que permitan simular el estado

Page 40: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Alternativas

Aunque hay varias formas de hacerlo (dependiendo de si trabajamos en ASP, en J2EE…) la mayoría pasan por el uso de “cookies”

Algunas de las alternativas son: Almacenar toda la información de la sesión, a mano, en

una cookie (por ejemplo, mediante JavaScript) Una combinación de cookie (para guardar un ID de

usuario) y bases de datos Usar el objeto SessionSession (o similar) provisto por los

entornos de programación como ASP o J2EE (Servlets, JSP...)

““URL rewriting”URL rewriting” Etcétera

Page 41: 01. introducción al web

César F. AcebalDaniel F. Lanvin

¿Qué son las cookies?

Las cookies son pequeñas porciones datos que son almacenados localmente por el navegador en forma de pequeños ficheros de texto

Cada vez que el cliente envía información al servidor, incluye en la petición HTTP las cookies que previamente haya guardado provenientes de ese servidor

Page 42: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Sintaxis

Cada cookie presenta la siguiente sintaxis general:

Lo único obligatorio es que tenga un nombre y un valor asociado; el resto de atributos son opcionales

Aunque también se utiliza bastante el atributo expiresexpires

nombre=valor; [expires=fecha; path=directorio; domain=nombreDeDominio; secure]

nombre=valor; [expires=fecha; path=directorio; domain=nombreDeDominio; secure]

Page 43: 01. introducción al web

César F. AcebalDaniel F. Lanvin

URL Rewriting

Consiste en incluir la información del estado en el propio URL

/…/comprar.asp?/…/comprar.asp?paso=3&producto1=01992CX&producto2=ZZ112230&propaso=3&producto1=01992CX&producto2=ZZ112230&producto3=HJ19X25…ducto3=HJ19X25…

No es de recibo en aplicaciones “serias” Un cliente puede iniciar dos o más sesiones

simultáneas, páginas tediosas de programar, sólo se puede usar el método GET, etc.

Page 44: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Ventajas del uso de cookies

Menor uso de los recursos del servidor Los servidores “sin estado” no necesitan reservar y

mantener recursos para guardar el estado de la sesión Fácil escalabilidad y uso de clusters

Al no tener estado, cualquier servidor puede atender a cualquier cliente

No hace falta que un cliente siempre sea atendido por el mismo servidor, ni ningún tipo de distribución del estado entre servidores

La sesión del cliente podría sobrevivir a una caída del servidor

Un reintento por parte del cliente con el mismo URL suele funcionar

Page 45: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Inconvenientes del uso de cookies

Privacidad Otros servidores podrían leer información

almacenada en las cookies del cliente No son válidas para guardar números de tarjeta,

contraseñas y cosas por el estilo Los datos pueden ser alterados

Un usuario podría modificar el fichero de una cookie Lo mismo ocurre con otros mecanismos de cliente:

URL, formularios, etc. Aumenta el tráfico por la red

El estado se transmite con cada petición al servidor

Page 46: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Inconvenientes del uso de cookies

Implementación compleja Mantener “a mano” el estado en el cliente puede ser

realmente complicado si queremos hacerlo de manera robusta

Tamaño de datos limitado Tanto el tamaño máximo permitido por las cookies

como la longitud máxima de un URL pueden darnos problemas para almacenar sesiones complejas

Page 47: 01. introducción al web

Servidores de aplicaciones

Page 48: 01. introducción al web

César F. AcebalDaniel F. Lanvin

¿Qué es un servidor de aplicaciones?

Es un programa que provee la infraestructura necesaria para las aplicaciones Web empresariales

¿Qué quiere decir esto? Que los programadores van a poder dedicarse casi en

exclusiva a implementar la lógica del dominio, ya que servicios de uso común, como transacciones, seguridad, persistencia, etc. ya son proporcionados por el servidor Web

Se ha convertido en una pieza de software clave para cualquier empresa dedicada al comercio electrónico

Es una capa intermedia (middlewaremiddleware) que se sitúa entre el servidor Web y las aplicaciones y bases de datos subyacentes

Page 49: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Visión general

Servidor de aplicaciones(Transacciones, mensajería, servicios Web…)

CORBA J2EE .NET

Aplicación cliente

Aplicación cliente

Aplicación cliente

SGBD

Page 50: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Motivación

Comienzan a surgir cuando queda claro las aplicaciones cliente/servidor no iban a ser escalables a un gran número de usuarios

Debido a las características de los clientes “pesados” Se hacía necesario mover las reglas de

negocio a algún lugar intermedio entre los clientes y la base de datos

Empezaron a surgir productos para hacer esa tarea

Cada compañía los llamaba de una forma distinta Servidores de transacciones, servidores de aplicaciones…

Page 51: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Objetivo de los Servidores de Aplicaciones

Los llamasen como los llamasen, estaban diseñados para gestionar de forma centralizada el modo en que los clientes debían conectarse a la base de datos o a los servicios con los que tenían que interoperar

Page 52: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Servicios proporcionados

Creación y gestión de los componentes del servidor

Por aquel entonces, basados en CORBA o COM Clustering Equilibrado de carga Transacciones Seguridad Acceso a datos …

Page 53: 01. introducción al web

Servicios proporcionados

Page 54: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Gestión de la sesión

Como sabemos, HTTP es un protocolo sin sesión No permite mantener una conexión abierta entre el

cliente y el servidor más allá de lo que dura la transferencia del documento en cuestión

En cualquier aplicación de comercio electrónico, es necesario poder identificar al usuario a través de su navegación por el sitio Web

Autenticación, adición de productos al carrito de la compra, etc.

El servidor ha de conservar información entre peticiones del usuario a lo largo de la duración de una sesión

El servidor ha de conservar información entre peticiones del usuario a lo largo de la duración de una sesión

Page 55: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Gestión de la sesión (2)

La implementación “a mano” se complicaría enormemente en el caso de contar con varios servidores (equilibrado de carga)

La petición de un usuario registrado en la máquina A puede ser redirigida al servidor B

Lo lógico es que sea el servidor de aplicaciones quien se encargue de gestionar la sesión

Además, debería ser más eficiente que si lo programamos nosotros mismos

Page 56: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Equilibrado de carga

Por equilibrado de carga (load balancing) se entiende la capacidad de repartir el procesamiento entre distintos servidores

Las peticiones de los clientes se redirigen a la máquina que más desocupada se encuentre en ese momento

Mejora de rendimiento de la aplicación No es tan sencillo como añadir una nueva máquina y ya

está Además 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)

Page 57: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Acceso a datos

Los servidores de aplicaciones proveen facilidades para administrar conexiones a bases de datos relacionales

Oracle, SQL Server, DB2… Los componentes (las clases que implementan la lógica

del negocio) acceden a ellas de forma estándar Independiente de la base de datos subyacente

También suelen permitir acceder a otros tipos de fuentes de datos:

Tales como distintos ERP (SAP, Vaan...), repositorios XML, etc.

Los servidores de aplicaciones son también importantes, por tanto, como mecanismo de integración de sistemas heredados

Page 58: 01. introducción al web

César F. AcebalDaniel F. Lanvin

“Pooling” de conexiones

Abrir una conexión a una base de datos suele ser un proceso costoso

No es viable abrir una nueva conexión por cada consulta a la base de datos

Penalizaría enormemente el rendimiento de la aplicación

Los servidores de aplicaciones suelen contar con una serie de conexiones permanentemente abiertas que distribuye de forma transparente a los distintos procesos

Se debería poder configurar el número de conexiones abiertas, e incluso la política de asignación

Page 59: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Gestión transaccional

Son un elemento básico de cualquier aplicación comercial

Evitan que haya información inconsistente Sería complejísimo implementarlas “a mano” Con un servidor de aplicaciones que tenga esta

característica, bastaría con indicarle dónde empieza y termina la transacción

Encargándose él de deshacer los pasos intermedios en caso de un error del sistema

Transacción: secuencia de pasos que, o se ejecutan todos, o si no el sistema queda en el estado original

Transacción: secuencia de pasos que, o se ejecutan todos, o si no el sistema queda en el estado original

Page 60: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Tecnologías actuales

Actualmente, las dos plataformas más comunes son J2EE y, más recientemente, ha surgido .NET

De hecho, hasta hace poco hablar de servidores de aplicaciones era prácticamente hablar de J2EE

(aunque no debemos hacer tal asociación)

Page 61: 01. introducción al web

César F. AcebalDaniel F. Lanvin

Ejemplo: arquitectura J2EE