Framework Comparison » History » Version 23
J. Wienke, 06/13/2011 02:16 PM
1 | 20 | J. Moringen | h1. Framework Comparison |
---|---|---|---|
2 | 1 | S. Wrede | |
3 | 16 | J. Moringen | h2. Scope |
4 | 1 | S. Wrede | |
5 | 16 | J. Moringen | Please note: We are comparing RSB against roscore (or even ros_comm?) not against ROS! |
6 | 16 | J. Moringen | and YARP_OS? |
7 | 16 | J. Moringen | |
8 | 1 | S. Wrede | h2. Functional Differences |
9 | 1 | S. Wrede | |
10 | 20 | J. Moringen | | *Aspect* | *ROS* | *YARP* | *XCF* | *RSB* | |
11 | 23 | J. Wienke | | Pub/sub Topology | 1:1 | m:n | 1:n, m:n over AM | m:n | |
12 | 23 | J. Wienke | | Abstraction | single level | single level | single level | hierarchies | |
13 | 23 | J. Wienke | | Channel Identifier | Topic | none? | name or URI(?) | Scope | |
14 | 23 | J. Wienke | | Channel Scope | Flat | Flat | Flat | Hierarchical | |
15 | 23 | J. Wienke | | Origin Filtering | ? | no? | not required for 1:n | planned | |
16 | 20 | J. Moringen | | Typing | static,strong | dynamic | none | strong-ish | |
17 | 20 | J. Moringen | | IDL | yes, proprietary | no | no | optional, standardized | |
18 | 20 | J. Moringen | | QoS | implicit | limited support, mixed with flow-control | limited, local queuing | explicit | |
19 | 20 | J. Moringen | | Introspection | strong | nameserver, port admin protocol | limited | implicit by multicast | |
20 | 20 | J. Moringen | | Centralized | yes (master, param server) | yes (nameserver), direct connect. poss. | yes, dispatcher | no | |
21 | 20 | J. Moringen | | Event meta-data | client level | ? | yes | yes | |
22 | 19 | J. Moringen | |
23 | 19 | J. Moringen | h3. Communication Patterns |
24 | 1 | S. Wrede | |
25 | 23 | J. Wienke | | *Aspect* | *ROS* | *YARP* | *XCF* | *RSB* | |
26 | 23 | J. Wienke | | Pub-Sub | yes | yes | yes | yes | |
27 | 23 | J. Wienke | | .. Push-receiver | yes | ? | only java(?) | yes | |
28 | 23 | J. Wienke | | .. Pull-receiver | ? | ? | yes | yes | |
29 | 23 | J. Wienke | | Client-Server | yes | yes | yes | yes | |
30 | 1 | S. Wrede | |
31 | 20 | J. Moringen | |
32 | 17 | J. Moringen | h3. RPC Features |
33 | 17 | J. Moringen | |
34 | 20 | J. Moringen | | *Aspect* | *ROS* | *YARP* | *XCF* | *RSB* | |
35 | 20 | J. Moringen | | Asynchronous RPC | ? | ? | ? | yes | |
36 | 20 | J. Moringen | | Parallel Pipelining | ? | ? | ? | yes | |
37 | 20 | J. Moringen | | Dynamic Typing | kind-of (schema in header) | yes | yes | no (for Protocol Buffers) | |
38 | 20 | J. Moringen | | Connection pooling | manually configurable | ? | ? | no pooling, but reuse | |
39 | 20 | J. Moringen | | Delayed return | ? | ? | ? | no | |
40 | 20 | J. Moringen | | Event-driven I/O | ? | ? | ? | no (one thread per connection) | |
41 | 16 | J. Moringen | |
42 | 21 | J. Moringen | _Criteria are based on http://msgpack.org/, explanations "here":http://wiki.msgpack.org/display/MSGPACK/Design+of+RPC#DesignofRPC-MessagePackRPCFeatureList ._ |
43 | 18 | J. Moringen | |
44 | 18 | J. Moringen | h2. Non-functional Properties |
45 | 18 | J. Moringen | |
46 | 18 | J. Moringen | * Architecture |
47 | 20 | J. Moringen | * Dependencies |
48 | 18 | J. Moringen | |
49 | 18 | J. Moringen | h3. Openness |
50 | 18 | J. Moringen | |
51 | 23 | J. Wienke | | *Aspect* | *ROS* | *YARP* | *XCF* | *RSB* | |
52 | 23 | J. Wienke | | Lock-in | strong | ? | ? | ? | |
53 | 23 | J. Wienke | | Use of standards/terminology | partial | almost none | XML, XPath | partial | |
54 | 23 | J. Wienke | | Protocol Specification | yes, inaccurate | yes, inaccurate | no(?) | yes, uses IDL | |
55 | 23 | J. Wienke | | Source Code Documentation | ? | ? | ? | ? | |
56 | 23 | J. Wienke | | Project Layout/Source code organization | monolithic | confusing | ? | ? | |
57 | 18 | J. Moringen | |
58 | 18 | J. Moringen | h3. Programming Language Support |
59 | 18 | J. Moringen | |
60 | 20 | J. Moringen | | *Language* | *ROS* | *YARP* | *XCF* | *RSB* | |
61 | 20 | J. Moringen | | C | ? | partial? | no | no | |
62 | 20 | J. Moringen | | C++ | impl | impl | impl | impl | |
63 | 22 | J. Moringen | | Java | impl? | ? | impl | impl | |
64 | 20 | J. Moringen | | Python | impl | ? | binding | impl | |
65 | 20 | J. Moringen | | Common Lisp | impl | ? | binding | impl | |
66 | 20 | J. Moringen | | Ruby | ? | ? | no | no | |
67 | 14 | J. Wienke | |
68 | 15 | J. Wienke | h2. Wishes |
69 | 1 | S. Wrede | |
70 | 1 | S. Wrede | * We believe in the power of reflection and self-description, such that |
71 | 1 | S. Wrede | ** a generic content-based subscription model, e.g., with path-based access such as XPath becomes feasible |
72 | 1 | S. Wrede | ** messages can be generally understood by everyone even if parts are not accessible |
73 | 1 | S. Wrede | * RSB shall provide better introspection features, both for programmatic access (e.g., for anomaly detection) but also for developers |
74 | 1 | S. Wrede | * Reduced framework lock-in |