Framework Comparison » History » Version 17

« Previous - Version 17/38 (diff) - Next » - Current version
J. Moringen, 06/12/2011 07:12 PM
Integrated RPC criteria from http://msgpack.org/


ROS Comparison

Scope

Please note: We are comparing RSB against roscore (or even ros_comm?) not against ROS!
and YARP_OS?

Functional Differences

Aspect ROS YARP RSB
Pub/sub Topology 1:1 m:n m:n
Abstraction single level single level hierarchies
Channel Identifier Topic Scope
Channel Scope Flat Scope Hierarchical
Origin Filtering ? Scope planned
Typing strong Scope strong-ish
IDL yes, proprietary Scope optional
QoS implicit Scope explicit
Introspection strong Scope implicit by multicast
Centralized yes (master, param server) Scope no

Communication Patterns

Aspect ROS YARP RSB
Push-receiver yes ? yes
Pull-receiver ? ? yes

RPC Features

Aspect ROS YARP RSB
Asynchronous RPC ? ? yes
Parallel Pipelining ? ? yes
Dynamic Typing kind-of (schema in header) yes no (for Protocol Buffers)
Connection pooling manually configurable ? no pooling, but reuse
Delayed return ? ? no
Event-driven I/O ? ? no (one thread per connection)

Criteria are based on http://msgpack.org/

Non-functional Properties

  • Lock-in
  • Architecture
  • Openness
    • Use of standards/terminology
    • Protocol Specification
    • Source Code Documentation
    • Project Layout/Source code organization
  • Programming Language Support

Wishes

  • We believe in the power of reflection and self-description, such that
    • a generic content-based subscription model, e.g., with path-based access such as XPath becomes feasible
    • messages can be generally understood by everyone even if parts are not accessible
  • RSB shall provide better introspection features, both for programmatic access (e.g., for anomaly detection) but also for developers
  • Reduced framework lock-in