Upload
mariah-owens
View
212
Download
0
Embed Size (px)
Citation preview
Mars Rover…Mars Rover………FinallyFinally
By: Rich HeislerBy: Rich HeislerDecember 7, 2006December 7, 2006
Distributed Systems 8530Distributed Systems 8530To Dr SchraggerTo Dr Schragger
Villanova UniversityVillanova University
HistoryHistory
We dropped an orbiterWe dropped an orbiter Want to simulate the “rescue” of a Want to simulate the “rescue” of a
remote deviceremote device
IssuesIssues
DistanceDistance It’s sooooo far…It’s sooooo far… TimeTime
Round trip time optimally is ≈ 12 Round trip time optimally is ≈ 12 minutesminutes
6 minutes each way6 minutes each way StateState
ArchitectureArchitecture
Concept 3-tierConcept 3-tier Changed to 2-tier “Spoke & Wheel”Changed to 2-tier “Spoke & Wheel”
Made more senseMade more sense Roles:Roles:
ManMan MachineMachine EnvironmentEnvironment
FeaturesFeatures
Pilot Console – Pilot Console – “Man”“Man”
Event / Device Event / Device Console – Console – “Machine”“Machine”
Simulator Server – Simulator Server – “Environment“Environment
CommunicationsCommunications
Transient Asynchronous Transient Asynchronous CommunicationsCommunications Everyone must be able to respond Everyone must be able to respond
though…though… … … or no data gets updated…or no data gets updated… ……anywhereanywhere
ConceptsConcepts
TransparenciesTransparencies Replication – mimic of stateReplication – mimic of state Concurrency – look & feel of time delayConcurrency – look & feel of time delay Failure – what happens when…Failure – what happens when… Location – sim uses TCP/IP – as long as Location – sim uses TCP/IP – as long as
I know the address…I know the address…
ProblemsProblems
To Block or not to BlockTo Block or not to Block Spawned threads vs. .NET GUI updateSpawned threads vs. .NET GUI update Spawned threads (time) vs. .NET mainSpawned threads (time) vs. .NET main
ResultResult
BlockBlock Block the .NET GUI threadBlock the .NET GUI thread
UpdateDisplayDelegate del = new UpdateDisplayDelegate del = new UpdateDisplayDelegate(processBaseMsg);UpdateDisplayDelegate(processBaseMsg);
this.BeginInvoke(del, new object[] this.BeginInvoke(del, new object[] { szData });{ szData });
Not to BlockNot to Block Had to rip out all time issuesHad to rip out all time issues Capability completely destroyedCapability completely destroyed
Success?Success?
Sure…Sure… Learned more about the .NET platformLearned more about the .NET platform Ditto C#Ditto C# Protocols are sweet!Protocols are sweet! Common Module a success (Logging, Common Module a success (Logging,
Protocols, & State)Protocols, & State) ……Not reallyNot really
Lost main thrust with Time removalLost main thrust with Time removal
Do it again?Do it again?
Nah…Nah… ……although…although…
Future ThoughtsFuture Thoughts
Fix the time thread issueFix the time thread issue Add cross-component interactionsAdd cross-component interactions Fix the socket read buffer…Fix the socket read buffer…
……and pad the data betterand pad the data better Figure out the deprecated IP APIsFigure out the deprecated IP APIs Catalog all clientsCatalog all clients