Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Global Replay (#143) #144

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions guide/sections/part2/global-services.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Depending on the nature of the Global Service, the following is the minimum capa
* Three (3) Global Caches: Each Global Cache is connected to at least two (2) Global Brokers and should be able to download the data from all WIS2 Nodes providing core data
* Two (2) Global Discovery Catalogues: Each Global Discovery Catalogue is connected to at least one (1) Global Broker
* Two (2) Global Monitors: Each Global Monitor should scrape the metrics from all other Global Services
* One (1) Global Replay: Each Global Replay connected to at least one (1) Global Broker

In addition to the above, WIS architecture can accommodate adding (or removing) Global Services. Candidate WIS centres should inform their WIS National Focal Point and contact the WMO Secretariat to discuss their offer to provide a Global Service.

Expand Down Expand Up @@ -184,6 +185,7 @@ In WIS2 Global Caches provide access to WMO core data for data consumers. This a
* A Global Discovery Catalogue will generate and store a zip file of all WCMP2 records once a day, that will be made be accessible via HTTP.
* A Global Discovery Catalogue will publish a WIS2 Notification Message of its zip file of all WCMP2 records on its centre-id's +metadata+ topic (for example, `origin/a/wis2/centre-id/metadata`, where `centre-id` is the centre identifier of the Global Discovery Catalogue).
* A Global Discovery Catalogue may initialize itself (cold start) from a zip file of all WCMP2 records published.
* A Global Discovery Catalogue may query a Global Replay for metadata messages published and process those messages to insert/update/delete WCMP2 records, for downtimes of less than 24 hours.
* As a convention Global Discovery Catalogue centre-id will be ``tld-{centre-name}-global-discovery-catalogue``.

===== 2.7.5.2 Global Discovery Catalogue reference implementation: wis2-gdc
Expand Down Expand Up @@ -216,3 +218,43 @@ wis2-gdc is managed as a free and open source project. Source code, issue track
* As a convention Global Monitor centre-id will be ``tld-{centre-name}-global-monitor``.

The main task of the Global Monitor is to regularly query the provided metrics from the relevant WIS2 entities, aggregate and process the data and then provide the results to the end user in a suitable presentation.

==== Global Replay

===== Technical considerations

* The Global Replay provides Global Services and data consumers with a mechanism to search, query and subscribe to notification messages of interest.
* The Global Replay implements the OGC API – Features – Part 1: Core standardfootnote:[https://docs.ogc.org/is/17-069r4/17-069r4.html], adhering to the following conformance classes and their dependencies:
** Core
** GeoJSON
* The Global Replay implements the OGC API – Processes - Part 1: Core standardfootnote:[https://docs.ogc.org/is/18-062r2/18-062r2.html], adhering to the following conformance classes and their dependencies:
** Core
** OGC Process Description
** JSON
* A Global Replay shall subscribe to the topics `+origin/a/wis2/#+` and `+cache/a/wis2/#+`.
* The Global Replay will make notification messages available via the collection identifier `wis2-notification-messages`.
* The Global Replay will provide a process to allow for users to subscribe to messages with various criteria (spatial and / or temporal extent, topic selection).
* A single Global Replay instance is sufficient for WIS2.
* Multiple Global Replay instances may be deployed for resilience.
* Global Replay instances operate independently of each other; each Global Replay instance will hold notification messages according to the required retention period. Global Replays do not need to synchronise between themselves.
tomkralidis marked this conversation as resolved.
Show resolved Hide resolved
* A Global Replay is populated with notification messages from a Global Broker instance.
* A Global Replay should connect and subscribe to more than one Global Broker instance to ensure that no messages are lost in the event of a Global Broker failure. A Global Replay instance will discard duplicate messages as needed.
* A Global Replay can validate notification messages against the WIS Notification Message (WNM). Valid WIS Notification Messages will be ingested into the index. Invalid or malformed notification messages will be discarded.
* A Global Replay will remove notification messages after the required retention period.
* As a convention Global Replay centre-id will be ``tld-{centre-name}-global-replay``.

===== Global Replay reference implementation: wis2-grep

To provide a Global Replay, members may use whichever software components they consider most appropriate to comply with WIS2 Technical Regulations.
tomkralidis marked this conversation as resolved.
Show resolved Hide resolved

To assist Members participation in WIS2, a free and open-source Global Replay Reference Implementation is made available for download and use. wis2-grep builds on mature and robust free and open-source software components that are widely adopted for operational use.
tomkralidis marked this conversation as resolved.
Show resolved Hide resolved

wis2-grep provides functionality required for the Global Replay, providing the following technical functions:
tomkralidis marked this conversation as resolved.
Show resolved Hide resolved

* notification messages subscription from the Global Broker
tomkralidis marked this conversation as resolved.
Show resolved Hide resolved
* notification message ingest and API publication
tomkralidis marked this conversation as resolved.
Show resolved Hide resolved
* user defined subscription for MQTT message replay
* OGC API - Features - Part 1: Core compliance
* OGC API - Processes - Part 1: Core compliance

wis2-grep is managed as a free and open source project. Source code, issue tracking and discussions are hosted in the open on GitHub: https://github.com/wmo-im/wis2-grep.
tomkralidis marked this conversation as resolved.
Show resolved Hide resolved
10 changes: 9 additions & 1 deletion guide/sections/part2/wis2-architecture.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ These roles are outlined below.
ii) Global Broker: provides highly available messaging services where users may subscribe to notifications about all datasets provided by data publishers.
iii) Global Cache: provides highly available download service for cached copies of core data downloaded from data publishers’ web-services.
iv) Global Monitor: gathers and displays system performance, data availability, and other metrics from all WIS2 Nodes and Global Services.
v) Global Replay: provides access to WIS Notification Messages via a searchable and queryable API.

==== 2.2.4 Data consumer
* This role represents anyone wanting to find, access, and use data from WIS2 – examples include (but are not limited to): NMHS, Government agencies, research institutions, private sector organizations, and so on.
Expand All @@ -68,7 +69,7 @@ Leveraging existing open standards, WIS2 defines the following specifications in

|WIS2 Notification Message
|Dataset metadata, dataset granules
|Global Broker, WIS2 Nodes
|Global Broker, Global Replay, WIS2 Nodes

|===

Expand Down Expand Up @@ -121,6 +122,13 @@ Please refer to the _Manual on WIS_, Volume II for details.
ii) Whether data can be effectively accessed by data consumers.
iii) The performance of components in the WIS2 system.

==== 2.4.6 Global Replay
* WIS2 may include a Global Replay.
* A Global Replay enables Global Services and data consumers to search, query and subscribe to notification messages published by the Global Broker.
* A Global Replay subscribes to notification messages via a Global Broker about the availability of new notification messages. It downloads a copy of the notification message and updates its local index.
* A Global Replay shall retain copies of notification messages for a duration compatible with the real-time or near real-time schedule of the data and not less than 24-hours.
* A Global Replay will delete notification messages from its local index once the retention period has expired.

=== 2.5 Protocols configuration

==== 2.5.1 Publish-subscribe protocol (MQTT)
Expand Down
2 changes: 1 addition & 1 deletion guide/sections/part2/wis2node.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,4 @@ The wis2box provides functionality required for both data publisher and data con

Project documentation can be found at https://docs.wis2box.wis.wmo.int.

The wis2box is managed as a free and open source project. Source code, issue tracking and discussions are hosted openly on GitHub: https://docs.wis2box.wis.wmo.int.
The wis2box is managed as a free and open source project. Source code, issue tracking and discussions are hosted openly on GitHub: https://docs.wis2box.wis.wmo.int.
Loading