europython 2008: tear down the walls (of virtual worlds)

128
all photos by Torley Wong and Tao Takashi EuroPython 2008 THE WALLS! DOWN TEAR

Post on 14-Sep-2014

8.540 views

Category:

Technology


0 download

DESCRIPTION

This is my presentation about the plan to tear down the walls between virtual worlds I held at EuroPython 2008 in Vilnius, Lithuania. It explains what the problem is and how we in the Architecture Working Group try to solve it. It also introduces some concepts of the Open Grid Protocol and introduces pyogp, a library trying to implement this protocol in Python.

TRANSCRIPT

Page 1: EuroPython 2008: Tear down the walls (of virtual worlds)

all photos by Torley Wong and Tao TakashiEuroPython 2008

THE

WALLS!DOWNTEAR

Page 2: EuroPython 2008: Tear down the walls (of virtual worlds)

Christian Scholz

Page 3: EuroPython 2008: Tear down the walls (of virtual worlds)

http://comlounge.net

Page 4: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 5: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 6: EuroPython 2008: Tear down the walls (of virtual worlds)

http://mrtopf.de

Page 7: EuroPython 2008: Tear down the walls (of virtual worlds)

http://mrtopf.de

BlogPodcast

Videoblog

daily show

TopfShow

TopfCast

Tao Takashi on Air

Page 8: EuroPython 2008: Tear down the walls (of virtual worlds)

DataPortability Projecthttp://dataportability.org

Page 9: EuroPython 2008: Tear down the walls (of virtual worlds)

virtual worlds interoperabilitywith Python

Page 10: EuroPython 2008: Tear down the walls (of virtual worlds)

virtual worlds interoperabilitywith Python

pyogp

Page 11: EuroPython 2008: Tear down the walls (of virtual worlds)

pyogp?

Page 12: EuroPython 2008: Tear down the walls (of virtual worlds)

pyogp?Python Open Grid Protocol

Page 13: EuroPython 2008: Tear down the walls (of virtual worlds)

Tao Takashi

Page 14: EuroPython 2008: Tear down the walls (of virtual worlds)

virtual world

Page 15: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 16: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 17: EuroPython 2008: Tear down the walls (of virtual worlds)

WALLEDGARDENS

Page 18: EuroPython 2008: Tear down the walls (of virtual worlds)

WALLEDGARDENS

Page 19: EuroPython 2008: Tear down the walls (of virtual worlds)

TEAR DOWN THE

WALLS

Page 20: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 21: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 22: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 23: EuroPython 2008: Tear down the walls (of virtual worlds)

Happily now, Second

Life has been proven to

exist. If we disappeared

tomorrow, the grid

would be rebuilt by you.

Page 24: EuroPython 2008: Tear down the walls (of virtual worlds)

AWGArchitecture Working Group

Page 25: EuroPython 2008: Tear down the walls (of virtual worlds)

OGPOpen Grid Protocol

Page 26: EuroPython 2008: Tear down the walls (of virtual worlds)

AWGArchitecture Working Group

GOALS

Page 27: EuroPython 2008: Tear down the walls (of virtual worlds)

AWGArchitecture Working Group

GOALSScalability

Page 28: EuroPython 2008: Tear down the walls (of virtual worlds)

AWGArchitecture Working Group

GOALSExtensibility

Scalability

Page 29: EuroPython 2008: Tear down the walls (of virtual worlds)

AWGArchitecture Working Group

GOALSExtensibility

Standardization

Scalability

Page 30: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 31: EuroPython 2008: Tear down the walls (of virtual worlds)

INTERNETBUILDING

THEOF THEFUTURE

Page 32: EuroPython 2008: Tear down the walls (of virtual worlds)

How does our world look like?

Page 33: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 34: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 35: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 36: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 37: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 38: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 39: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 40: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 41: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 42: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 43: EuroPython 2008: Tear down the walls (of virtual worlds)

SL REGION

Page 44: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

AGENT DOMAIN

Page 45: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

AGENT DOMAIN• Profiles• Groups• Instant Messaging• Contacts/Friends• Inventory (Object Store)

Page 46: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REGION DOMAIN

• World Simulation• Physics Simulation• Script Execution• Local Object Store

Page 47: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REST Interface

Database

Agent Hosts

Page 48: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REST Interface

Database

Agent Hosts

OGP

Page 49: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

REST Interface

Database

Region Hosts

Page 50: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

REST Interface

Database

Region Hosts

OGP

Page 51: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAINAGENT DOMAIN

REGION DOMAINREGION DOMAIN

Page 52: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

Page 53: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

Page 54: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

Page 55: EuroPython 2008: Tear down the walls (of virtual worlds)

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

TRUST!

Page 56: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 57: EuroPython 2008: Tear down the walls (of virtual worlds)

ingredients

Page 58: EuroPython 2008: Tear down the walls (of virtual worlds)

CAPS

Page 59: EuroPython 2008: Tear down the walls (of virtual worlds)

CAPSauthorization

Page 60: EuroPython 2008: Tear down the walls (of virtual worlds)

Capabilities

private URL

Page 61: EuroPython 2008: Tear down the walls (of virtual worlds)

Capabilities

private URLhttp://inventory/tao/

Page 64: EuroPython 2008: Tear down the walls (of virtual worlds)

internet intranet

Capabilities Serverhttp://host/caps/16762762762 http://inventory/tao/

Capabilities

Page 65: EuroPython 2008: Tear down the walls (of virtual worlds)

Seed CapabilityAgent Dom

ain

Page 66: EuroPython 2008: Tear down the walls (of virtual worlds)

Seed Capabilityhttp://host/caps/1676-a2762-762

Agent Domain

Page 67: EuroPython 2008: Tear down the walls (of virtual worlds)

Seed Capabilityhttp://host/caps/1676-a2762-762

{“caps“: [“inventory“]}

Agent Domain

Page 68: EuroPython 2008: Tear down the walls (of virtual worlds)

Seed Capabilityhttp://host/caps/1676-a2762-762

{“caps“: [“inventory“]}

{“inventory“: “http://.../cap/16778722“}

Agent Domain

Page 69: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 70: EuroPython 2008: Tear down the walls (of virtual worlds)

RHTTP

Page 71: EuroPython 2008: Tear down the walls (of virtual worlds)

RHTTPreverse HTTP

Page 72: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 73: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUEST

Page 74: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUEST

RESPONSE

Page 75: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 76: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUEST

Page 77: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUEST

RESPONSE

Page 78: EuroPython 2008: Tear down the walls (of virtual worlds)

COMETlong polling

REQUEST

RESPONSE

Page 79: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 80: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUEST

Page 81: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUESTUpgrade: PTTH/1.0

Page 82: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUESTUpgrade: PTTH/1.0

RESPONSEStatus: 101

Page 83: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSEStatus: 101

Page 84: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSE

RESPONSEStatus: 101

Page 85: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSE

REQUEST

RESPONSEStatus: 101

Page 86: EuroPython 2008: Tear down the walls (of virtual worlds)

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSE

REQUEST

RESPONSE

RESPONSEStatus: 101

Page 87: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 88: EuroPython 2008: Tear down the walls (of virtual worlds)

POST / HTTP/1.1 Host: localhost:9999 Accept-Encoding: identityUpgrade: PTTH/0.9

Page 89: EuroPython 2008: Tear down the walls (of virtual worlds)

POST / HTTP/1.1 Host: localhost:9999 Accept-Encoding: identityUpgrade: PTTH/0.9

HTTP/1.1 101 Switching ProtocolsContent-type: text/plainUpgrade: PTTH/0.9Date: Tue, 13 May 2008 20:14:45 GMTContent-Length: 0

Page 90: EuroPython 2008: Tear down the walls (of virtual worlds)

POST / HTTP/1.1 Host: localhost:9999 Accept-Encoding: identityUpgrade: PTTH/0.9

GET / HTTP/1.1Host: 127.0.0.1:65331Accept-Encoding: identityaccept: text/plain;q=1,*/*;q=0

HTTP/1.1 101 Switching ProtocolsContent-type: text/plainUpgrade: PTTH/0.9Date: Tue, 13 May 2008 20:14:45 GMTContent-Length: 0

Page 91: EuroPython 2008: Tear down the walls (of virtual worlds)

POST / HTTP/1.1 Host: localhost:9999 Accept-Encoding: identityUpgrade: PTTH/0.9

HTTP/1.1 200 OK Content-type: text/plain Date: Tue, 13 May 2008 20:14:45 GMT Content-Length: 15 rdlrow ,olleH

GET / HTTP/1.1Host: 127.0.0.1:65331Accept-Encoding: identityaccept: text/plain;q=1,*/*;q=0

HTTP/1.1 101 Switching ProtocolsContent-type: text/plainUpgrade: PTTH/0.9Date: Tue, 13 May 2008 20:14:45 GMTContent-Length: 0

Page 92: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 93: EuroPython 2008: Tear down the walls (of virtual worlds)

whereisdasnake?

Page 94: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

AGENTDOMAIN

Page 95: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

AGENTDOMAIN

login

Page 96: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

AGENTDOMAIN

loginplace_avatar

Page 97: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

AGENTDOMAIN

loginplace_avatar

Page 98: EuroPython 2008: Tear down the walls (of virtual worlds)

REGION DOMAIN

AGENTDOMAIN

login

interact

place_avatar

Page 99: EuroPython 2008: Tear down the walls (of virtual worlds)

credentials = PlainPasswordCredential(

firstname, lastname, password)

agentdomain = AgentDomain(loginurl) agent = agentdomain.login(credentials)

place = IPlaceAvatarAdapter(agent) region = Region(regionurl)

avatar = place(region)

Page 100: EuroPython 2008: Tear down the walls (of virtual worlds)

credentials = PlainPasswordCredential(

firstname, lastname, password)

agentdomain = AgentDomain(loginurl) agent = agentdomain.login(credentials)

Page 101: EuroPython 2008: Tear down the walls (of virtual worlds)

credentials = PlainPasswordCredential(

firstname, lastname, password)

agentdomain = AgentDomain(loginurl) agent = agentdomain.login(credentials)

pyogp

Agent Domain

Page 102: EuroPython 2008: Tear down the walls (of virtual worlds)

credentials = PlainPasswordCredential(

firstname, lastname, password)

agentdomain = AgentDomain(loginurl) agent = agentdomain.login(credentials)

pyogp loginurl

Agent Domain

Page 103: EuroPython 2008: Tear down the walls (of virtual worlds)

credentials = PlainPasswordCredential(

firstname, lastname, password)

agentdomain = AgentDomain(loginurl) agent = agentdomain.login(credentials)

pyogp loginurl

LLSD(credentials)

Agent Domain

Page 104: EuroPython 2008: Tear down the walls (of virtual worlds)

credentials = PlainPasswordCredential(

firstname, lastname, password)

agentdomain = AgentDomain(loginurl) agent = agentdomain.login(credentials)

pyogp loginurl

LLSD(credentials)

{‘seedcap‘:‘<url>‘}

Agent Domain

Page 105: EuroPython 2008: Tear down the walls (of virtual worlds)

agentdomainseed_caplogin_url

Page 106: EuroPython 2008: Tear down the walls (of virtual worlds)

agentdomainseed_caplogin_url

agent

Page 107: EuroPython 2008: Tear down the walls (of virtual worlds)

place = IPlaceAvatarAdapter(agent)

agentdomainseed_caplogin_url

agent

Page 108: EuroPython 2008: Tear down the walls (of virtual worlds)

place = IPlaceAvatarAdapter(agent)

agentdomainseed_caplogin_url

agent

def do(region):

"""takes a region objects and tries to

place the agent there as an avatar

return an avatar"""

Page 109: EuroPython 2008: Tear down the walls (of virtual worlds)

place = IPlaceAvatarAdapter(agent)

agentdomainseed_caplogin_url

agent

def do(region):

"""takes a region objects and tries to

place the agent there as an avatar

return an avatar"""

avatar = place.do(region)

Page 110: EuroPython 2008: Tear down the walls (of virtual worlds)

place = IPlaceAvatarAdapter(agent)

agentdomainseed_caplogin_url

agent

def do(region):

"""takes a region objects and tries to

place the agent there as an avatar

return an avatar"""

avatar = place.do(region)

region = Region(regionurl)

regionregion_url

Page 111: EuroPython 2008: Tear down the walls (of virtual worlds)

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp

Agent Domain

Page 112: EuroPython 2008: Tear down the walls (of virtual worlds)

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp seed_cap

Agent Domain

Page 113: EuroPython 2008: Tear down the walls (of virtual worlds)

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp seed_cap

{‘caps‘:‘place_av‘}

Agent Domain

Page 114: EuroPython 2008: Tear down the walls (of virtual worlds)

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp seed_cap

{‘caps‘:‘place_av‘}

{‘place_av‘:‘<url>‘}

Agent Domain

Page 115: EuroPython 2008: Tear down the walls (of virtual worlds)

avatar = place.do(region)

pyogp

Agent Domain

Page 116: EuroPython 2008: Tear down the walls (of virtual worlds)

avatar = place.do(region)

pyogp place_av

Agent Domain

Page 117: EuroPython 2008: Tear down the walls (of virtual worlds)

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

Agent Domain

Page 118: EuroPython 2008: Tear down the walls (of virtual worlds)

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

<region details>

Agent Domain

Page 119: EuroPython 2008: Tear down the walls (of virtual worlds)

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

<region details>

Agent Domain

Region

Page 120: EuroPython 2008: Tear down the walls (of virtual worlds)

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

<region details>

Agent Domain

Region

Page 121: EuroPython 2008: Tear down the walls (of virtual worlds)
Page 122: EuroPython 2008: Tear down the walls (of virtual worlds)

How to contribute?

Page 123: EuroPython 2008: Tear down the walls (of virtual worlds)

How to contribute?http://pyogp.net

Page 124: EuroPython 2008: Tear down the walls (of virtual worlds)

CODE!

How to contribute?http://pyogp.net

Page 125: EuroPython 2008: Tear down the walls (of virtual worlds)

CODE!

How to contribute?http://pyogp.net Mailing List