• No se han encontrado resultados

Arquitectura de Aplicaciones Web

N/A
N/A
Protected

Academic year: 2021

Share "Arquitectura de Aplicaciones Web"

Copied!
14
0
0

Texto completo

(1)

Arquitectura de Aplicaciones Web

Servicios y Aplicaciones Telem´aticas

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC)

[email protected]

5 de noviembre de 2008

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

c

2008 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike disponible en http://creativecommons.org/licenses/by-sa/2.1/es

(2)

Arquitectura SW de las aplicaciones Web

Es importante mantener tan separados como sea posible l´ogica y

f´ısicamente los siguientes niveles de la arquitectura a la hora de implementar cada uno de ellos:

Datos en almacenamiento estable Lógica de la Aplicación Web Flujo de interacción

Nivel de Presentación APIs Cliente

Servidor

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Arquitectura SW de las aplicaciones Web

Datos en almacenamiento estable

Datos almacenados en ficheros, pero normalmente usando una base de datos relacional en el lado del servidor

El primer paso en el desarrollo de la aplicaci´on suele ser pensar

en qu´e datos almacenar, de d´onde conseguirlos, c´omo

representarlos

L´ogica de la Aplicaci´on Web

C´odigo que implementa la funcionalidad propia de la aplicaci´on Web. Define qu´e puede hacer el usuario gracias a la

aplicaci´on. Ej. Acumular en el carrito de la compra productos

que quiere comprar, Realizar la orden de compra una vez que el usuario no quiere m´as productos

Si se cambia la l´ogica de la aplicaci´on Web se altera la naturaleza de la aplicaci´on: es otra aplicaci´on

Es la ´unica forma de acceder a los datos

Programado en el lado del servidor (PHP, Perl, Ruby, Python, Java, .NET)

(3)

Arquitectura SW de las aplicaciones Web

Flujo de interacci´on

Define la navegaci´on del usuario a trav´es de p´aginas HTML. Ej. mostrar cat´alogo de productos como p´agina

principal, si selecciona producto mostrar p´agina con contenidos del carrito, al terminar pedir tarjeta de cr´edito,...

Es posible intercambiar el flujo de interacci´on por otro, sin modificar la l´ogica de la aplicaci´on Web

Programado en el lado del servidor (PHP, Perl, Ruby, Python, Java, .NET)

Nivel de Presentaci´on / APIs

La interfaz con el usuario se realiza a trav´es del navegador

Se mantienen separados, por un lado la estructura de la p´agina (marcado HTML), y por otro el aspecto visual (hojas de estilo CSS)

Proporcionando APIs se abre la posibilidad de que terceros definan su propio nivel de presentaci´on y su propio flujo de interacci´on (Ej. mashups)

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Peri´

odico electr´

onico

Datos: art´ıculos, usuarios (presentes en casi todas las

aplicaciones) y permisos sobre el web (LDAP, base de datos, etc.)

L´ogica de la Aplicaci´on web: mecanismos para subir y editar informaci´on en la Web, gesti´on de estad´ısticas, gesti´on de publicidad

Nivel de Presentaci´on: Maquetaci´on autom´atica usando plantillas

Flujo de interacci´on, presentaci´on: ver www.elpais.es, www.elmundo.es

(4)

Foro de noticias

Muy similar al peri´odico electr´onico, pero a˜nadiendo como datos de la aplicaci´on los comentarios de los usuarios

Base de datos m´as y m´as compleja: comunidades,

certificaciones de confianza, modificaci´on de art´ıculos y comentarios, etc.

L´ogica de la aplicaci´on: mecanismos para puntuaci´on y

selecci´on de noticias, m´odulo de correo electr´onico para enviar

res´umenes y recomendaciones, m´odulo de paso a PDF para

impresi´on y/o conversi´on en “documentos”, buscador (y buscador personalizado)

Nivel de Presentaci´on: m´odulos XML para servir titulares Flujo de interacci´on, presentaci´on: ver slashdot.org, meneame.net, barrapunto.com

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Comercio electr´

onico

Datos: base de datos con productos, cuentas de clientes, proveedores, etc.

L´ogica de la aplicaci´on: seguridad para gesti´on de datos de facturaci´on, integraci´on con el sistema de correo electr´onico (gesti´on de incidencias), m´odulo de acceso a entidades financieras (gesti´on de cobros), comentarios y cr´ıticas de clientes, recomendaci´on autom´atica de art´ıculos, estad´ısticas, programas de afiliados, etc.

Presentaci´on: formularios y plantillas para acceso al sitio

(5)

Aula virtual

Datos administrativos (listados, horarios, tutor´ıas, etc.)

Datos: Streaming de clases grabadas

L´ogica de la aplicaci´on: documentos en l´ınea (subida, edici´on, organizaci´on), incluyendo apuntes de alumnos, foros de

interacci´on, chats, integraci´on con correo electr´onico,

encuestas, ex´amenes y pruebas en l´ınea, gesti´on de pr´acticas (entrega, correcci´on semiautom´atica, etc.)

Flujo de interacci´on, presentaci´on: ver gsyc.es/moodle

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Campus virtual

A˜nade al aula virtual la siguiente l´ogica de aplicaci´on: Matriculaci´on y gesti´on de datos administrativos Gesti´on de informaci´on de proyectos

Servicios de comunicaci´on: correo electr´onico, foros, documentaci´on, etc.

Relaci´on con el campus f´ısico (localizaci´on, control de acceso, etc.)

Biblioteca virtual

Gesti´on de compras y de inventario

Obtenci´on de informes de estado y estad´ısticos

(6)

Sitio de fotos

Datos: fotos

L´ogica de la aplicaci´on: mecanismos para retocar las fotos, clasificar las fotos en ´albumes, buscar fotos, etiquetar las fotos con descripciones para facilitar la b´usqueda, a˜nadir

comentarios a las fotos, realizar pase autom´atico de fotos,

mandar a imprimir (con gesti´on de cobro)

Flujo de interacci´on, presentaci´on: ver www.flickr.com, picasaweb.google.es

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Red social

Similar a foro de noticias + sitio de fotos

L´ogica de la aplicaci´on: mecanismos para gesti´on del grafo social: X se hace amigo de Y, Z pertenece al grupo de inter´es G, informe de actividades de un usuario a los miembros de su grafo social

Flujo de interacci´on, presentaci´on: ver www.facebook.com, www.tuenti.com

(7)

Aplicaciones con geolocalizaci´

on

Datos: los usuarios a˜naden datos geolocalizados: fotos, rese˜nas de lugares, ...

L´ogica de la aplicaci´on: b´usqueda de direcciones, lugares en funci´on de la localizaci´on del usuario (WIFI, GPS, GSM, manualmente)

Interconexi´on con Red Social: chatear con amigos que est´en cerca de m´ı

Flujo de interacci´on, presentaci´on: ver maps.google.com, maps.yahoo.com, rummble.com, www.life360.com

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Otros ejemplos

Reservas e informaci´on tur´ıstica Agencia de bolsa

Sitio de alojamiento de listas y p´aginas personales Buscador de Internet

(8)

Tecnolog´ıas SW

En el cliente:

En el cliente s´olo cabe elegir entre un navegador web u otro (Firefox, MS Internet Explorer, Opera,...)

La elecci´on delimita el conjunto de tecnolog´ıas SW

disponibles: CSS, XHTML, HTML, DOM, JavaScript, AJAX, Flash,...

En el servidor:

En el servidor hay m´as grados de libertad en cuanto a las tecnolog´ıas a utilizar:

Servidor Web (CGI, FastCGI, Servlets, SSI) Tecnolog´ıas de scripting en el lado del servidor Base de datos

Frameworks

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Servidor Web

Dos servidores principales: Apache HTTP Server de la Apache Software Foundation, Internet Information Services (IIS) de Microsoft

FastCGI: con CGI hay que arrancar el programa auxiliar cada vez que llega una nueva petici´on al servidor Web. Con FastCGI se deja arrancado el programa auxiliar, que crea un thread para cada nueva petici´on

M´odulos de Apache compilados: usar CGI o FastCGI para arrancar scripts implica arrancar el int´erprete. Los m´odulos de Apache

permiten integrar el c´odigo del int´erprete con el c´odigo del servidor Web, acelerando la ejecuci´on de programas auxiliares en scripts

(9)

Servidor Web

Servlets: tecnolog´ıa Java para generaci´on de contenido

din´amico. Los servlets se integran en un contenedor web que

interact´ua con el servidor Web.

Los Java Servlets son clases Java que corren en el servidor, devolviendo c´odigo HTML al servidor.

Contenedores: Java System Application Server, Apache Tomcat, IBM WebSphere, Oracle Application Server, Apple WebObjects

SSI: Server Side Include

Alternativa a CGI y FastCGI para generaci´on de c´odigo din´amico

Primera aproximaci´on a la inclusi´on de c´odigo mezclado con el marcado HTML.

En funci´on de la extensi´on (.shtml) el servidor sab´ıa que deb´ıa analizar el fichero en busca de directivas que, tras ejecutarse, insertaban nuevo c´odigo HTML en el lugar en el que aparec´ıan. Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web

Arquitectura SW Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Tecnolog´ıas de

scripting

en el lado del servidor

En lugar de incluir directivas SSI en las p´aginas HTML se puede utilizar la potencia de un lenguaje de scripting

Los lenguajes de scripting aportan mayor portabilidad frente a

los compilados: los scripts no necesitan ser recompilados para otro SSOO o arquitectura, siempre que exista un int´erprete

Son m´as lentos, pero cada vez menos.

Existen m´ultiples alternativas.

ASP/ASP.NET (Mundo Microsoft IIS) PHP

Python Ruby

Java. JSP (JavaServer Pages) es el equivalente en el mundo Java a ASP o PHP: c´odigo Java mezclado en las p´aginas

(10)

Base de datos

Normalmente se utilizan RDBMS (bases de datos relacionales), aunque hay otros modelos de BD (p.ej. orientadas a objetos, usada en Zope)

Oracle

Microsoft SQL Server IBM DB2

Open Source: MySQL, PostgreSQL

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Frameworks

Facilitan la programaci´on de Aplicaciones Web, simplificando la interfaz con la BD, la gesti´on de formularios, sesiones, Ajax, ... permitiendo al programador centrarse en los aspectos de la l´ogica de la Aplicaci´on Web

.NET framework Ruby on Rails

Java: Struts, Spring, Tapestry,... Python: Django, Zope

(11)

Arquitectura LAMP

LAMP: Linux, Apache, MySQL, Perl (PHP, Python, Ruby,...)

Acr´onimo utilizado para referirse a un conjunto de tecnolog´ıas com´unmente utilizadas en muchos sitios Web de ´exito (en el propio Google)

Alternativa del mundo del software libre a las plataformas de Microsoft (ASP) y Sun (Java)

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Arquitectura HW

Conjunto de m´aquinas, con sus componentes HW y software

de sistemas (SO, BD,...)

Se necesitan varios tipos de m´aquinas, cada una de ellas corriendo diferente sw de sistemas

Para comenzar se puede utilizar HW est´andar (PCs con

GNU/Linux p.ej.) Sitios como Google llevan esta soluci´on al

extremo: cientos de miles de PCs est´andar con GNU/Linux

En cuanto al SW de sistemas, cualquier distribuci´on de GNU/Linux est´andar, sin configuraci´on especial, vale para arrancar. Luego se puede ir configurando ajustando

par´ametros del kernel, de la instalaci´on de MySQL,...

Al final de un proyecto para desarrollar una aplicaci´on Web el coste del desarrollo del SW es grande, pero al principio hay

(12)

Arquitectura HW: ejemplo 1

Internet Router/ Cortafuegos Equilibrado de carga

Servidor HTTP Servidor HTTP Servidor HTTP

Servidor de Aplicaciones Servidor de Aplicaciones Servidor de Aplicaciones Base de Datos Router/ Cortafuegos servidor de cache memcached servidor de cache memcached servidor de cache memcached Equilibrado de carga N1 N2 N3 N4 N5

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Arquitectura HW: ejemplo 2

Wikipedia (2007) M´as de 75000 editores 5.300.000 art´ıculos (2M en ingl´es) En m´as de 100 lenguas 100 servidores en varias localizaciones geogr´aficas

(13)

¿D´

onde instalar el HW?

Instalaci´on tradicional en proveedor:

HW compartido: un proveedor de servicios de Internet o de hospedaje de sitios Web permite que se instale SW en una de sus m´aquinas (PC) junto al SW de otros. Soluci´on buena y barata para prototipar y lanzar la aplicaci´on Web.

HW dedicado: el proveedor dedica HW espec´ıfico para la aplicaci´on (ej. un PC). Puede dejarnos una cuenta (ellos instalan el SO) o dejarnos instalar el SO.

HW nuestro: nos dejan espacio, energ´ıa y conexi´on a la red. Nosotros ponemos el HW. Servicios: monitorizar la aplicaci´on Web y diagnosticar el problema por tel´efono vs. monitorizar s´olo el acceso a la red y rearrancar m´aquinas.

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

¿D´

onde instalar el HW?

Instalaci´on en la nube (cloud computing): mediante APIs se hace transparente el uso del HW del proveedor, usando recursos

virtuales. Permite empezar con poco y luego hacer escalar

f´acilmente gracias a que el proveedor tiene muy automatizada la configuraci´on / instalaci´on / cobro seg´un recursos utilizados

Framework en la nube. Se ofrece una plataforma de

desarrollo de aplicaciones (Rails, Django) en la red. Mediante APIs se puede subir c´odigo de la aplicaci´on Web.

Transparencia: no se sabe en qu´e m´aquinas correr´a:

gestionado por el proveedor, quien hace escalar. Ej. Google App Engine, Mosso.com, Force.com

Infraestructura en la nube. El proveedor ofrece servicios de m´as bajo nivel: host virtual en el que instalar uno u otro SO, capacidad de almacenamiento, ancho de banda. Ej. Amazon Web Services (Microsoft y otros est´an detr´as de este negocio).

(14)

¿D´

onde instalar el HW?

En casa:

Soluci´on para muy peque˜nas (PC a trav´es de ADSL) o muy grandes instalaciones.

Ej. de gran instalaci´on: Google (cientos de miles de m´aquinas).

Edificio, operadores para monitorizar, conexiones redundantes a la red el´ectrica, servicios de alimentaci´on ininterrumpida, sistemas antiincendios, contratos con varios proveedores de Internet,...

Departamento de Sistemas Telem´aticos y Computaci´on (GSyC) Arquitectura de Aplicaciones Web Arquitectura SW

Ejemplos de Aplicaciones Web Tecnolog´ıas SW Arquitectura HW

Referencias:

Cap´ıtulo 2 (Web Application Architecture) Building Scalable

Web Sites. Cal Henderson. O’Reilly 2006. http://proquest.safaribooksonline.com/0596102356

Referencias

Documento similar

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

El proyecto expuesto en este documento tiene como objetivo desarrollar una aplicaci´ on que permita dar soporte a la planificaci´ on, gesti´ on y validaci´ on de entregas y tareas

Figura 5.9 Comparaci´ on del ranking la mejor soluci´ on encontrada hasta cada iteraci´ on, entre el algoritmo de b´ usqueda y su respectiva b´ usqueda aleatoria, para cada funci´

Amplitud y secci´ on eficaz de dispersi´ on. Aproximaci´ on de Born. Dispersi´ on por ´ atomos con nube electr´ onica. Teor´ıa de la dispersi´ on por ondas parciales.

Como en el caso de los tipos enteros, los lenguajes suelen soportar varios tipos real, de modo que el programador pueda seleccionar aquel cuyo rango y precisi´on en el coeficiente

El inconveniente operativo que presenta el hecho de que la distribuci´ on de probabilidad de una variable aleatoria es una funci´ on de conjunto se resuelve mediante el uso de

Traba- jar con esta muestra permitir´ a que los resultados obtenidos se extiendan a estrellas tanto del disco como del halo de la Galaxia, pudiendo estudiar as´ı sus similitudes

Finally, the main objective of the work is to develop a complete study of the manifold multiplexer, its circuit model optimization and a complete design (from the ideal circuit model