Está en la página 1de 48

Arquitectura de Software

Clase 6:
Arquitecturas Web
1
Objetivos
Conocer la evolucin de la web y de las diferentes
tecnologas
Conocer los modelos de arquitecturas web para el
desarrollo de aplicaciones
2
Temas
1. Evolucin de la Web
2. Tecnologas Web
3. Arquitecturas Web
3
Evolucin de la web
Internet
Es una red de computadoras, formada a su vez por
muchas redes independientes, que se pueden comunicar
unas con otras, intercambiar mensajes y compartir
informacin en forma de archivos
Contenido (pginas web)
Correo electrnico (E-Mail)
Transferencia de archivos (FTP)
Buscadores
Conferencias/Chats
Noticias
4
Evolucin de la web
Web 1.0
1991, Tim Berners Lee, crea la World Wide Web
Propuso un nuevo sistema de hipertexto para compartir
documentos
Sistema basado en hipertexto, que permite clasificar
informacin de diversos tipos
Funciona con hipertexto y grficos e incluye efectos
multimedia
Es considerado como el acceso ms sencillo y
comprensible al universo de la informacin disponible en
Internet
5
Evolucin de la web
Web 1.0
Pocos productores de contenidos
Muchos lectores de contenidos
La actualizacin de los sitios no se realiza en forma
peridica
6
Evolucin de la web
HTTP (HyperText Transfer Protocol)
Protocolo de transferencia de hipertexto
Es el mtodo ms comn de intercambio de informacin
en la world wide web, el mtodo mediante el cual se
transfieren las pginas web a un ordenador
Es un protocolo sin estado, es decir no guarda ninguna
informacin sobre conexiones anteriores
El desarrollo de aplicaciones web necesita
frecuentemente mantener estado
7
Evolucin de la web
HTTP


8
Evolucin de la web
Sesin
Una sesin permite agrupar un conjunto de peticiones
relacionadas
Puede llevar la secuencia de pginas que un usuario visita
en un sitio web. Desde que entra en nuestro sitio, hasta
que lo abandona.
Aspecto muy delicado del sistema
Cach de entidades:
Por pgina
Por sesin de usuario
En contexto de la aplicacin

9
Evolucin de la web
Sesin
Para implementar sesiones web se suele hacer uso de:
Cookies
Son bloques de informacin enviados por el servidor web y
guardados en el navegador del usuario. Las cookies de sesin
caducan cuando se cierra el navegador.
Reescritura de URLs:
Ejem. (index.php?session_id=AF3456GHJKL987GGFDFY78872ET)
An cuando el navegador del usuario no
acepta cookies, en este caso se utiliza la
reescritura de URLs.
10
Evolucin de la web
Web 2.0
Segunda generacin de la Web basada en comunidades
de usuarios
Se pasa de una web informativa, creada por expertos a
una web social, donde cualquiera puede participar
fcilmente
Basa su desarrollo en CMS (Sistemas de Gestin
Contenidos)
Herramientas de colaboracin

11
Evolucin de la web
Web 2.0
Aparecen aplicaciones Web muy potentes y sencillas de
manejar enfocadas al usuario final

12
Evolucin de la web
Web 2.0
El usuario es el protagonista central que crea y comparte
(prosumidores)
Mayor usabilidad, no es necesario grandes conocimientos
tcnicos para crear un espacio en Internet
Conocimiento compartido en base a la suma de esfuerzos
individuales. Cunto ms usuarios comparten mayor
utilidad del servicio
Aparicin de las redes sociales
13
Evolucin de la web
Componentes principales de la Web 2.0
14
Evolucin de la web
CMS (Content Management System)
Un sistema de gestin de contenidos permite la creacin y
administracin de contenidos principalmente en pginas
web
15
Caractersticas:
o Organizacin del sitio web
o Publicacin de Contenidos
o Escalabilidad e implementacin
de nuevas funcionalidades
o Administracin de usuarios
o Diseo y aspecto esttico del
sitio
Evolucin de la web
CMS
Mantiene una interfaz que controla una o varias base de
datos donde aloja el contenido
El sistema permite manejar de manera independiente el
contenido y el diseo


16
Evolucin de la web
CMS
Soporte de diferentes capacidades para contenidos:
Navegacin y men
Administrador de Imgenes
Disposicin de mdulos modificable
Encuestas
Feed de Noticias
Publicidad
Estadsticas de visitas
Archivos e historial
Valoracin de contenidos
17
Evolucin de la web
Productos CMS
WordPress
Drupal
Joomla
OpenCMS
Alfresco
Magnolia
eZ Publish
Hippo
18
Evolucin de la web
Portales
Unificador de iniciativas web y organizador de informacin
dentro de la empresa. Es la ventana de acceso principal.
Permite que cada usuario disponga de una o varias
pginas compuestas y que pueda personalizarlas.
19
Caractersticas:
o Acceso basado en roles de las
aplicaciones
o Contenido y funciones de seguridad
o Personalizacin y bsqueda
o Gestor de contenidos y Workflows

Evolucin de la web
Portales
Generalmente proveen portlets (o webparts)
Un portlet es una mini-aplicacin web interactiva que
devuelve fragmentos de HTML
Los portales proporcionan aplicaciones pre-construidas en
el que es posible instalar nuevos portlets



20
Evolucin de la web
Portales
Comparativa de un portlet local que consume datos de
un servicio web y un portlet remoto:



21
Evolucin de la web
Servidores de Portales
WebSphere Portal Server
Exo Portal
Microsoft SharePoint
uPortal
JBoss Portal
Oracle WebLogic Portal
Jetspeed
Liferay


22
Tecnologas Web
HTML
CSS
JavaScript
XML
XHTML
XSLT
Ajax
jQuery


23
Tecnologas Web
XML (Extensible Markup Language)
Diseado especialmente para los documentos de la web
Permite definir la gramtica de lenguajes especficos. Es
decir los diseadores pueden crear sus propios etiquetas.
24
Tecnologas Web
JSON
Es considerado una alternativa a XML
Diseado para tener menos texto descriptivo
Ya ha sido adoptado por grandes empresas de software en
Internet
25
Tecnologas Web
26
Aplicaciones estticas
Tecnologas Web
27
Aplicaciones dinmicas
Tecnologas Web
Lenguajes de Script
Son lenguajes de programacin que se insertan dentro de
las pginas web y que sern ejecutados por medio de un
intrprete en el servidor
28
Existen diferentes:
o Perl
o PHP
o ASP
o JSP
o ColdFusion
Tecnologas Web
Lenguajes interpretados
Es un lenguaje de programacin que est diseado para
ser procesado por medio de un intrprete, en contraste
con los lenguajes compilados
Soportan el desarrollo de aplicaciones web como
tecnologas del lado del servidor
29
Existen diferentes:
o Ruby
o Python
o Pike
o ActionScript
Tecnologas Web
REST (Representational State Transfer)
Es considerado ya un conjunto de arquitecturas de
servicios distribuidos que cumple con una serie de
requisitos:
Los servicios no publican un conjunto arbitrario de mtodos u
operaciones. Lo que se publica son recursos
Cada recurso posee un estado interno, que no puede ser
accedido directamente desde el exterior. Lo que s es accesible
desde el exterior es una o varias representaciones de dicho
estado. Por representacin se entiende un formato de datos
concreto usado para la transferencia de una copia del estado
pblico del recurso entre el cliente y el servidor.
30
Tecnologas Web
REST (Representational State Transfer)
REST es tambin un estilo de arquitectura para el diseo
de aplicaciones de red
31
En lugar de usar otros mecanismos
como CORBA, RPC o SOAP para
conectarse, utiliza generalmente el
protocolo HTTP para realizar
llamadas entre aplicaciones, porque
sigue los principios REST.

Tecnologas Web
REST
La respuesta de REST puede ser en diferentes formatos,
por ejemplo JSON. Tradicionalmente es en XML:



32
Tecnologas Web
REST
Aplicaciones REST utilizan solicitudes HTTP para enviar
datos (crear y/o actualizar), leer datos (por ejemplo
realizar consultas) y eliminar datos. Por lo tanto, REST
utiliza HTTP para las cuatro operaciones CRUD (Create /
Read / Update / Delete)
Y estas operaciones pueden realizar diferentes acciones
internamente, como validaciones o actualizaciones, etc.

33
Tecnologas Web
REST
GET es para leer datos, POST es normalmente usado para
crear datos
REST no define un formato XML estndar, aunque
especifica una forma de apariencia
Como enfoque de programacin, REST es una alternativa
ligera a los servicios web SOAP. Estos son denominados
RESTful.
34
Tecnologas Web
Llamada mensaje SOAP







Llamada mensaje REST
35
Arquitecturas Web
36
Modelo con aplicaciones CGI
Es el modelo dinmico ms primitivo
Presentacin, negocio y persistencia mezclados
El estado se almacena en el cliente y cada peticin supone
una ejecucin completa
Arquitecturas Web
37
Modelo con lenguajes de Script
Separacin de responsabilidades
Pginas ASP, PHP, JSP, Perl, etc. llevan la lgica de
presentacin
Otros componentes asumen la responsabilidades de
negocio y datos
Arquitecturas Web
38
Modelo basado en patrones
Patrn: Modelo Vista Controlador (MVC)
Controlador: navegacin de la aplicacin
Modelo: implementacin del dominio de negocio y datos
Presentacin: pginas estticas y dinmicas
Arquitecturas Web
39
Modelo basado en patrones
Page Template
Define una nica pgina plantilla que genera todas las pginas
web
Page Controller
Establece un controlador comn que contiene todos los
componentes o partes de las pginas web que son comunes al
resto de controladores de cada una de las pginas
Front Controller
Propone un nico controlador que centralice todas las
peticiones y que est implementado con un manejador y un
disparador de peticiones
Arquitecturas Web
40
Modelo multicanal
Muchos canales
Soluciones basadas en XML y XSLT
Hacia multidispositivos:
Responsive web Design
Arquitecturas Web
41
Modelo multicapa
Arquitectura 2 capas (web + aplicacin)
Arquitectura 3 capas(web + aplicacin + datos)






Arquitectura 4 capas (web + controlador + negocio +
datos)
Arquitecturas Web
42
Modelo multicapa
Arquitectura 6 capas (web + controlador web +
controlador de negocio + negocio + acceso a datos +
datos)
Arquitecturas Web
43
Modelo multicapa
El modelo de capas permite a las aplicaciones web poder
distribuirse segn la necesidad y a futuro asegurar la
escalabilidad:

Arquitecturas Web
44
Modelo con framework
Framework: Conjunto de
componentes que componen
un diseo reutilizable que
facilita y agiliza el desarrollo de
sistemas
Implementan diversos patrones
de diseo y buenas prcticas
Existen diferentes tipos, cada
uno se especializa segn su
objetivo
Arquitecturas Web
Modelo con framework
Frameworks de presentacin
Struts, JSF, ADF, ICEFaces, Richfaces
Frameworks de componentes/servicios
Spring, Symfony, Zend, OSGi
Frameworks de persistencia
Hibernate, TopLink, iBatis, ADO.NET
Frameworks Web
Play, Ruby on Rails, CodeIgniter, Laravel, Silverlight, JavaFX
Frameworks JavaScript para aplicaciones web
Backbone.JS, AngularJS, Ember, NodeJS
45
Evolucin de la web
Tendencias en la web
Computacin en la nube y vinculacin de datos y de
aplicaciones
Agentes de usuario, es el modelo hipottico de un
programa que sera capaz de actuar en nombre de un
usuario humano
Mayor ancho de banda, facilitando todo tipo de las
aplicaciones multimedia
Ubicuidad de la web, estar en toda clase de dispositivos


46
Resumen
La evolucin de la web, desde la web 1.0 soportada solo por
HTML hasta los servidores de portales y gestores de
contenidos, conos de la Web 2.0
Diversas tecnologas de la web: CSS, JavaScript, XML, XSLT,
Ajax, jQuery, etc.
Las aplicaciones web generalmente son dinmicas porque
generan contenido con tecnologas del cliente o servidor
REST es un estilo de arquitectura para el diseo de
aplicaciones de red que utiliza HTTP para realizar llamadas
entre las aplicaciones
Los framework son conjunto de componentes que
componen un diseo reutilizable que facilita y agiliza el
desarrollo de sistemas
47
Preguntas?
Qu arquitecturas y tecnologas utilizara hoy para
una aplicacin web?
48

También podría gustarte