Description
The SEAL Data Delivery Management Client (SDDM-C) is a key functional role defined within the 3GPP SDDM service framework. It represents the entity that wishes to consume data provided by a service enabler or application acting as a data source. The SDDM-C is typically embedded within a user equipment (UE), an application server, or another network function that requires access to specific data streams. Its primary responsibility is to interact with the SDDM ecosystem to discover available data, establish subscriptions, and subsequently receive the delivered data or notifications about new data availability.
Operationally, the SDDM-C works by first discovering relevant SDDM Servers (SDDM-S) that offer the data it needs. This discovery may be facilitated by a network function or through pre-configuration. Once a target SDDM-S is identified, the SDDM-C initiates a subscription procedure. This involves sending a subscription request message to the SDDM-S (or an intermediate SDDM management function) specifying the desired data set, delivery preferences (e.g., push or pull), and any filters. The request is authenticated and authorized based on the client's credentials and network policies. Upon successful subscription, the SDDM-C enters a state where it is eligible to receive data.
The method of data receipt depends on the subscribed delivery mode. For push-based delivery, the SDDM-S (or a delivery function) will proactively send data notifications or the actual data payload to the SDDM-C's callback address when new data is published. For pull-based delivery, the SDDM-C periodically queries or requests data from the SDDM-S. The SDDM-C must implement the necessary interfaces, typically RESTful APIs based on HTTP/2, to send subscription requests and receive callbacks. It also handles lifecycle management, such as updating or terminating subscriptions. Its role is crucial for enabling a wide range of client applications—from mobile apps to IoT devices—to seamlessly integrate with network-hosted data services without implementing complex distribution logic themselves.
Purpose & Motivation
The SDDM-C exists to provide a standardized client endpoint for consuming data services within the 3GPP SEAL architecture. Before its standardization, client applications interacting with network data sources used diverse, often proprietary APIs, which complicated application development, portability, and scaling. The SDDM-C defines a uniform client behavior, allowing any compliant application to subscribe to any compliant data source.
It solves the problem of client-side fragmentation in accessing network-exposed data. By providing a clear specification for the client role, it ensures predictable interactions with the SDDM-S server, handling aspects like subscription negotiation, secure communication, and data receipt. This is motivated by the need to support a vast ecosystem of diverse clients (e.g., vehicles, sensors, smartphones) in a consistent manner, which is essential for large-scale IoT and service deployments.
The creation of SDDM-C alongside SDDM-S enables a clean service-based architecture. It allows application developers to focus on client-side business logic while relying on the standardized SDDM-C library or module to handle all network communication for data subscription and delivery. This reduces development time, improves reliability, and ensures interoperability across different vendors' SDDM implementations.
Key Features
- Initiates and manages subscriptions to SDDM-S data sources
- Supports both push (callback) and pull (request) data delivery modes
- Implements client-side APIs for subscription, update, and termination
- Processes and handles data notifications and payloads from the network
- Can discover available SDDM Servers offering relevant data
- Interacts with 3GPP security frameworks for authentication and authorization
Evolution Across Releases
Introduced the SDDM-C as a foundational client entity. Defined its procedures for discovering data sources, creating subscriptions, and receiving data via push notifications or pull requests. Established the required service-based interfaces (e.g., Nsddm_Subscribe) that the client must support.
Defining Specifications
| Specification | Title |
|---|---|
| TS 24.538 | 3GPP TS 24.538 |
| TS 24.543 | 3GPP TS 24.543 |