java technologies, web services, and mars

49
java.sun.com/javaone/sf | 2004 JavaOne SM Conference | Session BUS-1562 1 Java Technologies, Web Services, and Mars Joan Walton, Project Manager Elias Sinderson, Computer Scientist Ronald Mak, Project Scientist NASA Ames Research Center A NASA Trip Report

Upload: others

Post on 22-Apr-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java Technologies, Web Services, and Mars

java.sun.com/javaone/sf

| 2004 JavaOneSM Conference | Session BUS-15621

Java Technologies,Web Services,and Mars

Joan Walton, Project ManagerElias Sinderson, Computer ScientistRonald Mak, Project Scientist

NASA Ames Research Center

A NASA Trip Report

Page 2: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 2

Overview

We built the Collaborative Information Portal for NASA’s Mars Exploration Rovers mission using Java technologies and web services.

This is our trip report.

Should you use Java technologies and web services for mission-critical software?

Page 3: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 3

Speakers

• Joan Walton─ CIP project manager

─ Computer scientistNASA Ames Research Center

• Elias Sinderson─ CIP developer and messaging lead

─ Computer scientistComputer Sciences CorporationNASA Ames Research Center

• Ronald Mak─ CIP middleware architect and lead

─ Project scientistUniversity of California at Santa CruzUniversity Affiliated Research CenterNASA Ames Research Center

Page 4: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 4

Presentation Agenda

• Mission Overview

• Client Application

• Middleware

• Summary

Page 5: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 5

Mission Overview

Page 6: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 6

Mars Exploration Rovers Mission

• Twin robot geologists search for past running water.

• Launched: June 10 & July 7, 2003

• Landed: January 3 & 24, 2004

• Duration: 90+ days(extended mission could runthrough September 2004)

• Mission Center:Jet Propulsion Laboratory Pasadena, CA

Page 7: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 7

Surface Operations

• Solar-powered rovers operate in daylight.─ On opposite sides of Mars, so always one in daylight

Page 8: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 8

Daily Process

• Daily process for each rover team– Receive downlink of data from a rover– Process and analyze results– Plan tomorrow’s activities– Construct rover command sequence– Send uplink of command sequence to rover

Page 9: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 9

Mission Needs

• Time management

• Data management

• Personnelmanagement

Page 10: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 10

Mission Needs: Time Management

• What time is it?─ Mission runs on Mars time─ Martian and earth time zones─ A Martian “sol” is 40 minutes

longer than an earth day

• What’s happening?─ Two mission teams ─ Work on several

floors of a high rise

Page 11: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 11

Mission Needs: Data Management

• What was planned?─ Hand-over process between science and engineering

• What actually happened?─ Correlate between planned and actual activities

• Where are the data?─ Large data repository

─ Flexible structuring─ Security restrictions

─ Get data products as soon as they are available─ Stove-piped, specialized analysis tools for data

Page 12: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 12

Mission Needs: Personnel Management

• What’s most important to me?─ Different roles have different information needs

• What do I need to know?─ Management needs to communicate with personnel

• When am I working? In what role? With whom?─ Staffing is complex given the unusual work schedule

and large numbers of tasks and roles ─ Color coding: Spirit and Opportunity

Page 13: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 13

The Collaborative Information Portal (CIP)

Schedule Viewer

Event Countdown Timer

Broadcast Messages

Clocks

Tool tabs for time conversion and file navigation

Page 14: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 14

Three Tier Architecture

• Client─ Java application (Swing)

• Middleware Server─ Web services, Enterprise JavaBeans,

Java Message Service

• Data Repository─ Database (Oracle)─ File monitor (Java application)─ Data loader (Java application)

Page 15: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 15

Architecture Overview

Page 16: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 16

Was the mission successful? YES!!!

Page 17: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 17

Was CIP successful? YES!!!

Page 18: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 18

CIP was used everywhere …

… inside mission control

… in the science labs

… in homes and offices

Page 19: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 19

CIP Client Application

Page 20: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 20

CIP Client Application

• Rich Client─ DHTML, Applets not adequate

• Support common science user platforms─ Sun, Windows, Mac OS X, Linux, MERBoard

• Leverage current technologies

• Quick, painless deployment

• Customisable interface

• Usability and performance

Goals

Page 21: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 21

ServiceMgr

ServiceMgr

WebService

Client Stub

WebService

Client Stub

CIP CLIENT

CIP

SERVER

CIP

SERVER

CIPComponent

CIPComponent

ServiceMgr

ServiceMgr

WebService

Client Stub

WebService

Client Stub

ServiceMgr

ServiceMgr

WebService

Client Stub

WebService

Client Stub

CIPComponent

CIPComponent

CIP Client Application

Architecture

FIREWALL

FIREWALL

HTTP(S)

HTTP(S)

HTTP(S)

Page 22: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 22

CIP Client Application

Schedule Viewer

Event Countdown Timer

Broadcast Messages

Clocks

Tool tabs for time conversion and file navigation

Components

Page 23: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 23

CIP Client Application

Components: Broadcast Messages

SortJump to top

Jump to bottomSmall & large footprint versions

Priority(High/Low)

Tool-tip displays entire message.

Page 24: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 24

CIP Client Application

Components: ClocksTick-over at top-of-minute.

UTC shown in Day of Year

Local Time

Time at DSN site

Time at collaborator’s location

Mars Time displayed in Sols.

Page 25: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 25

CIP Client Application

Components: Time Conversion

Page 26: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 26

CIP Client Application

Components: Event Horizon

Page 27: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 27

CIP Client Application

Components: Schedule Viewer

Multiple time scales

Users wanted to edit activity

Unified schedules from across mission

Schedule update indicator

“Now” bar very important to users

Page 28: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 28

CIP Client Application

Components: Data Product Navigator

File counts important to users

Image metadata

Complicated file system structure

File path important to users

Configuration, download, and viewing

Page 29: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 29

CIP Client Application

• Threading issues on different platforms─ Client would occasionally hang when Macs went to

sleep and service managers were still polling the server

• Concurrency issues─ Locking preferences file over NFS caused Client to

hang during initialisation

• Swing slowdowns─ Utilising too many swing workers will noticeably

slow down an application if you’re not careful

• HTML rendering not sufficiently robust─ Used a third party HTML rendering engine

Issues

Page 30: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 30

CIP Client Application

• Design for flexibility─ Component-based approach

─ Extensive use of properties files

• Should have used Java WebStart─ Multiple client releases forced users to download

client application several times

• Applets do not offer the UI flexibility that Swing framework does

Lessons Learned

Page 31: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 31

CIP Middleware

Page 32: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 32

CIP Middleware Services

• User management• Metadata• Schedules

• Mars and Earth time• File and directory• Message

Page 33: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 33

Middleware Technologies

• Enterprise JavaBeans (EJBs) to achieve reliability, scalabilty, security, platform independence, and standards.─ Stateless session beans─ Stateful session beans─ Message–driven beans

• Web Services to expose the remote methods of the Service Provider EJBs.

• Java Message Service (JMS) for synchronous and asynchronous messaging.

• BEA WebLogic application server.

Page 34: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 34

Middleware ArchitectureFIREWALL

FIREWALL

HTTPS

HTTPS

• Web Servicesexpose the remote methods of the Service Provider beans.

WebLogic Application Server

SOAPProcessor

Service ProviderRemote Stateless

Session EJBWeb

ServiceClient Stub

WebService

Client Stub

SOAPProcessor

Service ProviderRemote Stateless

Session EJB

WebService

Client StubHTTPS

• Stateless session beans are the Service Providers.

ApplicationJava

ApplicationJava

ApplicationC++

HTTPS

• HTTPSencrypts the transmissions and gets them through the firewall.

Page 35: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 35

FIREWALL

FIREWALL

Caching Data

HTTPS

Cache Registry

• Stateful session beans cache data in memory.

JDBC

JDBC

JDBC

DatabaseSOAP

Processor

DataLocal StatefulSession EJB

DataLocal StatefulSession EJB

DataLocal StatefulSession EJB

Service ProviderRemote Stateless

Session EJB

WebLogic Application Server

Page 36: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 36

FIREWALL

FIREWALL

File MonitorApplication

Event Notification

“A new pancamimage filehas just been downloadedfrom Mars!”

• Publish-subscribe model with topics

JMS Server

WebLogic Application Server

SchedulesTopic

HTTPSSOAP

Processor

Service ProviderRemote Stateless

Session EJB

MessageConverter JMS

Consumer

User ProxyLocal Stateful Session EJB

MonitorTopicResources

Topic

Page 37: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 37

FIREWALL

FIREWALL

Broadcast Message Service

• Message–driven bean (MDB) archives broadcast messages to persistent storage for later retrieval.

MessageArchive

JMS Server

Broadcast MessagesTopic

WebLogic Application Server

JDBC

JDBC

SOAPProcessor

Service ProviderRemote Stateless

Session EJB

PublisherLocal Stateless

Session EJB

DelegateLocal Stateless

Session EJB

ArchivistMDB

MessageConverter

User ProxyLocal StatefulSession EJB

JMSConsumer

HTTPS

Page 38: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 38

Log Everything!

• Each service maintains an activity log─ Used log4j package

• What’s happening now?─ Do tail –f on the appropriate logs

• How is CIP being used?─ Do data mining on the archived logs

Page 39: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 39

Middleware Utility

• Real-time monitoringof the middleware─ Memory usage─ Number of users─ Cache performance─ File downloads─ Database response time─ Server response time─ Current server uptime

• Expose the invisible

Page 40: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 40

Stress Testing

• Simulate users performing interactive operations

• Can the server handle a heavy load?

Page 41: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 41

Off-the-Shelf Software

• Borland JBuilder Enterprise Edition, version 8

• BEA WebLogic application server, version 8.1─ Generates Web Services and Java client stubs.

• gSOAP package, version 2.2 generates C++ client stubs from WSDL files.

• ANT scripts for doing production builds.

• Verisign digital certificates for security.

• Log4J for logging.

Page 42: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 42

Middleware Lessons

• Enterprise JavaBeans and WebLogic─ Reliable: continuous server uptime of over 41 days

─ Scalable: handle heavy loads well

─ Good performance: average response time ~0.1 second

─ Flexible: plug–in, hot–redeployable services

• Web services─ Good interface between clients and EJBs─ Easy for clients to connect and request services─ Good performance: ~100 MB per hour throughput

─ Language independent: Java and C++ client applications

Page 43: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 43

Middleware Lessons, cont’d

• Don’t do your own data caching─ Use entity beans if possible─ Design the data model and the middleware together

• Design for server clustering─ You can always turn it off later

• Put in hooks for real–time monitoring and logging

• Do lots of stress testing to find limitations

Page 44: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 44

Summary

Page 45: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 45

Summary

• The Collaborative Information Portalis a key component of theMars Exploration Rovers mission.

• Java GUI technologies worked well.

• Java enterprise technologies worked well.

• Web services worked well.

• Yes, we would use Java technologies andweb services again for future missions.

Page 46: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 46

CIP Development Team

• Roy Britten

• Louise Chan

• Sanjay Desai

• Matt D’Ortenzio

• Glen Elliott (JPL)

• Bob Filman

• Dennis Heher

• Kim Hubbard

• Sandra Johan

• Leslie Keely

• Carson Little

• Vish Magapu

• Ronald Mak

• Quit Nguyen

• Tarang Patel

• John Schreiner

• Elias Sinderson

• Joan Walton

• Bob Wing (JPL)

Page 47: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 47

Q&A

Joan Walton

Elias Sinderson

Ronald Mak

47

Page 48: Java Technologies, Web Services, and Mars

| 2004 JavaOneSM Conference | Session BUS-1562 48

Useful URLs

• More information on CIP─ http://ic.arc.nasa.gov/

• General information on the Mars rovers─ http://marsprogram.jpl.nasa.gov/─ http://marsrovers.jpl.nasa.gov/home/index.html

• Daily press releases and downloaded images─ http://www.jpl.nasa.gov/mer2004/index.html

• Download a Mars clock─ http://www.giss.nasa.gov/tools/mars24/

Page 49: Java Technologies, Web Services, and Mars

java.sun.com/javaone/sf

| 2004 JavaOneSM Conference | Session BUS-156249

Java Technologies,Web Services,and Mars

Joan Walton, Project ManagerElias Sinderson, Computer ScientistRonald Mak, Project Scientist

NASA Ames Research Center

A NASA Trip Report