From b911199ff9799247becfec01885be913f0f704a5 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Wed, 5 Feb 2025 10:10:48 +0000 Subject: [PATCH 01/18] Update file TS-0041-oneM2M-SensorThings_interworking.md --- TS-0041-oneM2M-SensorThings_interworking.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 1c1e46f..4816296 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -185,6 +185,14 @@ The IPE shall map the 'result' attribute of an OGC/STA 'Observation' to the 'con **Figure 6.1-1: OGC / STA-to-oneM2M data model mapping** + +## 6.3 Configuration Aspects + +### 6.3.0 Introduction + +In order to enable interworking, preparation is needed in both the oneM2M-CSE and the OGC/STA server. Both directions of the data flow between OGC/STA server and the IPE need their own configuration steps. + + <mark>The following text is to be used when appropriate:</mark> -- GitLab From 8dadb51a6c816d9c7a663bf4f4105247766c6b40 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Wed, 5 Feb 2025 11:21:16 +0000 Subject: [PATCH 02/18] OGC config --- TS-0041-oneM2M-SensorThings_interworking.md | 36 ++++++++++++++++++-- media/config.png | Bin 0 -> 21385 bytes media/config_ogc.png | Bin 0 -> 21607 bytes 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 media/config.png create mode 100644 media/config_ogc.png diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 4816296..f706ce8 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -190,10 +190,42 @@ The IPE shall map the 'result' attribute of an OGC/STA 'Observation' to the 'con ### 6.3.0 Introduction -In order to enable interworking, preparation is needed in both the oneM2M-CSE and the OGC/STA server. Both directions of the data flow between OGC/STA server and the IPE need their own configuration steps. +In order to enable interworking, preparation is needed in both oneM2M-CSE and OGC/STA server (Figure 6.3.0-1). + -<mark>The following text is to be used when appropriate:</mark> +**Figure 6.3.0-1: Both sides of the IPE configuration** + +### 6.3.1 Configuration necessary on the OGC/STA Server side + +#### 6.3.1.0 Configuration necessary on the OGC/STA Server + +Both directions of the data flow between OGC/STA server and the IPE need their own configuration steps. + +#### 6.3.1.1 Communication direction OGC/STA Server towards IPE + +In Figure 6.3.1.1-1 an OGC/STA client is connected to an OGC/STA server and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via a HTTP-Post message. The 'result' attribute of an "Observation" contains the sensor data. +An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). + +The IPE needs to subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After doing that the IPE receives every "Observation" that is pushed to that "Datastream". + + + +**Figure 6.3.1.1-1: Message flow from OGC STA Client to OGC/STA Server to IPE** + +#### 6.3.1.2 Communication direction IPE towards OGC/STA Server + +The IPE requires a destination-"Datastream" in order to send an "Observation". In case there is no associated "Datastream" on the OGC/STA server it MUST be created. This MAY be done beforehand or at start-up time of the IPE and is up to the implementation. +When a "Datastream" is created at the OGC/STA server reference ID (e.g. {"@iot.id:3635353"}) is given back. +This reference is needed by the IPE to relate an "Observation" to a "Datastream" and MUST be available during IPE operation. Appart from the "Datastream" additional entitites of the OGC data model like e.g. "Location" or "Sensor" MAY be created. + +The creation of entities like "Datastream" and "Thing" requires a number of mandatory properties that shall be known at configuration time, e.g. 'name' and 'description'. These property fields MAY automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. + +When "Thing" and "Datastream" entities are created the IPE is able to send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA Client can now subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and thus getting every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1) + + + +**Figure 6.3.1.2-1: Message flow from OGC STA Client to OGC/STA Server to IPE** # Proforma copyright release text block diff --git a/media/config.png b/media/config.png new file mode 100644 index 0000000000000000000000000000000000000000..b74bfd68183b936fe76b5fa4fe5d994b424dc793 GIT binary patch literal 21385 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 Y&Hl@TM|n>v?71(V*FKl|&%gKn55iKeFaQ7m literal 0 HcmV?d00001 diff --git a/media/config_ogc.png b/media/config_ogc.png new file mode 100644 index 0000000000000000000000000000000000000000..8c12246ccc79e918bb313447cc8eba244ce52b97 GIT binary patch literal 21607 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 literal 0 HcmV?d00001 -- GitLab From a292d9e0e989f2998c36b58cca6faadf96d06a11 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Wed, 5 Feb 2025 11:35:05 +0000 Subject: [PATCH 03/18] new picture --- TS-0041-oneM2M-SensorThings_interworking.md | 4 ++-- media/config_ogc2.png | Bin 0 -> 24034 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 media/config_ogc2.png diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index f706ce8..4ca8f06 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -221,9 +221,9 @@ This reference is needed by the IPE to relate an "Observation" to a "Datastream" The creation of entities like "Datastream" and "Thing" requires a number of mandatory properties that shall be known at configuration time, e.g. 'name' and 'description'. These property fields MAY automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -When "Thing" and "Datastream" entities are created the IPE is able to send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA Client can now subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and thus getting every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1) +When "Thing" and "Datastream" entities are created the IPE is able to send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA Client can now subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and thus getting every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1) Alternativly the OGC/STA client MAY use a HTTP-GET requst to get the data when needed. - + **Figure 6.3.1.2-1: Message flow from OGC STA Client to OGC/STA Server to IPE** diff --git a/media/config_ogc2.png b/media/config_ogc2.png new file mode 100644 index 0000000000000000000000000000000000000000..495b7136a792070cdad84b54c6399fa45da34f20 GIT binary patch literal 24034 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 br4-?D)+57~;}>D8bez9m(5`x)=*&L>q3BE0 literal 0 HcmV?d00001 -- GitLab From fd9f13863db875af71c98e3b3d897b561167e412 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Wed, 5 Feb 2025 11:44:15 +0000 Subject: [PATCH 04/18] typos --- TS-0041-oneM2M-SensorThings_interworking.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 4ca8f06..e6a6365 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -216,12 +216,12 @@ The IPE needs to subscribe to the relevant "Datastream" at the MQTT-Broker of th #### 6.3.1.2 Communication direction IPE towards OGC/STA Server The IPE requires a destination-"Datastream" in order to send an "Observation". In case there is no associated "Datastream" on the OGC/STA server it MUST be created. This MAY be done beforehand or at start-up time of the IPE and is up to the implementation. -When a "Datastream" is created at the OGC/STA server reference ID (e.g. {"@iot.id:3635353"}) is given back. -This reference is needed by the IPE to relate an "Observation" to a "Datastream" and MUST be available during IPE operation. Appart from the "Datastream" additional entitites of the OGC data model like e.g. "Location" or "Sensor" MAY be created. +When a "Datastream" is created at the OGC/STA server a reference ID (e.g. {"@iot.id:3635353"}) is given back. +This reference is needed by the IPE to relate an "Observation" to a "Datastream" and MUST be available during IPE operation. Appart from the "Datastream" additional entities of the OGC data model like e.g. "Location" or "Sensor" MAY be created. The creation of entities like "Datastream" and "Thing" requires a number of mandatory properties that shall be known at configuration time, e.g. 'name' and 'description'. These property fields MAY automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -When "Thing" and "Datastream" entities are created the IPE is able to send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA Client can now subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and thus getting every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1) Alternativly the OGC/STA client MAY use a HTTP-GET requst to get the data when needed. +When "Thing" and "Datastream" entities are created the IPE is able to send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA Client can now subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and thus getting every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1). Alternativly the OGC/STA client MAY use a HTTP-GET request to pull the data when needed.  -- GitLab From 4d14faabc0fbf9ab032a111f7bc4bc602c3ef319 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Wed, 5 Feb 2025 14:23:59 +0000 Subject: [PATCH 05/18] Update file TS-0041-oneM2M-SensorThings_interworking.md --- TS-0041-oneM2M-SensorThings_interworking.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index e6a6365..45dcda3 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -196,9 +196,9 @@ In order to enable interworking, preparation is needed in both oneM2M-CSE and OG **Figure 6.3.0-1: Both sides of the IPE configuration** -### 6.3.1 Configuration necessary on the OGC/STA Server side +### 6.3.1 Configuration of OGC/STA Server side -#### 6.3.1.0 Configuration necessary on the OGC/STA Server +#### 6.3.1.0 Overview Both directions of the data flow between OGC/STA server and the IPE need their own configuration steps. -- GitLab From fd2ce0ad7d24c194b98a9a2e0119003196f390cd Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 6 Feb 2025 07:04:24 +0000 Subject: [PATCH 06/18] shall and may correction --- TS-0041-oneM2M-SensorThings_interworking.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 45dcda3..e9b583e 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -207,7 +207,7 @@ Both directions of the data flow between OGC/STA server and the IPE need their o In Figure 6.3.1.1-1 an OGC/STA client is connected to an OGC/STA server and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via a HTTP-Post message. The 'result' attribute of an "Observation" contains the sensor data. An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). -The IPE needs to subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After doing that the IPE receives every "Observation" that is pushed to that "Datastream". +The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After doing that the IPE receives every "Observation" that is pushed to that "Datastream".  @@ -215,11 +215,11 @@ The IPE needs to subscribe to the relevant "Datastream" at the MQTT-Broker of th #### 6.3.1.2 Communication direction IPE towards OGC/STA Server -The IPE requires a destination-"Datastream" in order to send an "Observation". In case there is no associated "Datastream" on the OGC/STA server it MUST be created. This MAY be done beforehand or at start-up time of the IPE and is up to the implementation. +The IPE requires a destination-"Datastream" in order to send an "Observation". In case there is no associated "Datastream" on the OGC/STA server it shall be created. This may be done beforehand or at start-up time of the IPE and is up to the implementation. When a "Datastream" is created at the OGC/STA server a reference ID (e.g. {"@iot.id:3635353"}) is given back. -This reference is needed by the IPE to relate an "Observation" to a "Datastream" and MUST be available during IPE operation. Appart from the "Datastream" additional entities of the OGC data model like e.g. "Location" or "Sensor" MAY be created. +This reference is needed by the IPE to relate an "Observation" to a "Datastream" and shall be available during IPE operation. Appart from the "Datastream" additional entities of the OGC data model like e.g. "Location" or "Sensor" may be created. -The creation of entities like "Datastream" and "Thing" requires a number of mandatory properties that shall be known at configuration time, e.g. 'name' and 'description'. These property fields MAY automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. +The creation of entities like "Datastream" and "Thing" requires a number of mandatory properties that shall be known at configuration time, e.g. 'name' and 'description'. These property fields may automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. When "Thing" and "Datastream" entities are created the IPE is able to send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA Client can now subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and thus getting every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1). Alternativly the OGC/STA client MAY use a HTTP-GET request to pull the data when needed. -- GitLab From 7767041a55fec7eaeeba7277f252b47910c40881 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 6 Feb 2025 09:42:18 +0000 Subject: [PATCH 07/18] picture adjustments --- media/config.png | Bin 21385 -> 20771 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/media/config.png b/media/config.png index b74bfd68183b936fe76b5fa4fe5d994b424dc793..7cee63584178a8d1f6390121ea0ddf3d337fae24 100644 GIT binary patch literal 20771 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 literal 21385 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 Y&Hl@TM|n>v?71(V*FKl|&%gKn55iKeFaQ7m -- GitLab From ff9c418416f89ed2a1bc038d4c9c78e855657e7d Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 6 Feb 2025 10:35:58 +0000 Subject: [PATCH 08/18] spell check --- TS-0041-oneM2M-SensorThings_interworking.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index e9b583e..7a27d09 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -190,24 +190,24 @@ The IPE shall map the 'result' attribute of an OGC/STA 'Observation' to the 'con ### 6.3.0 Introduction -In order to enable interworking, preparation is needed in both oneM2M-CSE and OGC/STA server (Figure 6.3.0-1). +In order to enable interworking, preparation is needed for both the oneM2M-CSE and the OGC/STA server (Figure 6.3.0-1).  **Figure 6.3.0-1: Both sides of the IPE configuration** -### 6.3.1 Configuration of OGC/STA Server side +### 6.3.1 Configuration of OGC/STA Server Side #### 6.3.1.0 Overview -Both directions of the data flow between OGC/STA server and the IPE need their own configuration steps. +Both directions of the data flow between the OGC/STA server and the IPE require their own configuration steps. #### 6.3.1.1 Communication direction OGC/STA Server towards IPE -In Figure 6.3.1.1-1 an OGC/STA client is connected to an OGC/STA server and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via a HTTP-Post message. The 'result' attribute of an "Observation" contains the sensor data. +In Figure 6.3.1.1-1, an OGC/STA client is connected to an OGC/STA server, and its data is forwarded to the IPE. he OGC/STA client publishes data to the OGC/STA server via an HTTP-POST message. The 'result' attribute of an "Observation" contains the sensor data. An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). -The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After doing that the IPE receives every "Observation" that is pushed to that "Datastream". +The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After subscribing, the IPE receives every "Observation" that is pushed to that "Datastream".  @@ -215,13 +215,12 @@ The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the O #### 6.3.1.2 Communication direction IPE towards OGC/STA Server -The IPE requires a destination-"Datastream" in order to send an "Observation". In case there is no associated "Datastream" on the OGC/STA server it shall be created. This may be done beforehand or at start-up time of the IPE and is up to the implementation. -When a "Datastream" is created at the OGC/STA server a reference ID (e.g. {"@iot.id:3635353"}) is given back. -This reference is needed by the IPE to relate an "Observation" to a "Datastream" and shall be available during IPE operation. Appart from the "Datastream" additional entities of the OGC data model like e.g. "Location" or "Sensor" may be created. +The IPE requires a destination-"Datastream" in order to send an "Observation". If no associated "Datastream" exists on the OGC/STA server, it shall be created. This can be done beforehand or at the IPE's start-up time and is up to the implementation. +When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@iot.id:3635353"}) is returned. This reference is needed by the IPE to relate an "Observation" to a "Datastream" and shall be available during IPE operation. Apart from the "Datastream," additional entities of the OGC data model, such as "Location" or "Sensor," may be created. -The creation of entities like "Datastream" and "Thing" requires a number of mandatory properties that shall be known at configuration time, e.g. 'name' and 'description'. These property fields may automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. +The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -When "Thing" and "Datastream" entities are created the IPE is able to send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA Client can now subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and thus getting every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1). Alternativly the OGC/STA client MAY use a HTTP-GET request to pull the data when needed. +Once the "Thing" and "Datastream" entities are created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA client can then subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and receive every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to pull the data as needed.  -- GitLab From b2fb49cbf5ada29da84f42d1c2c88cc6ca5d48a5 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 6 Feb 2025 10:38:32 +0000 Subject: [PATCH 09/18] typo 1 --- TS-0041-oneM2M-SensorThings_interworking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 7a27d09..7bb4af1 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -204,7 +204,7 @@ Both directions of the data flow between the OGC/STA server and the IPE require #### 6.3.1.1 Communication direction OGC/STA Server towards IPE -In Figure 6.3.1.1-1, an OGC/STA client is connected to an OGC/STA server, and its data is forwarded to the IPE. he OGC/STA client publishes data to the OGC/STA server via an HTTP-POST message. The 'result' attribute of an "Observation" contains the sensor data. +In Figure 6.3.1.1-1, an OGC/STA client is connected to an OGC/STA server, and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via an HTTP-POST message. The 'result' attribute of an "Observation" contains the sensor data. An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After subscribing, the IPE receives every "Observation" that is pushed to that "Datastream". -- GitLab From d6d9c9947dc032995ba15f444aca2d6950a2c937 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 6 Feb 2025 10:42:02 +0000 Subject: [PATCH 10/18] format 1 --- TS-0041-oneM2M-SensorThings_interworking.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 7bb4af1..82de055 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -205,9 +205,8 @@ Both directions of the data flow between the OGC/STA server and the IPE require #### 6.3.1.1 Communication direction OGC/STA Server towards IPE In Figure 6.3.1.1-1, an OGC/STA client is connected to an OGC/STA server, and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via an HTTP-POST message. The 'result' attribute of an "Observation" contains the sensor data. -An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). -The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After subscribing, the IPE receives every "Observation" that is pushed to that "Datastream". +An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After subscribing, the IPE receives every "Observation" that is pushed to that "Datastream".  -- GitLab From f0a8a8251b5b913215cc997f99368b3cc4c0bdd5 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 6 Feb 2025 10:49:25 +0000 Subject: [PATCH 11/18] typo 2 --- TS-0041-oneM2M-SensorThings_interworking.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 82de055..5210876 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -204,13 +204,13 @@ Both directions of the data flow between the OGC/STA server and the IPE require #### 6.3.1.1 Communication direction OGC/STA Server towards IPE -In Figure 6.3.1.1-1, an OGC/STA client is connected to an OGC/STA server, and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via an HTTP-POST message. The 'result' attribute of an "Observation" contains the sensor data. +In Figure 6.3.1.1-1, an OGC/STA client is connected to an OGC/STA server, and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via an HTTP-POST message. An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After subscribing, the IPE receives every "Observation" that is pushed to that "Datastream". - + -**Figure 6.3.1.1-1: Message flow from OGC STA Client to OGC/STA Server to IPE** +**Figure 6.3.1.1-1: Message flow from OGC/STA Client to OGC/STA Server to IPE** #### 6.3.1.2 Communication direction IPE towards OGC/STA Server @@ -221,9 +221,9 @@ The creation of entities like "Datastream" and "Thing" requires several mandator Once the "Thing" and "Datastream" entities are created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA client can then subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and receive every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to pull the data as needed. - + -**Figure 6.3.1.2-1: Message flow from OGC STA Client to OGC/STA Server to IPE** +**Figure 6.3.1.2-1: Message flow from IPE to OGC/STA Server to OGC/STA Client** # Proforma copyright release text block -- GitLab From f4f7b4913fba735a68cb43d173d5553473664ce5 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 13 Feb 2025 06:52:31 +0000 Subject: [PATCH 12/18] correction of 6.3.1.1 --- TS-0041-oneM2M-SensorThings_interworking.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 5210876..2d342ab 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -190,7 +190,8 @@ The IPE shall map the 'result' attribute of an OGC/STA 'Observation' to the 'con ### 6.3.0 Introduction -In order to enable interworking, preparation is needed for both the oneM2M-CSE and the OGC/STA server (Figure 6.3.0-1). +To enable interworking, preparation is required for both the oneM2M-CSE and the OGC/STA server (see Figure 6.3.0-1). As described in Section 6.0, the IPE maps data from an OGC/STA "Observation" to a oneM2M `<contentInstance>` and vice versa. This specification defines a 1-to-1 relationship in each direction between the "Datastream" associated with the "Observation" and the `<container>` associated with the `<contentInstance>`. An IPE may implement multiple 1-to-1 relationships. +  @@ -206,7 +207,7 @@ Both directions of the data flow between the OGC/STA server and the IPE require In Figure 6.3.1.1-1, an OGC/STA client is connected to an OGC/STA server, and its data is forwarded to the IPE. The OGC/STA client publishes data to the OGC/STA server via an HTTP-POST message. -An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). The IPE shall subscribe to the relevant "Datastream" at the MQTT-Broker of the OGC/STA Server using its specific URL or topic like e.g. {"sta-example-server-address.com/v1.0/Datastreams(8715)"}. After subscribing, the IPE receives every "Observation" that is pushed to that "Datastream". +An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a> belongs to a "Datastream" (see Figure 5-2). The IPE shall subscribe to the "Datastream" containing the observations to be forwarded to the oneM2M side at the MQTT broker of the OGC/STA server using its specific URL or topic, e.g., {sta-example-server-address.com/v1.0/Datastreams(8715)}. Upon successful subscription, the IPE will receive every "Observation" pushed to that "Datastream".  -- GitLab From ee01b3fa85d577b41f6bae96e737ac085660cf90 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 13 Feb 2025 07:19:48 +0000 Subject: [PATCH 13/18] correction of 6.3.1.2 --- TS-0041-oneM2M-SensorThings_interworking.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 2d342ab..15c1024 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -215,12 +215,12 @@ An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1 #### 6.3.1.2 Communication direction IPE towards OGC/STA Server -The IPE requires a destination-"Datastream" in order to send an "Observation". If no associated "Datastream" exists on the OGC/STA server, it shall be created. This can be done beforehand or at the IPE's start-up time and is up to the implementation. -When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@iot.id:3635353"}) is returned. This reference is needed by the IPE to relate an "Observation" to a "Datastream" and shall be available during IPE operation. Apart from the "Datastream," additional entities of the OGC data model, such as "Location" or "Sensor," may be created. +The IPE requires a destination-"Datastream" to send an "Observation" containing data from the oneM2M side. If no associated "Datastream" exists on the OGC/STA server, it shall be created. This can be done beforehand or at the IPE's start-up, depending on the implementation. +When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@iot.id:3635353"}) is returned. This reference is required by the IPE to associate an "Observation" with a "Datastream" and shall be available during IPE operation. In addition to the "Datastream" other entities of the STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a>, such as "Location" or "Sensor," may be created. -The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived e.g. from the "Label" or "ResourceName" attributes of the regarded oneM2M `<AE>` or `<container>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. +The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` or if existing, from the `<AE>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -Once the "Thing" and "Datastream" entities are created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. The interested OGC/STA client can then subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server and receive every "Observation" forwarded from the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to pull the data as needed. +Once the "Thing" and "Datastream" entities are created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed.  -- GitLab From eab4bfa539cc62e3a646c3c7f075f5c7ed740e70 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 13 Feb 2025 07:35:04 +0000 Subject: [PATCH 14/18] wording --- TS-0041-oneM2M-SensorThings_interworking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 15c1024..4fce276 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -218,7 +218,7 @@ An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1 The IPE requires a destination-"Datastream" to send an "Observation" containing data from the oneM2M side. If no associated "Datastream" exists on the OGC/STA server, it shall be created. This can be done beforehand or at the IPE's start-up, depending on the implementation. When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@iot.id:3635353"}) is returned. This reference is required by the IPE to associate an "Observation" with a "Datastream" and shall be available during IPE operation. In addition to the "Datastream" other entities of the STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a>, such as "Location" or "Sensor," may be created. -The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` or if existing, from the `<AE>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. +The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` or if existing, from the corresponding `<AE>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. Once the "Thing" and "Datastream" entities are created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed. -- GitLab From 53c5bef01329ee729d0a1a508ebc0ef0811b89be Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 13 Feb 2025 08:53:25 +0000 Subject: [PATCH 15/18] clarification --- TS-0041-oneM2M-SensorThings_interworking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index 4fce276..be5a5c6 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -220,7 +220,7 @@ When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@io The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` or if existing, from the corresponding `<AE>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -Once the "Thing" and "Datastream" entities are created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed. +Once the destination-"Datastream" is created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed.  -- GitLab From 39c49667b6a41c86792443433d8ac7ce881e198b Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 13 Feb 2025 08:55:33 +0000 Subject: [PATCH 16/18] small corrections --- TS-0041-oneM2M-SensorThings_interworking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index be5a5c6..f71bc47 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -220,7 +220,7 @@ When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@io The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` or if existing, from the corresponding `<AE>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -Once the destination-"Datastream" is created, the IPE can send "Observations" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed. +Once the destination-"Datastream" is created, the IPE can send an "Observation" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed.  -- GitLab From a616155b8b408a96a911d3ffa9453209891ec546 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Thu, 13 Feb 2025 08:56:44 +0000 Subject: [PATCH 17/18] typos --- TS-0041-oneM2M-SensorThings_interworking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index f71bc47..db7d41d 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -220,7 +220,7 @@ When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@io The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` or if existing, from the corresponding `<AE>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -Once the destination-"Datastream" is created, the IPE can send an "Observation" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination "Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed. +Once the destination-"Datastream" is created, the IPE can send an "Observation" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination-"Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed.  -- GitLab From 9aa60b75b83ea38bc30023e4a59f25b0a7125933 Mon Sep 17 00:00:00 2001 From: Ingo Friese <ingo.friese@telekom.de> Date: Fri, 14 Feb 2025 07:14:55 +0000 Subject: [PATCH 18/18] discussion from SDS --- TS-0041-oneM2M-SensorThings_interworking.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TS-0041-oneM2M-SensorThings_interworking.md b/TS-0041-oneM2M-SensorThings_interworking.md index db7d41d..e159042 100644 --- a/TS-0041-oneM2M-SensorThings_interworking.md +++ b/TS-0041-oneM2M-SensorThings_interworking.md @@ -218,9 +218,9 @@ An "Observation" according to STA Sensing Entities Data Model <a href="#_ref_i.1 The IPE requires a destination-"Datastream" to send an "Observation" containing data from the oneM2M side. If no associated "Datastream" exists on the OGC/STA server, it shall be created. This can be done beforehand or at the IPE's start-up, depending on the implementation. When a "Datastream" is created on the OGC/STA server, a reference ID (e.g. {"@iot.id:3635353"}) is returned. This reference is required by the IPE to associate an "Observation" with a "Datastream" and shall be available during IPE operation. In addition to the "Datastream" other entities of the STA Sensing Entities Data Model <a href="#_ref_i.1">[i.1]</a>, such as "Location" or "Sensor," may be created. -The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` or if existing, from the corresponding `<AE>` during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. +The creation of entities like "Datastream" and "Thing" requires several mandatory properties that shall be known at configuration time (e.g., 'name' and 'description'). These property fields may be automatically derived, for example, from the "Label" or "ResourceName" attributes of the corresponding oneM2M `<container>` resource or if existing, from the corresponding `<AE>` resource during IPE configuration. The OGC/STA procedures for creating OGC entities are described in SensorThing API documentation <a href="#_ref_i.1">[i.1]</a>. -Once the destination-"Datastream" is created, the IPE can send an "Observation" to the OGC/STA server as HTTP POST messages. An interested OGC/STA client can subscribe to the destination-"Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed. +Once the destination-"Datastream" is created, the IPE can send an "Observation" to the OGC/STA server as HTTP POST message. An interested OGC/STA client can subscribe to the destination-"Datastream" at the MQTT Broker of the OGC/STA server to receive each "Observation" forwarded by the IPE (see Figure 6.3.1.2-1). Alternatively, the OGC/STA client may use an HTTP-GET request to retrieve the data as needed.  -- GitLab