Design Strategies for a Distributed Web

51
Xtech Dublin 2008 Gareth Rushgrove | morethanseven.net Design Strategies for a Distributed Web

description

Presentation from Xtech in Dublin 2008 on advantages, problems and potential solutions for bringing a mashups to larger commercial web application development

Transcript of Design Strategies for a Distributed Web

Page 1: Design Strategies for a Distributed Web

Xtech Dublin 2008

Gareth Rushgrove | morethanseven.net

Design Strategies for a Distributed Web

Page 2: Design Strategies for a Distributed Web

Gareth Rushgrove, Developer, GCAP Interactive

Gareth Rushgrove | morethanseven.net

Page 3: Design Strategies for a Distributed Web

In the Beginning

Gareth Rushgrove | morethanseven.net

Page 4: Design Strategies for a Distributed Web

Web Sites to Web Applications

Gareth Rushgrove | morethanseven.net

Page 5: Design Strategies for a Distributed Web

Development Frameworks

Gareth Rushgrove | morethanseven.net

Page 6: Design Strategies for a Distributed Web

Development Frameworks

Gareth Rushgrove | morethanseven.net

Page 7: Design Strategies for a Distributed Web

Development Frameworks

Gareth Rushgrove | morethanseven.net

Page 8: Design Strategies for a Distributed Web

Consumer Web APIs

Gareth Rushgrove | morethanseven.net

Page 9: Design Strategies for a Distributed Web

Infrastructure Web APIs

Gareth Rushgrove | morethanseven.net

Page 10: Design Strategies for a Distributed Web

home about search log in sign up as a django person

Django People

Showing 100 recent signups (out of 2274) - if you're a Django developer, why not add yourselfto the site?

Discover users of the Django Web framework near you

Looking for a Django job? check out Djangogigs.com

United States 688 people Brazil 160 people

United Kingdom 160 people Germany 103 people

Poland 99 people China 94 people

Russia 74 people Canada 59 people

France 54 people Australia 53 people

Spain 48 people Italy 46 people

Netherlands 46 people Sweden 34 people

Ukraine 33 people India 29 people

Argentina 29 people Norway 23 people

Switzerland 23 people Denmark 22 people

Ireland 22 people Czech Republic 21 people

Finland 21 people Belgium 17 people

New Zealand 17 people Austria 17 people

Israel 15 people Portugal 14 people

Turkey 13 people Slovenia 13 people

Croatia 12 people Japan 10 people

Mexico 9 people Taiwan 9 people

Indonesia 9 people South Korea 8 people

Philippines 8 people Colombia 8 people

Greece 7 people Hungary 7 people

Venezuela 7 people Peru 7 people

South Africa 7 people Chile 7 people

Thailand 7 people Romania 6 people

Cuba 6 people Malaysia 6 people

Bulgaria 6 people Iceland 6 people

Bolivia 5 people Belarus 5 people

Slovakia 5 people Latvia 5 people

Uruguay 4 people Egypt 4 people

Singapore 3 people Ecuador 3 people

Lithuania 3 people Estonia 3 people

Morocco 3 people Nepal 2 people

Isle of Man 2 people Moldova 2 people

Malawi 1 person Costa Rica 1 person

Georgia 1 person Jamaica 1 person

Barbados 1 person Trinidad and Tobago 1 person

Honduras 1 person Mozambique 1 person

Saudi Arabia 1 person Kuwait 1 person

Nigeria 1 person Lebanon 1 person

Uzbekistan 1 person Luxembourg 1 person

Belize 1 person Senegal 1 person

Vietnam 1 person Syria 1 person

Fiji 1 person United Arab Emirates 1 person

Iran 1 person Macedonia 1 person

Tokelau 1 person Malta 1 person

Puerto Rico 1 person Tunisia 1 person

Map data ©2008 Europa Technologies - Terms of Use

Map Satellite Hybrid

Mashups

Gareth Rushgrove | morethanseven.net

Page 11: Design Strategies for a Distributed Web

Websites Talking To Websites

Gareth Rushgrove | morethanseven.net

“Mashups are the most interesting innovation in software development in 20 years

Douglas Crockford

Page 12: Design Strategies for a Distributed Web

Building Blocks

Gareth Rushgrove | morethanseven.net

“An aggregate web of connected data sources and services

Tom Coates

Page 13: Design Strategies for a Distributed Web

Remote Services

Gareth Rushgrove | morethanseven.net

Page 14: Design Strategies for a Distributed Web

Remote Data

Gareth Rushgrove | morethanseven.net

Page 15: Design Strategies for a Distributed Web

A Semantic Web

Gareth Rushgrove | morethanseven.net

Page 16: Design Strategies for a Distributed Web

A Semantic Web

Gareth Rushgrove | morethanseven.net

Page 17: Design Strategies for a Distributed Web

Url

Format

Output type

Json callback

Report

ufXtract - Microformats Parser (Beta 0.2.2)

ufXtract is a new microformats parser. It has been built from the ground up to take configurationobjects which allow the parsing of different microformats or POSH patterns. The component alsocontains an extendable output format option.

I am building a test suite to fine tune the components compliancy. Most of the compoundmicroformats apart hCard have some issues at the moment. If you have any comments or want topoint out issues please email - info.backnetwork.com

.

hCard

text

Submit

Example urls

http://lab.backnetwork.com/examples/1/page1.htm

Updated

29-Nov-07Added support for pages encoded with ISO-8859-1.

24-Nov-07Some internal changes which fix given-name in hcards and incorrect Url paths from page whichhave been redirected using 302

16-Nov-07I have added error handling and number of other small improvements such as the reporting feature.The major fixes are that the component will now successfully handle multiple header includes oftenused in hCalendar. The hAtom output has been addressed, but as yet not fully tested.

Example Xml output

Example Xml error

lab.backnetwork

Madgex Limited All rights reserved

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<ufxtract>

<vcard>

<fn>Gareth Rushgrove>/fn>

<n>

<given-name>Gareth</given-name>

<family-name>Rushgrove</family-name>

</n>

<url>http://morethanseven.net/</url>

</vcard>

<report>

<url status="200" millisec="109">http://lab.backnetwork.com/examples/1/page1.htm</url>

<found>1</found>

</report>

</ufxtract>

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<ufxtract>

<errors>

<error>

<msg>The remote name could not be resolved: 'htp'</msg>

<url>http://htp://localhost/BacknetworkLab/examples/1/page1.htm</url>

</error>

</errors>

</ufxtract>

New

Portable social networkprofile parser

Demo 1

ufXtract - Microformats Parser

Older and superseded

XFN/hCard pagination

XFN pagination

AboutThis site showcases someof the experimental workbeing carried out forbacknetwork. By sharingthis early work we hope insome way to add to theimportant technical andarchitectural discussionsabout portable socialnetworks.

Remote Services Using Remote Data

Gareth Rushgrove | morethanseven.net

Page 18: Design Strategies for a Distributed Web

Remote Platform

Gareth Rushgrove | morethanseven.net

Page 19: Design Strategies for a Distributed Web

Not Just The Server

Gareth Rushgrove | morethanseven.net

Adobe Air

Page 20: Design Strategies for a Distributed Web

Site Specific Browsers

Gareth Rushgrove | morethanseven.net

Page 21: Design Strategies for a Distributed Web

Browser Enhancements

Gareth Rushgrove | morethanseven.net

Page 22: Design Strategies for a Distributed Web

Advantages

Gareth Rushgrove | morethanseven.net

Page 23: Design Strategies for a Distributed Web

Speed

Gareth Rushgrove | morethanseven.net

1

Page 24: Design Strategies for a Distributed Web

Scalability

Gareth Rushgrove | morethanseven.net

2

Page 25: Design Strategies for a Distributed Web

Quality

Gareth Rushgrove | morethanseven.net

3

Page 26: Design Strategies for a Distributed Web

Cost

Gareth Rushgrove | morethanseven.net

4

Page 27: Design Strategies for a Distributed Web

Problems

Gareth Rushgrove | morethanseven.net

Page 28: Design Strategies for a Distributed Web

Stability

Gareth Rushgrove | morethanseven.net

1

Page 29: Design Strategies for a Distributed Web

Reliance

Gareth Rushgrove | morethanseven.net

2

Page 30: Design Strategies for a Distributed Web

Features

Gareth Rushgrove | morethanseven.net

3

Page 31: Design Strategies for a Distributed Web

Security

Gareth Rushgrove | morethanseven.net

4

Page 32: Design Strategies for a Distributed Web

Solutions

Gareth Rushgrove | morethanseven.net

Page 33: Design Strategies for a Distributed Web

Ecosystem

Gareth Rushgrove | morethanseven.net

1

Page 34: Design Strategies for a Distributed Web

Abstraction

Gareth Rushgrove | morethanseven.net

Page 35: Design Strategies for a Distributed Web

Open Source

Gareth Rushgrove | morethanseven.net

Page 36: Design Strategies for a Distributed Web

Service Level Agreement

Gareth Rushgrove | morethanseven.net

2

Page 37: Design Strategies for a Distributed Web

Defensive Development

Gareth Rushgrove | morethanseven.net

3

Page 38: Design Strategies for a Distributed Web

Don’t Trust APIs

Gareth Rushgrove | morethanseven.net

Page 39: Design Strategies for a Distributed Web

Caching

Gareth Rushgrove | morethanseven.net

Page 40: Design Strategies for a Distributed Web

Design for Downtime

Gareth Rushgrove | morethanseven.net

Page 41: Design Strategies for a Distributed Web

Design for Downtime

Gareth Rushgrove | morethanseven.net

Page 42: Design Strategies for a Distributed Web

Design for Downtime

Gareth Rushgrove | morethanseven.net

Page 43: Design Strategies for a Distributed Web

Design for Downtime

Gareth Rushgrove | morethanseven.net

Page 44: Design Strategies for a Distributed Web

High Reliability Systems

Gareth Rushgrove | morethanseven.net

4

Page 45: Design Strategies for a Distributed Web

Conclusions

Gareth Rushgrove | morethanseven.net

Page 46: Design Strategies for a Distributed Web

Advantages

Gareth Rushgrove | morethanseven.net

2. Scalability

3. Quality

1. Speed

4. Cost

Page 47: Design Strategies for a Distributed Web

Problems

Gareth Rushgrove | morethanseven.net

2. Reliance

3. Features

1. Stability

4. Security

Page 48: Design Strategies for a Distributed Web

Solutions

Gareth Rushgrove | morethanseven.net

2. Service Level Agreements

3. Defensive Development

1. Vibrant Ecosystem

4. High Reliability Systems

Page 49: Design Strategies for a Distributed Web

API as User Interface

Gareth Rushgrove | morethanseven.net

“The API is the product Todd Sampson

Page 50: Design Strategies for a Distributed Web

Thanks flickr

Gareth Rushgrove | morethanseven.net

flickr.com/photos/greenchameleon/413936228/

flickr.com/photos/drown/218784366/

flickr.com/photos/--stromberg--/786493111/

flickr.com/photos/dishu/196505696/

flickr.com/photos/zackhughesphotography/

flickr.com/photos/riot_/122129120/

flickr.com/photos/toptechwriter/347297711/

flickr.com/photos/eddie-lawrance/2422166463/

flickr.com/photos/timcaynes/71212509/

splintered.co.uk

flickr.com/photos/riot_/162092237/

flickr.com/photos/midgeymoo/250453177/

flickr.com/photos/benmcleod/97049880/

flickr.com/photos/rougerouge/215087724/

flickr.com/photos/bdebaca/1459722501/

flickr.com/photos/auro/

flickr.com/photos/chrisjones/31900809/

flickr.com/photos/vgm8383/2191223539/

flickr.com/photos/think_different/2140311929

flickr.com/photos/fukagawa/207296944/

Page 51: Design Strategies for a Distributed Web

Hopefully Still Time for Questions

Gareth Rushgrove | morethanseven.net