mashup soa en la nube - jorferal.files.wordpress.com · rel-tag: índice de clasificación (tag)...

Post on 03-Oct-2018

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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:jquemada@dit.upm.es">jquemada@dit.upm.es</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”

Twitter

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

top related