programación de yahoo! pipes

44
Programación de Yahoo Pipes David J. Brenes Martínez Elementos de Yahoo Pipes Tipos de módulos Fuentes de datos Entradas del Usuario Operadores Constructores Reutilización de módulos Yahoo! Pipes y PHP Créditos y Licencia Programación de Yahoo Pipes David J. Brenes Martínez Curso de Extensión Universitaria Desarrollo de aplicaciones Web 2.0 con PHP Universidad de Oviedo 2008/10/31

Upload: david-j-brenes

Post on 20-Jan-2015

1.555 views

Category:

Education


1 download

DESCRIPTION

En estas transparencias se muestran los principales elementos de la herramienta Yahoo! Pipes y su acceso desde lenguajes de programación como PHP. Usado en el Curso de Extensión Universitaria Desarrollo de aplicaciones Web 2.0 con PHP en la Universidad de Oviedo.

TRANSCRIPT

Page 1: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Programación de Yahoo Pipes

David J. Brenes Martínez

Curso de Extensión UniversitariaDesarrollo de aplicaciones Web 2.0 con PHP

Universidad de Oviedo

2008/10/31

Page 2: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

El Entorno

Page 3: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

El Módulo

Page 4: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

La conexión

Page 5: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Los parámetros

Page 6: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

El depurador

Page 7: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

El depurador

Page 8: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

El depurador

Page 9: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

El depurador

Page 10: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Los resultados

Page 11: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Sources

Son las entradas de datos a Yahoo! Pipes.Obtiene datos de fuentes estructuradas (RSS, JSON,iCal, CSV...).Permite consultar Servicios Web de manera directa.Permite obtener HTML.

Page 12: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Sources

Page 13: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Sources

Page 14: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Entradas de Usuario

Datos a proporcionar por el usuario.Mediante un formulario (Acceso Web)Mediante un parámetro de módulo (Acceso desdePipes)Mediante URL (Acceso por programa)

Diversos tiposValores por defecto y de depuración.Siempre son parámetros para otros módulos

Page 15: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Entradas de Usuario

Page 16: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Operadores

Realizan la mayor parte de transformaciones sobre losdatos.Son el núcleo fuerte de Yahoo! Pipes.Permite definir nuevas transformaciones via ServiciosWeb REST.

Page 17: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Count

Cuenta los elementos de un pipe.

Page 18: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Filter

Filtra elementos de acuerdo a características

Page 19: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Location Extractor

Obtiene coordenadas geográficas relacionadas con unelemento.

Page 20: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Regular Expression

Aplica expresiones regulares a atributos de un elemento delpipe.

Page 21: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Rename

Renombra atributos de un elemento del pipe.

Page 22: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Reverse

Ordena de forma inversa los elementos de un pipe.

Page 23: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Sort

Ordena los elementos de un pipe de acuerdo a criterios.

Page 24: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Subelements

Selecciona subelementos de los elementos del pipe yelimina el resto.

Page 25: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Tail

Muestra los últimos elementos del pipe.

Page 26: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Truncate

Elimina los últimos elementos del pipe.

Page 27: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Union

Une varios pipes en uno.

Page 28: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Unique

Elimina elementos repetidos de acuerdo a ciertos criteriosde igualdad.

Page 29: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Web Service

Consulta un servicio web enviando el Pipe en formatoJSON.

Page 30: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Constructores

Permiten construir datos de distintos tipos.Suelen conectarse a los parámetros de otros módulos.De especial importancia el Item Builder.

Page 31: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Item Builder

Permite construir un nodo.Junto con el operador Union puede ayudarnos a crearnuestros propios torrentes de datos.

Page 32: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

My Pipes

Nos ofrece la posibilidad de reutilizar módulos.Ofrecen los datos de la ejecución del Pipe concreto.Las entradas del usuario son parámetros al uso.Son similares a cualquier otro módulo.

Page 33: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Pasos

Pasos similares a los de acceso a una capa de persistencia.

Descargar los datos.Parsear los resultados.

Page 34: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Realizando la conexión

Problema:

Características propias de la red. P. ej: Proxy

Solución: cURL

Page 35: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Realizando la conexión

Conexión mediante cURL$conexion = curl_init();curl_setopt($conexion, CURLOPT_RETURNTRANSFER,TRUE);curl_setopt($conexion, CURLOPT_HEADER, 0);curl_setopt($conexion, CURLOPT_URL,’http://pipes.yahoo.com/brenes/callforpapers’);curl_setopt($conexion, CURLOPT_PROXY,’http://proxy.uniovi.es:8888’);$resultado = curl_exec($conexion);curl_close($conexion);

Page 36: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Formatos de datos

RSSJSONPHP Serializado.

Page 37: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

RSS

Una vez obtenido:

Se puede parsear mediante extensiones XML(simpleXML).Se puede transformar mediante XSLT.

Cómodo para operaciones de transformación.

Page 38: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

JSON

JavaScript Object Notation

Protocolo de Intercambio de datos ‘ligero’.Integrado en PHP 5.2.Abundantes bibliotecas en varios lenguajes (C#, Java,PHP, ASP, Python, Ruby. . . )

Page 39: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

JSON en PHP

Parseo de JSON en PHP$resultado = curl_exec($conexion);...$items = json_decode($resultado);

Se crea la estructura de árbol representada por JSONmediante arrays.Funciones estándar de PHP 5.2 .Mediante casts a objetos tendremos objetos cargados,no arrays.

Page 40: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

PHP Serializado

Serializacón nativa de PHP.Más pesado que JSON y XML.Soporte desconocido para otros lenguajes.

Page 41: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

PHP Serializado

Parseo de PHP Serializado en PHP$resultado = curl_exec($conexion);...$items = unserialize($resultado);

Se crea la estructura de árbol represantada por laserialización.Función estándar de PHP.Mediante casts a objetos tendremos objetos cargados,no arrays.

Page 42: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Y de aquí...

Los datos han llegado a nuestra aplicación.

Es hora de nuestra capa de negocio.

Page 43: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Créditos

La foto ‘Genius at work’ (transparencia 42) fuepublicada en flickr por el usuario ‘pjkproductions’(http://www.flickr.com/photos/pjkproductions/2867454149/)

Page 44: Programación de Yahoo! Pipes

Programaciónde Yahoo

Pipes

David J.Brenes

Martínez

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Licencia

Estas transparencias se publican bajo licencia CreativeCommons y se pueden redistribuir o modificar bajo lassiguientes condiciones:

Se dé reconocimiento al autor de estas transparencias.No se use con propósitos comerciales.Se distribuya con la misma licencia.

Texto de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/