MASHUP SOA en la Nube - jorferal.files.wordpress.com · Rel-tag: índice de clasificación (tag)...
-
Upload
nguyenquynh -
Category
Documents
-
view
214 -
download
0
Transcript of MASHUP SOA en la Nube - jorferal.files.wordpress.com · Rel-tag: índice de clasificación (tag)...
MASHUPSOA en la Nube
Web Semántica y SOA
Soluciones a los problemas.
No ha triunfado
Las mismas ideas:Web Semántica
SOA
Implementación KISS
MicroformatosLa web semántica de pobres
RESTUso de semántica de HTTP
Funciona
Microformatos
• Hcard
• Hcalendar
• Hfn
• XOXO
Web SemánticaSemántica: “Estudio del significado de las palabras” Sintaxis: “Estudio de las reglas de composición de las palabras”
La información Web accesible esta mayoritariamente en (X)HTML (X)HTML no puede ser procesado fácilmente por programas
(X)HTML está pensado para personas Un programa no es capaz de deducir el significado de una página Web
a partir del código (X)HTML
La Web Semántica Iniciativa para facilitar la deducción automática del significado
de los contenidos Web Añadiendo meta-datos a las páginas Web
Que definan su significado y sus propiedades
Web Semántica o MicroformatosW3C: World Wide Web Consortium Esta definiendo lenguajes “semánticos”
RDF (Resource Description Framework) Para describir propiedades semánticas de recursos Web
OWL: Web Ontology Language Para describir significado y propiedades semánticas de recursos Web
….. Son lenguajes de bastante complejidad
Microformatos Conjunto de meta-datos sencillos y abiertos
Descritos en (X)HTML semántico Basados en normas ampliamente adoptadas en Internet
MicroformatosMantenidos por un grupo de usuarios Definidos en: http://microformats.org/ Aparecen relacionadas con el mundo de los blogs Se crean a medida que se necesitan
Ejemplos hCard: Tarjeta de visita basada en vCard (RFC2426) hCalendar: Datos de reunión basada en iCalendar (RFC2445) Geo y Adr: posición y dirección XFN: Redes sociales de conocidos Rel-licence: licencia de publicación Rel-tag: índice de clasificación (tag) XMDP: XHTML Meta Data Profiles …
Microformatos: característicasDiseñados para personas primero, maquinas después
Diseñados para resolver problemas concretos
Diseños iniciales lo mas sencillos posibles
Modulares e insertables
Reusando partes de normas ampliamente aceptadas
Permitiendo y promoviendo desarrollos, contenidos y servicios descentralizados
Microformatos: beneficiosCódigo (X)HTML mas eficiente y manteniblePermiten indexación y agregación de micro-contenidos Búsquedas mas eficaces (Google, Yahoo, Technorati, …) Agregación de recomendaciones, tags, … dispersos
Interoperabilidad entre contenidos Web y aplicaciones Por ejemplo: Outlook, Agendas, Calendarios, ....
Ejemplo basado en Firefox add-on: https://addons.mozilla.org/es-ES/firefox/addon/4106
Marcado (X)HTML semánticoSemántica: “Estudio del significado de las palabras” Sintaxis: “Estudio de las reglas de composición de las palabras” Visualización: “Presentación visual de la información”
Marcado (X)HTML semántico Marcado que define la estructura de un documento
Definiendo el formato de visualización de forma independiente Por ejemplo, CSS (Cascading Style Sheets)
(X)HTML semántico Utiliza marcas estructurales existentes siempre que sea posible
Headings (<h1,..>), Lists (<ul>, <ol>, ..), Paragraphs (<p>), Citation (<cite>, <q>, <blockquote>,..), Abbreviations (<abbr>), ….
Cuando no es posible, se extiende (X)HTML utilizando Marca genérica de bloque <div> o de linea (inline) <span> Con atributos de clase “class”, identificador “id” o de relación “rel” o “rev”
Marcas y Atributos más usadosMarcas
<div>: define un bloque<span>: define un elemento de un bloque<abbr>: define una abreviatura<p>: párrafo<ul>, <ol>, <li>: listas itemizadas u ordenadas<a>: define un enlace en el cuerpo visible (body)<link>: define un enlace en la cabecera (head)
Atributos: definen la semánticaAtributo “class”: clase asociada a la marcaAtributo “id”: identificador único en el ficheroAtributo “rel”: relación con la página enlazadaAtributo “rev”: relación inversa con página enlazada
Ejemplo: vCard y hCard
hCard: Microformato para definir contactos y tarjeta de visita basados en vCard (RFC2426) Generador de hCard: http://microformats.org/code/hcard/creator
Ejemplo de hCard:
<div id="hcard-Juan-Quemada" class="vcard"> <span class="fn">Juan Quemada</span> <div class="org">UPM</div> <a class="email" href="mailto:[email protected]">[email protected]</a> <div class="tel">+34 91 336 7331</div> <p style="font-size:smaller;">This <a href="http://microformats.org/wiki/hcard">hCard</a> created with the <a href="http://microformats.org/code/hcard/creator"> hCard creator</a>. </p></div>
Ejemplo: iCalendar y hCalendarhCalendar: Microformato para definir eventos y citas basados en vCard iCalendar (RFC2445) Generador de hCalendar: http://microformats.org/code/hcalendar/creator
Ejemplo de iCalendar:BEGIN:VCALENDAR PRODID:-//XYZproduct//EN VERSION:2.0 BEGIN:VEVENT URL:http://www.web2con.com/ DTSTART:20071005 DTEND:20071020 SUMMARY:Web 2.0 Conference LOCATION:Argent Hotel\, San Francisco\, CA END:VEVENT END:VCALENDAR
Ejemplo de hCalendar:
<div class="vevent"> <a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a> <span class="summary">Web 2.0 Conference</span>: <abbr class="dtstart" title="2007-10-05">October 5</abbr>- <abbr class="dtend" title="2007-10-20">19</abbr>, at the <span class="location">Argent Hotel, San Francisco, CA</span> </div>
RelacionesLos atributos “rel” y “rev” se utilizan para definir relaciones,
por ejemplo
Microformato “rel-tag”: definición de índices (tags) de una página. El URL se utiliza para permitir búsquedas adicionales de dicho índice.
<a rel=“tag" href=“http://technorati.com/tag/css“>CSS</a>
Microformato “rel-license”: definición de licencia (URL) bajo la que se publica una página.
<a rel=“license" href=“http://creativecommons.org/licenses/by/2.5/“>
This doc is published under …..</a>
Rest: Restful Web Services
ÍndiceREST o WSPrincipios de REST Direccionabilidad Interfaz uniforme Sin estado Representación abierta ConectadoConclusiones
Web humana Visor Web, HTTP y HTML
HTML: diseñado para leer documentos A evolucionado hacia CSS, XML, XHTML, …
Web programable API, HTTP/SOAP, XML y ………
XML: Datos procesables por programaFuerte debate entre REST y “Big” Web Services
Web humana y Web programable
“Big” Web Services (W3C) SOA: Arquitectura orientada a servicios
APIs de Servicio de acceso a objetos remotos tipo RMI RMI: Remote Method Invocation
RESTful Web Services ROA: Arquitectura Orientada a Recursos
Interfaces Uniformes (métodos HTTP) APIs de acceso y gestión de recursos Web
Los recursos se representan en XML, XHTML, JSON, ..
Servicios o Recursos
Que es RESTREpresentational StateTransfer.
Arquitectura de aplicaciones Web Propuesta por Roy Fielding en su tesis doctoral (2000)
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
Co-diseñador de HTTP y uno de los principales desarrolladores del proyecto Apache
Arquitectura desacoplada y escalable
Rest y HTTP
REST es una abstracción que puede implementarse sobre cualquier protocolo.
La mejor forma de implementarlo es sobre HTTP.
Perfectamente adaptado a HTTP Principal diferencia con SOAP
Principios sobre RESTRecursos Identificables (Addressability) Cualquier recurso de Internet posee un URI/URL
Interfaz de acceso uniforme Buen uso de HTTP
Gestión de tráfico con caches
Comunicación sin estado (Statelessness) Servidores escalables
Servidor no guarda estado de clientes
Representación de los recursos En formatos abiertos
Hypermedia (Connectedness) Navegación basada en enlaces entre recursos
Recursos de InternetRecurso: cualquier cosa en Internet que “merezca la pena ser referenciada pos si misma” Un fichero, un mapa, un libro, una foto, un video, …..
Cada recurso se identifica con un URI El URI (Permalink) dará acceso al recurso Cada nuevo URI añade valor a Internet
Utilizan formato de datos “conocido” XHTML, XML, JSON, texto ASCII, HTML, ….
Ejemplo: Amazon S3
Disco en red: Servicio de almacenamiento de objetos.Implementado con arquitectura Cloud Computing
Tiene 3 tipos de recursos:
Bucket-list: conjunto de buckets* de un usuario https://s3.amazonaws.com/
Bucket en particular: repositorio de objetoshttps://s3.amazonaws.com/{Bucket}/
Objeto: posee metadato y valorhttps://s3.amazonaws.com/{Bucket}/{Objeto}
*Bucket: disco o repositorio virtual accesible a través de HTTP
Interfaz uniforme
Amazon S3: Interfaz Uniforme
GET HEAD PUT DELETEBucket-list Lista los
buckets de un usuario
Bucket (disco virtual)
Lista los objetos del bucket
Crear bucket Borrar bucket
Objeto Obtener valor y metadato del objeto
Obtener metadato del objeto
Crear y/o Asignar valor a objeto y metadato
Borrar Objeto
Representación de los recursosQue es lo que obtenemos al acceder al URI del recurso? Una representación “bien conocida” y “abierta”
Pueden utilizar varios formatos: HTML, XHTML, XML, JSON, PDF, FLASH, FLEX, ...
HTTP nos facilita el tipo (MIME) y permite negociar el formato.
Habitualmente es XML.
Comunicación sin estado El servidor NO mantiene el estado de la conversación con cada cliente.
El estado esta explicito en las llamadas. Cada estado se representa con una URI
Incrementa exponencialmente la escalabilidad.
Enfoque dispara y olvida (“fire and forget”). Muy bajo acoplamiento
EjemplosEjemplo stateful: FTP
Existe un directorio implícito de trabajo
Ejemplo statelessness: HTTP con URLs absolutasATOM-PP y ATOMGoogle Maps, Amazon S3, del.icio.us, Twitter, …
HypermediaLas transiciones entre estados Son siempre a través de enlaces
El usuario navega (No debe recordar comandos)
Usar un servicio: similar a navegar por la Web
El servidor contiene la definición del servicio Proporciona los enlaces como parte del recurso El cliente es genérico
Modelo distribuido de fácil evolución.
Web humana y Web programable
Un servicio REST bien diseñado También puede ser utilizado con un visor Web
Los recursos se presentan en el visor Con CSS, XSLT, …..
Se usa navegando haciendo click sobre las operaciones (enlaces)
Existe un problema con XHTML4 Los formularios solo soportan GET, POST Quiza se solucione en XHTML5
Diseño de una aplicación REST1. Figure Out the Data Set 2. Resource Design:
Split the data set into resources For each kind of resource
3. Name the resources with URIs4. Expose a subset of the uniform interface5. Design the representation(s) accepted from the client6. Design the representation(s) served to the client7. Connect Resources to Each Other
Integrate this resource into existing resources, using hypermedia links and forms8. Consider the typical course of events:
What’s Supposed to Happen?9. Consider error conditions:
What Might Go Wrong?
Ventajas de RESTfull HTTPSoporte universal y simple desde cualquier lenguaje y plataforma.
Escalabilidad demostrada.
Soporte para redirección, cache, diferentes representaciones, …
Integración real para comunicación B2B.
Funciona con XML, pero también con otros formatos (XHTML, JSON, ..).
ConclusionesROA: Resource Oriented Architecture REST es el protocolo para la arquitectura del mayor
sistema distribuido del mundo (la web).
Mayor adopción Adoptado casi unánimemente en el Web2.0
Google, del.icio.us, Amazon, Yahoo, …. Las normas de “Big” Web Services están todavía
incompletasRoR a discontinuado el soporte a “Big WS”
RSS, ATOM and ATOM-PP
Publicación de contenidos Web
RSS: Publicación de contenidos Web
ATOM y ATOM-PP
Formato de Sindicación ATOM
Protocolo de Publicación ATOM
AtomPP: Interfaz Uniforme
GET POST PUT DELETE
Service Document
Devolver servicio en XML
Indefinido Indefinido Indefinido
Category Document
Devolver categoría en XML
Indefinido Indefinido Indefinido
Collection Devolver un “Atom feed”
Crear in nuevo “member”
Indefinido Indefinido
Member Devolver “member” asociado a URI, normalmente un doc Atom entry, pero puede ser un fichero binario
Indefinido Actualizar el recurso identificado por URI
Borrar “member”
REST y AJAX
El despliegue AJAX de un servicio REST
Son clientes en Javascript
que invocan el servicio con el interfaz uniforme
Aplicaciones Web frente a
• Necesidad de Instalar un programa.
• Problemas de las actualizaciones
•
Widgets - Gadgets
ConclusionesROA: Resource Oriented Architecture REST es el protocolo para la arquitectura del mayor
sistema distribuido del mundo (la web).
Mayor adopción Adoptado casi unánimemente en el Web2.0
Google, del.icio.us, Amazon, Yahoo, …. Las normas de “Big” Web Services están todavía
incompletasRoR a discontinuado el soporte a “Big WS”
What is the cloud?
• IT as a service
• Cloud allows access to services without user technical knowledge or control of supporting infrastructure
• Best described in terms of what happened to mechanical power over 100 yrs ago
• Now computers are simple devices connected to the larger cloud
• Data processing, storage and software applications that used to run locally are now being supplied by big central computing stations. They're becoming, in essence, computing utilities.
Cloud Computing
¿ Moda ?
Cluster ComputingCloud ComputingGrid Computing
Soporte de la W2.0
Adapted from Kansas State
Enterprise Information Management
SOA-based Applications
Distributed Infrastructure
Web 2.0, Info Retrieval/Sharing
Content, Records, Knowledge Management
SaaS, Web Services
Cloud, Grid, Virtualization
Organizations – Professional Networks
Citizens/Individuals – Social Networks
NetworkedArchitecture
IaaSInfrastructure as a Service
PaaSPlatform as a Service
SaaSSoftware as a Service
GFSArchitecture
MapReduceFlow
Input
Map
Key, Value Key, Value …=
Map Map
Key, Value
Key, Value
…
Key, Value
Key, Value
…
Key, Value
Key, Value
…
Split Input into Key-Value pairs.For each K-V pair call Map.
Each Map produces new set of K-V pairs.
Reduce(K, V[ ])
Sort
Output Key, Value Key, Value …=
For each distinct key, call reduce. Produces one K-V pair for each distinct key.
Output as a set of Key Value Pairs.
Objetivos
• Pago por uso : Elasticidad.
• Escalabilidad instantánea (Up and Down)
• Seguridad
• Fiabilidad
• APIs (SOA)
Mashup
MASHUP
• Un Mashup es una aplicación WEB que combina datos de más de una fuente en una sola herramienta.
•
Tecnologías
XML – Como comenzoXMLRPC – Unificación de estructurasSOAP – Define un mecanismo de transporteJSON – Funciona con los navegadores.
Portal Turismo
SOA SOA
71
Algunas aplicciones
APIsGoogleAJAX Search API – search APIAJAX Feed API – RSS feed API
YahooPipes – mashup power tool
DapperDapper – screen scraping tool
RSS
75
Yahoo Pipes
8 March13,09
Welcome to Google App Engine
Run your web applications on Google's infrastructure. Google App Engine enables developers to build web applications on the same scalable systems that power our own applications.
No assembly required.GoogleAppEngineexposesafully‐integrateddevelopmentenvironment.
It's easy to scale.GoogleAppEnginemakesiteasytodesignscalableapplicationsthatgrowfromonetomillionsofuserswithoutinfrastructureheadaches.
It's free to get started.EveryGoogleAppEngineapplicationwillhaveenoughCPU,bandwidth,andstoragetoservearound5millionmonthlypageviews.
Identidad en la red
• ¿Quien eres?
• ¿Quien dices que eres?
• ¿Quien dice que tu eres tu?
82
OpenID
Oauth
Ingenieros en Nubes