Introducci N A Arquitectura Web
Franco Bulgarelli
Versión 1.1
Agosto 2014
Repaso de arquitectura
Arquitectura Web
Introducción
Un poco de historia
La Web tradicional
Web 2
Arquitectura en detalle
Procesamiento
Respuesta
Pedido
Presentación
Diseño en Arquitecturas Web
Declarativas vs programáticas
Aplicación Web MVC Server Side
Aplicación Web MVC Server Side ajaxiana Aplicación Web MVC Client Side
Y el estado, ¿donde está?
Material complementario
Para el que quiera investigar
Repaso de arquitectura
● ¿Qué entendemos por arquitectura?
○ Habíamos dicho que había distintos enfoques, más o menos
complementarios: diseño a alto nivel, diseño de los aspectos difíciles de
cambiar y diseño centrado en los requerimientos no funcionales.
●La arquitectura entonces sigue tratando de determinar componentes, roles y
comunicación, a un nivel tanto lógico como físico.
● La arquitectura física nos impone importantes restricciones sobre nuestra
arquitectura lógica (alto nivel), y en nuestro diseño (cuando bajamos a detalle).
● Dentro de las arquitecturas físicas, la diferenciación que más nos interesa en este momento es centralizada vs distribuida, es decir, si los componentes de
persistencia, modelo y presentación estarán en el mismo nodo o no.
○ En Arena, modelo y presentación son centralizados.
Arquitectura Web
Introducción
● Los sistemas Web nos proponen una arquitectura distribuida
○ Los componentes están distribuidos en dos tipos de nodos: clientes
(muchos) y servidores (uno, al menos a nivel lógico)
●Los clientes se comunican con el servidor siguiendo un protocolo de
pedidorespuesta:
○ Un cliente hace un pedido, el servidor lo procesa y responde.
○ El cliente se encarga de presentar (renderizar) la respuesta al usuario final
○ La comunicación ocurre a través de redes Intranets o la misma Internet,
empleando un protocolo llamado HTTP
●Los clientes son responsables de presentar la información de la respuesta al
usuario, empleando tecnologías específicas de la Web.
Un poco de historia
La Web tradicional
Las tecnologías que se emplean para la construcción de aplicaciones Web no son las
mejores para hacer aplicación "dinámicas" (aplicaciones con un razonable nivel de
interactividad y responsividad de la GUI), porque no fueron diseñadas para tal fin.
¿Por qué decimos esto? La Web, en su concepción original, era un servicio concebido
para compartir contenido estático (textos académicos, por ejemplo) entre usuarios de
computadoras personales con capacidad de procesamiento muy limitada: alguna
organización (como una universidad) publicaba estos contenidos, y los usuarios se
limitaban a consultarlos. Es decir, estas aplicaciones de la primera Web (a veces renombrada luego como Web 1.0) eran fundamentalmente:
● no interactivas
● operaban sobre contenido poco mutable
● de sólo texto
● de comunicación unidireccional (la información siempre viaja desde el servidor al
cliente, a pedido de un cliente)
Por esto, HTTP. el protocolo de comunicación empleado en la Web es:
● PedidoRespuesta (se abre una conexión por cada pedido, que surge del cliente, y el servidor la cierra cuando ha enviado la respuesta)
● Stateless (el protocolo persé no maneja ninguna noción de memoria de pedidos
anteriores)
● Textual (se intercambian mensajes de sólo texto)
● Basado en códigos de respuesta (incluso para los flujos de error; no hay memoria
compartida, continuaciones, excepciones ni eventos) Esto es esquemático y en su forma más básica, el protocolo es complejo y presenta
muchos aspectos como tipos de contenido, métodos, cachés y conexiones persistentes,
etc, que modifican sustancialmente la visión anterior.
Web 2
El protocolo HTTP nos impone una forma de comunicación mucho menos rica que el paso
de mensajes entre objetos, con lanzamiento de excepciones, en un ambiente con estado
y efectos.
...
Regístrate para leer el documento completo.