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

Post on 14-Sep-2014

8.541 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

all photos by Torley Wong and Tao TakashiEuroPython 2008

THE

WALLS!DOWNTEAR

Christian Scholz

http://comlounge.net

http://mrtopf.de

http://mrtopf.de

BlogPodcast

Videoblog

daily show

TopfShow

TopfCast

Tao Takashi on Air

DataPortability Projecthttp://dataportability.org

virtual worlds interoperabilitywith Python

virtual worlds interoperabilitywith Python

pyogp

pyogp?

pyogp?Python Open Grid Protocol

Tao Takashi

virtual world

WALLEDGARDENS

WALLEDGARDENS

TEAR DOWN THE

WALLS

Happily now, Second

Life has been proven to

exist. If we disappeared

tomorrow, the grid

would be rebuilt by you.

AWGArchitecture Working Group

OGPOpen Grid Protocol

AWGArchitecture Working Group

GOALS

AWGArchitecture Working Group

GOALSScalability

AWGArchitecture Working Group

GOALSExtensibility

Scalability

AWGArchitecture Working Group

GOALSExtensibility

Standardization

Scalability

INTERNETBUILDING

THEOF THEFUTURE

How does our world look like?

SL REGION

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

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

AGENT DOMAIN

REGION DOMAIN

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

AGENT DOMAIN

REST Interface

Database

Agent Hosts

AGENT DOMAIN

REST Interface

Database

Agent Hosts

OGP

REGION DOMAIN

REST Interface

Database

Region Hosts

REGION DOMAIN

REST Interface

Database

Region Hosts

OGP

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAINAGENT DOMAIN

REGION DOMAINREGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

AGENT DOMAIN

REGION DOMAIN

REGION DOMAIN

TRUST!

ingredients

CAPS

CAPSauthorization

Capabilities

private URL

Capabilities

private URLhttp://inventory/tao/

internet intranet

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

Capabilities

Seed CapabilityAgent Dom

ain

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

Agent Domain

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

{“caps“: [“inventory“]}

Agent Domain

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

{“caps“: [“inventory“]}

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

Agent Domain

RHTTP

RHTTPreverse HTTP

REQUEST

REQUEST

RESPONSE

REQUEST

REQUEST

RESPONSE

COMETlong polling

REQUEST

RESPONSE

REQUEST

REQUESTUpgrade: PTTH/1.0

REQUESTUpgrade: PTTH/1.0

RESPONSEStatus: 101

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSEStatus: 101

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSE

RESPONSEStatus: 101

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSE

REQUEST

RESPONSEStatus: 101

REQUESTUpgrade: PTTH/1.0

REQUEST

RESPONSE

REQUEST

RESPONSE

RESPONSEStatus: 101

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

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

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

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

whereisdasnake?

REGION DOMAIN

AGENTDOMAIN

REGION DOMAIN

AGENTDOMAIN

login

REGION DOMAIN

AGENTDOMAIN

loginplace_avatar

REGION DOMAIN

AGENTDOMAIN

loginplace_avatar

REGION DOMAIN

AGENTDOMAIN

login

interact

place_avatar

credentials = PlainPasswordCredential(

firstname, lastname, password)

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

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

avatar = place(region)

credentials = PlainPasswordCredential(

firstname, lastname, password)

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

credentials = PlainPasswordCredential(

firstname, lastname, password)

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

pyogp

Agent Domain

credentials = PlainPasswordCredential(

firstname, lastname, password)

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

pyogp loginurl

Agent Domain

credentials = PlainPasswordCredential(

firstname, lastname, password)

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

pyogp loginurl

LLSD(credentials)

Agent Domain

credentials = PlainPasswordCredential(

firstname, lastname, password)

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

pyogp loginurl

LLSD(credentials)

{‘seedcap‘:‘<url>‘}

Agent Domain

agentdomainseed_caplogin_url

agentdomainseed_caplogin_url

agent

place = IPlaceAvatarAdapter(agent)

agentdomainseed_caplogin_url

agent

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

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)

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

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp

Agent Domain

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp seed_cap

Agent Domain

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp seed_cap

{‘caps‘:‘place_av‘}

Agent Domain

loginurl

place = IPlaceAvatarAdapter(agent)

pyogp seed_cap

{‘caps‘:‘place_av‘}

{‘place_av‘:‘<url>‘}

Agent Domain

avatar = place.do(region)

pyogp

Agent Domain

avatar = place.do(region)

pyogp place_av

Agent Domain

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

Agent Domain

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

<region details>

Agent Domain

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

<region details>

Agent Domain

Region

avatar = place.do(region)

pyogp place_av

{‘regionurl‘:‘..‘}

<region details>

Agent Domain

Region

How to contribute?

How to contribute?http://pyogp.net

CODE!

How to contribute?http://pyogp.net

CODE!

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

THANK YOU!

http://pyogp.netcs@comlounge.net

QUESTIONS?

http://pyogp.netcs@comlounge.net

top related