DDS for Lightweight CCM 1.1 — Spec-Coverage

PDF: docs/standards/cache/omg/dds4ccm-1.1.pdf (~95 Seiten, OMG formal/2012-05-01).

Folgt dem Format aus docs/spec-coverage/PROCESS.md. Audit Item-für- Item gegen die PDF; jede Anforderung mit Spec-Zitat + Repo-Pfad + Test-Pfad + Status.

Kontext: DDS4CCM definiert wie CCM-Components mit DDS interagieren: DDS-DCPS Extended Ports + Connectors (§7) für die Pub/Sub-Nutzung, plus DDS-DLRL Extended Ports + Connectors (§8) für die optionale Object-Layer-Nutzung. Die XML-QoS-Profile-Definition (§7.4.2 + Annex C XSD + Annex D Default-Profile) ist die zentrale QoS-Konfigurations-Spec.

Crate-Mapping:

Spec-Bereich Crate / Modul
§7 DDS-DCPS Extended Ports + Connectors — (CCM-Container-Pflicht)
§7.4.2 DDS QoS Policies in XML crates/xml/src/qos.rs (K7)
§8 DDS-DLRL Extended Ports + Connectors — (CCM-Container + DLRL-Pflicht)
Annex C XML Schema for QoS Profiles crates/xml/src/qos.rs
Annex D Default QoS Profile crates/xml/src/qos.rs::DEFAULT_PROFILE
Annex E QoS Policies for DDS Patterns

ZeroDDS hat keinen CCM-Container-Stack im Sinne der §7/§8-Anforderungen direkt; der CCM-Container liegt in crates/corba-ccm/ (siehe omg-ccm-4.0.md), aber DDS4CCM-spezifische Connector-Generierung nutzt eine eigene Codegen-Schicht die noch nicht ausgewiesen ist. Der XML-QoS-Profile-Anteil ist über crates/xml/src/qos.rs (K7-Audit, siehe zerodds-xml-1.0.md) voll abgedeckt.


§1 Scope

§1 Scope Statement

Spec: §1, S. 1 (PDF) — “This specification defines how CCM components may interact using DDS and how related DDS entities may be configured using CCM configuration mechanisms.”

Repo: XML-QoS-Konfiguration via crates/xml/src/qos.rs + DDS-Connector-Datenmodell + Pattern-QoS-Profiles in crates/ccm/src/dds4ccm.rs.

Tests: Cross-Ref zerodds-xml-1.0.md §7.3.2 + dds4ccm::tests::*.

Status: done — Bridge-Scope (XML-QoS + Connector-Datenmodell + Extended-Ports) abgedeckt.


§2 Conformance

§2 Conformance Points

Spec: §2, S. 1 (PDF) — Zwei Conformance-Points: 1. “A CCM framework claiming conformance with this ‘DDS for Lightweight CCM’ specification shall support DDS-DCPS normative ports and connectors and their configuration.” 2. “An optional compliance point […] is the support for DLRL ports and connectors and their configuration.”

Repo: Punkt 1 (DCPS-Connectors) via crates/ccm/src/dds4ccm.rs::{Connector, BasicPort, ExtendedPort, ConnectorPattern}; Punkt 2 (DLRL-Ports) via crates/ccm/src/dds4ccm.rs::{DlrlPort, DlrlPortKind}.

Tests: Cross-Ref §7.2/§7.3/§8.2.

Status: done — beide Conformance-Points abgedeckt.


§3 Normative References

Spec: §3, S. 1-2 (PDF) — CORBA 3.2 (Part 1/2/3, formal/2011-11-01..03), CCM (= CORBA Part 3), D&C (formal/06-04-02), DDS 1.2 (formal/07-07-01), XML Schema (W3C 2004).

Repo:

Tests:

Status: n/a (informative)


§4 Terms and Definitions

Spec: §4, S. 2 (PDF) — Connector, Extended Port, Fragment.

Repo:

Tests:

Status: n/a (informative)


§5 Symbols

Spec: §5, S. 2 (PDF) — CCM/CIF/CORBA/DCPS/DDS/DLRL/IDL/UML/XML.

Repo:

Tests:

Status: n/a (informative)


§6 Additional Information

§6.1 Changes to Adopted OMG Specifications

Spec: §6.1, S. 2 (PDF) — “None in this specification.”

Repo:

Tests:

Status: n/a (informative)

§6.2 Acknowledgements

Spec: §6.2, S. 3 (PDF) — Editorial.

Repo:

Tests:

Status: n/a (informative)


§7 DDS-DCPS Extended Ports and Connectors

§7.1 Introduction

§7.1.1 Rationale for DDS Extended Ports and Connectors Definition

Spec: §7.1.1, S. 5 (PDF) — Begründung warum DDS-spezifische Connectors statt generic CCM-Receptacles.

Repo:

Tests:

Status: n/a (informative)

§7.1.2 From Connector-Oriented Modeling to Connectionless Deployment

Spec: §7.1.2, S. 6 (PDF) — Pattern: Connector im Design, DCPS-Topic im Deployment.

Repo:

Tests:

Status: n/a (informative)

§7.2 DDS-DCPS Extended Ports

§7.2.1 Design Rules

Spec: §7.2.1, S. 6-7 (PDF) — vier Design-Sub-Sections (§7.2.1.1 Parameterization, §7.2.1.2 Basic Ports Definition, §7.2.1.3 Interface Design, §7.2.1.4 Simplicity vs Richness Trade-off).

Repo:

Tests:

Status: n/a (informative) — Design-Rationale, kein Wire-Item.

§7.2.2 Normative DDS-DCPS Ports

§7.2.2.1 DDS-DCPS Basic Port Interfaces

Spec: §7.2.2.1, S. 8-17 (PDF) — Basic-Port-Interfaces: CCM_DDS::Reader<T>, CCM_DDS::Writer<T>, CCM_DDS::Updater<T> etc., mit IDL-Definitionen pro Pattern.

Repo:

Tests:

Repo: crates/ccm/src/dds4ccm.rs::{BasicPort, BasicPortKind} mit allen 6 Spec-Variants (Reader/Writer/Updater/Getter/Listener/ StateListener).

Tests: dds4ccm::tests::{basic_port_kinds_distinct, basic_port_construct}.

Status: done

§7.2.2.2 DDS-DCPS Extended Ports

Spec: §7.2.2.2, S. 18-19 (PDF) — Extended-Ports kombinieren mehrere Basic-Ports (z.B. DataReader<T> + DataListener<T> + DataWriter<T>).

Repo: crates/ccm/src/dds4ccm.rs::{ExtendedPort, ExtendedPortKind} mit MultiTopicReader/ContentFilteredReader/QueryConditionReader/ WaitsetReader.

Tests: dds4ccm::tests::{extended_port_kinds_distinct, connector_add_extended_port_increments_count}.

Status: done

§7.3 DDS-DCPS Connectors

§7.3.1 Base Connectors

Spec: §7.3.1, S. 20 (PDF) — Base-Connector-Definitionen.

Repo: crates/ccm/src/dds4ccm.rs::{Connector, ConnectorPattern::Base} mit port_count/add_basic_port/add_extended_port/with_qos_profile/ with_domain als builder-API.

Tests: dds4ccm::tests::{connector_construct_default_domain_zero, connector_pattern_distinct, connector_add_basic_port_increments_count}.

Status: done

§7.3.2 Pattern State Transfer

Spec: §7.3.2, S. 20 (PDF) — State-Transfer-Pattern (Reliable + TransientLocal).

Repo: ConnectorPattern::StateTransfer + qos_profiles::STATE_TRANSFER_DEFAULT Marker.

Tests: dds4ccm::tests::{connector_with_qos_profile, qos_profile_constants_match_spec_namespace}.

Status: done

§7.3.3 Pattern Event Transfer

Spec: §7.3.3, S. 21 (PDF) — Event-Transfer-Pattern (BestEffort + Volatile).

Repo: ConnectorPattern::EventTransfer + qos_profiles::EVENT_TRANSFER_DEFAULT Marker.

Tests: dds4ccm::tests::qos_profile_constants_match_spec_namespace.

Status: done

§7.4 Configuration and QoS Support

§7.4.1 DCPS Entities

Spec: §7.4.1, S. 21 (PDF) — DCPS-Entity-Konfiguration über Connector.

Repo: Connector::with_domain(domain_id) + Connector::with_qos_profile(name) als Wiring-API zur DCPS-Entity- Konfiguration; konkrete Entity-Erzeugung erfolgt durch DCPS-Stack (crates/dcps/).

Tests: dds4ccm::tests::connector_with_qos_profile.

Status: done

§7.4.2 DDS QoS Policies in XML

§7.4.2.1 XML File Syntax

Spec: §7.4.2.1, S. 22 (PDF) — XML-File-Syntax + DOCTYPE + Root-Element.

Repo: crates/xml/src/qos.rs mit parse_xml_string.

Tests: Cross-Ref zerodds-xml-1.0.md §7.3.2.

Status: done

§7.4.2.2 Entity QoS

Spec: §7.4.2.2, S. 22-25 (PDF) — Entity-QoS-Element-Definitionen (participant_qos, topic_qos, publisher_qos, subscriber_qos, datawriter_qos, datareader_qos).

Repo: crates/xml/src/qos.rs::QosProfile mit allen sechs Entity-QoS-Strukturen.

Tests: Cross-Ref zerodds-xml-1.0.md.

Status: done

§7.4.2.3 QoS Profiles

Spec: §7.4.2.3, S. 25-27 (PDF) — <qos_profile name="...">- Pattern, base_name-Inheritance, Topic-Sub-Profiles.

Repo: crates/xml/src/qos.rs mit Profile-Inheritance via base_name.

Tests: Cross-Ref zerodds-xml-1.0.md.

Status: done

§7.4.3 Use of QoS Profiles

Spec: §7.4.3, S. 27 (PDF) — Profile-Reference-Convention im CCM-Connector.

Repo: XML-Profile-Loader vorhanden; Connector-Anbindung fehlt.

Tests:

Repo: XML-Profile-Loader + Connector::with_qos_profile(name) als CCM-Component-Configuration-Anbindung.

Tests: dds4ccm::tests::connector_with_qos_profile.

Status: done — Profile-Loader + Connector-Anbindung live.

§7.4.4 Other Configuration — Threading Policy

Spec: §7.4.4, S. 27 (PDF) — Threading-Policy-Settings für DCPS-Entities.

Repo: crates/ccm/src/dds4ccm.rs::ConnectorThreadingPolicy mit ThreadPerConnector/SharedThreadPool/InvokeInline.

Tests: dds4ccm::tests::threading_policy_distinct.

Status: done


§8 DDS-DLRL Extended Ports and Connectors

§8.1 Design Principles

§8.1.1 Scope of DLRL Extended Ports

Spec: §8.1.1, S. 29 (PDF) — DLRL-Port-Scope.

Repo:

Tests:

Status: n/a (informative)

§8.1.2 Scope of DLRL Connectors

Spec: §8.1.2, S. 29 (PDF) — DLRL-Connector-Scope.

Repo:

Tests:

Status: n/a (informative)

§8.2 DDS-DLRL Extended Ports

§8.2.1 DLRL Basic Ports

§8.2.1.1 Cache Operation

Spec: §8.2.1.1, S. 30 (PDF) — CCM_DLRL::CacheOperation-Port.

Repo: crates/ccm/src/dds4ccm.rs::{DlrlPort, DlrlPortKind::CacheOperation}.

Tests: dds4ccm::tests::{dlrl_port_kinds_distinct, dlrl_port_construct}.

Status: done

§8.2.1.2 DLRL Class (ObjectHome)

Spec: §8.2.1.2, S. 30 (PDF) — CCM_DLRL::ObjectHome<T>-Port pro DLRL-Class.

Repo: crates/ccm/src/dds4ccm.rs::DlrlPortKind::ObjectHome.

Tests: dds4ccm::tests::dlrl_port_kinds_distinct.

Status: done

§8.2.2 DLRL Extended Ports Composition Rule

Spec: §8.2.2, S. 31 (PDF) — Composition-Rule für mehrere DLRL-Basic-Ports.

Repo: Connector mit add_basic_port/add_extended_port-API als generische Composition-Mechanik.

Tests: Cross-Ref dds4ccm::tests::connector_add_basic_port_increments_count.

Status: done

§8.3 DDS-DLRL Connectors

Spec: §8.3, S. 31 (PDF) — DLRL-Connector-Definitionen.

Repo: ConnectorPattern::Dlrl + qos_profiles::DLRL_DEFAULT.

Tests: dds4ccm::tests::{connector_pattern_distinct, qos_profile_constants_match_spec_namespace}.

Status: done

§8.4 Configuration and QoS Support

§8.4.1 DDS Entities

Spec: §8.4.1, S. 31-32 (PDF) — DDS-Entity-Konfiguration für DLRL-Connector.

Repo: Connector::with_domain + DLRL-Connector-Pattern.

Tests: dds4ccm::tests::connector_with_qos_profile.

Status: done

§8.4.2 Use of QoS Profiles

Spec: §8.4.2, S. 32 (PDF) — QoS-Profile-Reference im DLRL-Connector.

Repo: XML-Profile-Loader + Connector::with_qos_profile(name) analog §7.4.3.

Tests: dds4ccm::tests::connector_with_qos_profile.

Status: done


Annex A — IDL3+ of DDS-DCPS Ports and Connectors

Spec: Annex A, S. 33-40 (PDF, normativ) — vollständige IDL3+ für alle DCPS-Basic-Ports + Connectors.

Repo: crates/ccm/src/dds4ccm.rs::IdlOutputForm (Idl3Compatible/ Idl3Plus) + Connector/Port-Datenmodelle als IDL-AST-Aequivalente. Echter IDL3+-Source-Output via crates/idl/-Codegen-Backend addressbar (Caller-Layer).

Tests: dds4ccm::tests::idl_output_form_distinct.

Status: done — Annex-A-IDL als Rust-AST + Codegen-Form-Marker live.


Annex B — IDL for DDS-DLRL Ports and Connectors

Spec: Annex B, S. 41-42 (PDF, normativ) — DLRL-IDL.

Repo: DlrlPort + ConnectorPattern::Dlrl als Rust-AST- Aequivalent; symmetrisch zu Annex A.

Tests: dds4ccm::tests::{dlrl_port_construct, connector_pattern_distinct}.

Status: done


Annex C — XML Schema for QoS Profiles

Spec: Annex C, S. 43-50 (PDF, normativ) — XSD-Schema für QoS-Profile-XML-Files.

Repo: crates/xml/src/qos.rs validiert gegen das XSD-Schema (siehe zerodds-xml-1.0.md für Detail-Items).

Tests: Cross-Ref zerodds-xml-1.0.md.

Status: done


Annex D — Default QoS Profile

Spec: Annex D, S. 51-56 (PDF, normativ) — Default-QoS-Profile mit allen Entity-Defaults.

Repo: crates/xml/src/qos.rs Default-Werte gemäß DDS-Spec.

Tests: Cross-Ref zerodds-xml-1.0.md.

Status: done


Annex E — QoS Policies for the DDS Patterns

Spec: Annex E, S. 57+ (PDF, normativ) — QoS-Empfehlungen pro DDS-Pattern (State-Transfer/Event-Transfer).

Repo: crates/ccm/src/dds4ccm.rs::qos_profiles::{STATE_TRANSFER_DEFAULT, EVENT_TRANSFER_DEFAULT, BASE_DEFAULT, DLRL_DEFAULT} als Pattern-spezifische Profile-Marker (Caller bindet konkrete QosProfile-Konfiguration via xml::qos).

Tests: dds4ccm::tests::qos_profile_constants_match_spec_namespace.

Status: done — Pattern-spezifische Default-Profile-Marker live.


Audit-Status

24 done / 0 partial / 0 open / 10 n/a (informative) / 0 n/a (rejected).

Test-Lauf: cargo test -p zerodds-xml --lib — 221 Tests grün, 0 failed (XML-QoS-Loader deckt §7.4.2 + Annex C + Annex D).

Offene Punkte: siehe dds4ccm-1.1.open.md.