eclipse-iceoryx / eclipse-iceoryx/iceoryx

ServiceDescription with single string, remove service/instance/event distinction

Open
#1,052 15 comments 0 reactions 0 assignees View on GitHub
enhancement feature request
Dominant language
C++
Stars
2.2k
Forks
492
Avg merge
18h 57m
Merged PRs (30d)
1

Description

## Brief feature description

The ServiceDescription should be modified so that it only contains one string instead of 3 and iceoryx should not make the distinction between service/instance/event since it has no meaning in our world.

The ServiceDescription would then only consist of one single `cxx::string` which would also have the advantage that we could reduce the string length to 1 in an embedded low memory environment and use the underlying char for service enumeration which would be quiet memory efficient.
For use cases like ara com or someip a binding could introduce logic to reestablish the service/instance/event logic by introducing for instance a separator and name the underlying iceoryx services like `/ServiceName/InstanceName/EventName`.

In `findService` we could then also remove the wildcard option and introduce an option like `exactMatch` or `partialMatch`. This would allow a user for instance to look for `toad` and they would find `AllHailHypnotoad`, `AllGloryToTheHypnotoad` with `partialMatch`. For more fine grained searches the ara com / someip binding could introduce extra logic to filter the results further.

Furthermore it would give other frameworks the advantage to encode additional features cleanly into the service description like for instance a type, a class hash - by just defining some service syntax on their own.

At the moment we have cyclone dds which uses only partially those 3 identifiers in the internal iceoryx integration which makes it more clear that this is not the way to go. Or look at ros2 when it uses dds and how the services are mapped there.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the existing ServiceDescription and findService APIs and their callers to understand how service, instance, event, and wildcard matching are currently represented. Compare the cyclone dds integration and the ROS2 mapping mentioned in the issue. Done means agreeing on the replacement single-string representation, matching semantics, and required updates across affected integrations.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.