Arquitecturas web y la nube

47
Arquitectura de Software Clase 7: Arquitecturas Web y la Nube 1

description

aprendiendo la nube

Transcript of Arquitecturas web y la nube

Page 1: Arquitecturas web y la nube

Arquitectura de Software

Clase 7:

Arquitecturas Web y la Nube

1

Page 2: Arquitecturas web y la nube

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

Page 3: Arquitecturas web y la nube

Temas

Arquitecturas Web

◦ Evolución

◦ Modelos

◦ REST

Computación en la nube

3

Page 4: Arquitecturas web y la nube

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

Page 5: Arquitecturas web y la nube

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

Page 6: Arquitecturas web y la nube

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

Page 7: Arquitecturas web y la nube

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

Page 8: Arquitecturas web y la nube

Evolución de la web

HTTP

8

Page 9: Arquitecturas web y la nube

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

Page 10: Arquitecturas web y la nube

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

Page 11: Arquitecturas web y la nube

Evolución de la web

Web 2.0

11

Page 12: Arquitecturas web y la nube

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

Page 13: Arquitecturas web y la nube

Evolución de la web

Componentes principales de la Web 2.0

13

Page 14: Arquitecturas web y la nube

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

Page 15: Arquitecturas web y la nube

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

Page 16: Arquitecturas web y la nube

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

Page 17: Arquitecturas web y la nube

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

Page 18: Arquitecturas web y la nube

Evolución de la web

Portlet local que consume datos de un servicio web

y un portlet remoto

18

Page 19: Arquitecturas web y la nube

Arquitecturas Web

Diversas tecnologías

HTML

CSS

JavaScript

XML

XHTML

XSLT

Ajax

jQuery

19

Page 20: Arquitecturas web y la nube

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

Page 21: Arquitecturas web y la nube

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

Page 22: Arquitecturas web y la nube

Arquitecturas Web

22

Aplicaciones estáticas

Page 23: Arquitecturas web y la nube

Arquitecturas Web

23

Aplicaciones dinámicas

Page 24: Arquitecturas web y la nube

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

Page 25: Arquitecturas web y la nube

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

Page 26: Arquitecturas web y la nube

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

Page 27: Arquitecturas web y la nube

Arquitecturas Web

27

Modelo de aplicaciones multicanal

Muchos canales

Soluciones basadas en XML y XSLTs

Page 28: Arquitecturas web y la nube

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)

Page 29: Arquitecturas web y la nube

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

Page 30: Arquitecturas web y la nube

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

Page 31: Arquitecturas web y la nube

Arquitecturas Web

REST

31

Page 32: Arquitecturas web y la nube

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

Page 33: Arquitecturas web y la nube

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

Page 34: Arquitecturas web y la nube

Arquitecturas Web

Mensaje SOAP

Mensaje REST

34

Page 35: Arquitecturas web y la nube

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

Page 36: Arquitecturas web y la nube

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

Page 37: Arquitecturas web y la nube

Computación en La Nube

37

Page 38: Arquitecturas web y la nube

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

Page 39: Arquitecturas web y la nube

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

Page 40: Arquitecturas web y la nube

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

Page 41: Arquitecturas web y la nube

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

Page 42: Arquitecturas web y la nube

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

Page 43: Arquitecturas web y la nube

Computación en La Nube

Arquitectura de la capa de servicio

43

Page 44: Arquitecturas web y la nube

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

Page 45: Arquitecturas web y la nube

Computación en La Nube

Proveedores

Amazon Web Services

Firehost

Rackspace

Verizon (Terremark)

IBM

CSC

Softlayer

Microsoft

45

Page 46: Arquitecturas web y la nube

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

Page 47: Arquitecturas web y la nube

¿Preguntas?

47

¿Qué productos y/o tecnologías en la

nube estas usando?