Driving Behavioral Change for Information Management through Data-Driven Gree...
Open Mission Control Technologies
1. Open MCT
Graduate CS Seminar
SF State University
Jay Trimble
NASA Ames Research Center
10-3-12
Saturday, October 6, 12
2. MCT
• MCT is a software platform that enables:
• Users to compose their own displays of
shareable user objects
• Developers to add functionality using
OSGi plug-ins
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
3. Differentiators
• Key problems we are trying to solve
• Operator inflexibility/inefficiency
• Operational Stovepipes
• Feature accumulation (bloat) and
maintenance issues
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
4. The NASA MCC Domain
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
5. Traditional Software
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
6. Duplicate Functionality
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
7. Mission Control Technologies
• Instead of
monolithic apps,
build software out of
composable pieces
• Key features
• Fine-grained components
• “Live” - edit in place
• Composable
• Multiple representations
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
8. MCT Architecture
Fine-grained
components
Multiple
representations
and views
“Live” Objects
Compositions
Roles
Information Model
6
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
9. Component Granularity
Medium Granularity
Large Granularity Components
Fine Granularity
7
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
10. Bloat Reduction
Text
Text
Out of Many One
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
11. Developers-Designers-Users
Figure courtesy IBM, modified with permission
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
12. What is MCT
• Software assembled from groups of
manipulatable “things”
• Software assembled from user object
compositions
• MCT component model and services
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
13. “Things”
• Components are the fundamental entity in MCT
• This is an implementors model
• Users (most) are thinking about what they can use
and manipulate
• User object - “Things” that users can manipulate
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
14. User Objects
User Objects
Inspect, Multiple Views Open user object group in window
Open user object in window
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
15. One Object Multiple Views
Alpha View
Plot View
Info View
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
16. Compose
User objects
dragged in to
custom group
Group
within a
group
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
17. The Same Thing Everywhere
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
18. Menus
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
19. Objects
• “Developer” Objects User Objects
A “thing” I can view,
• Define the
characteristics of a manipulate, compose
“thing”
A “thing” is the same
thing everywhere
• State & Behavior
Consistent behavior
• Poymorphism
Inspectable
• Encapsulation
• Inheritance
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12
20. OO GUI
• Contrast with procedural style GUI
• Procedural style GUI is tasked based,
supporting a particular set of tasks
• OO Style GUI is a set of cooperating user
objects that may be composed to facilitate
the performance of many tasks
https://github.com/nasa/mct jay.p.trimble@nasa.gov
Saturday, October 6, 12