programación de yahoo! pipes

Post on 20-Jan-2015

1.454 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Estas transparencias son una actualización de las disponibles en http://www.slideshare.net/brenes/programacin-de-yahoo-pipes-presentation 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 mediante servicios web y APIs abiertas" de la Universidad de Oviedo: http://directo.uniovi.es/postgrado/cabecera_ep.asp?Curso=2008&IdPrograma=5187

TRANSCRIPT

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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ínezDesarrollador en Grupo Índigo

Curso de Extensión UniversitariaDesarrollo de aplicaciones web mediante servicios web y APIs abiertas

Universidad de Oviedo

2009/07/20

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Sources

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Sources

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Sources

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

Elementos deYahoo Pipes

Tipos demódulosFuentes de datos

Entradas del Usuario

Operadores

Constructores

Reutilización demódulos

Yahoo! Pipesy PHP

Créditos yLicencia

Create RSS

Permite crear un RSS a partir de un flujo que no lo es

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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 - Ventajas

Permite ampliar Yahoo! Pipes.Servicios web sencillos y mantenibles.Los datos son controlados por el programador enformato JSON.Posibilidades de depuración.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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 - Problemas

Requiere programar un servicio web (REST).Requiere infraestructura.Más dependencia de red.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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);

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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. . . )

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.Procesado optimizado en PHP (más rápido que JSONo RSS).Soporte desconocido para otros lenguajes.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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.

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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/)

Programaciónde Yahoo

Pipes

David J.Brenes

MartínezDesarrollador

en GrupoÍndigo

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/

top related