plumbing for the next web

Post on 17-Aug-2014

8.586 Views

Category:

Economy & Finance

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

Ian Forresterbackstage.bbc.co.ukcubicgarden.com

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

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

The Landscape

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

REST XML API Everywhere

REST XML API Everywhere

Opening Up the Silos

Opening Up the Silos

Web Services with Revenue Models

Ubiquitous Feeds

Widgets and Gadgets

Desktop Search

Semantic Desktop projects

Semantic Desktop projects

File System Meta-data

How People are Building Things

• Particls• Automator• Yahoo Pipes

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.

Particls

A Pipeline Application

XML Configurations

Outline Processing Markup Language (OPML)

Attention Profiling Markup Language (APML)

Particls Internals

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

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

Apple Automator

Automator

Applescript

Automator Internals

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

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

Y! Pipes

Y! Pipes

s

Y! Pipes

Y! Pipes Internals

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

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

flow *

So what is flow*?

flow *

flow *

The flow * System

Adding Widgets to the Mix

Separate the Desktop API

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

My Current flow * Setup

More Configuration Ideas

More Configuration Ideas

More Configuration Ideas

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

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

Three Levels

Three Levels of Abstraction

Three Levels of Users, One Purpose

XPROC Level

Pipe GUI Level

Task Level

Pipelines Options

The Current Landscape

Particls: An Attention Platform

Automator: Strictly for OSX Only

Y! Pipes: No Access to the Local System

Y! Pipes: Could Access Local System

Yahoo widgets authenticator

Securing the Desktop and Cloud

Y! Pipes: All the Right Elements

Microsoft just around the corner?

Pipelines

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

Pipeline Example

Pipeline Example

Complex Pipeline Example

Complex Pipeline Example

Complex Pipeline Example

The Ecosystem of the API

No fully functional API?

• Forget it now... your dead

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>

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:pass@ftp.cubicgarden.com/myvideo/"/></p:otherwise></p:choose></p:pipeline>

What happens next?

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

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

Final thought

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

Thanks for listening, questions?

• Ian Forrester - pipelines@cubicgarden.com• 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

top related