Arquitecturas web y la nube
description
Transcript of Arquitecturas web y la nube
Arquitectura de Software
Clase 7:
Arquitecturas Web y la Nube
1
Objetivos
Revisar la evolución de la Internet y de las
diferentes tecnologías
Presentar los modelos de arquitecturas Web
Comprender el concepto y las capas de
servicio de la computación en la nube
2
Temas
Arquitecturas Web
◦ Evolución
◦ Modelos
◦ REST
Computación en la nube
3
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 información en forma de archivos
World Wide Web (www)
Correo electrónico (E-Mail)
Transferencia de archivos (FTP)
Buscadores
Conferencias/Chats
Noticias
4
Evolución 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
información de diversos tipos
Funciona con hipertexto y gráficos e incluye efectos
multimedia
Es considerado como el acceso más sencillo y
comprensible al universo de la información
disponible en Internet
5
Evolución de la web
Web 1.0
Pocos productores de contenidos
Muchos lectores de contenidos
La actualización de los sitios no se realiza en forma
periódica
6
Evolución de la web
HTTP
Protocolo de transferencia de hipertexto
Es un protocolo sin estado, es decir no guarda
ninguna información sobre conexiones anteriores
El desarrollo de aplicaciones web necesita
frecuentemente mantener estado. Para esto se usan
las cookies, que es información que un servidor
puede almacenar en el sistema cliente.
Esto permite a las aplicaciones web
instituir la noción de “sesión”
7
Evolución de la web
HTTP
8
Evolución de la web
Gestión de la Sesión
Aspecto muy delicado del sistema
Caché de entidades en
◦ Sesión de usuario
◦ Contexto de la aplicación
Caducidad de la información
Refresco de datos
Rendimiento del sistema. Consumo
de recursos del sistema.
9
Evolución de la web
Web 2.0
Segunda generación 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
fácilmente
Aparecen aplicaciones Web muy potentes y sencillas
de manejar enfocadas al usuario final
Basa su desarrollo en CMS (Sistemas de Gestión
Contenidos)
Herramientas de colaboración
10
Evolución de la web
Web 2.0
11
Evolución de la web
Web 2.0
El usuario es el protagonista central que crea y
comparte (prosumidores)
Mayor usabilidad, no es necesario grandes
conocimientos técnicos para crear un espacio en
Internet
Conocimiento compartido en base a la suma de
esfuerzos individuales. Cuánto más
usuarios comparten mayor utilidad
del servicio
Redes sociales
12
Evolución de la web
Componentes principales de la Web 2.0
13
Evolución de la web
CMS (Content Management System)
Un Sistema de Gestión de Contenidos permite la
creación y administración de contenidos
principalmente en páginas web
14
Evolución de la web
CMS (Content Management System)
Consiste en 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 diseño
15
Evolución de la web
Portales
Unificador de iniciativas web y organizador de
información dentro de la empresa. Es la ventana de
acceso principal.
Existen productos que permite
que cada usuario disponga de
una o varias páginas compuestas
y que pueda personalizarlas.
16
Evolución de la web
Portales
Generalmente proveen portlets (o webparts)
Un portlet es una mini-aplicación web interactiva
que devuelve fragmentos de HTML
Los portales proporcionan aplicaciones
pre-construidas en el que es
posible instalar nuevos portlets
17
Evolución de la web
Portlet local que consume datos de un servicio web
y un portlet remoto
18
Arquitecturas Web
Diversas tecnologías
HTML
CSS
JavaScript
XML
XHTML
XSLT
Ajax
jQuery
…
19
Arquitecturas Web
XML (Extensible Markup Language)
Diseñado especialmente para los documentos de
la web
Permite definir la gramática de lenguajes
específicos . Es decir los diseñadores pueden
crear sus propios etiquetas.
20
Arquitecturas Web
JSON
Es considerado una alternativa a XML
Diseñado para tener menos texto descriptivo
Ya ha sido adoptado por grandes empresas de
software en Internet
21
Arquitecturas Web
22
Aplicaciones estáticas
Arquitecturas Web
23
Aplicaciones dinámicas
Arquitecturas Web
24
Modelo con aplicaciones CGI
Es el modelo dinámico más primitivo
Presentación, negocio y persistencia mezclados
El estado se almacena en el cliente y cada
petición supone una ejecución completa
Arquitecturas Web
25
Modelo con lenguajes Scripting
Separación de responsabilidades
Páginas ASP, PHP, JSP, Perl, etc. llevan la lógica de
presentación
Otros componentes asumen la responsabilidades
de negocio y datos
Arquitecturas Web
26
Modelo Vista Controlador
Incorporación del patrón de diseño MVC
◦ Controlador: navegación
◦ Negocio y datos: componentes
◦ Presentación: páginas estáticas y dinámicas
Arquitecturas Web
27
Modelo de aplicaciones multicanal
Muchos canales
Soluciones basadas en XML y XSLTs
Arquitecturas Web
28
Modelo multicapa
Arquitectura 2 capas (Web + aplicación)
Arquitecturas 3 capas(Web + aplicación + datos)
Arquitecturas 4 capas (Web + controlador +
negocio + datos)
Arquitecturas Web
29
Modelo con framework
Framework: Conjunto de
componentes que componen
un diseño reutilizable que
facilita y agiliza el desarrollo
de sistemas Web.
De diferentes tipos:
◦ Presentación
◦ Componentes/Servicios
◦ Persistencia
◦ De todos los anteriores
Arquitecturas Web
REST (Representational State Transfer)
Se refiere al hecho de que HTTP es
fundamentalmente sin estado
REST es un estilo de arquitectura para el diseño de
aplicaciones de red. En lugar
de usar mecanismos complejos,
tales como CORBA, RPC o
SOAP para conectarse, utiliza
HTTP para realizar llamadas
entre aplicaciones
30
Arquitecturas Web
REST
31
Arquitecturas 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)
REST es una alternativa ligera a mecanismos como
RPC (Remote Procedure Calls) y servicios web
Los servicios son accedidos como recursos
32
Arquitecturas Web
REST
GET solo lee datos, POST solo modifica datos
REST no tiene un formato XML estándar, aunque
especifica una forma de apariencia
Como un enfoque de progra-
mación, REST es una alternativa
ligera a los servicios web.
Estos son denominados RESTful
33
Arquitecturas Web
Mensaje SOAP
Mensaje REST
34
Arquitecturas Web
Tendencias en la web
Computación en la nube y vinculación de
datos y de aplicaciones
Agentes de usuario, es el modelo hipotético
de un programa que sería 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
35
Computación en La Nube
Es un sistema informático basado en Internet y
centros de datos remotos para gestionar servicios
de información y aplicaciones.
La computación en la nube permite que los
consumidores y las empresas gestionen archivos y
utilicen aplicaciones sin necesidad de instalarlas.
Esta tecnología ofrece un uso mucho más eficiente
de recursos, como almacenamiento, memoria,
procesamiento y ancho de banda, al proveer
solamente los recursos necesarios en cada
momento.
36
Computación en La Nube
37
Computación en La Nube
El término “nube” se utiliza como una metáfora de
Internet y se origina en la nube utilizada para
representar Internet en los diagramas de red como
una abstracción de la infraestructura que representa.
Un ejemplo de computación en nube es el sistema
de documentos y aplicaciones electrónicas Google
Docs / Google Apps. Para su uso no es necesario
instalar software o disponer de un servidor, basta
con una conexión a Internet para
poder utilizar cualquiera de sus
servicios.
38
Computación en La Nube
Arquitectura de la capa de servicio
Infraestructura como Servicio (IaaS)
Es la capa mas baja. La idea básica es la de externalización
de servidores para espacio en disco, base de datos,
routers, etc. en lugar de tener un servidor local y toda la
infraestructura necesaria para la conectividad y
mantenimiento dentro de una organización. Con una IaaS
lo que se tiene es una solución en la que se paga solo
por consumo de recursos usados: espacio en disco
utilizado, tiempo de CPU, espacio en base de datos,
transferencia de datos. Las IaaS permiten desplazar una
serie de problemas al proveedor relacionados con la
gestión de las máquinas y su mantenimiento. 39
Computación en La Nube
Arquitectura de la capa de servicio
Plataforma como Servicio (PaaS)
La idea básica es proporcionar un servicio de plataforma
que permita desarrollar software a través de la red. El
proveedor es el encargado de escalar los recursos en
caso de que la aplicación lo requiera, del rendimiento
óptimo de la plataforma, seguridad de acceso, etc.
40
Computación en La Nube
Arquitectura de la capa de servicio
Plataforma como Servicio (PaaS)
Para desarrollar software se necesitan BD, servidores,
redes, y herramientas de desarrollo.
Con PaaS uno se olvida del
personal para su uso y te
centras en innovar y desarrollar,
lo que permite aumentar la
productividad de los equipos
de desarrollo.
41
Computación en La Nube
Arquitectura de la capa de servicio
Software como Servicio (SaaS)
Esta en la capa mas alta y consiste en la entrega de una
aplicación completa como un servicio.
El proveedor SaaS dispone de una aplicación estándar
desarrollada en algunos casos por él mismo que se
encarga de operar y mantener y con la que da servicio a
multitud de clientes a través de la red, sin que estos
tengan que instalar ningún software adicional.
Un ejemplo claro es la aplicación para el manejo del
correo electrónico como GMail, Outlook, etc.
42
Computación en La Nube
Arquitectura de la capa de servicio
43
Computación en La Nube
Virtualización en la nube
La virtualización es esencial en el desarrollo óptimo
de la computación en las nube, y está referida
principalmente al tema de plataforma. Se puede
decir que la virtualización es una abstracción de los
recursos tecnológicos que permite a los servidores
crear dispositivos virtuales la cual pueden ser usados
para aumentar los recursos. Es interesante el tema
de la virtualización que permite tratar a un servidor
como muchos servidores. Otro tema interesante es
el clustering , que permite tratar a muchos
servidores como uno solo.
44
Computación en La Nube
Proveedores
Amazon Web Services
Firehost
Rackspace
Verizon (Terremark)
IBM
CSC
Softlayer
Microsoft
45
Resumen
La evolución de la web, desde HTML hasta los servidores de portales y gestores de contenidos
Diversas tecnologías HTML, CSS, JavaScript, XML, Ajax, jQuery, etc.
Aplicaciones web estáticas y dinámicas
Diferentes modelos para arquitecturas en la web
REST es un estilo de arquitectura para el diseño de aplicaciones de red que utiliza HTTP para realizar llamadas entre las aplicaciones
La computación en la nube es un sistema informático basado en Internet y centros de datos remotos para gestionar servicios de información y aplicaciones. Ofrece principalmente 3 capas de servicio.
46
¿Preguntas?
47
¿Qué productos y/o tecnologías en la
nube estas usando?