mirror of
https://github.com/nasa/openmct.git
synced 2024-12-23 23:12:23 +00:00
parent
ae7fc27c9e
commit
4240e8843b
@ -1,12 +1,74 @@
|
|||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
This is a placeholder for an architectural description of Open MCT Web.
|
The purpose of this document is to familiarize developers with the
|
||||||
|
overall architecture of Open MCT Web.
|
||||||
|
|
||||||
|
The target audience includes:
|
||||||
|
|
||||||
|
* _Platform maintainers_: Individuals involved in developing,
|
||||||
|
extending, and maintaing capabilities of the platform.
|
||||||
|
* _Integration developers_: Individuals tasked with integrated
|
||||||
|
Open MCT Web into a larger system, who need to understand
|
||||||
|
its inner workings sufficiently to complete this integration.
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
Open MCT Web is client software: It runs in a web browser and
|
||||||
|
provides a user interface, while communicating with various
|
||||||
|
server-side resources through browser APIs.
|
||||||
|
|
||||||
```nomnoml
|
```nomnoml
|
||||||
[<start> Start]->[<state> Load bundles.json]
|
#direction: right
|
||||||
[Load bundles.json]->[<state> Load bundle.json files]
|
[Client|[Browser|[Open MCT Web]->[Browser APIs]]]
|
||||||
[Load bundle.json files]->[<state> Resolve implementations]
|
[Server|[Web services]]
|
||||||
[Resolve implementations]->[<state> Register with Angular]
|
[Client]<->[Server]
|
||||||
[Register with Angular]->[<state> Bootstrap application]
|
|
||||||
[Bootstrap application]->[<end> End]
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
While Open MCT Web can be configured to run as a standalone client,
|
||||||
|
this is rarely very useful. Instead, it is intended to be used as a
|
||||||
|
display and interaction layer for information obtained from a
|
||||||
|
variety of back-end services. Doing so requires authoring or utilizing
|
||||||
|
adapter plugins which allow Open MCT Web to interact with these services.
|
||||||
|
|
||||||
|
Typically, the pattern here is to provide a known interface that
|
||||||
|
Open MCT Web can utilize, and implement it such that it interacts with
|
||||||
|
whatever back-end provides the relevant information.
|
||||||
|
Examples of back-ends that can be utilized in this fashion include
|
||||||
|
databases for the persistence of user-created objects, or sources of
|
||||||
|
telemetry data.
|
||||||
|
|
||||||
|
## Software Architecture
|
||||||
|
|
||||||
|
The simplest overview of Open MCT Web is to look at it as a "layered"
|
||||||
|
architecture, where each layer more clearly specifies the behavior
|
||||||
|
of the software.
|
||||||
|
|
||||||
|
```nomnoml
|
||||||
|
#direction: down
|
||||||
|
[Open MCT Web|
|
||||||
|
[Platform]<->[Application]
|
||||||
|
[Framework]->[Application]
|
||||||
|
[Framework]->[Platform]
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
These layers are:
|
||||||
|
|
||||||
|
* [_Framework_](Framework.html): The framework layer is responsible for
|
||||||
|
managing the interactions between application components. It has no
|
||||||
|
application-specific knowledge; at this layer, we have only
|
||||||
|
established an abstraction by which different software components
|
||||||
|
may communicate and/or interact.
|
||||||
|
* _Platform_: The platform layer defines the general look, feel, and
|
||||||
|
behavior of Open MCT Web. This includes user-facing components like
|
||||||
|
Browse mode and Edit mode, as well as underlying elements of the
|
||||||
|
information model and the general service infrastructure.
|
||||||
|
* _Application_: The application layer defines specific features of
|
||||||
|
an application built on Open MCT Web. This includes adapters to
|
||||||
|
specific back-ends, new types of things for users to create, and
|
||||||
|
new ways of visualizing objects within the system. This layer
|
||||||
|
typically consists of a mix of custom plug-ins to Open MCT Web,
|
||||||
|
as well as optional features (such as Plot view) included alongside
|
||||||
|
the platform.
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,8 +26,10 @@
|
|||||||
<title>Open MCT Web Documentation</title>
|
<title>Open MCT Web Documentation</title>
|
||||||
</head>
|
</head>
|
||||||
<body class="user-environ" ng-view>
|
<body class="user-environ" ng-view>
|
||||||
<a href="api/">API</a>
|
<ul>
|
||||||
<a href="guide/">Developer Guide</a>
|
<li><a href="api/">API</a></li>
|
||||||
<a href="architecture/">Architecture Overview</a>
|
<li><a href="guide/">Developer Guide</a></li>
|
||||||
|
<li><a href="architecture/">Architecture Overview</a></li>
|
||||||
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Loading…
Reference in New Issue
Block a user