mirror of
https://github.com/nasa/openmct.git
synced 2025-01-11 15:32:56 +00:00
parent
926ee14546
commit
f8dd69bbfa
@ -137,6 +137,36 @@ in the [Platform Architecture](Platform.md).
|
|||||||
|
|
||||||
### Extension Categories
|
### Extension Categories
|
||||||
|
|
||||||
|
One of the capabilities that the framework component layers on top of
|
||||||
|
AngularJS is support for many-to-one dependencies. That is, a specific
|
||||||
|
extension may declare a dependency to _all extensions of a specific
|
||||||
|
category_, instead of being limited to declaring specific dependencies.
|
||||||
|
|
||||||
|
```nomnoml
|
||||||
|
#direction: right
|
||||||
|
[Specific Extension] 1 o-> * [Extension of Some Category]
|
||||||
|
```
|
||||||
|
|
||||||
|
This is useful for introducing specific extension points to an application.
|
||||||
|
Some unit of software will depend upon all extensions of a given category
|
||||||
|
and integrate their behavior into the system in some fashion; plugin authors
|
||||||
|
can then add new extensions of that category to augment existing behaviors.
|
||||||
|
|
||||||
|
Some developers may be familiar with the use of registries to achieve
|
||||||
|
similar characteristics. This approach is similar, except that the registry
|
||||||
|
is effectively implicit whenever a new extension category is used or
|
||||||
|
depended-upon. This has some advantages over a more straightforward
|
||||||
|
registry-based approach:
|
||||||
|
|
||||||
|
* These many-to-one relationships are expressed as dependencies; an
|
||||||
|
extension category is registered as having dependencies on all individual
|
||||||
|
extensions of this category. This avoids ordering issues that may occur
|
||||||
|
with more conventional registries, which may be observed before all
|
||||||
|
dependencies are resolved.
|
||||||
|
* The need for service registries of specific types is removed, reducing
|
||||||
|
the number of interfaces to manage within the system. Groups of
|
||||||
|
extensions are provided as arrays.
|
||||||
|
|
||||||
### Composite Services
|
### Composite Services
|
||||||
|
|
||||||
Composite services (registered via extension category `components`) are
|
Composite services (registered via extension category `components`) are
|
||||||
|
@ -11,6 +11,10 @@ The target audience includes:
|
|||||||
Open MCT Web into a larger system, who need to understand
|
Open MCT Web into a larger system, who need to understand
|
||||||
its inner workings sufficiently to complete this integration.
|
its inner workings sufficiently to complete this integration.
|
||||||
|
|
||||||
|
As the focus of this document is on architecture, whenever possible
|
||||||
|
implementation details (such as relevant API or JSON syntax) have been
|
||||||
|
omitted. These details may be found in the developer guide.
|
||||||
|
|
||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
Open MCT Web is client software: It runs in a web browser and
|
Open MCT Web is client software: It runs in a web browser and
|
||||||
|
Loading…
Reference in New Issue
Block a user