35
DOLCLAN - Distributed Objects in Loose Coupled Local Area N DOLCLAN - Distributed Objects in Loose Coupled Local Area N etworks etworks 1 DOLCLAN DOLCLAN Distributed Objects in Distributed Objects in Loose Coupled Local Area Loose Coupled Local Area Networks Networks

DOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1 DOLCLAN Distributed Objects in Loose Coupled Local Area Networks

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 11

DOLCLANDOLCLAN

Distributed Objects in Loose Distributed Objects in Loose Coupled Local Area NetworksCoupled Local Area Networks

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 22

AgendaAgenda

11: : MotivationMotivationConceptConcept

2: Language support2: Language supportSystem designSystem design

3: Evaluation3: EvaluationStatus Status ConclusionConclusion

4:4: Questions and discussionQuestions and discussion

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 33

MotivationMotivation

We are moving from single peer applications to multi peer We are moving from single peer applications to multi peer applicationsapplications

Pervasive applications involve information sharing and collaborationPervasive applications involve information sharing and collaboration

Pervasive environments are transient due to network connections Pervasive environments are transient due to network connections and device mobilityand device mobility

Existing technologies are ill suited to meet this challengeExisting technologies are ill suited to meet this challenge

A more suitable method would demand no existing infrastructure A more suitable method would demand no existing infrastructure and automatically adapt to changes in the environmentand automatically adapt to changes in the environment

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 44

MotivationMotivation- distributed systems- distributed systems

Fixed Fixed

distributed systemdistributed system

MobileMobile

distributed systemdistributed system

DeviceDevice FixedFixed MobileMobile

Network connectionNetwork connection PermanentPermanent SporadicSporadic

Execution contextExecution context StaticStatic DynamicDynamic

Mobile Computing Middleware, Mascolo et al., 2002

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 55

MotivationMotivation- related work- related work

RMI / RPCRMI / RPC

M-3 Network M-3 Network ObjectsObjects

COAST / COAST /

Globe / CORE Globe / CORE / etc./ etc.

one.worldone.world

DeviceDevice

[fixed / [fixed / mobilemobile]]

Fixed and Fixed and mobilemobile

Fixed and Fixed and mobilemobile

Fixed and Fixed and mobile mobile

Network connectionNetwork connection

[permanent / [permanent / sporadicsporadic]]

PermanentPermanent Permanent Permanent and sporadicand sporadic

PermanentPermanent

Execution contextExecution context

[static / [static / dynamicdynamic]]

StaticStatic StaticStatic DynamicDynamic

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 66

Design requirementsDesign requirements

Easier is betterEasier is better Execution context is dynamicExecution context is dynamic Help the application programmer and the userHelp the application programmer and the user

Disconnectedness is not an errorDisconnectedness is not an error Network connections are sporadicNetwork connections are sporadic

Encourage ad hoc compositionEncourage ad hoc composition Devices are mobileDevices are mobile

Recognize sharing as defaultRecognize sharing as default Unforeseen sessions emergeUnforeseen sessions emerge

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 77

ConceptConcept

Distributed Application

Peer 1 Peer 2 Peer 3

Distributed Model

Application Logic Application Logic Application Logic

ObjectObject

Object Object

Object

Object

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 88

ConceptConcept

Distributed Application

Peer 1 Peer 2 Peer 3

Application Logic

Distributed Model

ObjectObjectObject

Application Logic

Distributed Model

ObjectObjectObject

Application Logic

Distributed Model

ObjectObjectObject

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 99

Hello WorldHello World

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1010

Language supportLanguage support

Two modifiersTwo modifiers distributed ephemeraldistributed ephemeral distributed accountabledistributed accountable

One super classOne super class DistributedObjectDistributedObject

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1111

Hello World Hello World

One distributed objectOne distributed object One distributed variableOne distributed variable

OneOne input loop input loop One event handlerOne event handler

15 lines of code15 lines of code

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1212

Programming patternProgramming pattern

Distributed Application

Peer 1 Peer 2

View

Distributed Model

ObjectObjectObjectLocal Controller

Peer 3

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1313

Language supportLanguage support- lifecycle events- lifecycle events

instanceCreatedEventinstanceCreatedEvent

instanceDeletedEventinstanceDeletedEvent

stateChangedEventstateChangedEvent

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1414

Language supportLanguage support- resolving conflicts- resolving conflicts

Disconnected continuous workDisconnected continuous work

=> => Divergent versions will emergeDivergent versions will emerge

We need an intelligent way to We need an intelligent way to synchronize upon reconnectionsynchronize upon reconnection

Override the merge function in the Override the merge function in the DistributedObject classDistributedObject class

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1515

Language supportLanguage support- custom binding- custom binding

Sometimes the default naming scheme Sometimes the default naming scheme does not capture the semantics of the does not capture the semantics of the applicationapplication

Override the getDistributedOID Override the getDistributedOID function in the DistributedObject classfunction in the DistributedObject class

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1616

EaterGameEaterGame

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1717

System designSystem design- peer architecture- peer architecture

Application Layer

Distributed Model Layer

Communication Layer

TCP Unicast I/O

Communication controller

UDP Multicast I/O

Object 1 Object 2 Object 3

Distributed Object Controller

Protocol

View Controller

Object ... Object N

PGM Multicast I/O

JITE Controller

Naming Service

Logical Time Service

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1818

System designSystem design- communication channels- communication channels

CommunicationCommunication• One control channelOne control channel• N*2 peer group channelsN*2 peer group channels• Dynamic unicast connectionsDynamic unicast connections

Control channelControl channel• Unreliable multicastUnreliable multicast• HELLO / ANNOUNCEHELLO / ANNOUNCE__NETNET

Peer group channelsPeer group channels• Un- and reliable multicastUn- and reliable multicast• STATE_EVENTSTATE_EVENT• CREATE / DELETE_OBJECTCREATE / DELETE_OBJECT

Unicast connectionsUnicast connections• Reliable unicastReliable unicast• HELLOHELLO_ACK _ACK • JOIN / JOIN_ACKJOIN / JOIN_ACK

Peer Group A Channel

Peer Group B Channel

Control Channel

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 1919

System designSystem design- synchronous state sharing- synchronous state sharing

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2020

EvaluationEvaluation

CompletenessCompleteness• Can useful applications be build?Can useful applications be build?

ComplexityComplexity• How hard is it to write code using the framework?How hard is it to write code using the framework?

PerformancePerformance• Is the system performance acceptable?Is the system performance acceptable?

(Utility)(Utility)• Have we enabled others to be successful?Have we enabled others to be successful?

System support for pervasive applications,System support for pervasive applications, Grimm et al., 2004 Grimm et al., 2004

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2121

StatusStatus

RMI / RPCRMI / RPC

M-3 Network M-3 Network ObjectsObjects

COAST / COAST /

Globe / CORE / Globe / CORE / etc.etc.

one.worldone.world DOLCLANDOLCLAN

DistributedDistributed

ObjectObject

Type of deviceType of device Fixed and mobileFixed and mobile Fixed and mobileFixed and mobile Fixed and mobileFixed and mobile Fixed (and mobile)Fixed (and mobile)

Type of network connectionType of network connection PermanentPermanent Permanent or Permanent or sporadicsporadic

PermanentPermanent SporadicSporadic

Type of execution contextType of execution context StaticStatic StaticStatic DynamicDynamic DynamicDynamic

Easier is betterEasier is betterService discoveryService discoveryLanguage supportLanguage support

NoNo

YesYes

NoNo

SomeSome

YesYes

NoNo

YesYes

YesYes

Disconnectedness is not an errorDisconnectedness is not an errorDisconnected continuous workDisconnected continuous workAn intelligent synchronization upon An intelligent synchronization upon reconnectionreconnection

NoNo

NoNo

SomeSome

NoNo

NoNo

NoNo

YesYes

YesYes

Encourage ad hoc compositionEncourage ad hoc compositionXML XML & & open protocolsopen protocols SomeSome SomeSome YesYes YesYes

Recognize sharing as defaultRecognize sharing as defaultUnforeseen sessions supportedUnforeseen sessions supported YesYes YesYes YesYes YesYes

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2222

Room for improvementsRoom for improvements

Language supportLanguage support• .delete() (reference counting).delete() (reference counting)• .join_network() (really annoying…).join_network() (really annoying…)• Meta dataMeta data

System architectureSystem architecture• Multicast (limits devices and scope)Multicast (limits devices and scope)• Physical scope (extending beyond LAN)Physical scope (extending beyond LAN)• Application scope (extending beyond application)Application scope (extending beyond application)

EvaluationEvaluation• Utility (what are they really capable ofUtility (what are they really capable of??))

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2323

ConclusionConclusion

A novel approach for creating distributed pervasive A novel approach for creating distributed pervasive applicationsapplications

Language supportLanguage support• Distributed objects and variablesDistributed objects and variables• Domain customizableDomain customizable

Supporting infrastructureSupporting infrastructure• Pure peer to peerPure peer to peer• Full state replicationFull state replication

Implemented and evaluatedImplemented and evaluated• Overall good resultsOverall good results• Still room for improvementsStill room for improvements

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2424

Questions and discussionQuestions and discussion

??

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2525

AppendixAppendix

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2626

Modula-3Modula-3Network ObjectsNetwork Objects

Uses inheritanceUses inheritance Concrete objects only resides Concrete objects only resides

on the serving host and can on the serving host and can not be movednot be moved

Surrogates (proxies) points to Surrogates (proxies) points to concrete objectsconcrete objects

Arguments and results are Arguments and results are automatically marshalled automatically marshalled (pickled)(pickled)

WirerepWirerep’s’s (RORs) can be (RORs) can be parsed over the networkparsed over the network

Dirty and clean calls provide Dirty and clean calls provide network-wide reference network-wide reference counting for GCcounting for GC

CC SS

SS

SS

1: Invocation

2: RPC3: RPC

4: Result

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2727

Propagating an updatePropagating an updatePeer 2Peer 1

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Y

_distribute_variable(”X”,serialize(Z))

Z

Q

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Y

Q

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Y

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Y

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Y

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Y

Y

Z

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Z

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Z

Class MyClass : DistributedObject { distributed accountable HashTable X;}

Z

Class MyClass : DistributedObject { distributed accountable HashTable X;}

TIM

E

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2828

Propagating an updatePropagating an update

Peer

I/O Protocol ApplicationCom. Controller D. O. ControllerNaming Service Pawn

setRow(8)

getTime()

getTime()

Logical Time

time

lookupName(Pawn)

name

distributeVariable(state,name)

distributeVariable(state,this)

getStateEventMessage(state,name)

new StateEventMessage()

sendMessage(StateEventMessage)

message

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 2929

Creating an object remoteCreating an object remotePeer

PGM I/O Protocol Application

new()

Com. Controller D. O. Controller Naming Service JITE Controller

Queen

message

applyEvents(Queen)

instanceCreatedEvent(Queen)

deliver(message)

parse(message)

new Create()

deliver(Create)

bind(Queen,name)

instanceDeletedEvent +=

stateChangedEvent +=

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 3030

.join.join_network()_network()

CurrentCurrent BlockingBlocking

Non-blockingNon-blocking

Network stateJoining peer

.Main()

New A()

New B()

//Non-blocking call to.join_network()

A

B

C

A

B

A

B

C

TIME

Network stateJoining peer.Main()

//Blocking call to.join_network()

A

B

C

A

B

C

TIME

Network stateJoining peer

TIME

.Main()

//Non-blocking call to.join_network()

New A()

New B()

A

B

C

A

B

C

AA

BB

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 3131

ProtocolProtocol SyntaxSyntax

ExampleExample

State representationState representation

exampleexample

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 3232

Default naming schemeDefault naming scheme

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 3333

GraphsGraphs- join time- join time

Number of objectsNumber of objects Number of peersNumber of peers

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 3434

GraphsGraphs- message RTT- message RTT

Using PGMUsing PGM Using UDPUsing UDP

DOLCLAN - Distributed Objects in Loose Coupled Local Area NetworksDOLCLAN - Distributed Objects in Loose Coupled Local Area Networks 3535

GraphsGraphs- performance penalty and DGC- performance penalty and DGC

Performance penaltyPerformance penalty Distributed GCDistributed GC