Files From Mars

66
2005 JavaOne SM Conference | Session TS-1416 TS-1416 Files from Mars: Java™ Technology in the MER Data Infrastructure David Noble Principal Consultant Oak Grove Consulting http://marsrovers.jpl.nasa.gov/

description

Challenges and trade-offs in the development of software for a ground system supporting the Mars Exploration Rovers (JavaOne 2005)

Transcript of Files From Mars

Page 1: Files From Mars

2005 JavaOneSM Conference | Session TS-1416

TS-1416

Files from Mars:Java™ Technology in the MER Data InfrastructureDavid NoblePrincipal ConsultantOak Grove Consultinghttp://marsrovers.jpl.nasa.gov/

Page 2: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 2

Goal

Examine challenges and tradeoffs in the development of software for a ground system supporting the Mars Exploration Rovers

This work was performed at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration

Page 3: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 3

Agenda

BackgroundChallengesSimplicityExtensibilityReuseSummaryQ&A

Page 4: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 4

Agenda

BackgroundChallengesSimplicityExtensibilityReuseSummaryQ&A

Page 5: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 5

Mission Overview

Two robotic geologists exploring Mars

Credit: NASA/JPL/Cornell

Detail of 'Cahokia' panoramahttp://photojournal.jpl.nasa.gov/feature/cahokia

Page 6: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 6

Credit: NASA/JPL/MSSS/NMMNH

MER-A (Spirit) Traverse to Sol 450http://photojournal.jpl.nasa.gov/catalog/PIA07849

Page 7: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 7

MER-A (Spirit) and Mars Pathfinder flight sparehttp://marsrovers.jpl.nasa.gov/gallery/spacecraft/mer2002_1106_b231.html

Height: 1.5mWidth: 2.3mLength: 1.6mMass: 174kg

Credit: NASA/JPL

Page 8: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 8

http://athena.cornell.edu/

Credit: NASA/JPL/Cornell/ASU

Credit: NASA/JPL/Cornell/ASU

Credit: NASA/JPL/Cornell/USGS/University of MainzCredit: Maas Digital LLC, NASA/JPL

Page 9: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 9

NASA’s Science Objectives

● Long-term science goals for Mars Exploration:● Determine whether Life ever arose on Mars● Characterize the Climate of Mars● Characterize the Geology of Mars● Prepare for Human Exploration

http://marsrovers.jpl.nasa.gov/science/

Page 10: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 10

“MER’s Science Objectives

The scientific objectives of the Mars Exploration Rover mission are to:

1. Search for and characterize a variety of rocks and soils that hold clues to past water activity. In

particular, samples sought will include those that have minerals deposited by water-related processes such as precipitation, evaporation, sedimentary cementation, or hydrothermal activity.

2. Determine the distribution and composition of minerals, rocks, and soils surrounding the landing sites. 3. Determine what geologic processes have shaped the local terrain and influenced the chemistry. Such

processes could include water or wind erosion, sedimentation, hydrothermal mechanisms, volcanism, and cratering.

4. Perform "ground truth"—calibration and validation—of surface observations made by Mars orbiter instruments. This will help determine the accuracy and effectiveness of various instruments that survey Martian geology from orbit.

5. Search for iron-containing minerals, identify and quantify relative amounts of specific mineral types that

contain water or were formed in water, such as iron-bearing carbonates. 6. Characterize the mineralogy and textures of rocks and soils and determine the processes that created

them.

7. Search for geological clues to the environmental conditions that existed when liquid water was present. Assess whether those environments were conducive to life.

http://marsrovers.jpl.nasa.gov/science/objectives.html

Page 11: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 11

Actors

● Scientists● Evaluate images and other data● Plan rover activities

● Engineers● Evaluate rover health, state, performance● Build rover activity commands● Keep everything working

Page 12: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 12

Downlink Data Flow

TIS DP MIPL

EVR

EHA

TDS OSS

TIS TDSEngineer

PDSScientist

Not to scale.Significantly simplified.

Page 13: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 13

Downlink Data Composition

ChannelsEventsEngineering ProductsEngineering CamerasScience

MER-A (Spirit) Sols 1-400Percentage of data volume

53%33%

8%

2% 3%

95% Products

Page 14: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 14

Agenda

BackgroundChallengesSimplicityExtensibilityReuseSummaryQ&A

Page 15: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 15

Deadline

● MER-A Launch Window● June 8, 2003–June 24, 2003

● MER-B Launch Window● June 25, 2003–July 15, 2003

● Two opportunities per day● 10 days required between launches

MER Landing Press Kit, 12-1-03http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf

Page 16: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 16

Planetary Alignment

MER Landing Press Kit, 12-1-03http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf

Page 17: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 17

Tactical Timeline

● 15 hours to create next sol’s commands● Evaluate health, etc● Evaluate science● Determine science goals● Plan activities● Build and validate commands

Page 18: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 18

Attempts SuccessesOrbiters 11 4 Landers 13 4Rovers 1 1

RiskMars Missions, from 1/1/1970 to 1/1/2004

MER Landing Press Kit, 12-1-03http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf

Page 19: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 19

Budget

Spacecraft Dev and Science InstrumentsLaunchMission Ops and Science Proc-essing

$645M

$100M

$75M

MER Landing Press Kit, 12-1-03http://marsrovers.jpl.nasa.gov/newsroom/merlandings.pdf

Primary Mission: $820 Million USD

Page 20: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 20

Visibility

● First three days after landing:● One billion web hits● 15 Terabytes downloaded by web browsers

http://marsrovers.jpl.nasa.gov/newsroom/pressreleases/20040106a.html

Page 21: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 21

Agenda

BackgroundChallengesSimplicityExtensibilityReuseSummaryQ&A

Page 22: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 22

Loose Coupling

● Benefits● Component reuse● Component pluggability● Parallel development

● Drivers: cost, risk

Page 23: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 23

Criteria

● Usability● Correctness● Testability● Reliability

Page 24: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 24

Options

● Service Lookup● Inversion of Control● JavaBeans and InfoBus● Message Pub/Sub

Page 25: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 25

Options

● Service Lookup● Inversion of Control● JavaBeans and InfoBus● Message Pub/Sub

Page 26: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 26

Message Classes

<<interface>>

MessageSubscriberhandleMessage(Message)

MessageContextpublish(Message)subscribe(type:String, Subscriber)

MessagegetType() : String

Page 27: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 27

Message Classes

<<interface>>

MessageSubscriberhandleMessage(Message)

MessageContextpublish(Message)subscribe(type:String, Subscriber)

MessagegetType() : String

BaseMessageHandlerhandleMessage(Message)

MessageContextFactorycreateMessageContext() : MessageContext

Page 28: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 28

Message Publisherpublic class MyPublisher {

private MessageContext messageContext;

public MyPublisher(MessageContext context) { this.messageContext = context; }

public void demonstratePublish() { SampleMessage message = new SampleMessage(); messageContext.publish(message); }

}

Page 29: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 29

Message Subscriberpublic class MySubscriber implements MessageSubscriber { public MySubscriber(MessageContext messageContext) { messageContext.subscribe(SampleMessage.TYPE, this); } public void handleMessage(Message genericMessage) { SampleMessage message; message = (SampleMessage) genericMessage; // ... do something with the message }}

Page 30: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 30

Subscriber to Multiple MessagesmessageContext.subscribe(FooMessage.TYPE, new BaseMessageHandler() { public void handleMessage(Message genericMessage){ handleFooMessage((FooMessage) genericMessage); } });messageContext.subscribe(BarMessage.TYPE, new BaseMessageHandler() { public void handleMessage(Message genericMessage){ handleBarMessage((BarMessage) genericMessage); } });

Page 31: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 31

Assembling ComponentsMessageContext context = new MessageContext();context.setVerbose(verbose);ProductInput input = addProductInput(context);if (dump) { addProductDumpOutput(context);}ProductBuilder builder = addProductBuilder(context);ProductStorage storage = addProductStorage(context);addProductSummaryOutput(context);addExternalSubscribers(context);input.read();

Page 32: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 32

Lines PercentBrackets 59 8.70% Whitespace 70 10.32%Comments 345 50.88%“Significant” 204 30.09%Total 678

Lines of Code for Message PackageIncluding Test Classes

Page 33: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 33

Would I Do It Again?

● Yes● Reused for other missions● Watching for creeping complexity

Page 34: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 34

Data Product Storage

● Product files● Product metadata● Product part metadata

Page 35: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 35

Schema Design

ProductIDFilenameCommandSeriesCreationTimeTotalPartsetc

ProductPart

IDProductPartNumberDataFilenameDataOffsetDataLengthetc

1

1..*

Page 36: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 36

Database

Page 37: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 37

Why Not?

● Procedures● Installation, configuration, maintenance

● Validation tests● Performance, scalability, reliability

● Third party software evaluations, DBA, …● Time

Page 38: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 38

Product Metadata

● XML● Regular line breaks

Page 39: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 39

LocationsComplete Productsproducts/<type>/<subtype>/<command>_<series>_<time>.datproducts/<type>/<subtype>/<command>_<series>_<time>.emdPartial Products<command>_<series>_<time>_Partial-<counter>.pdat<command>_<series>_<time>_Partial-<counter>.pemdParts Cacheproducts/parts/<filename>/*.datproducts/parts/<filename>/*.emdAlternate Viewssol/<NNN>/ssw/products/created/<typename>/<filename>sol/<NNN>/ssw/products/received/<typename>/<filename>

Page 40: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 40

Would I Do It Again?

● Not exactly● Add database

● Develop procedures off critical path● Keep files

● Accessible to scripts, people

Page 41: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 41

Agenda

BackgroundChallengesSimplicityExtensibilityReuseSummaryQ&A

Page 42: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 42

Product Action Triggers

● Requirement:● Trigger actions on product arrival

Page 43: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 43

Product Action Triggers

● Initial requirement:“Users can register to be notified by emailwhen a product arrives”

Page 44: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 44

Product Action Triggers

● Filter criteria● Script execution

Page 45: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 45

Configuration

<subscriptions> <script> <trigger complete="yes" partial="no"/> <filter> <allow apid="50" subtype="78"/> </filter> <path>subscriptions/scripts/uncompress</path> </script></subscriptions>

Page 46: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 46

Multiple Uses

● Science processing● Generic uncompression● Text representations● Multiple directory hierarchies

Page 47: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 47

However…

● Never did email product notification

Page 48: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 48

However…

● Never did email product notification● Email reports had high-level summaries

Page 49: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 49

Would I Do It Again?

● Yes, but…● With JMS message publishing

Page 50: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 50

Product Display

● XML Data Dictionary● Values● Units● Lookup tables● Arrays of values● Arrays of arrays● “Opaque” blocks handled by external viewers

Page 51: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 51

External Viewers

● Images● Complex data structures● Special formatting● Reports

Page 52: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 52

Hazcam Image% mer_dp_view img_image_loco_fhl/*.dat | more

Filename: img_image_loco_fhl/f0006-000-0000_003_0161168693-127.datType: img_image_loco_fhl - LOCO Compressed Image, Left Front HazcamSpacecraft: MER A (SCID=254)DVT: 2005-039T20:59:11.217 - 0161168693.127Packetized: 2005-045T04:00:14.932 - 0161625954.245ERT: 2005-045T06:10:23.782APID=25 Subtype=9 Version=2 Image ID: 1000012323 Camera ID: Front Left Hazcam Filter ID: No filter/unknown Array PMA Coordinate length 3 [0] PMA Coordinate: 0.000000 [1] PMA Coordinate: 0.000000 [2] PMA Coordinate: 0.000000 PMA Pointing Argument: 0 Image Acquire Request: Acquire Image Shutter Subtraction Request: None

Credit: NASA/JPL/Caltech

Page 53: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 53

UHF Link ReportFilename: products/047/010/e0105-001-0005_001_0134188770-155.datType: uhf_link_rep - UHF Link ReportSpacecraft: MER A (SCID=254)DVT: 2004-093T14:38:43.195 - 0134188770.155Packetized: 2004-093T16:28:59.022 - 0134195386.103ERT: 2004-093T16:55:10.744APID=47 Subtype=10 Version=0product_viewer: viewUhfDps products/047/010/e0105-001-0005_001_0134188770-155.dat

Report for "UHF Link Report" data product (47/10) Product Version: 0 File Name: products/047/010/e0105-001-0005_001_0134188770-155.dat Accounting---------------------------------------------------------------------------File size: 12028 bytesTime span: 1000 secondsNumber of samples: 999Sample period: 1 second

Start End---------------------------------------------------------SCLK: 134188770.61377 134189770.50879Osc. Temp (DN) 12633 12911Osc. Temp Status Good GoodPA Temp (DN) 0 0PA Temp Status Good Good

--Samp---------SCLK---Rx_Pwr(DN)---Word 4---Tx_State---RC_Tone---TC_Tone---Link_Qual---Bit_Sync---Car_Lock-----TAC-----RAC 1 134188771 8197 0x0094 Off No_Tone No_Tone Good No_Lock No_Lock 0 0 2 134188772 8404 0x0094 Off No_Tone No_Tone Good No_Lock No_Lock 0 0 3 134188773 8409 0xf008 Off No_Tone No_Tone Bad No_Lock No_Lock 0 0 4 134188774 8400 0xf008 Off No_Tone No_Tone Bad No_Lock No_Lock 0 0

Page 54: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 54

Would I Do It Again?

● Yes, but…● Add type/length/value data types● Add formatting plugin (XSL, Velocity, etc.)

Page 55: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 55

Agenda

BackgroundChallengesSimplicityExtensibilityReuseSummaryQ&A

Page 56: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 56

Reuse Across Missions

● Cassini● Deep Impact● Dawn● MRO● MSL

Page 57: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 57

Package Dependencies

app

utillog

message

ecp

product

evr

sfdu

report

Page 58: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 58

General Libraries

app

utillog

message

ecp

product

evr

sfdu

report

Page 59: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 59

Domain Specific Libraries

app

utillog

message

ecp

product

evr

sfdu

report

Page 60: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 60

Application Specific Code

app

utillog

message

ecp

product

evr

sfdu

report

Page 61: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 61

Agenda

BackgroundChallengesSimplicityExtensibilityReuseSummaryQ&A

Page 62: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 62

Summary

● Simplicity to handle risk, cost, schedule● Extensibility to handle uncertainty● Reuse to handle risk, cost, schedule● Know your users

● One size does not fit all● Requirements documents are not enough● Use assumptions that fit reality

Page 63: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 63

For More Information

● Science Instruments Home Page● http://athena.cornell.edu/

● MER Analyst’s Notebook● http://anserver1.eprsl.wustl.edu/

● Basics of Space Flight● http://www.jpl.nasa.gov/basics/

● Introduction to the AMMOS Ground System● http://eis.jpl.nasa.gov/~betsy/mm/intro.htm

Page 64: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 64

Q&A

Page 65: Files From Mars

2005 JavaOneSM Conference | Session TS-1416 | 65

Submit Session Evaluations for Prizes!

● You can win a $75.00 gift certificate to the on-site Retail Store by telling Sun what you think!

● Turn in completed forms to enter the daily drawing● Each evaluation must be turned in the same day as the

session presentation● Five winners will be chosen each day (Sun will send the

winners email)● Drop-off locations: give to the room monitors or use any

of the three drop-off stations in the North and South Halls

Note: Winners on Thursday, 6/30, will receive and can redeem certificates via email

Your opinions are important to Sun

Page 66: Files From Mars

2005 JavaOneSM Conference | Session TS-1416

Files from Mars:Java™ Technology in the MER Data InfrastructureDavid NoblePrincipal ConsultantOak Grove Consultinghttp://marsrovers.jpl.nasa.gov/TS-1416