Date post: | 20-Dec-2015 |
Category: |
Documents |
View: | 219 times |
Download: | 0 times |
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