eclipse-iceoryx / eclipse-iceoryx/iceoryx
ServiceDescription with single string, remove service/instance/event distinction
- 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
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