Overview of the OOSTethys Architecture
Definition and interfaces of the different components of an ocean observing system, within OOSTethys.
Table of Contents
- Introduction
- Use cases
- Architecture among distributed ocean observing systems
- Ocean observing system (OOS) architecture
- Best practices developed by OOSTethys team
Introduction
This interoperability demonstration represents an effort to develop a Service Oriented Architecture (SOA) for ocean observing systems (OOS). We are defining components of an OOS, interactions among OOS and user interfaces.
top of pageUse cases
Components of the system should be able to perform requests based on a basic query dimension, which is defined as follows:
- bounding box (lat, lon, depth)
- time limits
- parameter type
- source type (platform type)
The latest UML sequence diagrams defining the interfaces are here:
top of page
Architecture among distributed ocean observing systems
OOS will interact each other via registries, to extract metadata about the services available in an OOS.
top of page
Ocean observing system (OOS) architecture
OOSTethys service architecture is composed of a Data Provider a Registry, a Semantic Mediator, a Data Aggregator and a Data Analyzer and Viewer. The supporting interfaces for each component of the system are explained below.
top of page
Data Provider
The Data Provider is responsible for collecting data from instruments (in situ sensors or samplers), manipulating the data (e.g., time series averaging, quality control processing), or running a numerical model (which itself produces “data”). The Data Provider is also responsible for storing his own data and registering the details of the services that it has made available. Services are defined in a service-contract, negotiated between cooperative entities with similar data and data sharing requirements. In the case of OOSTethys this is define by OGC Sensor Observations Services (SOS) specifications.
| Interface | Description | Format | Link Specification |
|---|---|---|---|
| getCapabilities | Returns information of how to call the service, what sources (Platforms, sensors, detectors) it contains, and the observation details | Rest XML | OGC SOS |
| describeSensor | Returns metadata about the sources of data | Rest XML | OGC SOS |
| getObservation | Returns the data based on filters by time, location and phenomena | Rest XML | OGC SOS |
| register | Registers its capabilities to the registry | Rest XML | UAH.. |
| register ontology and mapping | Registers its vocabulary and mappings to common vocabulary schemes | SOAP/WSDL | W3C Spec SPARQL-SOAP |
| gets terms properties and relations | Query properties of terms from a vocabulary and relations (e.g. narrower or broader) from this term to others | SOAP/WSDL | W3C Spec SPARQL-SOAP |
Semantic Mediator
A semantic mediator allows a vocabulary producer to register its vocabulary and has query capabilities to get the terms register and the relation between the terms. For example the relation "upward_sea_water_velocity" in the CF vocabulary could be found to be narrower than "Ocean Currents" from the GCMD vocabulary. Therefore, when a user searches for "Ocean Currents", data sets containing "upward_sea_water_velocity" will be retrieved. Also data providers registering their vocabulary and mappings to CF, will get additional mappings to other vocabularies.
| Interface | Description | Format | Link Specification |
|---|---|---|---|
| RegisterOntology | Registers the ontology | TBD | TBD |
| RegisterMapping | Registers the mapping to other terms | TBD | TBD |
| getModel | Queries the repository given a SPARQL query. It receives an RDF model | SOAP/WSDL | W3C Spec SPARQL-SOAP |
Registry
Registries manage information about Data Providers. A Registry allows a Data Provider to register, and facilitates other components of the architecture in performing queries of its contents. A registry might be a metadata catalogue service, a clearinghouse, a Universal Description, Discovery and Integration (UDDI) registry, a list of OPeNDAP Uniform Resource Locators (URLs) or a THREDDS catalogue. Ideally, a registry could engage in permanently discovering Data Providers, the same way as search engines crawl the World Wide Web (Web) registering the URLs and their content in their registry. A registry uses a mediator to help discover data. Currently we are using UAH developed registry services but CWS (Catalog Services for the Web) are being explored.
|
Interface
|
Description
|
Format
|
Link Specification
|
|---|---|---|---|
|
Register Provider
|
Registers the provider via SetCapabilities service, which calls the provider’s GetCapabilities service and DescribeSensor service and parses the response | REST XML | http://score.itsc.uah.edu/MMI/ |
|
Get Valids
|
Returns all valid values from all searchable fields in registry
|
REST XML | http://score.itsc.uah.edu/MMI/documentation.html |
|
Get URLs
|
Returns observation offerings and/or sensors from registry
|
REST XML
|
http://score.itsc.uah.edu/MMI/documentation.htm |
Detailed description and usage of these services are described
in this PDF document.
Data Aggregator
The Data Aggregator (sometimes called the Data Provider) will collect data and services from any Data Provider. The Data Aggregator is responsible for storing its own data and registering the details of the services that it has available. Services are defined in a service-contract, negotiated between cooperative entities with similar data and data sharing requirements. In the case of OOSTethys this is define by OGC Sensor Observations Services (SOS) specifications.
A Data Aggregator has the same description a Data Provider, in a sense, a special case of a Data Provider.
Interfaces are as described for the Data Provider in this page.
top of pageData Archiver
The Archiver is a data storage site that acquires data from Data Providers and Data Aggregators. An Archiver may not hold all records from all Data Providers, if data are maintained in a distributed archival method. Data Providers may serve as Archivers. Archivers will establish a policy for data retention, and a manner to ensure data provanence. The Archiver will receive information on services from one or more Registries.
It is responsible for archiving the data received and registering the details and making available this data as a service of that data. Services are defined in a service-contract, negotiated between cooperative entities with similar data and data sharing requirements. In the case of OOSTethys this is define by OGC Sensor Observations Services (SOS) specifications. In this manner, the Archiver would not support real-time data requests, though the responses could be near real-time.
Interfaces are as described for the Data Provider in the this page.top of page
Data Consumer, Data Analyzer and viewer
The Data Consumer is a tool, or a modeling scientist, who (or which) requests data with a getObservation request without, in this definition, making that data available via a getCapabilities service response. Examples, include GoogleMap, OpenIOOS visualization, and an individual (e.g., a grad student).