https://github.com/damslabumbc/pub-sub-privacy
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.0%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: DAMSlabUMBC
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Size: 3.06 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
MQTT-DAP-Benchmark
A benchmarking framework for MQTT-DAP-Mosquitto-GDPR (MQTT Data Access and Processing) , designed to evaluate broker preformance under realistic conditions.
Table of Contents
- Overview
- Key Features
- Architecture
- Running the Benchmark
- Client Interface
- Metrics
- Configuration
- Dependencies
- License
Overview
This benchmark addresses testing MQTT-DAP-Mosquitto-GDPR by:
- Supporting custom MQTT-DAP control packets
- Simulating real-world IoT environments
- Enabling testing of purpose-based access control mechanisms
- Supporting operational requests across distributed clients with variable behaviors
Key Features
- Support for client disconnection/reconnection patterns
- Variable payload sizes and publishing rates
- Testing for different purpose management approaches
- Evaluation of operational request coverage
- Distributed testing capabilities
Architecture
The benchmark is composed of five components:
Management Module
Parses configuration files and controls the benchmark node lifecycle.Synchronization Module
Coordinates test state across distributed benchmark nodes to ensure proper initialization and completion.Test Execution Module
Runs test logic, manages clients, sends/receives messages, evaluates purposes, and invokes operations.Result Logging Module
Asynchronously logs results during test execution.Results Calculation Module
Aggregates data across nodes to compute performance metrics.
Running the Benchmark
```bash
Run the benchmark with a configuration file and broker IP address
python3 benchmark/Benchmark.py run /configs/
Client Interface
To integrate a new MQTT-DAP client, implement the following functions as defined in ClientInterface.py:
connect(client_id, broker_address, broker_port)
Connect the client to the specified MQTT broker.disconnect()
Disconnect the client from the MQTT broker.subscribe(topic, qos, purpose)
Subscribe to a topic with a specified QoS level and purpose metadata.unsubscribe(topic)
Unsubscribe from a given topic.publish(topic, payload, qos, purpose)
Publish a message to a topic with an associated QoS level and purpose.define_purpose(purpose_id, purpose_properties)
Define a purpose with specific properties for access control.invoke_operation(operation, targets, arguments)
Invoke a distributed operation across client targets.receive_callback(callback_function)
Set a callback to handle incoming messages during test execution.
Metrics
The benchmark measures the following performance and correctness indicators:
Message Latency
The time elapsed between message publication and receipt.Message Throughput
The number of messages received per second.PBAC Correctness
The accuracy of Purpose-Based Access Control filtering.Operational Coverage
The success rate of completed operational requests.
Dependencies
The MQTT-DAP Benchmark requires the following Python packages:
ischedule==1.2.7markdown-it-py==3.0.0mdurl==0.1.2paho-mqtt==2.1.0Pygments==2.19.1PyYAML==6.0.2rich==14.0.0sortedcontainers==2.4.0
You can install all dependencies using pip:
bash
pip install -r benchmark/requirements.txt
License
This project is licensed under the GNU General Public License v3.0.
See the LICENSE file for details.
Owner
- Name: DAMS lab
- Login: DAMSlabUMBC
- Kind: organization
- Repositories: 2
- Profile: https://github.com/DAMSlabUMBC
DAta Management & Semantics lab at UMBC
GitHub Events
Total
- Push event: 5
- Public event: 1
Last Year
- Push event: 5
- Public event: 1
Dependencies
- python 3.10-slim build
- alpine latest build
- emqx 5.8.1