Model
WiP
Model
Provider
This is the central entity in the data model that represents the external mission execution system.
Basically, a provider indicates the mission templates and assets that it handles, and supports both the execution of missions defined according to such mission templates, and associated reporting in terms of mission and asset status and generated data.
Provider Capabilities
By default, MXM will assume a minimum set of required capabilities. At registration, the provider can optionally indicate additional capabilities as described below. This is intended to allow some flexibility, especially to accommodate various levels of sophistication of the integrated providers.
The provider can indicate whether it:
- Uses scheduling when issuing missions for execution
- Uses units of measure for the mission template parameters
- Can validate a mission draft before actual submission
- yes or not; summary of the validation process
- result of feasibility analysis, e.g.:
- will the asset hit the bottom/get too close to shore/etc.?
- Projected time of mission completion
- Asset location at mission completion
- Can report the status of previously submitted missions
- via explicit request from MXM and/or asynchronously via push notifications to MXM
- Can report the status of a handled asset (not necessarily via mission status report)
- current position / latest positions; heading; speed; etc.
- battery level, etc.
MissionTemplate
Defines a particular mission template as supported by a particular provider.
A mission template:
- applies to assets of a particular asset class
- has associated parameters
AssetClass
Defines a family of particular assets that can be associated with a mission template.
Note
In the model, all asset classes and assets are defined as a common resource for all registered providers. In the future, we envision this common resource to either be kept in sync with or directly refer to the entities defined in the TrackingDB system or similar, where an authoritative definition of such asset classes and assets is in place.
Asset
Indicates a particular instance of an asset class.
Parameter
A parameter indicates a particular input parameter in a mission template. Parameter attributes include name, type, optional units of measure (when provider indicates it uses units of measure), and optional default value.
Mission
A mission is a particular instantiation of a mission template. Its purpose is to represent a concrete planned (and eventually executed) mission. A mission indicates the particular target asset (e.g., "Daphne"), and the concrete parameter values (either default values or explicitly indicated values via arguments –see below) according to the corresponding mission template.
Argument
An argument in a mission captures a particular value for a parameter, either to override its default value (if any) or to provide a value for a required or optional parameter.
Unit
Defines a unit of measure, which can be referenced by mission template parameters when the associated provider indicates that it uses units of measure for its parameters.
Note
In the model, all possible units of measure are defined as a common resource. In the current prototype, we are taking the definitions from TethysDash/LRAUV system as a good basis as it is pretty comprehensive. We can revisit this in the future as needed.
MissionStatus
A provider can indicate ability to report the status of any submitted mission.
The MissionStatus entity is used for this report.
This entity includes the following attributes:
-
status: a string indicating the status of the mission, with possible values including:SUBMITTED: the mission has been submitted to the providerQUEUED: the mission is currently queued for executionRUNNING: the mission is currently runningCOMPLETED: the mission has completedTERMINATED: the mission has been terminated-
CANCELED: the mission has been canceledTodo
CANCELED vs TERMINATED: what is the difference, or keep just one?
-
FAILED: the mission has failed dataReports: a list ofDataReportentities, each of which indicates a particular data product generated by the mission. This is optional and may be empty.assetStatuses: a list ofAssetStatusentities, each of which indicates the status of a particular asset associated with the mission. This is optional and may be empty.
DataReport
A DataReport entity indicates a particular data product generated by a mission. It includes the following attributes:
name: a string indicating the name of the data product-
url: a string indicating the URL of the data productTodo
Also some explicit
dataattribute for the data itself? -
date: a string in ISO format indicating when the data product was generated or updated
AssetStatus
An AssetStatus entity indicates the status of a particular asset.
This can be included in a MissionStatus report, or directly for a given asset
if such operation is supported by the provider.
The AssetStatus entity includes the following attributes:
assetId: the ID of the asset for which the status is reportedpositions: a list ofPositionentities, each of which indicating a particular position of the asset at a particular time. This is optional and may be empty.- Any other attributes to facilitate the reporting for human consumption or by MXM clients.
Todo
- Determine additional attributes (e.g., battery level) that should be characterized explicitly.
- (incremental) Formalization of common attributes across integrated providers
- This information propagated via API
- Consumers:
- MXM UI for a summary of status
- Client systems (ODSS, etc.)
Examples
Example of models above in the context of various providers:
TethysDash/LRAUV system
- Provider: TethysDash/LRAUV
- AssetClass: LRAUV
- Assets: Daphne, Makai
- Mission templates: Science/sci2, Maintenance/ballast_and_trim
- Parameters: MissionTimeout, ApproachSpeed
WG FrontTracking
- Provider: WG FrontTracking
- AssetClass: Waveglider
- Assets: Tiny, Hansen, SV3-117
- Mission template: TrackFront
- Parameters: temperature_threshold, boundary_polygon
Dorado system
- Provider: Dorado system
- AssetClass: Dorado
- Assets: ...
- Mission templates: ...
- Parameters: ...
just a tentative, alternative diagram representation (mermaid's erDiagram):
erDiagram Provider ||--o{ MissionTemplate : defines Provider ||--o{ Mission : "executes" Provider ||--o{ MissionStatus : "reports" Provider ||--o{ AssetStatus : "reports" MissionTemplate ||--|{ Parameter : "has" MissionTemplate ||--|| AssetClass : "applies to" Mission ||--o{ MissionTemplate : "type" Mission ||--o{ Argument : "has" Mission ||--|| Asset : "for" Parameter ||--o| Unit : "has" Argument ||--|| Parameter : "for" Asset ||--o{ AssetClass : "type" MissionStatus ||--|| Mission : "refers to" MissionStatus ||--o{ DataReport : "includes" MissionStatus ||--o{ AssetStatus : "includes"