open mission control technologies
DESCRIPTION
Graduate Computer Science Seminar, San Francisco State UniversityTRANSCRIPT
Open MCT
Graduate CS SeminarSF State University
Jay TrimbleNASA Ames Research Center
10-3-12
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
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
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
Differentiators
• Key problems we are trying to solve
• Operator inflexibility/inefficiency
• Operational Stovepipes
• Feature accumulation (bloat) and maintenance issues
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
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
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
6
MCT ArchitectureFine-grained components
Multiple representations and views
“Live” Objects
Compositions
Roles
Information Model
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
7
Component Granularity
Medium Granularity
Fine Granularity
Large Granularity Components
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
Bloat Reduction
TextText
Out of Many One
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
Developers-Designers-Users
Figure courtesy IBM, modified with permission
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
What is MCT
• Software assembled from groups of manipulatable “things”
• Software assembled from user object compositions
• MCT component model and services
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
“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
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
User ObjectsUser Objects
Inspect, Multiple Views Open user object group in window
Open user object in window
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
One Object Multiple ViewsAlpha View
Plot View
Info View
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
ComposeUser objects dragged in to custom group
Group within a group
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
Objects• “Developer” Objects
• Define the characteristics of a “thing”
• State & Behavior
• Poymorphism
• Encapsulation
• Inheritance
User Objects
A “thing” I can view, manipulate, compose
A “thing” is the same thing everywhere
Consistent behavior
Inspectable
Saturday, October 6, 12
https://github.com/nasa/mct [email protected]
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
Saturday, October 6, 12