Top Banner
Pipelines: plumbing for the next web Pipelines: plumbing for the next web Ian Forrester backstage.bbc.co.uk cubicgarden.com
84

plumbing for the next web

Aug 17, 2014

Download

Economy & Finance

Ian Forrester

The next web will be about flow, this flow will be user generated pipelines through applications and services. Unlike before these Pipelines will be definable, non-proprietary and shareable by anyone
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: plumbing for the next web

Pipelines: plumbing for the next webPipelines: plumbing for the next web

Ian Forresterbackstage.bbc.co.ukcubicgarden.com

Page 2: plumbing for the next web

Overview

• In depth discussion of the abstract concept of flow *

• Not discussing the merits of UNIX or XML pipelines

• Assumes an understanding of a pipe and pipeline

Page 3: plumbing for the next web

Imagine. . .

• Processing data from your local machine with data on-line

• Chaining together services you use regularly• Automating the process so it ran at convenient

times• Not requiring programming knowledge• A process that is open, extensible and sharable

Page 4: plumbing for the next web

The Landscape

Page 5: plumbing for the next web

Hot on the Horizon

• REST APIs are dotted all over the landscape• Web applications are opening up• Useful web services with revenue models• RSS and ATOM feeds are becoming ubiquitous• Desktop search is standard in Vista and OSX• Widgets and Gadgets are becoming useful• New projects to organise desktop meta-data

Page 6: plumbing for the next web

REST XML API Everywhere

Page 7: plumbing for the next web

REST XML API Everywhere

Page 8: plumbing for the next web

Opening Up the Silos

Page 9: plumbing for the next web

Opening Up the Silos

Page 10: plumbing for the next web

Web Services with Revenue Models

Page 11: plumbing for the next web

Ubiquitous Feeds

Page 12: plumbing for the next web

Widgets and Gadgets

Page 13: plumbing for the next web

Desktop Search

Page 14: plumbing for the next web

Semantic Desktop projects

Page 15: plumbing for the next web

Semantic Desktop projects

Page 16: plumbing for the next web

File System Meta-data

Page 17: plumbing for the next web

How People are Building Things

• Particls• Automator• Yahoo Pipes

Page 18: plumbing for the next web

Touchstone / Particls

• Particls: An alerts/updates and attention management platform

• Ingests many different input sources via input adapters

• Works out importance of new information to the user and displays a proportional alert

• Alerts take many forms based on urgency and relevancy levels

• Alerts are controlled with output adapters.

Page 19: plumbing for the next web

Particls

Page 20: plumbing for the next web

A Pipeline Application

Page 21: plumbing for the next web

XML Configurations

Page 22: plumbing for the next web

Outline Processing Markup Language (OPML)

Page 23: plumbing for the next web

Attention Profiling Markup Language (APML)

Page 24: plumbing for the next web

Particls Internals

Page 25: plumbing for the next web

Learning from Particls

• Particls Limitations:• Main purpose is an alert and attention engine• No standard underline definable language• Not sharable outside of the pipes application• Choice of inputs and outputs limited• No automation• Semi-proprietary

• Particls Highlights• Breakthrough web application• GUI has all the right elements• Form level abstract is great• Cloning pipes is very smart• Pushing new attention markup standard

Page 26: plumbing for the next web

Automator

• A beautiful graphical user interface for Applescript

• “Accomplish all of your time-consuming, repetitive manual tasks quickly, efficiently and effortlessly with Automator Workflows. It’s simple to create custom Workflows just by dragging items, pointing and clicking. Perform the task once using your Automator Workflow or many times — even share Workflows with friends.”

• Apple.com

Page 27: plumbing for the next web

Apple Automator

Page 28: plumbing for the next web

Automator

Page 29: plumbing for the next web

Applescript

Page 30: plumbing for the next web

Automator Internals

Page 31: plumbing for the next web

Learning from Automator

• Automator Limitations• Proprietary• Requires Applescript• Underlying definable language non-XML based• Works better as automation software• Not natively web enabled

• Automator Highlights• Break through desktop application• Powerful Gui• Form level abstract is great• Great automation• Sharing of scripts very simple• Choice of inputs and outputs extensible via code

Page 32: plumbing for the next web

Yahoo Pipes

• New beta service that enables users to create mash-ups with a graphical user interface

• Mash-ups can be saved so other people can edit and re-use them

• Still geeky but easier than creating mash-ups by coding

“a milestone in the history of the Internet" • - Tim O'Reilly

Page 33: plumbing for the next web

Y! Pipes

Page 34: plumbing for the next web

Y! Pipes

s

Page 35: plumbing for the next web

Y! Pipes

Page 36: plumbing for the next web

Y! Pipes Internals

Page 37: plumbing for the next web

Learning from Y! Pipes

• Yahoo! Pipes Limitations• Only has access to data and content on-line• No XSL transformations• No standard underlying definable language• Not sharable outside of the Y! Pipes application• Choice of inputs and outputs limited• No automation• Proprietary

• Yahoo! Pipes Highlights• Breakthrough web application• GUI has all the right elements• Form level abstract is great• Cloning pipes is very smart

Page 38: plumbing for the next web

Fitting the Puzzle Together

• Combine:• Underlying XML definitions of Particls• Slimline and smooth look of Particls

Form control of Automator• Power and control of Automator• Visual pipeline GUI of Yahoo! Pipes• Automation of Automator• Sharing of Automator and Yahoo! Pipes

Page 39: plumbing for the next web

flow *

Page 40: plumbing for the next web

So what is flow*?

Page 41: plumbing for the next web

flow *

Page 42: plumbing for the next web

flow *

Page 43: plumbing for the next web

The flow * System

Page 44: plumbing for the next web

Adding Widgets to the Mix

Page 45: plumbing for the next web

Separate the Desktop API

Page 46: plumbing for the next web

But. . .there is no flow *

• flow * currently does not exist• flow * is not just an application• flow * is not just a service• flow * is a combination of good practices served up

for the power users

Page 47: plumbing for the next web

My Current flow * Setup

Page 48: plumbing for the next web

More Configuration Ideas

Page 49: plumbing for the next web

More Configuration Ideas

Page 50: plumbing for the next web

More Configuration Ideas

Page 51: plumbing for the next web

Flow* is. . .

• The glue that allows you to break out of the silos on-line and off-line

• The ability to pipe services together using their APIs and feeds as though programming code or interacting with the site directlyXPROC documents with namespaces elements (User-generated Pipelines)

• Three levels of abstraction in one file

Page 52: plumbing for the next web

Core User-generated Pipeline Principles

• Definable• Core pipeline defined as XML

• Graphical• Levels of abstraction from the XML

• Standard• Using the new W3C standard XPROC

• Shareable• As easy to share as a OPML file

• Open• Can be extended and plugged into widget engines

• Non-proprietary• No lock-in, uses standard web and XML technologies

Page 53: plumbing for the next web

Three Levels

Page 54: plumbing for the next web

Three Levels of Abstraction

Page 55: plumbing for the next web

Three Levels of Users, One Purpose

Page 56: plumbing for the next web

XPROC Level

Page 57: plumbing for the next web

Pipe GUI Level

Page 58: plumbing for the next web

Task Level

Page 59: plumbing for the next web

Pipelines Options

Page 60: plumbing for the next web

The Current Landscape

Page 61: plumbing for the next web

Particls: An Attention Platform

Page 62: plumbing for the next web

Automator: Strictly for OSX Only

Page 63: plumbing for the next web

Y! Pipes: No Access to the Local System

Page 64: plumbing for the next web

Y! Pipes: Could Access Local System

Page 65: plumbing for the next web

Yahoo widgets authenticator

Page 66: plumbing for the next web

Securing the Desktop and Cloud

Page 67: plumbing for the next web

Y! Pipes: All the Right Elements

Page 68: plumbing for the next web

Microsoft just around the corner?

Page 69: plumbing for the next web

Pipelines

Page 70: plumbing for the next web

User-generated Pipelines

• Pipelines generation is only limited by our own creativity and the APIs available

• XPROC feeds Flow* like Javascript feeds Greasemonkey

• User-generated Pipelines could be...• XPROC+SVG+XFORMS• XPROC+XUL• XPROC+RDF+XFORMS• XPROC+FlexML• XPROC+XHTML

Page 71: plumbing for the next web

Pipeline Example

Page 72: plumbing for the next web

Pipeline Example

Page 73: plumbing for the next web

Complex Pipeline Example

Page 74: plumbing for the next web

Complex Pipeline Example

Page 75: plumbing for the next web

Complex Pipeline Example

Page 76: plumbing for the next web

The Ecosystem of the API

Page 77: plumbing for the next web

No fully functional API?

• Forget it now... your dead

Page 78: plumbing for the next web

Described in XPROC (part 1)<?xml version="1.0" encoding="UTF-8"?><p:pipeline name="encoder example" xmlns:p="http://www.w3.org/2007/03/xproc"><p:input port="video" href="file://///127.0.0.1/my videos/"/><p:choose name="free-or-pay"><p:when test="form:///encoder.dropdown='yes'"><p:output port="http://www.amazon.com/ws/ec2"><p:parameter name="amazon/ec2image" value="video-encoding"/><p:parameter name="amazon/encodeto" value="flv"/><p:parameter name="amazon/encodeto" value="h.264"/><p:parameter name="amazon/encodeto" value="mpeg4"/><p:parameter name="amazon/account" value="form:///amazon.account"/><p:parameter name="amazon/password" value="form:///amazon.password"/><p:parameter name="amazon/accesskey" value="form:///amazon.accesskey"/><p:parameter name="amazon/piority" value="1"/></p:output></p:when><p:when test="form:///encoder.dropdown='no'"><p:output port="http://www.heywatch.com/"><p:parameter name="encode" value="flv"/><p:parameter name="encode" value="h.264"/><p:parameter name="encode" value="mpeg4"/><p:parameter name="login" value="form:///account"/><p:parameter name="password" value="form:///password"/></p:output></p:when><p:otherwise><p:output port="local://start.loocal.application" href="file://///127.0.0.1/C/program files/mediacleaner/mediaclean.exe"/></p:otherwise></p:choose>

Page 79: plumbing for the next web

Described in XPROC (part 2)

<p:choose name="stoarage-options"><p:when test="form:///storage.selector='amazon'"><p:output port="http://www.amazon.com/ws/s3"><p:parameter name="amazon/account" value="form:///amazon.account"/><p:parameter name="amazon/password" value="form:///amazon.password"/><p:parameter name="amazon/accesskey" value="form:///amazon.accesskey"/><p:parameter name="amazon/bucket" value="form:///amazon.bucket"/></p:output></p:when><p:when test="form:///stroage.selector='bliptv'"><p:output port="http://www.blip.tv"><p:parameter name="login" value="form:///bliptv.account"/><p:parameter name="password" value="form:///bliptv.password"/></p:output></p:when><p:when test="form:///stroage.selector='youtube'"><p:output port="http://www.youtube.com"><p:parameter name="login" value="form:///youtube.account"/><p:parameter name="password" value="form:///youtube.password"/></p:output></p:when><p:otherwise><p:output port="result" href="ftp://user:[email protected]/myvideo/"/></p:otherwise></p:choose></p:pipeline>

Page 80: plumbing for the next web

What happens next?

Page 81: plumbing for the next web

To do

• Build flow* using a Rich Internet Application language like XUL or Apollo

• Write an Authentication layer for the APIs – Open ID based broker system for APIs?

• Decide on one way to write User-generated Pipelines which works for flow*

• Write schema for namespaced extensions into user-generated pipelines (XPROC document)

• Investigate the semantic desktop projects• Explorer W3Cs draft Widget specification

Page 82: plumbing for the next web

Summary

• User generated pipelines are viable for:• People wanting automation• Non-programmers• Power users who can't be bothered to load up their IDE

• Flow* (although only in early development) is very powerful

• All the elements are in place, it just needs a developer or company with a some vision

Page 83: plumbing for the next web

Final thought

• Mashing-up, remixing, sharing is part of our culture

Page 84: plumbing for the next web

Thanks for listening, questions?

• Ian Forrester - [email protected]• http://www.cubicgarden.com/blojsom/blog/pipelines/

• Flickr pictures : Creative Commons Attribution-NonCommercial-NoDerivs License• http://www.flickr.com/photos/andidfl/• http://www.flickr.com/photos/_f1guy68_/• http://www.flickr.com/photos/coolinbox/• http://www.flickr.com/photos/belljar/• http://www.flickr.com/photos/dgbalancesrocks/• http://www.flickr.com/photos/whinger/• http://www.flickr.com/photos/wasabicube/• http://www.flickr.com/photos/jacy