# DataSet and Communication Channel Association

The diagram below provides a very generic overview of the responsibilities that must be implemented by the UA Application:

![Architecture](https://2823161733-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LC0CZRWqxXUp1c0m4su%2Fuploads%2Fgit-blob-2a6e80570f9e26c93af39758364a6625c2accb22%2FUADataNetworking.DataManagementBinding.DomainModel.png?alt=media)

* `UA Data Networking` - represents a software exchanging the data using protocol compliant with the [UA Part 14 Pub/Sub](../readme.pubsubmtf) and binding the data with the underlying process.
* `MessageHandler` - represents a selected transport protocol supporting unsolicited data distribution or a middle-ware supporting publication/subscription message exchange communication pattern.
* `DataSet` - represents a preselected collection of process data items transmitted by the `MessageHandler` as one whole and information required to bind with the underlying process.
* `MessageReader` - captures functionality necessary to filter out unwanted messages and decode the data according to provided meta-data
* `MessageWriter` - captures functionality necessary to address the message (provide globally unique identifier) and encode the data using provided meta-data
* `Association` - provides:
  1. one to one association between an entity instance derived from `MessageHandler` and `DataSet`
  2. required addressing information as the `PublisherId`/`DataSetWriterId` couple
  3. meta-data information used to encode/decode the process data into the messages
