URI Schema » History » Version 48

J. Moringen, 05/26/2011 03:49 AM
minor improvement

1 1 J. Wienke
h1. URI Schema
2 1 J. Wienke
3 45 J. Moringen
h2. Use Cases
4 1 J. Wienke
5 45 J. Moringen
URIs or URLs are used in the following situations
6 45 J. Moringen
* Specifying how to connect to the bus
7 45 J. Moringen
* Naming a thing on the bus
8 45 J. Moringen
** A channel
9 48 J. Moringen
** Multiple participants
10 48 J. Moringen
** A single participant
11 45 J. Moringen
*** A service
12 1 J. Wienke
13 46 J. Moringen
h2. Generic URIs
14 45 J. Moringen
15 45 J. Moringen
h3. Syntax and Semantic
16 45 J. Moringen
17 1 J. Wienke
<pre>
18 45 J. Moringen
rsb://[PATH][#FRAGMENT]
19 1 J. Wienke
</pre>
20 45 J. Moringen
21 45 J. Moringen
Components of the URL are interpreted as follows:
22 45 J. Moringen
23 45 J. Moringen
* @SCHEME@   -> has to be "rsb"
24 45 J. Moringen
* @PATH@     -> A [[Glossary|scope]] which designates a one of the following things
25 45 J. Moringen
** A channel
26 45 J. Moringen
** A participant
27 45 J. Moringen
*** A service (which is-a participant)
28 45 J. Moringen
* @FRAGMENT@ -> 
29 45 J. Moringen
** Not allowed when designating a channel
30 45 J. Moringen
** ID of a participant otherwise
31 45 J. Moringen
32 1 J. Wienke
This may resolve to:
33 44 J. Wienke
34 1 J. Wienke
* Service and/or Participant
35 1 J. Wienke
** If there is only one of these entities this is enough for resolving it
36 1 J. Wienke
** If multiple entities reside on this scope, a single instance can be selected using their UUID.
37 43 J. Wienke
   @rsb:///hierarchical/service/definition/further/to/participant#UniqueIDOfParticipant [UUID]@
38 1 J. Wienke
* Nothing
39 43 J. Wienke
40 1 J. Wienke
These generic URIs require a global naming service.
41 1 J. Wienke
42 47 J. Moringen
Examples:
43 47 J. Moringen
<pre>
44 47 J. Moringen
rsb: -> The channel designated by the scope "/"
45 47 J. Moringen
rsb:/// -> The channel designated by the scope "/"
46 47 J. Moringen
rsb:///foo/bar -> The channel designated by the scope "/foo/bar"
47 47 J. Moringen
rsb:///foo/bar#10838319-09A4-4D15-BD59-5E054CDB4403 -> The participant with UUID 10838319-09A4-4D15-BD59-5E054CDB4403
48 47 J. Moringen
</pre>
49 47 J. Moringen
50 45 J. Moringen
h3. Rationale
51 1 J. Wienke
52 45 J. Moringen
Usually location transparency should be available.
53 45 J. Moringen
54 46 J. Moringen
h2. Transport-specific URLs
55 45 J. Moringen
56 45 J. Moringen
h3. Syntax and Semantic
57 45 J. Moringen
58 30 S. Wrede
<pre>
59 46 J. Moringen
[SCHEME://][HOST][:PORT][PATH][?QUERY][#FRAGMENT]
60 1 J. Wienke
transport://<location.transport.specific[:PORT]>/hierarchical/service/definition/further/to/participant
61 1 J. Wienke
</pre>
62 45 J. Moringen
Components of the URL are interpreted as follows:
63 1 J. Wienke
64 45 J. Moringen
* @SCHEME@   -> transport name (e.g spread)
65 45 J. Moringen
* @HOST@     -> Transport-specific "host" option (e.g. host that runs the daemon for Spread)
66 45 J. Moringen
* @PORT@     -> Transport-specific "port" option (e.g. port on which Spread daemon listens)
67 45 J. Moringen
* @PATH@     -> A [[Glossary|scope]] which designates a one of the following things
68 1 J. Wienke
** A channel
69 45 J. Moringen
** A participant
70 45 J. Moringen
*** A service (which is-a participant)
71 46 J. Moringen
* @QUERY@    -> "freestyle" transport options
72 45 J. Moringen
* @FRAGMENT@ -> 
73 45 J. Moringen
** Not allowed when designating a channel
74 45 J. Moringen
** ID of a participant otherwise
75 45 J. Moringen
76 45 J. Moringen
What does this mean?
77 45 J. Moringen
78 45 J. Moringen
 Location uniquely identifies a single participant or service, hence an ID part is not required any more.
79 42 J. Wienke
Specific IDs can be resolved by the respective connectors and do not require a global naming.
80 14 S. Wrede
81 45 J. Moringen
h3. Rationale
82 42 J. Wienke
83 45 J. Moringen
* Transport-specific access is possible without naming service.
84 1 J. Wienke
* UUIDs should ideally not be required to keep URIs simple