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 Aplicaciones estรกticas
22
Arquitecturas Web Aplicaciones dinรกmicas
23
Arquitecturas Web 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
24
Arquitecturas Web 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
25
Arquitecturas Web 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
26
Arquitecturas Web Modelo de aplicaciones multicanal Muchos canales Soluciones basadas en XML y XSLTs
27
Arquitecturas Web Modelo multicapa Arquitectura 2 capas (Web + aplicación) Arquitecturas 3 capas(Web + aplicación + datos) Arquitecturas 4 capas (Web + controlador + negocio + datos)
28
Arquitecturas Web 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
29
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?
¿Qué productos y/o tecnologías en la nube estas usando? 47