mars rover… …finally by: rich heisler december 7, 2006 distributed systems 8530 to dr schragger...

Post on 14-Dec-2015

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related