Las clases de MASHUPS4 trataron sobre ingeniería software de la Web 2.0, ingeniería que ha evolucionado desde las aplicaciones y servicios basados en cliente/servidor con API’s orientadas a objetos, hacia las distribuidas en Internet, orientadas a servicios (SoA) web y a sus recursos (RoA), con http como protocolo para todo y el navegador como aplicación universal (Restfull web), sociales (agregación de contenidos bidireccional) y computadas en la nube (metáfora de Internet).
Estas tecnologías han permitido que Internet ofrezca además de los servicios tradicionales del IETF y el W3C, la posibilidad de utilizarla para servicios de computación (cloud computing), donde se usa el software como servicio, y se confía en Internet para las necesidades de cómputo de los usuarios.
Web Semántica
El primer intento de dotar de inteligencia artificial a Internet y mejorar la interoperatividad fue la Web Semántica, una tentativa liderada por Tim Berners-Lee, que basa su funcionamiento en agentes que trabajan con metadatos. Esta basado en el protocolo SOAP y en el lenguaje XML/WSDL. No ha terminado de funcionar pues introducir metadatos es una tarea concienzuda que no se realizaba con la requerida fidelidad. Además los interfaces de los servicios eran muy rígidos. Por contra, la filosofía que se está imponiendo para desarrollar servicios y aplicaciones es la denominada KISS (Keep it simple, stupid), pues la única manera de hacer que triunfe una tecnología en la ágil Internet es hacerla muy simple. Nacen los microformatos como sustituto de la web semántica.
Filosofía KISS
Microformatos
Son elementos de lenguaje de marcado, usando (X)HTML con nombres de clase específicos. Es la última tendencia en la web para introducir metadatos comprensibles para aplicaciones software, como plug-ins de navegadores, de manera que la información pueda ser indexada, guardada, referenciada, reusada o combinada por otras aplicaciones (por ejemplo del navegador al télefono móvil). Los microformatos son mantenidos y especificados por Microformats.org, donde se crean estandares vivos “de hecho” que evolucionan con las aportaciones de su comunidad wiki. Algunos ejemplos son hCard (adr y geo) para información de contacto (direcciones y coordenadas), hCalendar, XOXO, etc. Son famosos los microformatos de Google Maps [tag]Google Maps[/tag], desde geoposicionamiento de fotos hasta control de terremotos. El add-on “Operator” del Firefox permite detectar la información de los microformatos y reutilizarla (por ejemplo para copiarla al Outlook). Los microformatos están sujetos a licencias.
REST y SoA
La técnica de arquitectura software REST (Representational State Transfer) permite desarrollar servicios y aplicaciones como una serie de URL activos basandose únicamente en el protocolo http, permitiendo exprimir las optimizaciones y las cachés de las CDNs que existen en la nube. Es más eficiente y escalable que SoA, cuya pila de protocolos es más compleja y no utiliza las optimizaciones para http de la nube. Las grandes empresas (Amazon, Yahoo, Microsoft) permiten desarrollar con SoA o REST, aunque REST se está imponiendo.
REST
Los servicios web que siguen el enfoque REST se denominan Restfull web. Los recursos son puntos de acceso a servicios. Podremos interaccionar con los URL y acceder a su información en múltiples formatos. Es lo que se denominan sevicios RoA (orientados a recursos). Los recursos se representan en XML, XHTML y el exitoso JSON, que utiliza los objetos de JavaScript, permitiendo que los propios navegadores sean los que ejecutan parte de las aplicaciones. En REST realizamos operaciones idempotentes, las peticiones se pueden repetir y el estado de la aplicación va explícito en la propia llamada. Así se mejora la eficiencia y la escalabilidad respecto a las aplicaciones tradicionales distribuidas basadas en RPC. Rest se basa en:
■Addressability
■Interfaz de acceso uniforme (CRUD: Create, Read, Update and Delete)
■Statelessness (comunicaciones sin estado)
■Representación de los recursos
■Hypermedia (conectedness)
La nube “as a service”
La nube ofrece servicios y aplicaciones (típicamente REST) comerciales escalables y flexibles (pago sólo por lo que necesito y el tiempo que lo necesite) a tres niveles:
1.Software as a service: aplicaciones como servicio. Para utilizar aplicaciones lo único que necesito es un sistema operativo pequeño donde corra un navegador. Por ejemplo Google docs. Con esta idea google lanza un navegador sencillo, Chrome.
2.Platform as a service: no me preopupo de tener ordenadores para hosting, computación, comunicaciones y almacenamiento. Por ejemplo, S3 de Amazon, plataforma de almacenamiento en la nube. Además usando esta plataforma no gasto ancho de banda propio, pues se lee/escribe directamente desde los servicios S3 de Amazon.
3.Infrastructure as a service: ejecutas una imagen de un sistema operativo en una máquina virtual. Pagas por las máquinas que utilizas y por las comunicaciones. Por ejemplo para crear una red de telefonía. Amenaza a las Telecos tradicionales.
Mashups. SoA en la nube
Los mashups son aplicaciones web que reutilizan la información de otras aplicaciones y servicios en la red. Estan basados en SoA o REST. El contenido usado en mashups es típicamente obtenido de otra fuente vía una interface pública o API (web services) o de Web Feeds (RSS o Atom). Una de las APIs más utilizadas es Yahoo pipes. Los widgets y wadgets son un ejemplo (iGoogle, widgets de MacOs y Iphone, etc).
Arquitectura típica de una aplicación mashup
APLICACIONES y SERVICIOS (mashups4)
viernes, 5 de marzo de 2010
Publicado por jorge camilo gomez calzado en 8:50
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario